超急菜鸟问题!!怎样控制:前一条sql语句执行完再执行另外一条sql?

时间:2021-04-12 21:53:27
access2000数据库,表tab_baseperson的主键是bh和ssdd
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";

#3


这样做没有问题
几二句的错误是啥呢?
你将 ..."+int_bh+"... 改为 ..."+int_bh.ToString()+"... 看看

#4


直接用;进行分隔。

#5


报什么样的错误?

#6


数据库表设置问题
因为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";

#3


这样做没有问题
几二句的错误是啥呢?
你将 ..."+int_bh+"... 改为 ..."+int_bh.ToString()+"... 看看

#4


直接用;进行分隔。

#5


报什么样的错误?

#6


数据库表设置问题
因为bh是主键所以你更新的时候会报错

#7


可以用 ; 号分隔:"delete from table;update table set....";

#8


直接就可以吧,没试过

#9


那我该怎么办?

#10


第二次使用的 com_edit 变成 com_edit1试试,记得好像 一个command执行后不能再行赋值吧。或者需要一个 close命令?