C# OleDB Select语句
我的程序中有一个搜索按钮。我想要的是每次搜索时,我都会键入C# OleDB Select语句,c#,.net,winforms,oledb,C#,.net,Winforms,Oledb,我的程序中有一个搜索按钮。我想要的是每次搜索时,我都会键入lastname,当lastname相当于数据库中的任何lastname时,此人的firstname和lastname将显示在列表框中,每当我点击列表框中的结果时,此人的详细信息将显示在文本框中。问题是,如果有相同姓氏的人,他们的姓名会唯一列出,但当我单击姓名时,文本框中会出现相同的详细信息 请帮忙 这是我的密码: connection.Open(); OleDbCommand select = new OleDbComm
lastname
,当lastname
相当于数据库中的任何lastname
时,此人的firstname
和lastname
将显示在列表框中,每当我点击列表框中的结果时,此人的详细信息将显示在文本框中。问题是,如果有相同姓氏的人,他们的姓名会唯一列出,但当我单击姓名时,文本框中会出现相同的详细信息
请帮忙
这是我的密码:
connection.Open();
OleDbCommand select = new OleDbCommand();
select.Connection = connection;
select.CommandText = "Select * From Accounts Where Lastname = '" + searchtb.Text + "'";
OleDbDataReader reader = select.ExecuteReader();
while (reader.Read())
{
listBox1.Items.Add(reader[1].ToString() + "," + reader[2].ToString());
}
connection.Close();
此代码中没有任何错误,您的错误可能出现在listbox\u事件中
显示列表框部分的代码。顶部右侧有一件事是错误的。它很容易受到SQL注入攻击。除了考虑SQL注入容易之外,还要认真考虑参数化的输入。如果你想找到只有部分姓氏的人,你应该使用“Select*From Accounts Where Lastname”,比如“+”searchtb.Text+“%”
cFat_items2 = new OleDbDataAdapter("
SELECT COUNT(Fat_Items.i_num) AS Count_i_num, Fat_Items.i_num, g.i_num
FROM Fat_Items INNER JOIN Fat_Items AS g ON Fat_Items.fat_nr = g.fat_nr
WHERE Fat_Items.i_num = '" + this.kLDataSet.Fat_Items.Rows[i].ItemArray[0].ToString() + "'
AND g.i_num = '" + this.kLDataSet.Fat_Items.Rows[j].ItemArray[0].ToString() + "'
GROUP BY Fat_Items.i_num, g.i_num HAVING COUNT(Fat_Items.i_num)>='" + Support + "'", con);
cFat_items2.Fill(dFat_items2);