在事务中插入存储过程

john3747cn 2009-11-23 09:55:28
现在要写的一个功能里面是在后台用事务进行写的,但其中有一部分由于处理表格比较多 比较复杂就要丢到存储过程中,现在就遇到了一个问题 如何把这个写的存储过程 连同后台里面事务的其他操作合并到一起,让要执行的时候全部一起执行 如果其中有一个出了问题就都回滚,希望大家帮帮忙 在线等。
...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CPPACE 2009-11-23
  • 打赏
  • 举报
回复
niuren
zzxap 2009-11-23
  • 打赏
  • 举报
回复
这些东西百度一大堆
wanghao3616 2009-11-23
  • 打赏
  • 举报
回复
程序中一个事务
存储过程一个事务
至少两个
wanghao3616 2009-11-23
  • 打赏
  • 举报
回复

SQL事务

存储过程使用事务
使用返回参数 来表明执行成功失败
程序根据这个返回参数
判断是否回滚当前事务
happyboyxq1985 2009-11-23
  • 打赏
  • 举报
回复
up
fengyeng 2009-11-23
  • 打赏
  • 举报
回复
mark
zzxap 2009-11-23
  • 打赏
  • 举报
回复
[code=C#]
//创建一个插入三张表的方法 ,Student,Course,Stu_Course是映射学生表,课程表,学生课程表的三个类
public int InsertCountRow(Student stu,Course cou,Stu_Course stucou)
{
int CountRow=0;
using (SqlConnection conn = new SqlConnection(StrConn))
{
conn.Open();
SqlCommand comm = conn.CreateCommand();
comm.CommandType = CommandType.StoredProcedure;
using (SqlTransaction tran = conn.BeginTransaction())
{
try
{
comm.Transaction=tran;
comm.CommandText = "InsertXS";//调用InsertXS的存储过程
comm.Parameters.AddWithValue("@XSID",stu.XSID);
comm.Parameters.AddWithValue("@XSName",stu.XSName);
comm.Parameters.AddWithValue("@XSDep",stu.XSDep);
comm.Parameters.AddWithValue("@XSSex",stu.XSSex);
comm.Parameters.AddWithValue("@XSBir",stu.XSBir);
comm.Parameters.AddWithValue("@XSXF",stu.XSXF);
CountRow=comm.ExecuteNonQuery();

comm.CommandText = "InsertKC";//调用InsertKC的存储过程
comm.Parameters.AddWithValue("@KCID",cou.KCID);
comm.Parameters.AddWithValue("@KCName",cou.KCName);
comm.Parameters.AddWithValue("@KCTime",cou.KCTime);
comm.Parameters.AddWithValue("@KCXS",cou.KCXS);
comm.Parameters.AddWithValue("@KCXF",cou.KCXF);
CountRow = comm.ExecuteNonQuery();

comm.CommandText = "InsertXS_KC";//调用InsertXS_KC的存储过程
comm.Parameters.AddWithValue("@XSID",stucou.XSID);
comm.Parameters.AddWithValue("@KCID",stucou.KCID);
comm.Parameters.AddWithValue("@XCGrade",stucou.XCGrade);
comm.Parameters.AddWithValue("@XCXF",stucou.XCXF);
CountRow = comm.ExecuteNonQuery();
tran.Commit();//提交事务
}
catch(Exception ex)
{
tran.Rollback();//异常后回滚
MessageBox.Show(ex.ToString());
}
}
conn.Close();
}
return CountRow;
}
[/CODE]

62,268

社区成员

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

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

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

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