Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# datatable加载大型数据c_C#_Sql Server_Asp.net Mvc 4_Ado.net - Fatal编程技术网

C# datatable加载大型数据c

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

在我的c mvc 4应用程序项目中,我们需要从sqlquery获取数据,然后填充到c datatable中。 我们必须用超过500万行和12列填充datatable

如果数据已被100万系统挂起

这是我正在使用的代码

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万行,然后通过批量上传写入另一个数据库。所以这确实有一个用法。