c#实时读取SQL2000数据库某一表中的数据

问题描述

SQL数据库中的其中一表的是数据是按时间(一秒中一条新的记录)采集数据记录的。我要在界面上做一个ListBox列表,按要求的时间(n秒)实时读取数据库中表的最新记录,本来想的是用timer或搞一线程,但是这样搞是不是要实时的打开数据库联接,读表记录,关闭联接,这样是不是太占用资源了,有没有更好的办法??通常都用什么样的方式来搞这种程序呀??

解决方案

解决方案二:
既然你要实时读数据库,那么就是要占资源啊除非你能让采集程序给你的客户端推送数据
解决方案三:
这就好比有个仓库仓库有管理员管理员需要随时知道仓库里的物资情况那么就应该在出入库的时候通知管理员而不是让管理员随时的到仓库里清点物资
解决方案四:
引用1楼Z65443344的回复:

既然你要实时读数据库,那么就是要占资源啊除非你能让采集程序给你的客户端推送数据

采集程序是一直在运行,这个程序是多用户的,不是一直在运行,如何做个推送,请详解,谢谢
解决方案五:
你要做的,相当是个监控器了,可以随时看到最新数据而且是自动刷新的最好还是每到刷新时间时,从库中读取一次喽用个timer就可以了
解决方案六:
实时的打开数据库联接,读表记录,关闭联接,这样是不是太占用资源了,有没有更好的办法这样其实占用不多的,因为用后就释放掉了反而如果读取后,不关闭联接一直开着,才称占用资源了.另外读取语句还可以做优化,不锁定表,只读表数据
解决方案七:
引用3楼u012570183的回复:

Quote: 引用1楼Z65443344的回复:
既然你要实时读数据库,那么就是要占资源啊除非你能让采集程序给你的客户端推送数据

采集程序是一直在运行,这个程序是多用户的,不是一直在运行,如何做个推送,请详解,谢谢

当然是采集程序做为socket服务端,而客户程序作为客户端多个客户端可以同时连接到服务端然后保持TCP长连接不要断开服务端主动向已连接的客户端推送数据
解决方案八:
如果你能知道数据库每次会有多少数据,如果这个数据是固定数量的那么你可以使用selecttop10之类的语句,去定时访问数据库,这样占用不了太多资源而如果你必须把数据库里的数据都读出来,再判断哪些是新数据,哪些是旧数据,那么这个设计方案就很扯淡了
解决方案九:
而且最关键的问题是如果仅仅是数据新增,那么可以用主键排序取最新的N条数据而如果还想监控数据变化,通过读数据库的方式根本不可行
解决方案十:
引用4楼liuqian4243的回复:

你要做的,相当是个监控器了,可以随时看到最新数据而且是自动刷新的最好还是每到刷新时间时,从库中读取一次喽用个timer就可以了

联接数据库时是不是有一超时问题,如果我一秒刷新一次(打开数据库,查询指令,关闭数据库),有没能可能这一秒的数据还没有处理完,下一秒的又来了呢?
解决方案十一:
引用9楼u012570183的回复:

Quote: 引用4楼liuqian4243的回复:
你要做的,相当是个监控器了,可以随时看到最新数据而且是自动刷新的最好还是每到刷新时间时,从库中读取一次喽用个timer就可以了

联接数据库时是不是有一超时问题,如果我一秒刷新一次(打开数据库,查询指令,关闭数据库),有没能可能这一秒的数据还没有处理完,下一秒的又来了呢?

如果你用timer做,那么当然是执行查询的时候暂时关闭timer,查询结束再打开timer而不是不管上一次是否执行完都开始下一个任务
解决方案十二:
引用7楼Z65443344的回复:

如果你能知道数据库每次会有多少数据,如果这个数据是固定数量的那么你可以使用selecttop10之类的语句,去定时访问数据库,这样占用不了太多资源而如果你必须把数据库里的数据都读出来,再判断哪些是新数据,哪些是旧数据,那么这个设计方案就很扯淡了

嗯,我准备是在查询语句中(selectf1,f2,f3,....fromtable1whereid>上次读时保存的最大id),这样搞....如果这种程序都是这么搞的话,那我就写写试试
解决方案十三:
数据库是有连接池的频繁的打开关闭连接,物理连接其实并不会关闭,关闭的仅仅是逻辑连接所以并不是在底层频繁的对数据库发起连接请求,这个你可以不必担心但是数据确实是实实在在的要交换的每次查询,你都需要将SQL语句发送到数据库,数据库解析,处理,再将结果发送给你如果数据量小还好,数据量大的话,尤其是客户端很多的情况下,对数据库压力还是挺大的
解决方案十四:
我说点撸主能理解的话,一个网站如果流量大的话,现在不跟你扯缓存,就谈同一秒钟可能有数十人同时连接、打开、查询、关闭数据库,数据库居然没死掉,是不是奇迹啊?所以你不用担心啊。
解决方案十五:
采集程序启动后,在数据库服务器上更新自己的状态,以便监控端启动后来连接。监控端启动后,查询数据库,获取采集点信息,建立与采集程序的连接,采集程序往数据库插入一条纪录,同时將这条纪录发送到监控端。服务端在接到采集程序发过来的纪录后,处理显示。
解决方案:

解决方案:
引用11楼u012570183的回复:

Quote: 引用7楼Z65443344的回复:
如果你能知道数据库每次会有多少数据,如果这个数据是固定数量的那么你可以使用selecttop10之类的语句,去定时访问数据库,这样占用不了太多资源而如果你必须把数据库里的数据都读出来,再判断哪些是新数据,哪些是旧数据,那么这个设计方案就很扯淡了

嗯,我准备是在查询语句中(selectf1,f2,f3,....fromtable1whereid>上次读时保存的最大id),这样搞....如果这种程序都是这么搞的话,那我就写写试试

非常同意,如果仅监视新增还好,监视所有变化,很难的

时间: 2024-08-04 13:02:45

c#实时读取SQL2000数据库某一表中的数据的相关文章

Mysql 导出数据库和指定表中的数据

参考地址:http://jingyan.baidu.com/article/b7001fe14240ab0e7282dde9.html [root@youo zw]# mysqldump -u root -p IpManage_v2 > zw_ipmanagev2.sql; 唉哟,不错哦!   MySQL导出指定表中的数据 要求: 1. 不导出创表的语句,因为表已经建好:默认会导出,先drop table然后create table: 2. 导出的insert语句加上ignore,允许重复执行:

mysql-php从数据库中读取某个表中的数据并在页面中一条条列出来,代码如下,数据库里有信息,显示不出来

问题描述 php从数据库中读取某个表中的数据并在页面中一条条列出来,代码如下,数据库里有信息,显示不出来 <?php include(""connectDB.php""); @$query=mysql_query($conSELECT * from xx""); @$result=mysql_fetch_array(@$query); if($result==true){ ?> <table width=""

asp 读取数据库-asp编写的网页,读取数据库时,找不新建的表中数据,rs.eof 为真(此网页可读取别的表中的数据)

问题描述 asp编写的网页,读取数据库时,找不新建的表中数据,rs.eof 为真(此网页可读取别的表中的数据) <% size=request("size") c1=request("case") if size="" then size=20 end if n=1 title=trim(request("title")) action=request("action") sh=request(&qu

jsp实时读取mysql数据库的数据

问题描述 jsp实时读取mysql数据库的数据 jsp网页从Mysql数据库读取数据进行展示,想实现每一秒更新网页的数据,感觉这里不能使用ajax来做,但是也不想通过实时加载网页的方式,问一下使用什么方式好,提供一下思路就行 解决方案 mysql插入触发器将新增的数据放入临时表,jsp每次读取临时表,然后删除里面全部的数据 解决方案二: 用ajax就可以了.你无非就是担心数据多,性能差. 解决方案三: 可以用ajax啊,你在页面里用js写个定时器就可以了 解决方案四: 如果不想用Ajax局部刷新

winform-【Winform】如何从数据库多个表中读数据生成树结构?

问题描述 [Winform]如何从数据库多个表中读数据生成树结构? 现在只会单表,但这个要求大概有四五个表需要从表一中读取父节点然后再表二表三一个个读没找到实例,请问各位多表改怎么做? 解决方案 可以用joingoogle sql inner joingoogle sql left join 解决方案二: 能讲一下表的结构都是怎样的吗? 树形结构,一般父节点和子节点都是相似的(IdparentId), 所以应该都是存储在同一个表中.如果表结构相同但在不同表,可以使用union合并. 生成树,首先

asp.net 如何读取客户端电脑中SQLITE表中的数据

问题描述 如题:如何读取客户端电脑中SQLITE表中的数据 解决方案 解决方案二:做不到吧,你数据库的账号密码都不知道首先解决方案三:我本地机器SQLITE是统一开发的单机程序解决方案四:首先要知道你要取得数据的ip地址,数据库名称,用户名,密码,然后建立数据连接,就可以得到数据了.解决方案五:这个用VB程序写在excel里比较好解决方案六:sqlite,一般都是作为单机版的数据库使用网络环境使用,建议改用其他数据,比如mssql.oracle.mysql等等

从MySQL数据库表中检索数据

在<用MySQL创建数据库和数据库表>文章中,我们如何创建一个数据库和数据库表,并知道如何向数 据库表中添加记录. 那么我们如何从数据库表中检索数据呢? 1.从数据库表中检索信息 实际上,前面我们已经用到了SELECT语句,它用来从数据库表中检索信息. select语句格式一般为: SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件(可选) 以前所使用的" * "表示选择所有的列.下面继续使用我们在上篇文章中创建的表 mytable. 2.查询所有数据:

从从MySQL数据库表中检索数据

  在<用MySQL创建数据库和数据库表>文章中,我们如何创建一个数据库和数据库表,并知道如何向数 据库表中添加记录. 那么我们如何从数据库表中检索数据呢? 1.从数据库表中检索信息 实际上,前面我们已经用到了SELECT语句,它用来从数据库表中检索信息. select语句格式一般为: SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件(可选) 以前所使用的" * "表示选择所有的列.下面继续使用我们在上篇文章中创建的表 mytable. 2.查询所有数据

sqlite-如何将导入到数据库表中的数据保存在程序中,而不用每次换调试机时还得重新导入数据

问题描述 如何将导入到数据库表中的数据保存在程序中,而不用每次换调试机时还得重新导入数据 如题:我有一张excel的表,我将其存为.csv文件,然后通过dos命令下的sqlite3命令导入到了数据库表中,问题是如果不换机子,导入到该数据库表中的数据永久有效.如果我换机子调试的话,该数据库表中的数据就不存在了,会报错,请问有没有解决办法?谢谢! 解决方案 最好存入远程数据库每次启动同步下来数据就可以了,sqlite是系统自带的数据库具体的就是http://blog.csdn.net/tianyit