2013-11-02 54 views
0

兩個問題:C# - 搜索跨越多個列

  1. 你會如何合併代碼的兩位?似乎有點多餘,讓他們作爲兩個大塊!

  2. 你將如何去搜索多個列(並返回結果,如果它在以下任何列中找到:名稱,性別,年齡)?

    private void button1_Click(object sender, EventArgs e) 
    { 
         BindingSource bs = new BindingSource(); 
         bs.DataSource = dataGridView1.DataSource; 
         bs.Filter = "id like '%" + textBox1.Text + "%'"; 
         dataGridView1.DataSource = bs; 
    } 
    
    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
         BindingSource bs = new BindingSource(); 
         bs.DataSource = dataGridView1.DataSource; 
         bs.Filter = "id like '%" + textBox1.Text + "%'"; 
         dataGridView1.DataSource = bs; 
    } 
    
+2

爲什麼你不能寫一個函數,並調用它,而不是寫它多次的? –

+0

@Sudhakar我很新的C# – theshizy

+0

是你的代碼的[SQL注入](http://xkcd.com/327/)所需的功能?請使用參數化的SQL查詢。 –

回答

1

回答你的第一個問題:

創建功能,讓你的搜索語句,並調用它,只要你required.as如下:

 private void button1_Click(object sender, EventArgs e) 
     { 
      SearchData(); 
     } 

     private void textBox1_TextChanged(object sender, EventArgs e) 
     { 
      SearchData(); 
     } 
     private void SearchData() 
     { 
      BindingSource bs = new BindingSource(); 
      bs.DataSource = dataGridView1.DataSource; 
      bs.Filter = "id like '%" + textBox1.Text + "%'"; 
      dataGridView1.DataSource = bs; 
     } 

回答到你的第二個問題:

你可以寫如下篩選:

bs.Filter = "id like '%" + textBox1.Text + "%' and name like '%" + textBox2.Text + "%'";