主从表更新(master/detail) trigger在数据库中处理,很多业务如果都在数据库处理这样ado.net还有什么意义? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你以为数据库就只是放数据的呀~~,自己好好学习一下SQL SERVER等数据库吧,不敢苟同 把代码放在pageload里,添加数据相当于刷新页面,好象可以 不是很明白你说的,我这样理解不知道对不对,就是说你对主表进行更后,要求从表也随之更新,如果从表更新错误,那主表更新的也取消,也就是说,必须是两个表都更新了,才是让它真正的更新.这样的情况是经常发生的.一个简单的例子,出入库,就要对两个表进行操作,一个是库存表,一个是出售库操作记录表.我们通常都是用事务来管理的.方法如下://定义变量protected SqlConnection MyConn;protected SqlCommand MyCMD;protected string m_Str_Counter;protected SqlTransaction MyTransaction;protected string Str_SQL;//实现方法this.m_Str_Counter = "联接数据库字符串";this.MyConn = new SqlConnection(m_Str_Counter);this.MyConn.Open();this.MyTransaction = this.MyConn.BeginTransaction();this.MyCMD = new SqlCommand("",this.MyConn,this.MyTransaction);try{this.Str_SQL = "你的SQL语名一,即更新主表";this.MyCMD.CommandText = this.Str_SQL;this.MyCMD.ExecuteNonQuery();this.Str_SQL = "你的SQL语名二,即更新从表";this.MyCMD.CommandText = this.Str_SQL;this.MyCMD.ExecuteNonQuery();this.MyTransaction.Commit();this.MyConn.Close();}catch(Exception e){this.MyTransaction.Rollback();this.MyConn.Close();}说明:当try后的两条SQL全部执行成功(此时不是真正的更新数据库),则执行this.MyTransaction.Commit();这时才真正更新数据库;如果有任何一条执行错误,则执行catch下的语句。那个Rollback就是取消上面两条语句的执行,回复执行前的样子。 楼上的如果从表一次更新有多条记录,如何处理?我是知道在dataset里好点,我想有更好的处理方法。 不同分辨率下,table内元素移位问题 分享《个人眼中的面向对编程》 从session中取出菜单问题 求一正则表达式写法 请问有谁用过CNBlogsDottext,帮我解答注册用户问题 ◆◆◆ Request.QueryString怎么解决? ◆◆◆ 最近用asp.net做了一个网站,发布时在本地机器上使用域名可以正常访问,可是在别的机器上却提示找不到服务器或发生 DNS 错误,这是怎么回 各位大虾帮帮忙!求救,在线等! ASP.NET中怎樣獲取客戶端用戶的鍵盤按鍵? 菜鸟继续提问:为什么报告变量没有声明? aspnetmenu可以在哪儿下?最好是1.04 项目总结(五)书籍篇
这样的情况是经常发生的.一个简单的例子,出入库,就要对两个表进行操作,一个是库存表,一个是出售库操作记录表.我们通常都是用事务来管理的.
方法如下:
//定义变量
protected SqlConnection MyConn;
protected SqlCommand MyCMD;
protected string m_Str_Counter;
protected SqlTransaction MyTransaction;
protected string Str_SQL;
//实现方法
this.m_Str_Counter = "联接数据库字符串";
this.MyConn = new SqlConnection(m_Str_Counter);
this.MyConn.Open();
this.MyTransaction = this.MyConn.BeginTransaction();
this.MyCMD = new SqlCommand("",this.MyConn,this.MyTransaction);
try
{
this.Str_SQL = "你的SQL语名一,即更新主表";
this.MyCMD.CommandText = this.Str_SQL;
this.MyCMD.ExecuteNonQuery();
this.Str_SQL = "你的SQL语名二,即更新从表";
this.MyCMD.CommandText = this.Str_SQL;
this.MyCMD.ExecuteNonQuery();
this.MyTransaction.Commit();
this.MyConn.Close();
}
catch(Exception e)
{
this.MyTransaction.Rollback();
this.MyConn.Close();
}
说明:
当try后的两条SQL全部执行成功(此时不是真正的更新数据库),则执行this.MyTransaction.Commit();这时才真正更新数据库;如果有任何一条执行错误,则执行catch下的语句。那个Rollback就是取消上面两条语句的执行,回复执行前的样子。
如果从表一次更新有多条记录,如何处理?
我是知道在dataset里好点,我想有更好的处理方法。