int_bh是需要删除的编号
在asp.net依次执行下列两条sql语句,结果报错:
OleDbCommand com_edit=new OleDbCommand(@"delete * from tab_baseperson where bh= "+int_bh+" and ssdd="+p_ssdd.ToString (),conn_edit);
com_edit.ExecuteNonQuery();
//com_edit.CommandText ="update tab_baseperson set bh=bh-1 where bh>"+int_bh+" and ssdd="+p_ssdd.ToString ();
//com_edit.ExecuteNonQuery ();
由于将在索引、 主关键字、或关系中创建重复的值,请求对表的改变没有成功。 改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次。
第一个sql正确执行,但是第二就报错,是不是因为第一条sql还没执行完就执行第二条引起的?如果是,我应该怎样怎样控制前一条sql语句执行完再执行另外一条sql?
10 个解决方案
#1
tab_baseperson的主键是bh和ssdd 主键bh一改动好像就不对了吧
#2
OleDbCommand command = new OleDbCommand();
command.CommandText = "Select XX from table1;Inset into table1 XXXX where CCC";
command.CommandText = "Select XX from table1;Inset into table1 XXXX where CCC";
#3
这样做没有问题
几二句的错误是啥呢?
你将 ..."+int_bh+"... 改为 ..."+int_bh.ToString()+"... 看看
几二句的错误是啥呢?
你将 ..."+int_bh+"... 改为 ..."+int_bh.ToString()+"... 看看
#4
直接用;进行分隔。
#5
报什么样的错误?
#6
数据库表设置问题
因为bh是主键所以你更新的时候会报错
因为bh是主键所以你更新的时候会报错
#7
可以用 ; 号分隔:"delete from table;update table set....";
#8
直接就可以吧,没试过
#9
那我该怎么办?
#10
第二次使用的 com_edit 变成 com_edit1试试,记得好像 一个command执行后不能再行赋值吧。或者需要一个 close命令?
#1
tab_baseperson的主键是bh和ssdd 主键bh一改动好像就不对了吧
#2
OleDbCommand command = new OleDbCommand();
command.CommandText = "Select XX from table1;Inset into table1 XXXX where CCC";
command.CommandText = "Select XX from table1;Inset into table1 XXXX where CCC";
#3
这样做没有问题
几二句的错误是啥呢?
你将 ..."+int_bh+"... 改为 ..."+int_bh.ToString()+"... 看看
几二句的错误是啥呢?
你将 ..."+int_bh+"... 改为 ..."+int_bh.ToString()+"... 看看
#4
直接用;进行分隔。
#5
报什么样的错误?
#6
数据库表设置问题
因为bh是主键所以你更新的时候会报错
因为bh是主键所以你更新的时候会报错
#7
可以用 ; 号分隔:"delete from table;update table set....";
#8
直接就可以吧,没试过
#9
那我该怎么办?
#10
第二次使用的 com_edit 变成 com_edit1试试,记得好像 一个command执行后不能再行赋值吧。或者需要一个 close命令?