web-dev-qa-db-fra.com

Ajout de paramètres dans SQLite avec C #

Je viens d'apprendre SQLite et je n'arrive pas à compiler correctement mes paramètres dans la commande. Lorsque j'exécute le code suivant:

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();

Je reçois une exception SQLite. En inspectant le CommandText, je découvre que tout ce que je fais n'ajoute pas correctement les paramètres: INSERT INTO [StringData] VALUE (?,?)

Des idées sur ce qui me manque?

Merci

22
Brian Sweeney

Essayez VALUES au lieu de VALUE.

24
Jeff Mattfield

Essayez une approche différente, en nommant vos champs dans la requête et en nommant les paramètres dans la requête:

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