简单的数据库问题,请教,谢谢
public static readonly string ConnString = @ "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = Data\storage.mdb "
public static readonly string ChangePassword = "update users set userPassword=@userNewPassword where userName=@userName "
OleDbConnection conn = new OleDbConnection(ConnString);
OleDbCommand cmd = new OleDbCommand(Constants.ChangePassword,conn);
OleDbParameter paramUserName = new OleDbParameter( "@userName ", userName);
cmd.Parameters.Add(paramUserName);
OleDbParameter paramUserNewPassword = new OleDbParameter( "@userNewPassword ", userNewPassword);
cmd.Parameters.Add(paramUserNewPassword);
try
{
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
return true;
}
catch (OleDbException ex)
{
return false;
}
请问 cmd.ExecuteNonQuery(),参数正确,怎么在数据库中无法更新,请各位大哥多多指教?小弟刚学c#不久
------解决方案--------------------参数顺序 ~
------解决方案--------------------给楼主整理一下,希望能够帮上忙:
1 检查数据库文件,是否为只读,若NTFS检查是否有权限问题
2 检查数据库结构,是否存在外键或主键约束问题。可将该语句直接放入Access的查询中执行看是否正确。
3 逐行调试程序语句,看执行cmd.ExecuteNonQuery()后有没有Exception内容
其他应该没有什么问题了。补充一下,楼主的代码写得很乱。。。
------解决方案--------------------/// <summary>
/// 新建用户资料
/// </summary>
/// <param name= "sacc "> </param>
/// <param name= "spw "> </param>
/// <param name= "snanme "> </param>
/// <param name= "slv "> </param>
/// <returns> </returns>
public bool saveUser(string sacc, string spw, string snanme, string slv,string dTime)