using (OdbcConnection con = new OdbcConnection(ConnStr))
using (OdbcCommand cmd = new OdbcCommand("UPDATE tblUsers SET FirstName = ?, LastName = ?, UserName = ?, Password = ?, EmailId = ? where UserId=?", con))
{
cmd.Parameters.Add("@UserId", OdbcType.Int).Value = IntUesrId;
cmd.Parameters.Add("@FirstName", OdbcType.VarChar, 255).Value = FirstName;
cmd.Parameters.Add("@LastName", OdbcType.VarChar, 255).Value = LastName;
cmd.Parameters.Add("@UserName", OdbcType.VarChar, 255).Value = UserName;
cmd.Parameters.Add("@Password", OdbcType.VarChar, 255).Value = Password;
cmd.Parameters.Add("@EmailId", OdbcType.VarChar, 255).Value = EmailId;
//cmd.Parameters.Add("@UserId", IntUesrId) ;
//cmd.Parameters.Add("@FirstName", ObjUserProp.FirstName);
//cmd.Parameters.Add("@LastName", ObjUserProp.LastName) ;
//cmd.Parameters.Add("@UserName", ObjUserProp.UserName);
//cmd.Parameters.Add("@Password", ObjUserProp.Password) ;
//cmd.Parameters.Add("@EmailId", ObjUserProp.EmailId) ;
con.Open();
Isdone=cmd.ExecuteNonQuery();
return Isdone;
我试图使用上面的代码更新记录,然后没有显示任何错误,它将不会更新记录
您从未将更改提交到数据库。
您需要启动一个事务,然后一旦执行更新,提交事务以便持久化更改。
见http://msdn.microsoft.com/en-us/library/system.data.odbc.odbctransaction.aspx
设置断点并尝试调试代码块。确保在表中对查询参数IntUesrId有一个有效的行,并且传递了正确的值。我猜您没有为更新查询参数(IntUesrId)设置任何值。
您构建的参数不正确。
using (OdbcCommand cmd = new OdbcCommand("UPDATE tblUsers SET FirstName = ?, LastName = ?, UserName = ?, Password = ?, EmailId = ? where UserId=?", con))
{
cmd.Parameters.Add("@UserId", OdbcType.Int).Value = IntUesrId;
cmd.Parameters.Add("@FirstName", OdbcType.VarChar, 255).Value = FirstName;
cmd.Parameters.Add("@LastName", OdbcType.VarChar, 255).Value = LastName;
cmd.Parameters.Add("@UserName", OdbcType.VarChar, 255).Value = UserName;
cmd.Parameters.Add("@Password", OdbcType.VarChar, 255).Value = Password;
cmd.Parameters.Add("@EmailId", OdbcType.VarChar, 255).Value = EmailId;
}
这应该更像:
using (OdbcCommand cmd = new OdbcCommand(@"UPDATE tblUsers SET FirstName = ?firstName, LastName = ?lastName, UserName = ?userName, Password = ?password, EmailId = ?email where UserId=?userId", con))
{
cmd.Parameters.Add("?firstName", OdbcType.VarChar, 255).Value = FirstName;
cmd.Parameters.Add("?lastName", OdbcType.VarChar, 255).Value = LastName;
cmd.Parameters.Add("?userName", OdbcType.VarChar, 255).Value = UserName;
cmd.Parameters.Add("?password", OdbcType.VarChar, 255).Value = Password;
cmd.Parameters.Add("?email", OdbcType.VarChar, 255).Value = EmailId;
cmd.Parameters.Add("?UserId", OdbcType.Int).Value = IntUesrId;
}
主要的问题是,你从来没有找到正确的用户更新,因为你设置WHERE
子句与他们的电子邮件地址,而不是他们的用户id。所以不,它很可能不会出错。