2016-04-28 41 views
-1

没有错误,我使用此代码更新数据库:我的Access数据库不会更新。在代码

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

回答

1

因为你使用空commandString

首先你要定义:

​​

然后你通过空commandStringOleDbCommand之后,您将值设置为变量commandString但不是OleDbCommand

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

更改您的代码:

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

UPDATE

你也应该参数名称前加上@

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

我所做的更改,并表未更新 –

+0

@ softwareisfun请参阅我的更新 – Marusyk

+0

@softwareisfun任何消息?它有帮助吗? – Marusyk