不要一条一条添加,把sql StringBuilder起来,最后一次性执行
能说明白点吗??谢谢
@沅江:
StringBuilder sb = new StringBuilder(); foreach () { sb.Append(插入数据库的脚本); } 执行sql语句 sb.ToString()
@田林九村: StringBuilder sb = new StringBuilder();
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("update T_info set sort=sort+1 where id=" + Convert.ToInt32(dt.Rows[i]["id"].ToString()));
}
Db.DoSql(sb.ToString());
你看下 这样报错啊
@沅江: update T_info 前面加一个空格即可
@田林九村: update T_info set sort=sort+1 where id=323 update T_info set sort=sort+1 where id=324 update T_info set sort=sort+1 where id=320 update T_info set sort=sort+1 where id=321 这个语句报错,每个修改语句后面是不是还要添加什么哦??
@沅江: 报什么错呢?或者你把这个语句直接拷贝到sql studio里面执行一下看报什么错
@田林九村: 语法错误 (操作符丢失) 在查询表达式 update T_info set sort=sort+1 where id=324 update T_info set sort=sort+1 where id=320 update T_info set sort=sort+1 where id=321' 中。
@沅江: 在查询表达式 update T_info set sort=sort+1 where id=324 update T_info set sort=sort+1 where id=320 update T_info set sort=sort+1 where id=321' 中 你这里面321后面怎么有一个单引号?
@田林九村: 传过去的sql是这样的 update T_info set sort=sort+1 where id=334 update T_info set sort=sort+1 where id=335 update T_info set sort=sort+1 where id=320
但是报错是 语法错误 (操作符丢失) 在查询表达式 'id=334 update T_info set sort=sort+1 where id=335 update T_info set sort=sort+1 where id=320' 中。
@沅江: 我知道哪儿错了 , 我这个项目是access数据库 ,谢谢?
@沅江:你的脚本在执行过程中被中途截断了?看看哪个地方产生了这个问题?或者试试分批执行呢?
StringBuilder sb = new StringBuilder();
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("update T_info set sort=sort+1 where id=" + Convert.ToInt32(dt.Rows[i]["id"].ToString()));
if(sb.Length>1000)
Db.DoSql(sb.ToString());
sb.Clear();
}
if(sb.Length>0)
Db.DoSql(sb.ToString());