【发布时间】:2016-03-08 11:23:26
【问题描述】:
我正在尝试在 asp.net 页面上查看 SQL Server 数据。 SQL Server 中的值将动态更改。我创建了一个计时器线程来从 SQL Server 获取数据
public void Page_Load(object sender, EventArgs e)
{
System.Timers.Timer myTimer = new System.Timers.Timer();
myTimer.Enabled = true;
myTimer.AutoReset = true;
myTimer.Interval = 3000;
DisplayTimeEvent(null, null);
myTimer.Elapsed += new ElapsedEventHandler((sender, e) => DisplayTimeEvent(sender, e));
myTimer.Start();
}
protected void DisplayTimeEvent(object sender, EventArgs e)
{
SqlConnection sc = new SqlConnection("Data Source=SCADASTATION\\WINCC;Initial Catalog=LIVEDATA;Persist Security Info=True;User ID=sa;Password=root");
SqlCommand com = new SqlCommand();
com.Connection = sc;
sc.Open();
SqlDataReader read = (null);
com.CommandText = ("SELECT TOP 1 * FROM DATATABLE1 ORDER BY 1 DESC ");
read = com.ExecuteReader();
while (read.Read())
{
TAG1.Text = read[1].ToString();
TAG2.Text = read[2].ToString();
TAG3.Text = read[3].ToString();
}
sc.Close();
}
但我失败了,因为它确实刷新了文本框的值。我在 Sleep(3000) 功能上也失败了。现在我正在刷新 HTML 页面中的值。
<meta http-equiv="refresh" content="2" />
我只需要刷新文本框值而不是刷新整个网页。这个问题有更好的解决方案吗?还是我错过了代码中的任何内容?
【问题讨论】:
-
最简单的方法是在页面中使用 Ajax 来轮询脚本的更改,解析响应并更新 DOM
-
@AlexK。您能否发送任何网络链接来阅读相关内容,我是 .net 的新手。任何例子
-
在服务器端使用定时器是个坏主意,你应该尝试类似stackoverflow.com/questions/24324987/…
标签: c# asp.net sql-server