web-dev-qa-db-ja.com

C#でSQLiteにパラメーターを追加する

SQLiteを学習しているだけで、パラメーターをコマンドに適切にコンパイルできません。次のコードを実行すると:

_this.command.CommandText = "INSERT INTO [StringData] VALUE (?,?)";

this.data = new SQLiteParameter();
this.byteIndex = new SQLiteParameter();

this.command.Parameters.Add(this.data);
this.command.Parameters.Add(this.byteIndex);

this.data.Value = data.Data;
this.byteIndex.Value = data.ByteIndex;

this.command.ExecuteNonQuery();
_

SQLite例外が発生します。 CommandTextを調べると、私がしていることのすべてがパラメーターを正しく追加していないことがわかります:INSERT INTO [StringData] VALUE (?,?)

私が見逃しているアイデアはありますか?

ありがとう

22
Brian Sweeney

VALUESの代わりにVALUEを試してください。

24
Jeff Mattfield

クエリでフィールドに名前を付け、クエリでパラメーターに名前を付けて、別の方法を試してください。

this.command.CommandText = "INSERT INTO StringData (field1, field2) VALUES(@param1, @param2)";
this.command.CommandType = CommandType.Text;
this.command.Parameters.Add(new SQLiteParameter("@param1", data.Data));
this.command.Parameters.Add(new SQLiteParameter("@param2", data.ByteIndex));
...
78
Björn