System.Daten.OleDb.OleDbException: Data type mismatch in criteria expression

Dies ist mein code:

OleDbCommand Cmd = new OleDbCommand();
Cmd.Connection = MyConn;
Cmd.CommandText = "SELECT * FROM catalogue WHERE id = '" + questionid + "'";

OleDbDataReader read = Cmd.ExecuteReader();

int id = 0;

while (read.Read())
{
    id = Convert.ToInt32(read["id"]);
}

Hier der Fehler gibt es mir:

Line 27:         Cmd.CommandText = "SELECT * FROM catalogue WHERE id = '" + questionid + "'";
Line 28: 
Line 29:         OleDbDataReader read = Cmd.ExecuteReader(); //The error is here
Line 30: 
Line 31:         int id = 0;

Ich weiß, es gibt auch eine andere Frage zu dem gleichen Problem auf Stack Overflow, aber es scheint nicht um mein problem zu lösen (es kann lösen Sie, so dass ich einen link setzen).

  • könnten Sie klarstellen, welche Linie wirft er die exception? der code scheint in Ordnung zu sein.
  • Ist questionid und id im catalogue gleiche/gleichwertige Datentyp. Wenn so stellen Sie sicher, questionid ist nicht null. Schöner Punkt von @nvoigt, sollten Sie die Verwendung von Parametern
Schreibe einen Kommentar