2009-04-30 20 views
14

Estoy aprendiendo SQLite y no puedo obtener mis parámetros para compilar correctamente en el comando. Cuando ejecuto el siguiente código:Agregar parámetros en SQLite con C#

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

Me sale una excepción SQLite. Al inspeccionar CommandText, descubro que todo lo que hago no es agregar correctamente los parámetros: INSERT INTO [StringData] VALUE (?,?)

¿Alguna idea de lo que me falta?

Gracias

+0

Se puede publicar la excepción de que está recibiendo? –

Respuesta

18

Trate VALUES en lugar de VALUE.

63

intentar un enfoque diferente, asignar nombres a los campos en la consulta y el nombramiento de los parámetros de la consulta:

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

Ahora puede hacer esto: 'this.command.Parameters.AddWithValue (" @ param1 ", data.Data);' 'this.command.Parameters.AddWithValue (" @ param2 ", data.ByteIndex); ' – skst