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?

解决方案 »

  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.   

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

  5.   

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