2016-03-07 88 views
-3

我想查看一個asp.net頁面上的SQL Server數據。 SQL Server中的值將動態更改。我需要在我的aspx頁面上更新這些值。我創建了一個計時器線程來從SQL Server(實時監控系統)獲取數據,但它不起作用並在文本框中顯示空值。幫我解決這個問題以固定的時間間隔從SQL Server更新文本框的值

protected void Page_Load(object sender, EventArgs e) 
{ 
    System.Timers.Timer myTimer = new System.Timers.Timer(); 
    myTimer.Elapsed += new ElapsedEventHandler(DisplayTimeEvent); 
    myTimer.Enabled = true; 
    myTimer.AutoReset = true; 
    myTimer.Interval = 1000; 
    myTimer.Start(); 
} 

public void DisplayTimeEvent(object source, ElapsedEventArgs 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(); 
     TAG4.Text = read[4].ToString(); 
     TAG5.Text = read[5].ToString(); 
     TAG6.Text = read[6].ToString(); 
     TAG7.Text = read[7].ToString(); 
     TAG8.Text = read[8].ToString(); 
     TAG9.Text = read[9].ToString(); 
     TAG10.Text = read[10].ToString(); 
     TAG11.Text = read[11].ToString(); 
     TAG12.Text = read[12].ToString(); 
    } 

    sc.Close(); 
} 
+6

「但它沒有按預期工作」。那麼你期待什麼和實際發生了什麼?不要讓我們猜測。 – ChrisF

+0

我沒有使用線程,但如果我會這樣做,我將使用數據時間操作來觸發獲取更新的值。 –

回答

1

你可以很容易地讓你的頁面在每個特定的時間間隔後刷新自己。爲此,我們使用元標記。

<meta http-equiv="refresh" content="60"> 

這個元標記將被納入內<head>標籤
這裏http-equiv="refresh"告訴頁面需要重新加載。
content=60表示頁面重新加載之後的時間延遲。

您可以將時間更改爲所需的時間延遲。

+0

我已經使用這個,但它不是最優化的解決方案。 – RJ10

+0

@ RJ10這與用計時器建議的解決方案有何不同?如果沒有優化,也許你應該描述一個優化的解決方案是什麼樣子? – DGibbs

+0

@DGibbs這個解決方案將刷新整個頁面,我只想刷新文本框的值,我有其他的東西在同一頁面,現在刷新.., – RJ10

相關問題