C# 使用ASP.Net在SQL Server中一次保存数十万条记录
我有一个查询,一次从服务器获取200000条记录,其中包含74列,然后我必须将它们插入到客户机上的表中。在ASP.Net(使用C和SQL Server 2005数据库)中不出现“内存不足”错误的最佳方法是什么?您可以使用DataReader并使用适当的batchsize将其作为输入传递给SqlBulkCopy。您可以使用DataReader并使用适当的batchsize将其作为输入传递给SqlBulkCopy。在Class.cs中 在课堂上C# 使用ASP.Net在SQL Server中一次保存数十万条记录,c#,asp.net,sql-server,memory-management,C#,Asp.net,Sql Server,Memory Management,我有一个查询,一次从服务器获取200000条记录,其中包含74列,然后我必须将它们插入到客户机上的表中。在ASP.Net(使用C和SQL Server 2005数据库)中不出现“内存不足”错误的最佳方法是什么?您可以使用DataReader并使用适当的batchsize将其作为输入传递给SqlBulkCopy。您可以使用DataReader并使用适当的batchsize将其作为输入传递给SqlBulkCopy。在Class.cs中 在课堂上 10万卢比=10万卢比(印度单位)?这里不是每个人都能
10万卢比=10万卢比(印度单位)?这里不是每个人都能熟练地使用全局测量单位,你知道……200000条记录x 74列(比如512字节,不确定有多少字符串)=100MB的存储空间,仅用于数据,不包括对象开销。除非您试图同时运行多个实例,否则您的服务器应该能够很好地处理100MB。为什么会出现内存不足错误?对于此数据库加载任务,首先为什么要使用ASP.NET?似乎使用了错误的技术。10万(印度单位)?这里不是每个人都能熟练地使用全局测量单位,你知道……200000条记录x 74列(比如512字节,不确定有多少字符串)=100MB的存储空间,仅用于数据,不包括对象开销。除非您试图同时运行多个实例,否则您的服务器应该能够很好地处理100MB。为什么会出现内存不足错误?对于此数据库加载任务,首先为什么要使用ASP.NET?这似乎是错误的技术使用。
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;
}
}