更新:谢谢大家,代码不是问题,虽然有关 SQL 注入的信息很有用,但我的问题是我使用的是旧版本的数据库,它没有相应的产品 ID,所以它使用的是第一个产品它可以找到。现在感觉很愚蠢,但感谢您的建议。
我目前有以下代码:
SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\v11.0 AttachDbFilename=C:\Users\h8005267\Desktop\Practical Project\Build\System4\System\StockControl.mdf;Integrated Security=True;Connect Timeout=30");
connection.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM Product WHERE ProductID='" + textBox3.Text + "'", connection);
SqlDataReader re = cmd.ExecuteReader();
if (re.Read())
{
textBox4.Text = re["ProductTitle"].ToString(); // only fills using first product in table
textBox5.Text = re["ProductPublisherArtist"].ToString();
comboBox1.Text = re["ProductType"].ToString();
textBox6.Text = re["Price"].ToString();
}
else
{
MessageBox.Show("Please enter a valid item barcode");
}
re.Close();
connection.Close();
我目前遇到的问题是虽然文本框显示按钮单击的信息,但显示的信息只是数据库中的第一行数据,而不是sql语句中textbox3对应的行