为什么不行

yishuihepan002 2010-10-04 08:37:27
下面是提交页面信息所用的两段代码。
问题:为什么返回的执行sql语句所影响的行数是“0”,sql语句有什么错误吗?ID='1',单引号要不要加。。。

代码一:
private void YYGSZ_Click(object sender, EventArgs e)
{
//提交信息
string mc_yyg = MC_YYG.Text;
string dh_yyg = DH_YYG.Text;
string dz_yyg = DZ_YYG.Text;
string sql = "update jbxxb set mc='" + mc_yyg + "',dh='" + dh_yyg + "',dz='" + dz_yyg + "' where ID='1' ";
AccessDB access = new AccessDB();
int add = access.Execute(sql);
if (add > 0)
{
MessageBox.Show("提交成功", "提示框");
}
else
{
MessageBox.Show("提交失败","提示框");
}
access.Dispose();


}
代码二:
///<summary>
///执行SQL语句
///</summary>
///<param name="str">SQL命令</param>
///<returns>返回影响行数</returns>


public int Execute(string str)
{
OleDbCommand Comm = new OleDbCommand(str, Conn);
int R = Comm.ExecuteNonQuery();
Comm.Dispose();
return R;
}
...全文
117 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuld 2010-10-04
  • 打赏
  • 举报
回复
access.Execute




access.ExecuteNonQuery
tangjubin 2010-10-04
  • 打赏
  • 举报
回复
跟随5L学习学习
wuyq11 2010-10-04
  • 打赏
  • 举报
回复
string sql = "update jbxxb set mc='" + mc_yyg + "',dh='" + dh_yyg + "',dz='" + dz_yyg + "' where ID=1 ";
查询分析器执行看看
对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1
tangjubin 2010-10-04
  • 打赏
  • 举报
回复
ID是int型,oh my god.I have made a mistake
tangjubin 2010-10-04
  • 打赏
  • 举报
回复
string sql="update jbxxb set mc='"+mc_yyg+"',dh='"+dh_yyg+"',dz='"+dz_yyg+"'"+"where ID='1'";
q107770540 2010-10-04
  • 打赏
  • 举报
回复
string sql = "update jbxxb set mc='" + mc_yyg + "',dh='" + dh_yyg + "',dz='" + dz_yyg + "' where ID=1 ";
==========
注意数据库字段类型

单步调试 得到此SQL语句 放到SQL查询分析器中执行一下

单引号不需要
种草德鲁伊 2010-10-04
  • 打赏
  • 举报
回复
如果id是int类型,就不要加单引号。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧