2013-04-29 2 views
5

Ich habe eine einfache INSERT-Anweisung in eine Tabelle in einer SQLite-Datenbank auf MonoDroid.SQLite-Fehler Unzureichende Parameter, die an den Befehl bei Mono.Data.Sqlite.SqliteStatement.BindParameter übergeben wurden

Wenn auf die Datenbank einfügen, heißt es

SQLite Fehler Nicht genügend Parameter bei Mono.Data.Sqlite.SqliteStatement.BindParameter

Ich denke an den Befehl geliefert gibt es entweder um einen Fehler, oder die Fehlermeldung ist irreführend. Weil ich nur 5 Parameter habe und ich 5 Parameter zur Verfügung stelle, kann ich nicht sehen, wie das richtig ist.

Mein Code ist unten, und jede Hilfe würde sehr geschätzt werden.

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

Antwort

7

Ihre Rechtschreibung für @Category in INSERT-Anweisung unterscheidet sich von hinzugefügt Parameter. Sie haben:

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

wo es sein sollte:

Ändern Sie bitte Ihre Aussage:

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

Danke dafür, das war peinlich :) –

+0

@HasTaiar, du bist willkommen, das passiert, :) – Habib

1

Dies wurde bereits korrekt beantwortet, aber ich möchte weitere Informationen hinzufügen,:

Diese spezifische SQLite-Fehlerzeichenfolge kann auch generiert werden, wenn einer der @Parameters in der INSERT-Anweisung anders als der AddWithValue oder .Add (ne w SqliteParameter ... Anweisungen.

Verwandte Themen