2017-08-23 53 views
0

我如何在我的搜索文本框中搜索我的ID,中間名,姓?我不能使用WHERE CONCAT(),因爲我的數據庫僅僅是一個內置在Microsoft Visual Studio 2010如何在我的搜索文本框中搜索我的ID,中間名,姓?

private void textBox14_TextChanged(object sender, EventArgs e) 
    {      
     if (string.IsNullOrEmpty(textBox14.Text)) 
     { 
      SqlDataAdapter sda = new SqlDataAdapter("Select * from table1", con); 
      DataTable data = new DataTable(); 
      sda.Fill(data); 
      dataGridView1.DataSource = data; 
     } 
     else 
     { 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT id, FirstName, MiddleName, LastName, Gender, DateofBirth, PlaceofBirth, Address, FathersName, FathersOccupation, MothersName, MothersOccupation, Guardian, Relation, GuardianOccupation, image FROM table1 WHERE FirstName LIKE'" + textBox14.Text + "%'", con); 
      DataTable data = new DataTable(); 
      sda.Fill(data); 
      dataGridView1.DataSource = data; 
     } 
    } 
+0

儘管如此,它仍是t-SQL語言。你可以使用+運算符來連接字符串。有兩個問題:1)性能不佳2)你的方法不是[對於腳本安全](http://bobby-tables.com/csharp),使用參數。如果您需要搜索組合結構,通常最好將列添加到預先計算的文本所在的表中。這增加了冗餘和數據庫的大小,但在存儲便宜的時候... – dlatikay

回答

0

您可以使用或在多事情,你想從文本框進行搜索。試試這個:

private void textBox14_TextChanged(object sender, EventArgs e) 
{ 


    if (string.IsNullOrEmpty(textBox14.Text)) 
    { 
     SqlDataAdapter sda = new SqlDataAdapter("Select * from table1", con); 
     DataTable data = new DataTable(); 
     sda.Fill(data); 
     dataGridView1.DataSource = data; 
    } 

    else 
    { 
     SqlDataAdapter sda = new SqlDataAdapter("SELECT id, FirstName, MiddleName, LastName, Gender, DateofBirth, PlaceofBirth, Address, FathersName, FathersOccupation, MothersName, MothersOccupation, Guardian, Relation, GuardianOccupation, image FROM table1 WHERE FirstName LIKE'" + textBox14.Text + "%' OR id LIKE'" + textBox14.Text + "%' OR MiddleName LIKE'" + textBox14.Text + "%' OR LastName LIKE'" + textBox14.Text + "%'", con); 
     DataTable data = new DataTable(); 
     sda.Fill(data); 
     dataGridView1.DataSource = data; 
    } 



} 
+0

這比原來的腳本安全性低4倍:) – dlatikay

+0

爲什麼它不安全? –

+1

用戶可以設計他們的輸入並注入惡意代碼,因爲輸入是直接從文本框中獲取的。 http://bobby-tables.com – dlatikay