事务处理!
一个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;
}
}
}
上边只是一种简单情况,现在不一定是只有两个表,也可能有多个
表,而且能对一个表进行多次插入(插入次数不定)