-1
私はMS Accessデータベースからデータを追加および操作できるC#で簡単なプログラムを作成しています。私のコードでは、既存のデータを更新するか、新しいフィールドを作成するためのボタンを追加しましたが、挿入ステートメントに何か問題があるとエラーが表示され続けます。INSERT文でエラーを取得する
これは私のコードです:
private void btnUpdate_Click(object sender, EventArgs e)
{
try
{
String Code = textBox1.Text;
String Name = textBox2.Text;
String Address1 = textBox3.Text;
String Address2 = textBox4.Text;
String Address3 = textBox5.Text;
String balance = textBox6.Text;
String Sales = textBox7.Text;
String Cost = textBox8.Text;
if (Choice == 1)
{
sql = String.Format("UPDATE Debtors " + "SET names = '{0}'," + "address1 = {1}," + "Address2 = {2}," + "Address3 = {3}," + "Balance = '{4}' " + "Sales = '{5}' " + "Cost = '{6}' " + "WHERE accountCode = {7};", Name, Address1, Address2, Address3, balance,Sales,Cost, Code);
}
else
{
sql = String.Format("INSERT INTO Debtors(names, address1, address2, address3, Balance, salesYearToDate, costYearToDate) " + "VALUES " + "('{0}'," + "'{1}'," + "'{2}'," + "'{3}'," + "{4}," + "{5}," + "{6});", Name, Address1, Address2, Address3, balance, Sales, Cost);
}
Ey(sql);
DataLoad();
BackTrack();
}
catch (System.Exception exc)
{
MessageBox.Show(exc.Message);
}
}
エラーメッセージには、正確には何が表示されますか?また、潜在的なSQLインジェクションを避けることを含む多くの理由で、文字列連結の代わりにSQLパラメータを使用するべきです。 – juharr
更新のblance、Sales、およびCostの値は引用符で囲まれていますが、挿入されていないことに注意してください。 – juharr
すべてを連結する必要はありません。引用符をすべて削除し、コードを少しきれいにするには '+'を使います。読みやすくします。 –