none
DataGridView的搜尋問題 RRS feed

  • 問題

  • 1.我使用 DataGridView 呈現記錄,其內有數百筆記錄。

    2.我須要寫一個查詢程式,因此使用 BindingSource.Filter 筛選記錄。

     

    請問,如果不要使用篩選方法(BindingSource.Filter )搜尋記錄,在 DataGridView 內有什麼方法可搜尋出記錄。

     

    敬請指導,謝謝。

    2008年1月9日 上午 10:05

解答

所有回覆

  • Dear Sir

    filter會去"篩選"資料,另外有FInd方法可以去"尋找"資料,兩種用途有些不同,上千筆的資料而我只要看"研發部"的資料,這時候filter就會很有用了;find可以參考下面

            x=bindingsource.Find("col_name", txtSerch.Text)

            If x >= 0 Then
                bindingsource.Position = x
                datagridview.Rows(x).Selected = True
                datagridview.FirstDisplayedScrollingRowIndex = x
            End If

    會回傳找到(符合條件)的第一筆紀錄,帶到datagridview上。

     

    2008年1月9日 上午 10:17
    版主
  • 1.萬分感謝指導。

    2.由於我須要先在 DataGridView 內找出記錄,然後取出記錄的某些儲存格內容供使用,此後還要將資料覆寫回資料源。

    3.因此我需要:

    a.找出記錄,並取得記錄的索引(index)編號。不會,請指導

    b.應用記錄的索引編號,由DataSet中取出記錄的儲存格內容。

    c.將修改後的資料覆寫回DataSet的記錄中。

     

    敬請再指導,謝謝。

     

     

    2008年1月9日 上午 10:52
  • DataSet ds = new DataSet();
    BindingSource bs = new BindingSource();
     
    private void Form1_Load(object sender, EventArgs e)
    {
        dataGridView1.AllowUserToAddRows = true;
        string strConn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\NORTHWND.MDF;Integrated Security=True;";
        SqlConnection conn = new SqlConnection(strConn);
        SqlDataAdapter da = new SqlDataAdapter("Select * from orders", conn);
     
        da.Fill(ds);
        bs.DataSource = ds.Tables[0];
        dataGridView1.DataSource = bs;
    }
     
    private void button1_Click(object sender, EventArgs e)
    {
        int pos = bs.Find("OrderID", textBox1.Text);
        if(pos != -1)
        {
            DataRow dr = ds.Tables[0].Rows[pos];
            ds.Tables[0].Rows[pos]["CustomerID"] = dr["CustomerID"] + "Test";
     
            bs.DataSource = ds.Tables[0];
            dataGridView1.DataSource = bs;
        }
    }
    2008年1月9日 上午 11:54
  • 1.感謝指導。

    2.請問範例 Find("OrderID", textBox1.Text)中的 "OrderID" 是指什麼?謝謝。

     

    敬請再解惑,謝謝。

    2008年1月9日 下午 01:01
  • Hi,是資料表中"資料欄位"的名稱。
    2008年1月9日 下午 01:08
    版主
  • 感謝萬分

    2008年1月9日 下午 01:23