public static DataSet getDataSet(string strSQL)
{
  using(SqlConnection conn = new SqlConnection(connstr))
  {
using(SqlDataAdapter da = new SqlDataAdapter(strSQL,conn))
{
           DataSet ds = new DataSet();
   da.Fill(ds);
           return ds;
}
  }
}
错误发生时间:2008年06月16日 15:19:21
错误信息内容:
===========================================================================
System.Web.HttpUnhandledException: 发生类型为 System.Web.HttpUnhandledException 的异常。 ---> System.NullReferenceException: 未将对象引用设置到对象的实例。
   at LoadLibraryW(UInt16* )
   at System.EnterpriseServices.Thunk.Security.Init()
   at System.EnterpriseServices.Thunk.Security.SuspendImpersonation()
   at System.EnterpriseServices.Platform.Initialize()
   at System.EnterpriseServices.ResourcePool..ctor(TransactionEndDelegate cb)
   at System.Data.SqlClient.ConnectionPool..ctor(DefaultPoolControl ctrl)
   at System.Data.SqlClient.PoolManager.FindOrCreatePool(DefaultPoolControl ctrl)
   at System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString options, Boolean& isInTransaction)
   at System.Data.SqlClient.SqlConnection.Open()
   at System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState)
   at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
   at SqlHelper.SqlHelper.getDataSet(String strSQL)
   at SqlHelper.SqlHelper.getDataTable(String strSQL)
   at PSManage.menu.InitMenu() in e:\programs\dotnet\psmanage\webui\menu.aspx.cs:line 56
   at PSManage.menu.Page_Load(Object sender, EventArgs e) in e:\programs\dotnet\psmanage\webui\menu.aspx.cs:line 27
   at System.Web.UI.Control.OnLoad(EventArgs e)
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain()
   --- 内部异常堆栈跟踪的结尾 ---
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain()
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)可能得原因:
   1、ViewState 对象为Unll。
  2、DateSet 空。
  3、sql语句或Datebase的原因导致DataReader空。
  4、声明字符串变量时未赋空值就应用变量。
  5、未用new初始化对象。
  6、Session对象为空。   1:对控件赋文本值时,值不存在 
  2:使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值
  3:使用FindControl时,控件不存在却没有做预处理    
  4. 重复定义造成未将对象引用设置到对象的实例错误.
这些问题好像都不存在,请各位大侠指点迷津。

解决方案 »

  1.   

    你调用这个方法时传的SQL语句是什么啊?
    调用时的代码也贴点出来!
      

  2.   

    connstr呢?
    还有建议不要写两层using,一层就够了
      

  3.   

    DataTable dt = new DataTable();
    string SqlStr = "select * from t_menu where IsActive = '1'";
    dt = SqlHelper.SqlHelper.getDataTable(SqlStr);
      

  4.   


    你看看错误发生在哪句,检查一下,那些变量或对象为null你上面的代码,已经new DataTable(),好像不会出错.除非你访问了SQL没返回的行
      

  5.   

    public static DataSet getDataSet(string strSQL) 

      using(SqlConnection conn = new SqlConnection(connstr)) 
      { 
    using(SqlDataAdapter da = new SqlDataAdapter(strSQL,conn)) 

              DataSet ds = new DataSet(); 
      da.Fill(ds); 
              return ds; 

      } 

    connstr 可能是null的
      

  6.   

    da为null 
    回复内容太短了!
      

  7.   

    DataAdapter的对象为空,sql可能有错
      

  8.   

    据跟踪:connstr、strSQL、conn都又值且不是null
    最有可能出现da,ds为null
    什么情况下会出现
      

  9.   

    关键你的connstr、strSQL、conn有值并不代表就是对的啊!
      

  10.   

    出错的时候你将strSQL粘到查询分析器里看看会不会出错
      

  11.   

    就比如你的SQL语句中可能你要取某个控件的值,比如是个TEXTBOX,但你却没在TEXTBOX中填写值,就去查询!
    那也会引发这样的错误的!
      

  12.   

    da.Fill(ds); 
    如果是这句出错,一般都是sql语句的事,另外看看连接字符串
      

  13.   

    public static DataSet getDataSet(string strSQL) 

      using(SqlConnection conn = new SqlConnection(connstr)) 
      { 
    using(SqlDataAdapter da = new SqlDataAdapter(strSQL,conn)) 

              DataSet ds = new DataSet(); 
      da.Fill(ds);  ///这里DS为空! 
              return ds; 

      } 

     
      

  14.   

    贴多点代码吧?!
    or自己调调?
    ds虽然new了,但没东东啊!
    现在也只能猜猜了