使用ASP.Net一次在SQL Server中保存数十万条记录

时间:2011-04-07 05:12:01

标签: c# asp.net sql-server memory-management

我有一个查询从服务器一次获取 200,000条记录,包含74列,然后我必须将它们插入我的客户端计算机上的表。如果没有在ASP.Net中出现“内存不足”错误(使用C#和SQL Server 2005数据库),最好的方法是什么。

2 个答案:

答案 0 :(得分:1)

您可以使用DataReader并使用适当的批量大小将其作为输入传递给SqlBulkCopy。

答案 1 :(得分:-1)

在Class.cs

 public int Saving(int s)
 {
    SqlCommand cmd = new SqlCommand();
    using (SqlConnection cn = new SqlConnection(classname.ConnectionString)){
    cn.Open();
    SqlTransaction trans;
    trans = cn.BeginTransaction();
    try{
    cmd = new SqlCommand("Storedprocedurename", cn, trans);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add("@spparameter", SqlDbType.Int).Value = s;
    int DataResult =Convert.ToInt32(cmd.ExecuteScalar());
    if (DataResult != 0)
    {
    trans.Commit();
    return DataResult;
    }
    else
    {
    trans.Rollback();
    return -1;
    }
    }
    catch (Exception ex)
    {
    string msg = ex.Message;
    trans.Rollback();
    trans.Dispose();
    return 0;
   }
}