不能再用Public Static这样的方法了。

Posted 软若石

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不能再用Public Static这样的方法了。相关的知识,希望对你有一定的参考价值。

定义了Public Static之类的方法。当访问量大的时候。就会出现严重的错误,而且很难发现。

public void InsertVisitStatBrowse(string sessionID, int companyID, string viewURL,string fromURL,string fromEngine,string theYear, string theMonth, string theDay, string theHour)
  
   //
   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);  
   
  

如上面的方法。当给myRow赋值后,执行Rows.Add的时候,这时可能别的调用刚执行完 DataRow myRow=myTable.NewRow();,所以程序就会提示“未将对像引用设置到对像的实例”。

*****************************

以上的程序代码在访问量小的时候没有多大问题,但当访问量大的时候,就会经常出现“未将对像引用设置到对像的实例”。,所以我得到了上面的分析结果,不知道是否正确。我把static去掉,改成了实例引用的方法后。偶而也会出现那样的错误,但很多了。我想可能也是并发的原因。也可能是因为操作对像放在Application里的原因。

 

以上是关于不能再用Public Static这样的方法了。的主要内容,如果未能解决你的问题,请参考以下文章

public void与public static void区别

在java中public void与public static void区别

这个代码声明有啥错误?除了接口成员只能是public static final

public static void main(String arg[]) 详细解释(转)

public static void main() 访问非静态变量

php面向对象中static静态属性和静态方法的调用