用C#连接数据库SQL并进行读取时,因数据量过大导致运行极慢,想建一个后台服务器实现实时显示

我要做一个显示界面,要从SQL数据库中读取出某列数据并进行统计运算,之后以label控件显示出来。由于该数据库中数据量实在太大,直接读取数据时运行太慢,想建个服务器在后台... 我要做一个显示界面,要从SQL数据库中读取出某列数据并进行统计运算,之后以label控件显示出来。由于该数据库中数据量实在太大,直接读取数据时运行太慢,想建个服务器在后台运行,使数据能实时更新在控件上显示。我该怎么做呢?没创建过服务器,数据库也是新手,求指导啊 展开
 我来答
IcebeareM
推荐于2017-09-08 · TA获得超过660个赞
知道小有建树答主
回答量:1235
采纳率:0%
帮助的人:347万
展开全部
可以在c#里面建立一个datatable,系统启动时把数据从数据库里载入到datatable里,你所有的操作不要在数据库里计算,在datatable里算,具体的操作你看下c#关于datatable的操作,这样就不会大量占用数据库时间,但这样又会占用大量内存,根据你的需要试试看吧。
在内存里计算不在sql里面快,只是你在添加数据库时需要向datatable和sql里面同时添加同一条数据。10几万的数据我都是这么操作的。
更多追问追答
追问
可以麻烦贴下你的代码或是详述下你的操作么?我的是在VS2010中连接数据库,再从数据库中读出所需列数据(这个读的过程就很慢,由于数据量大),然后存入dataTable中,再显示到所需控件上。当启动调试时。由于这个读的过程极慢,导致窗口显示要运行很长时间才出来。想要达到的效果是,就是点击调试时,窗体就能马上跳出,显示相应信息。
追答
代码没现成的,不过可以教你datatable的操作,把数据放入datatable应该会吧?写sql的语句也就不给你了!

可以给你简单写一下datatable的操作。稍等
DataTable dt = new DataTable();
OleDbConnection conn = new OleDbConnection(连接字符串);
OleDbCommand comm = new OleDbCommand(sqlcom, conn);
OleDbDataAdapter da = new OleDbDataAdapter(comm);
conn.Open();
da.Fill(dt);
conn.Close();
上面是填充datatable的代码OleDb自己改下,是用来连access的,用sql写sqlConnection。

下面是添加dt行的代码;
DataRow dr = dt.NewRow();
dr["1"] = "aa";
dr["2"] = "bb";
dr["3"] = "cc";
dt.Rows.Add(dr);

用datatable的方法就可以汇总数据:
string bb = dt.Compute("sum(bb)", "true").ToString();
初学小者
2013-09-11 · 超过17用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:33.9万
展开全部
给你推荐一个方案,如果你需要显示信息就只把需要的信息查询出来,比如需要总数,就用select count(id) from tablename 这样查询,然后创建一个datatable,每次只查询前几个,select top 5 * from tablename 然户放到datatable里面操作,操作完了,然后在查询,这样可以数据库的压力。当然如果能把线程也加进去的话就更完美了,这样即使是几百万的数据也不会出现卡屏或者程序崩溃的现象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
板凳瓜子准备好了
2013-09-11 · TA获得超过163个赞
知道小有建树答主
回答量:278
采纳率:0%
帮助的人:128万
展开全部
读取一行,就显示一行?这样你的程序运行不久更慢了?你要做成这种的话,多线程吧,分很多个线程,同时按段读取数据库数据,本质上来说对提速没多大意义。
追问
我不是要读一行显示一行,而是先查询出所需数据,再整合,之后在给label控件显示。这个查询消耗时间过长,所以我想创建一个服务器,事先将所需数据查询出来,等到运行时可以直接调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式