我试图为我的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;
}
是的,你可以做很多重构来改善你的代码,但这并不妨碍它的工作。它怎么不起作用? – krillgar
无论何时更改文本框中的值,您都将阅读所有这些代码段。如果您要使用硬编码选项进行搜索,为什么不提供下拉列表,然后使用单独的按钮来执行查询? – gravity
这个问题会更适合https://codereview.stackexchange.com/ – JBC