请教插入一条记录同时更新另一张表

NeverSmile 2004-10-25 11:35:14
如题,怎么保证他们要么都成功,要么都失败;
另外,如何知道更新数据库影响记录的数量?
...全文
184 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
alwaysinsist 2004-10-25
  • 打赏
  • 举报
回复
用触发器,这个方便。
NeverSmile 2004-10-25
  • 打赏
  • 举报
回复
解决了,谢谢各位,分太少(本想给100的...纯属以外),大家别嫌弃
Eddie005 2004-10-25
  • 打赏
  • 举报
回复
上面给出的例子就是一个事务处理;
至于执行一条更新受影响的记录数 int tmp = tmpCmm.ExecuteNonQuery();就可以了
hebookboy 2004-10-25
  • 打赏
  • 举报
回复
在事务中进行处理
Eddie005 2004-10-25
  • 打赏
  • 举报
回复
/// <summary>
/// 执行多个SQL语句
/// </summary>
/// <param name="sqlArray">动态数组:需要执行的多个SQL语句</param>
public static bool RunMultiSQL(System.Collections.ArrayList sqlArray)
{
if(sqlArray.Count < 1) return true;

bool success = false;

SqlConnection tmpConn = Common.MySettings.MyConn;
SqlCommand tmpCmm = new SqlCommand();
tmpCmm.Connection = tmpConn;
tmpConn.Open();

SqlTransaction tmpTrans = tmpConn.BeginTransaction();
tmpCmm.Transaction = tmpTrans;
try
{
for(int i=0;i<sqlArray.Count;i++)
{
tmpCmm.CommandText = sqlArray[i].ToString();
tmpCmm.ExecuteNonQuery();
}

tmpTrans.Commit();

success = true;
Common.ShowMsg("保存成功!");
}
catch(System.Exception ex)
{
tmpTrans.Rollback();
Common.ShowMsg("保存失败!");
Common.ShowMsg(ex.ToString());
}
finally
{
tmpTrans.Dispose();
tmpConn.Close();
}
return success;
}
brightheroes 2004-10-25
  • 打赏
  • 举报
回复
怎么保证他们要么都成功,要么都失败
--用事务来处理,失败一起RollBack

如何知道更新数据库影响记录的数量?
--ExecuteNonQuery()


xdev 2004-10-25
  • 打赏
  • 举报
回复
在同一个事务中完成, 这组操作

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧