-2

MS Access 2010 を使用しており、C# Windows アプリケーションを使用して接続し、このコードを使用してデータを更新しようとしています。

com.CommandText = "UPDATE Admin SET UserName = @UN, Password = @Pass, ValidID = @VID WHERE ID = @ID";
com.Parameters.AddWithValue("@UN", TBUserName.Text);
com.Parameters.AddWithValue("@Pass", TBPassword.Text);
com.Parameters.AddWithValue("@VID", CBvalidation.SelectedValue);
com.Parameters.AddWithValue("@ID", CBEmpName.SelectedValue);

ds.Tables.Add("Admin");
da.Fill(ds, "Admin");

実行時に表示されるエラーは

「UPDATE ステートメントの構文エラー」

では、どこにエラーがあるのか​​教えてください。

4

3 に答える 3

2

PASSWORD はAccess JET/SQLの予約済みキーワードです。
角かっこでカプセル化する必要があります

com.CommandText = "UPDATE Admin SET UserName = @UN, " + 
                  "[Password] = @Pass, ValidID = @VID WHERE ID = @ID";

可能であれば、このフィールドの名前を変更することをお勧めします。
このテーブルに対する今後のすべてのクエリで、常にこの問題が発生します。

于 2013-10-04T21:04:03.913 に答える
0

PASSWORDはAccessの予約済みキーワードです。

次のような角括弧で使用します[PASSWORD]

com.CommandText = "UPDATE Admin SET UserName = @UN, [Password] = @Pass, ValidID = @VID WHERE ID = @ID";

一般的な推奨事項として、データベース内の識別子とオブジェクト名に予約済みキーワードを使用しないでください。

于 2013-10-04T21:05:23.813 に答える