往3张表插入数据,使用事物

bj2008huwei 2012-04-01 02:07:15
现要往3张表插入数据,想使用事物,该怎么写??
我传递的参是 model
...全文
188 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangchenhuahua 2012-04-06
  • 打赏
  • 举报
回复
/// <summary>
/// 执行事务(同一数据库)
/// </summary>
/// <param name="param">结构体,里面是sql语句和参数</param>
/// <returns></returns>
public static bool ExecuteTrans(string dbName,SqlParams[] param)
{

bool result = false;
SqlConnection conn = dbManager.GetConn(dbName);
if (conn == null)
{
return result;
}

SqlTransaction trans = conn.BeginTransaction();
using (SqlCommand cmd = new SqlCommand())
{

try
{
cmd.Transaction = trans;
int rows = -1;
foreach (SqlParams item in param)
{
//HttpContext.Current.Response.Write("<br>");
//HttpContext.Current.Response.Write(item.sqlstring);
//HttpContext.Current.Response.Flush();
if (item.sqlstring != ""&&item.sqlstring!=null)
{
DbHelperSQL.PrepareCommand(cmd, conn, null, item.sqlstring, item.parameters);
//DbHelperSQL.ExecuteSql(item.sqlstring, conn, item.parameters);
rows = cmd.ExecuteNonQuery();
}
}

trans.Commit();
result = true;
}
catch (System.Data.SqlClient.SqlException E)
{
trans.Rollback();
}
finally
{
conn.Close();
}
}
return result;

}
#endregion
zhengyingcan 2012-04-01
  • 打赏
  • 举报
回复
自己写存储过程,这才是好办法,
  • 打赏
  • 举报
回复
/// <summary>
/// 带事务的批量操作数据。
/// </summary>
/// <param name="sqlInsert">SQL</param>
/// <returns>操作是否成功</returns>
public static bool OperateDatasWithTransaction(List<string> sqlList)
{
OracleConnection myConnection = new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnStrOrcl"]);
myConnection.Open();
OracleCommand myCommand = myConnection.CreateCommand();
OracleTransaction myTrans;
// Start a local transaction
myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
myCommand.Connection = myConnection;
myCommand.Transaction = myTrans;

try
{

foreach (string item in sqlList)
{
// myCommand.CommandText = item;
myCommand.ExecuteNonQuery();
}
myTrans.Commit();
return true;
}
catch (Exception err)
{
WriteLog(err.ToString());
myTrans.Rollback();
return false;
}
finally
{
myConnection.Close();
}



}
#endregion
bj2008huwei 2012-04-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

在后台执行sql增删改前开启事物啊
[/Quote]

哥们 在后台写增删改我知道 ,
就是不知道写事物 谢谢
wylp_19 2012-04-01
  • 打赏
  • 举报
回复
在后台执行sql增删改前开启事物啊
bj2008huwei 2012-04-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

可以考虑TransactionScope
[/Quote]

能否具体点呢??谢谢
边城的刀声 2012-04-01
  • 打赏
  • 举报
回复
可以考虑TransactionScope

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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