CountDown Timer并不断刷新标签

时间:2012-02-10 09:08:26

标签: c# sql-server timer timeout

我在做一个拍卖网站 我需要有关创建倒数计时器的帮助,当时间到达时,产品状态将变为关闭 我只是比较日期的差异。

$ if(!IsPostBack)              {              SqlDataReader dtrProduct,dtrMinus;

         conFindPID = new SqlConnection(strCon);
         conFindPID.Open();
         string conStr = "SELECT * FROM Product WHERE ProductID=@PID";
         SqlCommand cmdCheck = new SqlCommand(conStr, conFindPID);
         dtrProduct = cmdCheck.ExecuteReader();
         if (DateTime.Today >= Convert.ToDateTime(dtrProduct["EndingDate"]))
         {
             if (dtrProduct["Status"] == "Open")
             {
                 conFindPID = new SqlConnection(strCon);

                 string conupdate = "UPDATE PRODUCT SET Status=@PS";


                 SqlCommand cmdupdate = new SqlCommand(conupdate, conFindPID);
                 cmdupdate.Parameters.AddWithValue("@PS", "Closing");
                 cmdupdate.ExecuteNonQuery();
                 string conMinus = "SELECT c.*,p.* FROM Customer c,Product p WHERE c.UserID=p.UserID";
                 SqlCommand cmdMinus = new SqlCommand(conMinus, conFindPID);
                 dtrMinus = cmdMinus.ExecuteReader();
                 if (Convert.ToInt32(dtrMinus["Token"]) < Convert.ToInt32(dtrMinus["CurrentBid"]))
                 {


                 }
                 else
                 {
                     int a = Convert.ToInt32(dtrMinus["Token"]) - Convert.ToInt32(dtrMinus["CurrentBid"]);
                     conFindPID = new SqlConnection(strCon);

                     string conComplete = "UPDATE Customer SET Token=@Token";
                     SqlCommand cmdcomplete = new SqlCommand(conComplete, conFindPID);
                     cmdcomplete.Parameters.AddWithValue("@Token", a);
                     cmdcomplete.ExecuteNonQuery();

还有一件事:我希望在价值发生变化时继续刷新标签 标签是拍卖当前出价,如果客户B添加更多出价,客户A可以直接查看更改

2 个答案:

答案 0 :(得分:0)

你不能创建一个计时器网络应用程序,即使它不是一个好的方法,如果用户关闭页面怎么办?

你应该编写一个windows服务或sql作业来更新sql数据,这取决于时间, 如果要刷新标签文本,则必须创建一个javascript计时器并通过ajax获取数据,然后使用ajax数据设置标签文本。

答案 1 :(得分:0)

要刷新标签(或任何更新项目),您可能需要查看SignalR,这是.NET的异步信令库:

https://github.com/SignalR/SignalR

这是一个很好的例子:

http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx