2009-04-30 11 views
14

私はSQLiteを習得しているため、コマンドに正しくコンパイルするためのパラメータを取得できません。次のコードを実行すると、C#で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 (?,?)

私は行方不明がありますか?

おかげ

+0

あなたが取得している例外を投稿することができますか? –

答えて

18

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

63

は、クエリで、あなたのフィールドに名前を付けると、クエリでパラメータを命名、別のアプローチを試してみてください。

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)); 
... 
+5

これを行うことができます: 'this.command.Parameters.AddWithValue(" @ param1 "、data.Data);' 'this.command.Parameters.AddWithValue(" @ param2 "、data.ByteIndex); ' – skst

関連する問題