Asp.net中,需要向MsSql Server中插入大批量数据,
是保持一个连接,通过循环不停用cmd.ExecuteNonQuery()好呢,
还是每次cmd.ExecuteNonQuery()都重新打开一个连接好??

解决方案 »

  1.   

    我用的是前者(传数组)
    cmd = new SqlCommand();

    SqlTransaction tr ;
    tr = conn.BeginTransaction();
    cmd.Connection = conn;
    cmd.Transaction = tr;
    try
    {
    foreach (string Sql in strSql)
    {
    cmd.CommandText = Sql;
    cmd.ExecuteNonQuery();
    }
    tr.Commit();
    }
    catch
    {
    tr.Rollback();
    }
      

  2.   

    用SqlDataAdapter.Update( dataset )
      

  3.   

    嗯,谢谢大家了,
    由于使用的是存储过程,且参数很多,每次循环把cmd的parameter清空再新建就不太好,感觉浪费的时间太多,要是并发数一多,每个都保持较长时间的连接。不敢想像啊。
    也许, hdt(倦怠) 的方法不错,试试先,希望SqlDataAdapter在这方面的性能过得去
    先结了