C# 代码中操作数据库时,用事务提交操作,失败回滚。能用存储过程代替sql语句吗?

hailong20062008 2009-04-28 10:30:59
现在我要同时录入两个表,一个操作不成功,就停止录入。录入sql 用的存储过程,不能用事务回滚?
请大家指教!
谢谢
public static bool DBSqlTransactionProcedure(SqlConnection conn,string[] strStoreProcedure)
{
SqlTransaction sql_transaction = conn.BeginTransaction();
SqlCommand cmd = conn.CreateCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Transaction = sql_transaction;
try
{
for (int i = 0; i < strStoreProcedure.Length; i++)
{
cmd.CommandText = strStoreProcedure[i];
cmd.ExecuteNonQuery();
}
}
catch
{
sql_transaction.Rollback();
}
}
...全文
242 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hailong20062008 2009-04-28
  • 打赏
  • 举报
回复
刚刚看了sql 的事务,试试。方便多了
hailong20062008 2009-04-28
  • 打赏
  • 举报
回复
哦。我是新手,存储过程、数据库的应用还很少,很欠缺。
谢谢二楼的师傅
jietuan 2009-04-28
  • 打赏
  • 举报
回复
可以的,如果你用存储过程,那你不如在存储过程里面用事务机制。
hailong20062008 2009-04-28
  • 打赏
  • 举报
回复
我只是这样想想的,还没有调试
public static bool DBSqlTransactionProcedure(SqlConnection conn,string[] strStoreProcedure)
{
SqlTransaction sql_transaction = conn.BeginTransaction();
SqlCommand cmd = conn.CreateCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Transaction = sql_transaction;
bool flag = false;
try
{
for (int i = 0; i < strStoreProcedure.Length; i++)
{
cmd.CommandText = strStoreProcedure[i];
cmd.ExecuteNonQuery();
}
sql_transaction.Commit();
flag = true;
}
catch
{
sql_transaction.Rollback();
}
return flag;
}
如果大家熟悉的请指点指点我。呵呵,谢谢大家!

62,267

社区成员

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

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

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

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