如何向数据库关系的子表同时插入多条记录(父表的一条记录对应子表的多条记录)?我现在是和一般的插入操作是一样的,有多条,就做多次操作,一条一条的插入。这样感觉速度性能会有影响。有没有更好的方法

解决方案 »

  1.   


    给你个很ok的方法啊,把你的N 条 sql 语句塞进 List<string>里,传入介个方法,保证你很happy
    #region 带事务操作数据库
            /// <summary>
            /// 带事务的批量操作数据。
            /// </summary>
            /// <param name="sqlInsert">SQL</param>
            /// <returns>操作是否成功</returns>
            public static bool OperateDatasWithTransaction(List<string> sqlList)
            {
                OracleConnection myConnection = new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnStrOrcl"]);
                    myConnection.Open();
                    OracleCommand myCommand = myConnection.CreateCommand();
                    OracleTransaction myTrans;
                    // Start a local transaction
                    myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
                    // Assign transaction object for a pending local transaction
                    myCommand.Connection = myConnection;
                    myCommand.Transaction = myTrans;
                    try
                    {
                        foreach (string item in sqlList)
                        {
                            myCommand.CommandText = item;
                            myCommand.ExecuteNonQuery();
                        }
                        myTrans.Commit();
                        return true;
                    }
                    catch (Exception)
                    {
                        myTrans.Rollback();
                        return false;
                    }
                    finally
                    {
                        myConnection.Close();
                    }
            }
            #endregion
      

  2.   


     List<string> L =new  List<string>();L.Add("insert into B ");
    L.Add("insert into A...........");
    ........
    ........OperateDatasWithTransaction(L);
    ooxx 收工
      

  3.   

    如果是在程序里面,可以调用这个方法
    DataBase.UpdateDataSet();
    穿入一个数据集
      

  4.   

    你这个有点像Hashtable 方法,这样也是要执行很多的次插入。你这个有没有先后顺序,是不是第一条语句先执行。
      

  5.   

    虽然我没用过上面的方法
    但是  我想你们再怎么弄 数据都是一条条插进去去的 吧?
    只不过是执行了一次SQL  语句
      那用 拼接sql  语句(insert into biaoA(..,.,,mm) insert into biaoA(..,.,,mm)insert into biaoA(..,.,,mm) )
     最后一次 执行这条sql
     和上面的做法有什么区别 
      本人菜鸟 知道的 说哈 
    先谢谢!~
      
      

  6.   

    我在网上有找到说用DataSet这个更新很好用,就是找不到具体的例子
      

  7.   


    declare @i int 
                set @i=1 while @i<=10
            begin  
                insert into board_game_Book (Area_id, StoreId, StoreName,UseState, BookId, BookName, ForTime ,BookTime, AddTime,AddName) 
                values('fh003','1','合肥店','10','3','admin','上午',getdate(),getdate(),'admin')
                set @i=@i+1 
            end修改它
    或者如6楼那样