的功能,這就是爲什麼我用OleDbParamteres而不是OleDbCommands。我一直在搜索stackoverflow上的各種帖子,沒有一個解決方案看起來與我正在嘗試做的完全一致。我的老師需要一定的格式(我知道的愚蠢),這是我的。MS Access數據庫是/否沒有正確更新
public void UpdateUserLocked(string Path, string userID, bool lockAcc)
{
// Declare and Instantiate the OleDb connection using the access connection string and database path
OleDbConnection sqlConn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + "");
sqlConn.Open();
// Declare and instantiate a new OleDbCommand
OleDbCommand oCommand = new OleDbCommand();
oCommand.Connection = sqlConn;
string stmt = "UPDATE tblUsers SET Locked = @lockAcc WHERE (tblUsers.UserID = @id)";
//Declare new OleDbParameter for later use
OleDbParameter param;
// Instantiate a new parameter to be used later
param = new OleDbParameter();
//Create user id paramater
param = new OleDbParameter();
param.ParameterName = "@id";
param.Value = userID;
oCommand.Parameters.Add(param);
//Create locked parameter
param = new OleDbParameter();
param.ParameterName = "@lockAcc";
param.Value = lockAcc;
oCommand.Parameters.Add(param);
// Exectute the sql statement
oCommand.CommandText = stmt;
oCommand.CommandType = CommandType.Text;
oCommand.ExecuteNonQuery();
// Close the sql connection
sqlConn.Close();
}
當某人失敗登錄3次並且執行正常時,調用該函數。但是,數據庫實際上並未更新。該數據庫有一個ID,UserID,UserPassword和Locked列。在這種情況下,沒有2個用戶名或密碼是相同的,所以我不需要在WHERE子句中使用用戶標識和密碼。
謝謝!這解決了我的問題,現在一切正常! – xCasper 2014-10-19 06:19:10