2017-07-07 58 views
-2

我试图为我的datagridview做一个搜索框,但它似乎不工作。我可以使用这么多其他的东西吗?或者我应该使用不同的东西?我的代码没有错误,但是每当我开始在文本框(不是组合框)中输入时,程序就会冻结并不执行任何操作。 Andyone知道如何解决?C#DataGridview的搜索框

代码:

private void txtName_TextChanged(object sender, EventArgs e) 
    { 

     if (searchBy.Text == "FactuurNr") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE FactuurNr like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if(searchBy.Text == "Partner-ID") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE PartnerID like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Klant-ID") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Klant-ID like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Klantnaam") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Klantnaam like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "DebiteurenNr") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE DebiteurenNr like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Order-ID") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Order-ID like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Parent Order-ID") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Parent Order-ID like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Producttype") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Productnaamr like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Productcode") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Kenmerk like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Productnaam") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Label like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Kenmerk") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Datum actief like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Label") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Factureren tot like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Datum actief") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Aantal like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Factureren tot") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE PPM like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Aantal") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Aantal Maand(en) like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Bruto") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Bruto like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "D") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE D like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "DK") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE DK like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "DKA") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE DKA like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Netto") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Netto like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Eenmalig") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Eenmalig like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Totaal") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Totaal like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Correctie op factuur") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Correctie op factuur like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
     else if (searchBy.Text == "Correctie type") 
     { 
      SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
      SqlDataAdapter sda = new SqlDataAdapter("SELECT FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type FROM dbo.Kwartaal WHERE Correctie type like '" + txtName.Text + "%' ", con); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      dataGridView1.DataSource = dt; 
     } 
+1

是的,你可以做很多重构来改善你的代码,但这并不妨碍它的工作。它怎么不起作用? – krillgar

+1

无论何时更改文本框中的值,您都将阅读所有这些代码段。如果您要使用硬编码选项进行搜索,为什么不提供下拉列表,然后使用单独的按钮来执行查询? – gravity

+0

这个问题会更适合https://codereview.stackexchange.com/ – JBC

回答

-1

在每一个新的字符输入要创建的数据库连接和填充数据集,但在现实中,你想,只有当用户完成文字输入完全做到这一点。就在事件从

private void txtName_TextChanged(object sender, EventArgs e){...} 

改变

private void txtName_Leave(object sender, EventArgs e){...} 

这将帮助你避免不必要的旅行数据库和填充数据集。

+0

是的,SQL应该参数化,但你的答案与问题无关。请仔细阅读问题。 – Yuri

+1

我还没有发布答案,你有。我只是简单地解释我为什么低调投票,以便可以改进您的答案。在我的观点中,你的回答中未提及的明显的安全问题值得赞赏。 – maccettura

0

您可以尝试这样的事情,同时考虑别人对使用txtName_Leave事件所说的话。这也将参数化select查询,并且更容易维护您现在拥有的长列表。

private void txtName_Leave(object sender, EventArgs e) 
    { 
     string searchField; 
     switch (searchBy.Text) 
     { 
      case "FactuurNr": searchField = "FactuurNr"; break; 
      case "Partner-ID": searchField = "PartnerID"; break; 
      ...... 
      case "Correctie type": searchField = "Correctie type"; break; 
      default: return; 
     } 

     SqlConnection con = new SqlConnection("Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
     SqlDataAdapter sda = new SqlDataAdapter(
      "SELECT " + 
       "FactuurNr, Partner-ID, Klant-ID, Klantnaam, DebiteurenNr, " + 
       "Order-ID, Parent Order-ID, Producttype, Productnaam, Kenmerk, " + 
       "Label, Datum actief, Factureren tot, Aantal, PPM, Aantal Maand(en), " + 
       "Bruto, D, DK, DKA, Netto, Eenmalig, Totaal, Correctie op factuur, Correctie type " + 
      "FROM dbo.Kwartaal " + 
      "WHERE [" + searchField + "] like '@Search%' ", con); 
     sda.SelectCommand.Parameters.Add(new SqlParameter("@Search", txtName.Text)); 
     dataGridView1.DataSource = sda; 
    } 

为了让代码更短,可以确保searchBy字段的值始终是一样的,你想搜索的列的名称(或者也许是......是有PARTNERID &合作伙伴ID是不同的设计?)

另外,我试图将我的连接字符串存储在App.config文件中以便于访问。所以,如果你添加到您的App.config的配置部分:

<connectionStrings> 
    <add name="DB_Connection" 
     connectionString="Data Source=(localdb)MSSQLLocalDB;Initial Catalog=CSV_IMPORT;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"/> 
</connectionStrings> 

那么你的连接变为:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DB_Connection"].ConnectionString); 

你可能会需要在CS文件添加到System.Configuration参考并在你的项目中引用。