public partial class _Default : System.Web.UI.Page 
{
    string sqlstr;    
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
            sqlstr = "select * from bts";            
            gridsql();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string txtbox = TextBox1.Text;
        if (DropDownList1.SelectedValue == "-1")
        {
            if (!Page.IsPostBack)
            sqlstr = "select * from bts where Pt_No='a'";
            gridsql();
        }
 
    }
    public void gridsql()
    {
        string connStr = ConfigurationManager.ConnectionStrings["BTS"].ConnectionString;
        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();
        DataSet ds = new DataSet();
        SqlCommand comm = new SqlCommand();
        SqlDataAdapter sqlad = new SqlDataAdapter();
        comm.Connection = conn;
        comm.CommandText = sqlstr;
        sqlad.SelectCommand = comm;
        Response.Write(sqlad.SelectCommand.CommandText);
        sqlad.Fill(ds, "bts");
        GridView1.DataSource = ds.Tables["bts"];
        GridView1.DataBind();
    }

解决方案 »

  1.   

    我倒,你到底用的ADAPTER还是READER试试用穿件对象的方法初始化COMMAND,CONNECTION,ADAPTER的关系
      

  2.   

    应该将sqlstr 当作参数代入 gridsql()函数把。
    因为每次页面一提交,sqlstr变量就释放了。这样的话这个值永远是空的。当然提示“ExecuteReader: CommandText 属性尚未初始化。”
    全局变量不是这么用的。
      

  3.   

    这家伙真懒,一句话也不说 ....Response.Write(sqlad.SelectCommand.CommandText); // 到底输出了没有哦?看代码,逻辑没有问题,sqlstr 应该是初始化了的只是,对于protected void Button1_Click(object sender, EventArgs e)
    {
    string txtbox = TextBox1.Text;
    if (DropDownList1.SelectedValue == "-1")
    {
    if (!Page.IsPostBack)
    //////////////////// 此段代码永远不执行,因为既然是 Click,那么 IsPostBack = true
    sqlstr = "select * from bts where Pt_No='a'";
    gridsql();
    ////////////////////
    }
      

  4.   

    maoning() ( ) 信誉:82  2007-08-22 16:34:17  得分: 0  
     
     
       应该将sqlstr 当作参数代入 gridsql()函数把。
    因为每次页面一提交,sqlstr变量就释放了。这样的话这个值永远是空的。当然提示“ExecuteReader: CommandText 属性尚未初始化。”
    全局变量不是这么用的。
      
     
    ========
    同意!
      

  5.   

    sqlstr有不是全局变量,应该传参
      

  6.   

    protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
    {
                sqlstr = "select * from bts";            
                gridsql(sqlstr);
    }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            string txtbox = TextBox1.Text;
            if (DropDownList1.SelectedValue == "-1")
            {
                if (!Page.IsPostBack)
    {
                sqlstr = "select * from bts where Pt_No='a'";
                gridsql(sqlstr);
    }
            }
     
        }
        public void gridsql(string sqlstr)
        {
            string connStr = ConfigurationManager.ConnectionStrings["BTS"].ConnectionString;
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();
            DataSet ds = new DataSet();
            SqlCommand comm = new SqlCommand();
            SqlDataAdapter sqlad = new SqlDataAdapter();
            comm.Connection = conn;
            comm.CommandText = sqlstr;
            sqlad.SelectCommand = comm;
            Response.Write(sqlad.SelectCommand.CommandText);
            sqlad.Fill(ds, "bts");
            GridView1.DataSource = ds.Tables["bts"];
            GridView1.DataBind();
        }
      

  7.   

    这家伙真懒,一句话也不说 ....Response.Write(sqlad.SelectCommand.CommandText); // 到底输出了没有哦?
    ......輸出了select * from bts但我一點Button時就報錯了,,,,