我正在做一个拍卖网站我需要帮助创建一个倒计时计时器,当时间到达时,产品状态将更改为关闭我只是比较一下日期的不同。
$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添加更多出价
要刷新标签(或任何更新项),您可能需要查看SignalR,一个用于.NET:的异步信号库
https://github.com/SignalR/SignalR
这里有一个很好的例子:
http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx
你不能创建一个定时器web应用程序,即使你可以,这不是一个好的方法,如果用户关闭页面怎么办?
您应该编写一个windows服务或sql作业来更新sql数据,这取决于时间,如果要刷新标签文本,则必须创建一个javascript计时器并通过ajax获取数据,然后使用ajax数据设置标签文本。