如果行约为5811753,则将数据库中的数据访问到数据集[英] Access data from database into dataset if rows are about 5811753

本文是小编为大家收集整理的关于如果行约为5811753,则将数据库中的数据访问到数据集的处理方法,想解了如果行约为5811753,则将数据库中的数据访问到数据集的问题怎么解决?如果行约为5811753,则将数据库中的数据访问到数据集问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我的连接字符串--------

<appSettings><添加 key="Connstr" ="Server=192.168.1.6\SQLExpress;database=Mydatabase;uid=usename;pwd=password;"/></appSettings>

//显示超时错误,如何避免它并设置为无限.

第二个问题:-

string sqlquery = "Select * from tablename";
           SqlDataAdapter DA = new SqlDataAdapter(sqlquery, Connstr);
           DataSet DS = new DataSet();
           DA.Fill(DS);

//显示错误-
Exception of type ''System.OutOfMemoryException'' was thrown.

//在我的数据库中有 5811753 行.告诉我如何访问数据集中的行,避免上述错误.

推荐答案

<appSettings><添加 key="Connstr" ="Server=192.168.1.6\SQLExpress;database=Mydatabase;timeout=100000;uid=usename;pwd=password;"/></appSettings>
编码愉快!
:)

嗨,

请参阅以下链接,它可能会帮助您解决问题.由于一次获取太多数据而发生错误.最好在某个时间间隔内获取记录.你可以使用分页.也许它会解决你的问题.

http://social.msdn.microsoft.com/论坛/en-US/csharpgeneral/thread/60432190-8b83-4f9e-a21f-4c830a5005fc[^]
http://msdn.microsoft.com/en-us/library/tx1c9c2f%28v=vs.80%29.aspx[^]
http://www.dotnetspider.com/forum/234222-System.OutOfMemoryException-throw-case-huge-data.aspx[^]

谢谢,
Viprat

基本上这样的场景是由于执行sql查询成本高而产生的.您可以在连接字符串中设置适当的超时,如下所示:<appSettings><添加 key="Connstr" ="Server=192.168.1.6\SQLExpress;database=Mydatabase;timeout=100000;uid=usename;pwd=password;"/></appSettings>并使用以下预防/预防步骤来最小化表扫描:1)在数据库表上定义适当的索引.2)使用解释计划检查查询执行成本.3)尽量避免这样的全表扫描查询.谢谢&关注者Prashant K.

本文地址:https://www.itbaoku.cn/post/1355939.html

相关标签/搜索