winform在事务中同时调用两存贮过程。其中出错后发现未回滚!

@信心 2012-02-10 05:50:13
winform在事务中同时调用两存贮过程。其中出错后发现未回滚!只是从出错地方停止了,请大家指导一下,谢谢了!

string connetstrl = boperate.DatabaseConnetString;
SqlConnection con = new SqlConnection(connetstrl);
con.Open();
SqlTransaction st = con.BeginTransaction();
SqlCommand com = con.CreateCommand();
try
{
com.Transaction = st;
Co_Info_Save();
Co_List_Save();
st.Commit();
}
catch (Exception ex)
{
MessageBox.Show("存档出错,原因" + ex.StackTrace);
st.Rollback(); }
finally
{ con.Close();
st.Dispose();

private void Co_Info_Save()
{
try
{
int rowsAffected = 0;
SqlParameter[] parameters = {
new SqlParameter("@colno", SqlDbType.VarChar,30),
new SqlParameter("@fdate", SqlDbType.DateTime)
................... };

parameters[0].Value = txtcolNo.Text.ToString ();
parameters[1].Value = Convert.ToDateTime(txtfDate1.Text

...........................);
RunProcedure("CoInfo_Add", parameters, out rowsAffected);

catch (Exception ex)
{ MessageBox.Show("报错,原因" + ex.StackTrace); }
}
private void Co_list_Save()
{
try
{
/;
for (int i = 0; i <= CoDetail.Rows.Count - 1; i++)
{
s
decimal sum =Convert.ToDecimal(CoDetail.Rows[i].Cells[5].Value.ToString());
decimal count = Convert.ToDecimal(CoDetail.Rows[i].Cells[6].Value.ToString()
..........
);

SqlParameter[] parameters = {
new SqlParameter("@Colno", SqlDbType.VarChar,30),
new SqlParameter("@desc", SqlDbType.NChar,10)}
......
parameters[0].Value = txtPolNo.Text.ToString();
parameters[1].Value = i.ToString().Trim ()
......
RunProcedure("CoList_Add", parameters, out rowsAffected);

}
}
catch (Exception ex)

{ MessageBox.Show("报错,原因:" + ex.StackTrace); }



}


}
...全文
101 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsitzj 2012-04-29
  • 打赏
  • 举报
回复
嵌套问题
参考http://space.itpub.net/9240380/viewspace-713948
@信心 2012-02-10
  • 打赏
  • 举报
回复
没有人理,自已顶一下。

110,535

社区成员

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

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

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