RT!
是写两个SQL语句,执行两次呢.还是有办法可以一次执行的?

解决方案 »

  1.   

    2个SQL语句,不过可以写在一个方法里
      

  2.   

    写两个insert语句,用事务封装他们
    public int Add(PowerMis.Model.JiaoPeiZhongXin.DianGongDangAn dgda)
    {
    using (SqlConnection conn = new SqlConnection(strDBConnectionString)) 
    {
    int ID=GetMaxId();
    StringBuilder strSql=new StringBuilder();
    strSql.Append("insert into T_DianGongDangAn(");
    strSql.Append("ID,XingMing,PhotoName,XingBie,ShengRi,WenHuaChD,DangYuan,ShenGao,");
    strSql.Append("DianGongRiQi,DianGongBH,KeShidm,ShenFenZheng,BeiZhu");
    strSql.Append(") values (");
    strSql.Append(""+ID+",");
    strSql.Append("'"+dgda.XingMing+"',");
    strSql.Append("'"+dgda.PhotoName+"',");
    strSql.Append("'"+dgda.XingBie+"',");
    strSql.Append("'"+dgda.ShengRi+"',");
    strSql.Append("'"+dgda.WenHuaChD+"',");
    strSql.Append("'"+dgda.DangYuan+"',");
    strSql.Append(""+dgda.ShenGao+",");
    strSql.Append("'"+dgda.DianGongRiQi+"',");
    strSql.Append("'"+dgda.DianGongBH+"',");
    strSql.Append(""+dgda.KeShidm+",");
    strSql.Append("'"+dgda.ShenFenZheng+"',");
    strSql.Append("'"+dgda.BeiZhu+"'");
    strSql.Append(")");
    conn.Open();
    SqlCommand cmd = new SqlCommand();
    cmd.Connection=conn;
    SqlTransaction tx=conn.BeginTransaction();
    cmd.Transaction=tx;
    try
    {
    cmd.CommandText=strSql.ToString();
    cmd.ExecuteNonQuery(); foreach(DianGongDangAnJL item in dgda.DianGongDangAnJLs)
    {
    strSql=new StringBuilder();
    strSql.Append("insert into T_DianGongDangAnJL(");
    strSql.Append("ID,RiQi,ZhiWu,ZhengMingRen,Count");
    strSql.Append(") values (");
    strSql.Append(""+ID+",");
    strSql.Append("'"+item.RiQi+"',");
    strSql.Append("'"+item.ZhiWu+"',");
    strSql.Append("'"+item.ZhengMingRen+"',");
    strSql.Append(""+item.Count+"");
    strSql.Append(")");
    cmd.CommandText=strSql.ToString();
    cmd.ExecuteNonQuery();
    }

    foreach(DianGongDangAnHJ item in dgda.DianGongDangAnHJs)
    {
    strSql=new StringBuilder();
    strSql.Append("insert into T_DianGongDangAnHJ(");
    strSql.Append("ID,RiQi,JiLu,Count");
    strSql.Append(") values (");
    strSql.Append(""+ID+",");
    strSql.Append("'"+item.RiQi+"',");
    strSql.Append("'"+item.JiLu+"',");
    strSql.Append(""+item.Count+"");
    strSql.Append(")");
    cmd.CommandText=strSql.ToString();
    cmd.ExecuteNonQuery();
    } tx.Commit();

    }
    catch(System.Exception ex)
    {
    tx.Rollback();
    throw new Exception("插入数据失败!"+ex.Message);
    }
    return ID;
    }//using }
      

  3.   

    可以做一个触发器,当向一个表中insert时,同时向另一个表作insert操作
      

  4.   

    我的意见和 tmeteor() 相同,可以考虑触发器
      

  5.   

    一定是要用事务的,保证写入数据的完整性,如果跨数据库操作,是得走com+的事务
      

  6.   

    .net的事务 或者数据库的存储过程 出发器等 当然具体的问题 要具体分析
      

  7.   

    楼上说的很对,用事务来做
    SqlTransaction Trans;
    Trans=cn.BeginTransaction();
    cmd.Transaction=Trans;
    {
    insert into 
    insert into
    Trans.Commit();}
    catch()
    {
    Trans.Rollback();}