0
private void btnSubmit_Click(object sender, EventArgs e)
        {
            OleDbCommand cmd;

            string cmdstring = "INSERT INTO Names (Surname,FName) VALUES('" + txtSurname.Text + "','" + txtFName.Text + "')";

            OleDbConnection myConnection = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

            cmd = new OleDbCommand(cmdstring, myConnection);
            myConnection.Open();
            cmd.ExecuteNonQuery();
            myConnection.Close();
}

Surnameデータベースに追加してアクセスしたいのですFNameが、このようなエラーが表示されました"syntax error"。どうしてか分かりません。

4

1 に答える 1

3

クエリが失敗する 2 つの理由が考えられます。

  1. Names予約語です。
  2. SurnameまたはFNameアポストロフィを含む値。

テーブル名を角括弧 ... で囲むことにより、最初の問題を回避できます[Names]。しかし、可能であれば、別の名前を選択した方がよいでしょう。

他の人が提案したようにパラメーター クエリに切り替えると、2 番目の問題を回避できます。ただし、その場合でも、テーブル名を括弧で囲みます。

于 2013-04-21T17:53:30.350 に答える