2013-04-29 6 views
5

Ho una semplice istruzione di inserimento in una tabella in un database SQLite su MonoDroid.Errore SQLite Parametri insufficienti forniti al comando in Mono.Data.Sqlite.SqliteStatement.BindParameter

Quando si inserisce nel database, si dice errore

SQLite parametri insufficienti fornite al comando al Mono.Data.Sqlite.SqliteStatement.BindParameter

Penso che ci sia neanche un bug, o il messaggio di errore è fuorviante. Perché ho solo 5 parametri e sto fornendo 5 parametri, quindi non vedo come sia giusto.

Il mio codice è sotto, e qualsiasi aiuto sarebbe molto apprezzato.

try 
{ 
    using (var connection = new SqliteConnection(ConnectionString)) 
    { 
     connection.Open(); 
     using (var command = connection.CreateCommand()) 
     { 
      command.CommandTimeout = 0; 
      command.CommandText = "INSERT INTO [User] (UserPK ,Name ,Password ,Category ,ContactFK) VALUES (@UserPK , @Name , @Password , @Category , @ContactFK)"; 
      command.Parameters.Add(new SqliteParameter("@Name", "Has")); 
      command.Parameters.Add(new SqliteParameter("@Password", "Has")); 
      command.Parameters.Add(new SqliteParameter("@Cateogry", "")); 
      command.Parameters.Add(new SqliteParameter("@ContactFK", DBNull.Value)); 
      command.Parameters.Add(new SqliteParameter("@UserPK", DbType.Guid) {Value = Guid.NewGuid()}); 
      var result = command.ExecuteNonQuery(); 
      return = result > 0 ; 
     } 
    } 
} 
catch (Exception exception) 
{ 
    LogError(exception); 
} 

risposta

7

l'ortografia per @Category nell'istruzione INSERT è diverso dal parametro aggiunto. Hai:

command.Parameters.Add(new SqliteParameter("@Cateogry", "")); 
              ^^^^^^^^^^^ 
              //@Category 

dove dovrebbe essere:

Modificare la sua dichiarazione a:

command.Parameters.Add(new SqliteParameter("@Category", "")); 
+1

Grazie per quello, questo è stato imbarazzante :) –

+0

@HasTaiar, sei il benvenuto, questo succede, :) – Habib

1

Questo è già stato risposto correttamente, ma desidero aggiungere, per ulteriori informazioni:

Questa stringa di errore SQLite specifica può essere generata anche se uno qualsiasi dei parametri @ è scritto in modo diverso nell'istruzione INSERT rispetto a AddWithValue o .Add (ne w SqliteParameter ... istruzioni.

Problemi correlati