用事务进行批量操作的问题?急!
caoit 2004-07-22 10:36:02 public bool AddOrganizeKPI( DataTable listTable )
{
Open();
SqlTransaction myTrans;
myTrans =this.conn.BeginTransaction();
try
{
foreach(DataRow dr in listTable.Rows )
{
KPIID = HRM.CPublicFn.IntObjectToInt( dr["KPIID"] );
KPIIndex = short.Parse( dr["KPIIndex"].ToString() );
KPIPower = short.Parse( dr["KPIPower"].ToString() );
DestValue = decimal.Parse( dr["DestValue"].ToString() );
RealValue = decimal.Parse( dr["RealValue"].ToString() );
BigType = dr["BigType"].ToString();
SmallType = dr["SmallType"].ToString();
CheckScore = decimal.Parse( dr["CheckScore"].ToString() );
sqlCmd = this.AddOrganizeKPIListCmd();
sqlCmd.Connection = this.conn;
sqlCmd.Transaction = myTrans;
int i = sqlCmd.ExecuteNonQuery();
iRet = (int)(sqlCmd.Parameters["@ReturnValue"].Value);
if ( iRet != 0 )
{
ErrorMsg = sqlCmd.Parameters["@ErrorMsg"].Value.ToString();
myTrans.Rollback();
return false;
}
}
myTrans.Commit();
return true;
}
catch(Exception e)
{
ErrorMsg = e.Message;
try
{
myTrans.Rollback();
}
catch (SqlException sqlexcept)
{
ErrorMsg = sqlexcept.Errors[0].Message;
}
}
finally
{
Close();
}
return false;
}
AddOrganizeKPIListCmd()这是增加操作方法,为什么增加有两次记录了,在没有记录的情况下,可以用修改方法来操作,想了两天了,还没有解决,请指教