关于网友提出的“C#用ExecuteNonQuery更新数据库程序,为什么返回值一直为0”问题疑问,本网通过在网上对“C#用ExecuteNonQuery更新数据库程序,为什么返回值一直为0”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:C#用ExecuteNonQuery更新数据库程序,为什么返回值一直为0
描述: /////为查询参数赋值,调用更新函数
DataSet ds = adminmanage.GetAllAdminByName(adminmanage, "tb_admin");
string strAdminID = ds.Tables[0].Rows[0][0].ToString();
purviewmanage.ID = strAdminID;
purviewmanage.SysSet = ((CheckBox)(gvAdminPurview.Rows[e.RowIndex].Cells[1].Controls[0])).Checked;
purviewmanage.UpdatePurview(purviewmanage);
//////更新函数
public int UpdatePurview(PurviewManage purviewmanage)
{
OleDbParameter[] prams = {data.MakeInParam("@id", OleDbType.VarChar, 50, purviewmanage.ID),data.MakeInParam("@sysset", OleDbType.Boolean,2,purviewmanage.SysSet ),};
return (data.RunProc("update tb_purview set sysset=@sysset where id=@id", prams));
}
/////执行更新查询
OleDbCommand cmd = CreateCommand(procName, prams);
int t = (int)cmd.ExecuteNonQuery();
if (t == 1)
Console.WriteLine("连接成功!");
else
解决方案1:
你还没有明白这个方法返回值的意思.
返回受影响的行数.
如果你的 执行语句 一条也没有更新到. 就会返回0 .
解决方案2: data.MakeInParam("@sysset", OleDbType.Boolean,2,purviewmanage.SysSet )
你的赋值中有这样一段.
如果该值是 bool 类型. 就不能用 sysset=1 的形式,
尝试 true or false
以上介绍了“C#用ExecuteNonQuery更新数据库程序,为什么返回值一直为0”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1580463.html