trigger在数据库中处理,
很多业务如果都在数据库处理
这样ado.net还有什么意义?

解决方案 »

  1.   

    你以为数据库就只是放数据的呀~~,自己好好学习一下SQL SERVER等数据库吧,不敢苟同
      

  2.   

    把代码放在pageload里,添加数据相当于刷新页面,好象可以
      

  3.   

    不是很明白你说的,我这样理解不知道对不对,就是说你对主表进行更后,要求从表也随之更新,如果从表更新错误,那主表更新的也取消,也就是说,必须是两个表都更新了,才是让它真正的更新.
    这样的情况是经常发生的.一个简单的例子,出入库,就要对两个表进行操作,一个是库存表,一个是出售库操作记录表.我们通常都是用事务来管理的.
    方法如下:
    //定义变量
    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就是取消上面两条语句的执行,回复执行前的样子。
      

  4.   

    楼上的
    如果从表一次更新有多条记录,如何处理?
    我是知道在dataset里好点,我想有更好的处理方法。