2014-11-17 45 views
-2

我在我的窗體應用程序中使用數據網格視圖。在我的應用程序中,我每次查詢時都需要搜索數據。我爲文本框寫下搜索查詢按鍵event.my應用程序在運行application.i時速度稍慢一些2000年左右列在我table.how的數據可以使我的搜索速度更快,減少數據庫負載。就是沒有任何選項來搜索數據網格數據,而數據庫的交互如何在datagrid視圖中進行高效搜索?

我的代碼如下

private void txtsearch_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Down) 
     { 
      datagridproduct.Focus(); 
     } 
     string constring = @"Data Source=PC1\WINMANERP;Initial Catalog=Easylife;Integrated Security=True"; 
     //if (e.KeyCode == Keys.Enter) 
     //{ 


     using (SqlConnection con = new SqlConnection(constring)) 
     { 
      using (SqlCommand cmd = new SqlCommand("SELECT * FROM Item_Details where Item_Code LIKE '%' + @NM + '%' OR Item_Name LIKE '%' + @NM + '%' OR Supplier_Name LIKE '%'[email protected]+'%' OR Location LIKE '%' + @NM + '%'", con)) 
      { 
       cmd.Parameters.AddWithValue("@NM", txtsearch.Text); 
       cmd.CommandType = CommandType.Text; 
       using (SqlDataAdapter sda = new SqlDataAdapter(cmd)) 
       { 
        using (DataTable dt = new DataTable()) 
        { 
         sda.Fill(dt); 
         datagridproduct.DataSource = dt; 
        } 
       } 
      } 



     } 




    } 

回答

0

一旦所有項目都已加載到DataGridView中,您可以使用數據網格單元而不是數據庫進行搜索,並設置與您的搜索條件不匹配的行的可見屬性隱藏標準。在全球

private void Search(string item) 
    { 
     TotalRecords = 0; 
     List<DataGridViewRow> rows = new List<DataGridViewRow>(); 
     foreach (DataGridViewRow row in dataGridView1.Rows) 
     { 
      if (row.Cells[1].Value != null) 
      { 
       //search on 1st row of datagridview 
       if (row.Cells[1].Value.ToString() == item) 
       { 
        row.Visible = true; 
        TotalRecords += 1; 
       } 
       else 
       { 
        row.Visible = false; 
       } 
      } 
     } 
     dataGridView1.Refresh(); 
     labelTotalRecords.Text = "Total records = " + TotalRecords.ToString(); 
    } 
0

申報的DataTable和用戶數據表中選擇的方法(DataRow中[] =行dt.Select( 「COLUMNNAME =」 + urvalue));並根據行進行迭代,或者可以使用「DataTable dt1 = rows.CopyToDataTable();」datagridproduct.DataSource = dt1;

如果你發現有些答案是很有用的,像回答