我的更新代码是:
private void button_xiu_Click(object sender, EventArgs e)
{
OleDbConnection mycn = new OleDbConnection(conStr);
string cmdStr = "UPDATE STUDENT SET SNAME='" + this.tb_name.Text.Trim() + "',SNU='" + this.tb_Num.Text.Trim() + "',SCELL='" + this.tb_cel.Text.Trim() + "',SAGE='" + this.tb_age.Text.Trim() + "',SADR='" + this.tb_Adr.Text.Trim() + "',AVMEMO='" + this.tb_Bz.Text.Trim() + "',SISID='" + this.tb_xh.Text.Trim() + "'WHERE LSID=" + lsid + ""; OleDbCommand mycm = new OleDbCommand(cmdStr, mycn);
mycn.Open();
int n = mycm.ExecuteNonQuery();
if (n == 1)
{
MessageBox.Show("更新成功");
}
else
{
MessageBox.Show("更新失败");
}
mycn.Close();
}
不知道什么原因不能更新,有哪位高人帮忙指点!!!!!!!!!!!!!!
private void button_xiu_Click(object sender, EventArgs e)
{
OleDbConnection mycn = new OleDbConnection(conStr);
string cmdStr = "UPDATE STUDENT SET SNAME='" + this.tb_name.Text.Trim() + "',SNU='" + this.tb_Num.Text.Trim() + "',SCELL='" + this.tb_cel.Text.Trim() + "',SAGE='" + this.tb_age.Text.Trim() + "',SADR='" + this.tb_Adr.Text.Trim() + "',AVMEMO='" + this.tb_Bz.Text.Trim() + "',SISID='" + this.tb_xh.Text.Trim() + "'WHERE LSID=" + lsid + ""; OleDbCommand mycm = new OleDbCommand(cmdStr, mycn);
mycn.Open();
int n = mycm.ExecuteNonQuery();
if (n == 1)
{
MessageBox.Show("更新成功");
}
else
{
MessageBox.Show("更新失败");
}
mycn.Close();
}
不知道什么原因不能更新,有哪位高人帮忙指点!!!!!!!!!!!!!!
ExecuteNonQuery没有返回值
if (n == 1)
{
MessageBox.Show("更新成功");
}替换为:if (n > 0)
{
MessageBox.Show("更新成功");
}
语句,where 跟前面的'没有空格吧
你自己调试一下,看是哪步报exception
把从lable取值的代码换成一个任意值、、
如果能成功就在打开数据库执行命令那里加个try-Catch,应该能找到异常的
"' WHERE LSID=" + lsid + "";//加一个空格
有的地方应该家''将数据引起来,看你的数据类型吧.2 从你的代码来看,建议你对数据层再整理下,比较好!
报错不?如果不 看看数据库 是否更新没 - if(i>0)-- 可能更新了多条
报错,具体包什么错,?
int n = mycm.ExecuteNonQuery();这里停止并且不会报错而是直接跳转到编辑页面。
不知道错误的原因在哪里???
1.ExecuteNonQuery()是返回你受影响的行数。没有语法错误的话,就是你逻辑上的错误了,就是你所做的操作就没有反应,以你的判断的话就是提示更新失败
2.Open()语句你应该跟在定义Connection对象之后,不要把Command对象都写到Open()之前去了。
3.你在oralce的Update语句后面设置一个断点,进行调试,将执行的oracle update语句直接考出来,到数据库里新建查询链接,看直接在数据库里执行你这条语句是否有反应,有,说明你是下面程序逻辑的错误,没有反应,说明你的oracle update语句有问题。
1.ExecuteNonQuery()是返回你受影响的行数。没有语法错误的话,就是你逻辑上的错误了,就是你所做的操作就没有反应,以你的判断的话就是提示更新失败
2.Open()语句你应该跟在定义Connection对象之后,不要把Command对象都写到Open()之前去了。
3.你在oralce的Update语句后面设置一个断点,进行调试,将执行的oracle update语句直接考出来,到数据库里新建查询链接,看直接在数据库里执行你这条语句是否有反应,有,说明你是下面程序逻辑的错误,没有反应,说明你的oracle update语句有问题。
把cmdStr 字符串的值到你 的数据库执行一下,
类似的SQL出错都可以这样做
mycn.Open();
这两句话换个位置。。你写反了。。
换成:
'WHERE LSID=" + lsid.Text.Trim() + "";