今天终于找到了方法,那就是Application.Lock()。这个在ASP里就已经用到的方法。现在竟然还需要别人提醒。晕。。。
public void InsertVisitStatBrowse(string sessionID, int companyID, string viewURL,string fromURL,string fromEngine,string theYear, string theMonth, string theDay, string theHour)
{
HttpContext.Current.Application.Lock();
//
try
{
DataSet myDS=((DataSet)HttpContext.Current.Application["DaoGouDataSet"]);
SqlDataAdapter myDA= (SqlDataAdapter)HttpContext.Current.Application["DaoGouDA"];
DataTable myTable=myDS.Tables["VisitStatBrowse"];
DataRow myRow=myTable.NewRow();
myRow["sessionID"]=sessionID;
myRow["companyID"]=companyID;
myRow["viewURL"]=viewURL;
myRow["fromURL"]=fromURL;
myRow["fromEngine"]=fromEngine;
myRow["theYear"]=theYear;
myRow["theMonth"]=theMonth;
myRow["theDay"]=theDay;
myRow["theHour"]=theHour;
myRow["ViewNumber"]=1;
myTable.Rows.Add(myRow);
}
catch(Exception ex)
{
WebLog.WriteLog("插入数据到浏览统计出现了错误:" + ex.Message);
}
HttpContext.Current.Application.UnLock();
}
这样,在多用户并发的时候就会出现上一篇文章里说的当一上用户操作,另一个用户把操作对象重置的情况了。