更新: ありがとうございました。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 に対応する行ではありません。