2016-04-28 1 views
-1

J'utilise ce code pour mettre à jour la base de données:Ma base de données Access ne sera pas mise à jour. Aucune erreur dans le code

var connectionString = ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString; 
string commandString = string.Empty; 
using (OleDbConnection con = new OleDbConnection(connectionString)) 
{ 
    con.Open(); 
    OleDbCommand command = new OleDbCommand(commandString, con); 
    commandString = "UPDATE accesscontrol SET [email protected] WHERE [email protected] AND [email protected]"; 

    command.Parameters.AddWithValue("userName", Environment.UserName); 
    command.Parameters.AddWithValue("isEnabled", tempPerson.isBool.ToString()); 
    command.Parameters.AddWithValue("userNameInGrid", tempPerson.Name); 
    command.ExecuteNonQuery(); 
    command.Parameters.Clear(); 
} 

Répondre

1

Parce que vous utilisez vide commandString

D'abord, vous définissez:

string commandString = string.Empty; 

Et puis vous avez passé vide commandString à OleDbCommand, après que vous définissez la valeur à la variable commandString mais pas à OleDbCommand

OleDbCommand command = new OleDbCommand(commandString, con); 
commandString = "UPDATE accesscontrol SET [email protected] WHERE [email protected] AND [email protected]"; 

Modifier votre code à:

commandString = "UPDATE accesscontrol SET [email protected] WHERE [email protected] AND [email protected]"; 
OleDbCommand command = new OleDbCommand(commandString, con); 

MISE À JOUR

Aussi, vous devez ajouter @ avant le nom du paramètre

command.Parameters.AddWithValue("@userName", Environment.UserName); 
command.Parameters.AddWithValue("@isEnabled", tempPerson.isBool.ToString()); 
command.Parameters.AddWithValue("@userNameInGrid", tempPerson.Name); 
+0

J'ai fait le changement et la table n'est pas mis à jour –

+0

@ softwareisfun S'il vous plaît voir ma mise à jour – Marusyk

+0

@softwareisfun Des nouvelles? Était-ce utile? – Marusyk