私はC#アプリケーションでデータを挿入しようとしている2つのテーブルがあります。彼らはIDと関連していました。関連するデータベースにデータを挿入する。 C#
私はこれを行う方法について少し質問を読んだことがありますが、それらのどれもうまくいきませんでした。今は別のSQLクエリとして実行することに決めました。
private void btnSave_Click(object sender, EventArgs e)
{
//table 1
String acctCode = tbAcctCode.Text;
String address1 = tbAdd1.Text;
String address2 = tbAdd2.Text;
String address3 = tbAdd3.Text;
String balance = tbBalance.Text;
String yearSales = tbSales.Text;
String yearCost = tbCost.Text;
//table 2
String date = tbDate.Text;
String transaction = tbTrans.Text;
String docNum = tbDocNum.Text;
String grossVal = tbGross.Text;
String vatVal = tbVat.Text;
//SQL statement set to Add a new value
sql = String.Format("INSERT INTO "+ table1 + "(Account_Code,Address1,Address2,Address3,Balance,Sales_Year_To_Date,Cost_Year_To_Date) " +
"VALUES " +
"('{0}'," + "{1}," + "{2}," + "'{3}'," + "'{4}'," + "{5}," + "'{6}');", acctCode, address1, address2, address3, balance, yearSales, yearCost);
sql2 = String.Format("INSERT INTO " + table2 + "(Date,Transaction_Type,Document_No,Gross_Transaction_Value,Vat_Value) " +
"VALUES " +
"('{0}'," + "'{1}'," + "'{2}'," + "'{3}'," + "'{4}');", date, transaction, docNum, grossVal, vatVal);
try
{
dbConn = new OleDbConnection(conString);
dbCmd = new OleDbCommand(sql, dbConn);
dbConn.Open();
dbCmd.ExecuteNonQuery();
dbCmd = new OleDbCommand(sql2, dbConn);
dbCmd.ExecuteNonQuery();
}
catch (SqlException E)
{
MessageBox.Show(E.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
dbConn.Close();
}
}
}
データは最初のテーブルに挿入されますが、問題はsql2のOleDbCommandで発生します。 "System.Data.OleDb.OleDbExceptionがスローされます: 'INSERT INTO文に構文エラーがあります。'"
SQL構文で何かが間違っていると感じましたが、私はそれを見つけられません。
は_「私は私のSQL構文で感じ、何かが間違っているが、私はそれを見つけることができないんだ。」_はい、あなたは 'sql2'の値が何であるか、SQLパラメータ;-) –
を使用してはいけません実行前? – SmartDev
これは実行前のsql2です。 ( '2017/12/06'、 'EFT'、 '6'、 '150'、 '50'); "を入力してください。 – Demonic218