SQL-Fehler: Falsche Syntax neben dem Schlüsselwort 'Benutzer'
Ich bin mit SQL zum einfügen von Daten in SQL-Datenbank-Datei mithilfe von C# wie folgt.
String cs = System.Configuration.ConfigurationManager.ConnectionStrings["connection1"].ConnectionString;
SqlConnection conn = new SqlConnection(cs);
String sql = "INSERT INTO User (login, password, status) " +
"VALUES (@login, @password, @status)";
SqlCommand comm = new SqlCommand(sql, conn);
comm.Parameters.Add("@login", System.Data.SqlDbType.VarChar);
comm.Parameters.Add("@password", System.Data.SqlDbType.VarChar);
comm.Parameters.Add("@status", System.Data.SqlDbType.Bit);
try
{
conn.Open();
Console.WriteLine(conn.ToString());
comm.ExecuteNonQuery();
conn.Close();
return true;
}
catch (Exception ex)
{
throw (ex);
}
finally
{
conn.Close();
}
Ich erhalte die folgende Fehlermeldung beim Befehl ausgeführt wird.
Falsche syntax bei das Schlüsselwort
'Benutzer'.: INSERT INTO User (login,
password, status) VALUES (@login,
@password @status)
Wie kann ich dieses Problem lösen bitte?
edit:
verpasste parameter-Werte Hinzugefügt..
comm.Parameters["@login"].Value = this.Username;
comm.Parameters["@password"].Value = this._password;
comm.Parameters["@status"].Value = this.Status;
Kommentar zu dem Problem
Wie ist das ein C# - Fehler? Klingt wie ein SQL-Fehler.
@CodeInChaos - re-tagged, besser?
@Marc ich war Unterhaltung über das Thema nicht die tags.
möglich, Duplikat der Einfache SELECT-Anweisung syntax error, warum?
InformationsquelleAutor der Frage BlueBird | 2011-05-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
User
ist ein reserviertes Schlüsselwort, so müssen Sie verwenden eckige Klammern, um Sie ausdrücklich, dass Sie meinen, die Objekt dem Namen "User", D. H. die Nutzung[User]
stattUser
.InformationsquelleAutor der Antwort Marc Gravell
Benutzer ist ein t-sql -reserviertes Schlüsselwort. Eine einklammerung in eckige Klammern sollte dieses Problem lösen. E. g INSERT INTO [User]
InformationsquelleAutor der Antwort Andy Johnson
führen Sie Ihre Abfrage gegen die Datenbank. Sie können die declare sql-Schlüsselwort zum definieren von Variablen und Ihnen Werte. Wenn Sie brauchen, um herauszufinden, die Variablen Werte, legen Sie einen Haltepunkt in conn.Öffnen und verwenden Sie das Fenster, um zu sehen, was Werte, die Sie übergeben. Ein weiteres Werkzeug zur Verfügung ist die Sql Profiler. Können Sie eine Ablaufverfolgung starten Sie dann das Programm ausgeführt. Sie sollten in der Lage sein zu sehen, die Abfrage so ausgeführt, im Profil nach dem code, den Sie gebucht haben, ausgeführt wurde.
All dies soll Ihnen helfen, herauszufinden, was falsch ist mit Ihrem sql, wenn die Ausnahme nicht genügend Informationen.
Sql Server Management Studio haben sollte, markiert das Schlüsselwort "User" in Ihrer sql-Anweisung, einfach zu zeigen, dass Sie müssen Klammern um es so auf: [User]
InformationsquelleAutor der Antwort Charles Lambert