2013-02-02 59 views
-3

我想在按下搜索按鈕時從文本框中取出字符串,然後我想要突出顯示放置數據網格的行。我相信這是可能的。我不知道如何做到這一點。請幫助我。如何使用數據網格進行搜索

string query = " SELECT * FROM suboffice where so_id like '%" + sor_id.Text + "%' "; 
      SqlConnection objConn = new SqlConnection(connectionString); 
      objConn.Open(); 
      SqlDataAdapter subofficeTableAdapter1 =new SqlDataAdapter(query,objConn); 
      SqlCommandBuilder cBuilder = new SqlCommandBuilder(subofficeTableAdapter1); 
      DataTable dTable = new DataTable(); 
      subofficeTableAdapter1.Fill(dTable); 
      dataGridView1.DataSource = dTable; 
      subofficeTableAdapter1.Update(dTable); 

其中sor是一個搜索選項卡,當我把任何事情在這個運行時間我的數據網格視圖更新。這個程序將在C#中進行

+2

[?'你嘗試過什麼'](http://mattgemmell.com/2008/12/08/what-have-you-tried/) –

+0

試試這個: 1)谷歌 2 )3)如果沒有給出的東西,發佈問題的代碼... http://stackoverflow.com/questions/6210781/search-in-datagridview-c-sharp-winfom http:// stackoverflow。 com/questions/6989242/searching-a-datagridview-for-match-or-partial-match http://stackoverflow.com/questions/797946/search-datagridview-on-user-keypress –

+0

什麼類型的應用程序?的WinForms? WPF? asp.net? – Tomtom

回答

0

如果您使用的是Windows窗體,這裏是一個開始。如果您要實現「查找下一個」,「查找上一個」,「查找全部」等功能,您可能需要爲您的目的修改代碼。

以下假設您擁有名爲SearchButton的按鈕,名爲SearchTextBox的文本框和名爲MyDataGridView的DataGridView。以下代碼將位於搜索按鈕的單擊事件中。

private void SearchButton_Click(object sender, EventArgs e) 
    { 
     MyDataGridView.ClearSelection(); //this will clear any currently selected cells 
     string searchstring = SearchTextBox.Text; 
     foreach (DataGridViewRow r in MyDataGridView.Rows) 
      foreach (DataGridViewCell c in r.Cells) 
      if (c.Value.ToString().Contains(searchstring)) 
      { 
       r.Selected = true; //this will highlight the entire row 
       break; //if you want to "Select All" that are found, take this line out 
      } 
    } 
+0

我試過我們的代碼不工作。有關於此的一些事情「對象引用未設置爲對象的實例」。在行if(c.Value.ToString()。Contains(searchstring)) –

+0

現在我該如何糾正這個問題 –

+0

哪個對象返回null?是c.value還是searchstring?也許你需要檢查這些行中是否有任何一個是空的 – Mash

相關問題