62,046
社区成员
发帖
与我相关
我的任务
分享
public static bool UpdateBuikForCardInOut(DataTable dt, DataTable dtpool, string cardids)
{
SqlConnection sqlCon = new SqlConnection(conStr);
sqlCon.Open();
SqlTransaction sqlTran = sqlCon.BeginTransaction(); // 开始事务
try
{
SqlBulkCopy sqlBC = new SqlBulkCopy(sqlCon, SqlBulkCopyOptions.Default, sqlTran);
sqlBC.DestinationTableName = dt.TableName;
sqlBC.BatchSize = 500;
foreach (DataColumn dc in dt.Columns)
{
sqlBC.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);
}
sqlBC.WriteToServer(dt);
bool succ = UpdateBuikForCardPool(dtpool, sqlCon, sqlTran, cardids);
if (succ)
{
sqlTran.Commit();
return true;
}
else
{
sqlTran.Rollback();
return false;
}
}
catch (Exception)
{
sqlTran.Rollback();
return false;
}
}
public static bool UpdateBuikForCardPool(DataTable dtpool, SqlConnection sqlCon, SqlTransaction sqlTran, string cardids)
{
try
{
SqlBulkCopy sqlBC = new SqlBulkCopy(sqlCon, SqlBulkCopyOptions.Default, sqlTran);
var arry = cardids.Split(',');
foreach (var item in arry)
{
string sql = "delete from tb_Card_Pool where CardId in ('" + item + "')";
using (SqlCommand cmd = new SqlCommand(sql, sqlCon, sqlTran))
{
int num = cmd.ExecuteNonQuery();
}
}
sqlBC.DestinationTableName = dtpool.TableName;
sqlBC.BatchSize = 500;
foreach (DataColumn dc in dtpool.Columns)
{
sqlBC.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);
}
sqlBC.WriteToServer(dtpool);
return true;
}
catch (Exception)
{
return false;
}
}