protected void Page_Load(object sender, EventArgs e)
    {
    string s = System.Configuration.ConfigurationManager.ConnectionStrings["sqlconnstr"].ConnectionString;
    ReportDocument oCR = new ReportDocument();
    string reportPath = Server.MapPath("SalesData.rpt");
    oCR.Load(reportPath);    SqlConnection   MyConn   =   new   SqlConnection(s);   
    //MyConn.Open();   
    //string   strSel   =   "Select   *   from SalesDataImport";  
string strSel = Request.Form["sql"];
    //Response.Write(strSel);
    //Response.End();
    //SqlCommand cmd = new SqlCommand(selectStr, conn);
    SqlDataAdapter   MyAdapter   =   new   SqlDataAdapter(strSel,MyConn);   
    DataSet  ds  = new DataSet();//这个DataSet1在结构上最好跟水晶表的一致,   
    //路径可以不同   
    MyAdapter.Fill(ds,"SalesDataImport");
    //MyConn.Close();
    oCR.SetDataSource(ds);
    this.SalesDataView.ReportSource = oCR;   
    SalesDataView.DataBind();    }ExecuteReader: CommandText 属性尚未初始化 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: ExecuteReader: CommandText 属性尚未初始化源错误: 
行 35:     DataSet  ds  = new DataSet();//这个DataSet1在结构上最好跟水晶表的一致,   
行 36:     //路径可以不同   
行 37:     MyAdapter.Fill(ds,"ttt");
行 38:     //MyConn.Close();
行 39: 
 源文件: e:\HYWMS\Report\Temple\SalesData.aspx.cs    行: 37  
[InvalidOperationException: ExecuteReader: CommandText 属性尚未初始化]
   System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async) +873604
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +73
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
   System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12
   System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +7
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +141
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +137
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +83
   Temple_SalesData.Page_Load(Object sender, EventArgs e) in e:\HYWMS\Report\Temple\SalesData.aspx.cs:37
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +47
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061

解决方案 »

  1.   

    selectStr没赋值
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  2.   


     protected void Page_Load(object sender, EventArgs e) 
        { 
      string s = System.Configuration.ConfigurationManager.ConnectionStrings["sqlconnstr"].ConnectionString; 
        ReportDocument oCR = new ReportDocument(); 
        string reportPath = Server.MapPath("SalesData.rpt"); 
        oCR.Load(reportPath);     SqlConnection  MyConn  =  new  SqlConnection(s);  
        string strSel = Request.Form["sql"];   // 确认这里的strSel是否为""
        SqlDataAdapter  MyAdapter  =  new  SqlDataAdapter(strSel,MyConn);  
        DataSet  ds  = new DataSet();//这个DataSet1在结构上最好跟水晶表的一致,  
        //路径可以不同  
        MyAdapter.Fill(ds,"SalesDataImport"); 
        //MyConn.Close(); 
        oCR.SetDataSource(ds.Tables["SalesDataImport"]); // 绑定数据的table
        this.SalesDataView.ReportSource = oCR;  
        SalesDataView.DataBind();     } 
      

  3.   

    在结构上最好跟水晶表的一致,  protected void Page_Load(object sender, EventArgs e) 

        string s = System.Configuration.ConfigurationManager.ConnectionStrings["sqlconnstr"].ConnectionString; 
        ReportDocument oCR = new ReportDocument(); 
        string reportPath = Server.MapPath("SalesData.rpt"); 
        oCR.Load(reportPath);     SqlConnection  MyConn  =  new  SqlConnection(s); 
     
        /* 这里sql的要和datatable中的列名一致
          *如:select name as column1, password as column2, ..... from users
         */
        string strSel = Request.Form["sql"];
        SqlDataAdapter  MyAdapter  =  new  SqlDataAdapter(strSel,MyConn);      // 定义datatable
        DataTable dt = new DataTable("myTables");     //向表中添加列名,和水晶报表一致 
         dt.Columns.Add(new DataColumn("column1")); 
        dt.Columns.Add(new DataColumn("column2")); 
        dt.Columns.Add(new DataColumn("column3")); 
        dt.Columns.Add(new DataColumn("column4")); 
        dt.Columns.Add(new DataColumn("column5")); 
        dt.Columns.Add(new DataColumn("column6")); 
        dt.Columns.Add(new DataColumn("column7")); 
        //路径可以不同  
        MyAdapter.Fill(dt);     oCR.SetDataSource(dt);                  // 绑定数据的table
        this.SalesDataView.ReportSource = oCR;  
        SalesDataView.DataBind();