C# datatable加载大型数据c
在我的c mvc 4应用程序项目中,我们需要从sqlquery获取数据,然后填充到c datatable中。 我们必须用超过500万行和12列填充datatable 如果数据已被100万系统挂起 这是我正在使用的代码C# datatable加载大型数据c,c#,sql-server,asp.net-mvc-4,ado.net,C#,Sql Server,Asp.net Mvc 4,Ado.net,在我的c mvc 4应用程序项目中,我们需要从sqlquery获取数据,然后填充到c datatable中。 我们必须用超过500万行和12列填充datatable 如果数据已被100万系统挂起 这是我正在使用的代码 public DataTable GetTheData() { DataTable dtDataTablesList = new DataTable(); string NewconnectionString ="Mycooectionstr
public DataTable GetTheData()
{
DataTable dtDataTablesList = new DataTable();
string NewconnectionString ="Mycooectionstring";
SqlConnection spContentConn = new SqlConnection(NewconnectionString);
string sqlselectQuery = "select * from table";
try
{
spContentConn.Open();
SqlCommand sqlCmd = new SqlCommand(sqlselectQuery, spContentConn);
sqlCmd.CommandTimeout = 0;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.ExecuteNonQuery();
SqlDataAdapter adptr = new SqlDataAdapter(sqlCmd);
adptr.Fill(dtDataTablesList);
spContentConn.Close();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (spContentConn != null)
spContentConn.Dispose();
}
return dtDataTablesList;
}
你为什么每次都要展示10万张唱片呢。您应该使用分页并限制记录数。我建议如果你有那么多大的记录显示,那么你应该显示最多500记录在同一时间。即使是500条记录也很大,所以您可以通过与您的团队和客户讨论来减少记录的数量 即使您在相当长的时间内加载了所有这些记录,浏览器也无法处理这么多记录,并且可能会崩溃。但这只是我的假设,没有得到验证 您可以参考以下SQL代码进行分页
create table #TestTable(
PK int primary key,
Name nvarchar(50)
)
insert into #TestTable (PK, Name) values
(1, 'Name1'),
(4, 'Name4'),
(6, 'Name6')
select * from
(
select row_number() over(ORDER BY pk ) SN, * from #TestTable
) temp
where SN>=1 and SN<=500
1和500应该是动态的。在第1页中通过1和500,在第2页中通过501和1000 你打算如何处理一百万张唱片?你不能带他们去任何地方。处理它们是数据库的目的。web应用程序的运行速度永远不会比具有适当索引的编写良好的查询快。你想做什么?顺便说一句,你应该使用using块,而不是这个try/finally,它带有一个无关的catch,这个catch会破坏调用堆栈。我曾经遇到过这样的情况,当时我需要在一个大表中读取5000万行,然后通过批量上传写入另一个数据库。所以这确实有一个用法。