小問題,高手們幫幫忙,解決有分,萬分感謝!!!
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。這樣應該可以查出原因。