读书人

小,高手忙,解有分,分感

发布时间: 2012-02-26 20:19:45 作者: rapoo

小,高手忙,解有分,分感!!!
delete = "DELETE FROM 表1 WHERE COMPANYID = ' " + ddl_bu.SelectedValue.ToString() + " ' AND
SO = ' " + DT1.Rows[j][ "ASUS_SO "]+ " ' ";
cmd.CommandText=delete;
cmd.Transaction = trx;
cmd.ExecuteNonQuery();

insert = "INSERT INTO 表1(COMPANYID,VENDORCODE,SO,PO,ITEM_SEQ,PARTNUMBER,SERIAL_NO,INVOICE_NO,UPLOAD_USER,FLAG)
SELECT COMPANYID,VENDORCODE,SO, ' "+strPO+ " ',ITEMSEQ,PARTNUMBER,SERIAL_NO,INVOICE_NO, ' " + Session[ "UserID "].ToString() + " ', 'U '
FROM 表2 WHERE COMPANYID = ' " + ddl_bu.SelectedValue.ToString() + " ' AND SO = ' " + DT1.Rows[j][ "ASUS_SO "] + " ' ";
cmd.CommandText = insert;
cmd.Transaction = trx;
cmd.ExecuteNonQuery();

trx.Commit();
trx.Dispose();
cmd.Dispose();

什么出的:
unique constraint (IDX_表1) violated

如果不delete 直接insert 有的我知道,但我已delete 就不有重的index出了,道是我的trx.Commit();未行,它有delete 作???
但我trx.Commit();作必放在它的后面,高手指教!!!!!
是什么原因,怎么解?????????



[解决办法]
不起,前面回答有,事理,是按先后行行,一起提交的。因此跟事是有系的,你出以上的原因我分析是的,你可以先去掉事部分,步行到delete完成,查看表表的是否已真正除,然后再行insert。可以查出原因。

读书人网 >C#

热点推荐