2017-06-22 7 views
0

J'essaie d'insérer une ligne dans ma table utilisateur (SQL Server Compact 3.5). Ceci est ma requête (LastName, FirstName et UserPassword sont NVARCHAR, IsActive est BIT):SQL CE insertion requête fonctionne uniquement en dehors de C#

INSERT INTO Users (LastName, FirstName, IsActive, UserPassword) VALUES ('J', 'R', 1, 'T') 

Je converti ce au bloc de code suivant en C#:

string returnQuery = "INSERT INTO Users (LastName, FirstName, IsActive, UserPassword)" 
            + "VALUES(" + "'" + "@LastName" + "', '" + "@FirstName" + "', @IsActive" + ",'" + "@UserPassword" + "'"; 

     SqlCeCommand returnQueryCommand = 
      new SqlCeCommand(returnQuery, connection) { CommandType = CommandType.Text }; 
     returnQueryCommand.Parameters.AddWithValue("@LastName", newUser.LastName); 
     returnQueryCommand.Parameters.AddWithValue("@FirstName", newUser.FirstName); 
     returnQueryCommand.Parameters.AddWithValue("@IsActive", newUser.IsActive); 
     returnQueryCommand.Parameters.AddWithValue("@UserPassword", newUser.UserPassword); 

je reçois une erreur d'analyse lors de l'exécution mon code. Cependant, lorsque j'exécute la requête directement dans CompactView, la ligne est insérée correctement.

Je suis exécuté la requête dans une autre méthode (je retourne SqlCeCommand de cette méthode).

Pensées?

+0

Il est juste 'INSERT INTO utilisateurs (nom, prénom, isActive, UserPassword) VALUES (@LastName, @FirstName, @IsActive, @UserPassword)' – LarsTech

Répondre

0

manquant support à proximité après les valeurs

+0

Duh! Je suis un doof. Merci! – bsmith

+0

peut marquer comme réponse correcte? – Rob

0

votre code donné semble manquer une parenthèse fermante pour fermer données « valeurs ».

string returnQuery = "INSERT INTO Users (LastName, FirstName, IsActive, UserPassword)" + "VALUES(" + "'" + "@LastName" + "', '" + "@FirstName" + "', @IsActive" + ",'" + "@UserPassword" + "')";