高分求:实时读取数据库中的数据并且不刷新页面?

wl_ldy 2010-01-09 11:26:21
我的问题是这样的:类似实时监控
在SqlServer2005中,有个表,这个表中有一部分字段,这些字段的值是时刻在变化的,
怎样把这些时刻变化的值显示在页面中,并且要求页面不刷新
1、表中各个字段值的变化时间是相同的
2、表中各个字段值的变化时间是不同的
对上面两种情况应该如何进行操作啊!
希望能够说的详细些,最好有相关的代码了。
先谢过了。。。
...全文
1102 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcl258586301 2010-05-13
  • 打赏
  • 举报
回复
3Q................
  • 打赏
  • 举报
回复
7楼的办法是在什么情况下实现的?java还是.net?
请叫我小码哥 2010-01-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 koukoujiayi 的回复:]
用微软的AJAX轻易可实现!!
1.拖入ScriptManager;
2.拖入UpdatePanel
3.再加入一个定时器Timer,设置Intervql为5秒(5000)
4.加一个数据控件,根据需要GridView或DataList等等,连接数据库
5.设置UpdatePanel为有条件异步更新
6.在Timer的Tick事件中打入代码
    protected void Timer1_Tick(object sender, EventArgs e)
    {
        UpdatePanel1.Update();
        GridView1.DataBind();//如果显示数据是GridView的话
    }
一切就ok了!!

[/Quote]
koukoujiayi 2010-01-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wl_ldy 的回复:]

如果数据库表中的字段不是同时变化的,一部分字段变化时,另一部分没变化,
能否把字段变化的部分进行更新,不变化不进行更新?
[/Quote]
一起更新,你感觉不到页面在刷新,仅仅数字在变化!!
微工程 2010-01-10
  • 打赏
  • 举报
回复
这明显的是Ajax的问题,做一个页面或webservice 服务
在页面里用时钟调这个服务就行
从一定意义上来说,这也是Ajax的最基本最简单的实现方法
如果是去学校ajax基本都是从类似这样的样例开始入门学习的
wl_ldy 2010-01-10
  • 打赏
  • 举报
回复
按照7楼的方法,效果实现了,
在16#中提到的:
<%@ OutputCache SqlDependency="CommandNotification" VaryByParam="none" Duration="5" %>
OutputCache SqlDependency="CommandNotification"
结合依赖缓存实现
17#中提到的:
轻量级Ajax判断数据是否改变了。

更加注重的是效率问题,原理和实现的思路是什么啊?能否讲解一下?
wl_ldy 2010-01-10
  • 打赏
  • 举报
回复
在网上也搜了一些资料,
使用触发器、执行存储过程、Windows任务调度程序、Windows服务
不知哪个实现起来更简单,效率更高些。。。
wl_ldy 2010-01-10
  • 打赏
  • 举报
回复
哦 谢谢各位高手的指点啊。。。
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 koukoujiayi 的回复:]
用微软的AJAX轻易可实现!!
1.拖入ScriptManager;
2.拖入UpdatePanel
3.再加入一个定时器Timer,设置Intervql为5秒(5000)
4.加一个数据控件,根据需要GridView或DataList等等,连接数据库
5.设置UpdatePanel为有条件异步更新
6.在Timer的Tick事件中打入代码
    protected void Timer1_Tick(object sender, EventArgs e)
    {
        UpdatePanel1.Update();
        GridView1.DataBind();//如果显示数据是GridView的话
    }
一切就ok了!!

[/Quote]

更好的办法是使用轻量级Ajax来判断数据是否改变了,如果改变了才真正触发UpdataPanel。
makoshen 2010-01-10
  • 打赏
  • 举报
回复
正在研究的东东 学习了
wuyq11 2010-01-10
  • 打赏
  • 举报
回复
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<%= DateTime.Now.ToString() %>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1">
</asp:GridView>
<asp:Timer ID="Timer1" runat="server" Interval="5000">
</asp:Timer>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick"></asp:AsyncPostBackTrigger>
</Triggers>
</asp:UpdatePanel>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
SelectCommand="SELECT * from Tb">
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
<%@ OutputCache SqlDependency="CommandNotification" VaryByParam="none" Duration="5" %>
OutputCache SqlDependency="CommandNotification"
结合依赖缓存实现
段传涛 2010-01-10
  • 打赏
  • 举报
回复
我也建议用ajax 。 或者用 纯js
jqury 也可以。
方法 上面的你可以参考。
zuoming120 2010-01-10
  • 打赏
  • 举报
回复
上面说的很明白了
wl_ldy 2010-01-10
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 watson243671 的回复:]
7楼的办法是在什么情况下实现的?java还是.net?
[/Quote]
.net下实现的。。。
三碗猪脚 2010-01-09
  • 打赏
  • 举报
回复
实时监控显示办不到,B/S模式有请求才有应答
只能设定一个的时间去访问数据库
用AJAX实现
wl_ldy 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 koukoujiayi 的回复:]
用微软的AJAX轻易可实现!!
1.拖入ScriptManager;
2.拖入UpdatePanel
3.再加入一个定时器Timer,设置Intervql为5秒(5000)
4.加一个数据控件,根据需要GridView或DataList等等,连接数据库
5.设置UpdatePanel为有条件异步更新
6.在Timer的Tick事件中打入代码
    protected void Timer1_Tick(object sender, EventArgs e)
    {
        UpdatePanel1.Update();
        GridView1.DataBind();//如果显示数据是GridView的话
    }
一切就ok了!!

[/Quote]
如果数据库表中的字段不是同时变化的,一部分字段变化时,另一部分没变化,
能否把字段变化的部分进行更新,不变化不进行更新?
sunshinewjw 2010-01-09
  • 打赏
  • 举报
回复
高手
koukoujiayi 2010-01-09
  • 打赏
  • 举报
回复
5楼具体html代码
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server"
........
........
</asp:GridView>
<asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick">
</asp:Timer>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
koukoujiayi 2010-01-09
  • 打赏
  • 举报
回复
用微软的AJAX轻易可实现!!
1.拖入ScriptManager;
2.拖入UpdatePanel
3.再加入一个定时器Timer,设置Intervql为5秒(5000)
4.加一个数据控件,根据需要GridView或DataList等等,连接数据库
5.设置UpdatePanel为有条件异步更新
6.在Timer的Tick事件中打入代码
protected void Timer1_Tick(object sender, EventArgs e)
{
UpdatePanel1.Update();
GridView1.DataBind();//如果显示数据是GridView的话
}
一切就ok了!!
加载更多回复(4)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧