我的程序中有一个搜索按钮。我想要的是每次搜索时我都会输入lastname
,并且当lastname
等于数据库中的任何lastname
时,该人的firstname
和lastname
将显示在listbox
中,并且每当我单击listbox
中的结果该人的详细信息将显示在textboxes
中。问题是,当有姓氏相同的人,他们的名字是唯一列出的,但是当我点击姓名时,相同的细节出现在textboxes
。OleDB Select Statement
请帮忙。
这里是我的代码:
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();
有一件事是对的,这是错的。它对** SQL注入攻击**是开放式的。 *认真*考虑参数化该输入。 – WhozCraig 2013-03-01 02:18:25
除了SQL注入容易。如果你想找到只有部分姓氏的人,你应该使用“Select * From Accounts Where Lastname Like'”+ searchtb.Text +“%'” – echavez 2013-03-01 07:16:11