事务处理!

mnm0756 2002-10-15 01:53:51
一个PostButton按钮的Click事件里面对2个表的插入操作
如果是这种情况,
我应该怎么进行事务处理?
还是各位有什么好方法可以解决这个问题/

程序如下
private void PostButton_Click(object sender,
System.EventArgs e)
{

//表1(类Article )
Article _ar = new Article
(strConn,iOperatorID);
st_Article _sar=new st_Article
();

_sar.ar_Title =dr_TitleTextbox.Text.Trim
();
_sar.ar_SubTitle =
dr_SubTitleTextbox.Text.Trim();
_sar.ar_Source =
dr_SourceTextbox.Text.Trim();
_sar.ar_Author =
dr_AuthorTextbox.Text.Trim();
_sar.ar_KeyWord =
dr_KeyWordTextbox.Text.Trim();
_sar.ar_Content =
dr_ContentTextbox.Text.Trim();

st_ColnArticlec _car = new
st_ColnArticlec();
_car.co_ID = int.Parse
(ColumnDropDownList.SelectedItem.Value.ToString());

_ar.InsArticle(_sar,_car);

//表2(类AuditLog )
AuditLog _au = new AuditLog
(strConn,iOperatorID);
st_AuditLog _sau =new
st_AuditLog();

_sau.ar_ID = t_dr.dr_ID;
_sau.us_ID = iOperatorID;
_sau.al_Event = "送审";

_sau.co_ID = t_Ina.co_ID;

_au.InsAuditLog(_sau);

}

//=========================================================
=========================================//
(类Article)
public class Article
{
public bool InsArticle(st_Article
_sar,st_ColnArticlec _scar)
{
try
{


OleDbConnection conn
= new OleDbConnection(strConn);
conn.Open();

OleDbDataAdapter da =
new OleDbDataAdapter
("p_Ins_ArticleColnArticleAuditLog",conn);


da.SelectCommand.CommandType =
CommandType.StoredProcedure;


da.SelectCommand.Parameters.Add(OperatorID_PARM,
OleDbType.Integer).Value =iOperatorID;


da.SelectCommand.Parameters.Add(ar_Title_PARM,
OleDbType.VarChar,60).Value = _sar.ar_Title ;

da.SelectCommand.Parameters.Add
(ar_SubTitle_PARM, OleDbType.VarChar,60).Value =
_sar.ar_SubTitle ;

da.SelectCommand.Parameters.Add(ar_Source_PARM,
OleDbType.VarChar,256).Value = _sar.ar_Source ;

da.SelectCommand.Parameters.Add(ar_Author_PARM,
OleDbType.VarChar,20).Value = _sar.ar_Author ;

da.SelectCommand.Parameters.Add(ar_KeyWord_PARM,
OleDbType.VarChar,40).Value = _sar.ar_KeyWord ;

da.SelectCommand.Parameters.Add(ar_Content_PARM,
OleDbType.VarChar,256).Value = _sar.ar_Content ;

da.SelectCommand.Parameters.Add(co_ID_PARM,
OleDbType.Integer).Value = _scar.co_ID;


da.SelectCommand.Parameters.Add
(al_Event_PARM,OleDbType.Char,10).Value = "签发";



da.SelectCommand.ExecuteNonQuery();


return true;
}
catch
{
return false;
}

}
}
//=========================================================
====================//
//类AuditLog
public class AuditLog
{
public bool InsAuditLog(st_AuditLog _au)
{
try
{


OleDbConnection conn
= new OleDbConnection(strConn);
conn.Open();

OleDbDataAdapter da =
new OleDbDataAdapter("p_Ins_AuditLog",conn);


da.SelectCommand.CommandType =
CommandType.StoredProcedure;


da.SelectCommand.Parameters.Add(OperatorID_PARM,
OleDbType.Integer).Value =iOperatorID;


da.SelectCommand.Parameters.Add(ar_ID_PARM,
OleDbType.Integer).Value =_au.ar_ID ;

da.SelectCommand.Parameters.Add(co_ID_PARM,
OleDbType.Integer).Value =_au.co_ID ;

da.SelectCommand.Parameters.Add(us_ID_PARM,
OleDbType.Integer).Value =_au.us_ID;

da.SelectCommand.Parameters.Add
(al_Event_PARM,OleDbType.Char,10).Value =_au.al_Event;


da.SelectCommand.ExecuteNonQuery();

return true;
}
catch
{
return false;
}

}
}
上边只是一种简单情况,现在不一定是只有两个表,也可能有多个
表,而且能对一个表进行多次插入(插入次数不定)
...全文
30 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mnm0756 2002-10-15
  • 打赏
  • 举报
回复
用不同的方法,但是像我的那个方法一样,每个方法都有创建一个数据库连接,这个时候怎么进行事务处理啊?
donwong 2002-10-15
  • 打赏
  • 举报
回复
搞……
henryfan1 2002-10-15
  • 打赏
  • 举报
回复
为什么不把以上功能放在同一个类中,用不同的方法实现?
放在同一个类中可以用一个事务来处理。
如果分开多个类来处理,我想要用COM++

62,046

社区成员

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

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

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

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