0

c#でmdbファイルに文字列を書き込んでいるのINSERTですが、「ステートメントへの挿入で構文エラー」というエラーがコードに引っ掛かります。
文字列を直接テストMicrosoft Access 2007し、エラーなしでクエリを挿入しました。

string qu = "INSERT INTO Reports ( docid, biopsy, normal, section, subsection, title, items, [text] ) VALUES (21, False, False, 'Recommendation', 'a', 'Injection', 'a', 'a');";
OleDbCommand cmd = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
OleDbConnection con = Model.getDataConnection();

cmd.Connection = con;
cmd.CommandText = qu;
con.Open();
try
{
    cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
    System.Windows.Forms.MessageBox.Show("data error!\n" + ex.Message);
    return false;
}

不幸な編集の前に、正しいブラケットを示す元の文字列。

string qu = "INSERT INTO Reports ( docid, biopsy, normal, [section], subsection, title, items, [text] ) VALUES (21, False, False, 'Recommendation', '', 'Injection', '', '');";
4

1 に答える 1

0

レポートセクション、およびテキストはすべて予約語です。SQLステートメントではそれらを角かっこで囲みます。

INSERT INTO [Reports] (
    docid, biopsy, normal, [section], subsection, title, items, [text])
VALUES (
    21, False, False, 'Recommendation', 'a', 'Injection', 'a', 'a');
于 2013-02-08T18:49:18.150 に答える