项目需求后台要对数据库多行数据同时更新,但是在网上了解的资料说access不能同时操作多行数据! |
|
上述代码不行,UPDATE 语句的语法错误,我改怎么设计代码呢?
|
|
在论坛里找了个多行操作的思路,好像那个人解决了,但是我的出现已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭
try { string[] shuzu = { strsqlone, strsqltwo }; for (int n = 0; n < shuzu.Length; n++) { string strsql = shuzu[n].ToString(); if (strsql.Trim().Length > 1) { cmdone.CommandText = strsql; cmdone.ExecuteNonQuery(); } } cmdone.Transaction.Commit(); //提交事务 Response.Write(“<script language=javascript>alert(“分块修改成功”);</script>”); } catch (OleDbException ex) { Response.Write(ex.ToString()); } finally { conn.Close(); } |
|
第一次就出现了,我又用调用方法的情况,打开一通道,更新一行数据后关闭,回到原方法,再打开一次,更新第二行,出现了
已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。问题,第一执行方法遇到的 |
|
OleDbCommand用完需要释放,用using块包起来
|
|
“update Blocktwo set Link=”” + uponelink + “” where id=1″; |
|
断点跟,把sql语句拿出来放access里执行,看到底怎么了 |
|
10分 |
此外,你执行的是update语句,不是select语句,为什么要用OleDbDataReader
|
10分 |
应该这样用:
int count=cmdone.ExcuteNonQuery(); count表示受影响的行数 |
对,OleDbDataReader是没有用的,现在出现了“UPDATE 语句的语法错误。”,开启断点后,我把sql语句放入access里面是可以更新的,但是在后台就是报错 |
|
好了,问题解决了,12楼的update语法问题是在列名前面加上了表名.,//Blocktwo.Link
感谢Z65443344 |