RJ10
RJ10

Reputation: 303

Read Data value from sql server in every x seconds from asp.net

I'm trying to view SQL Server data on an asp.net page. The values in SQL Server will change dynamically. I've created a timer thread to fetch the data from 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();
}

But I failed on this since it does refresh the value of textbox. also I failed on Sleep(3000) function. right now I'm refreshing the values from HTML page.

<meta http-equiv="refresh" content="2" />

I need to refresh only textbox values rater than refresh entire web page. Is there any better solution for this problem? or did I miss anything in my code?

Upvotes: 2

Views: 1278

Answers (1)

user1599615
user1599615

Reputation:

write your logic to below event

   protected void Timer1_Tick(object sender, EventArgs e)
    {
      // your logic
    }

and set
myTimer.Interval = 3000;

Upvotes: 1

Related Questions