public SqlConnection myconn;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString);
                    }
    }    protected void Button1_Click(object sender, EventArgs e)
    {
        string str="select * from aspnet_Users";
        SqlCommand cmd = new SqlCommand(str, myconn);
        myconn.Open();
        this.GridView1.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        this.GridView1.DataBind();
    }通过ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString抓取到本项目中的数据库连接字符串,单步调试,查看有myconn有值,可当执行Button1_Click事件时,SqlCommand cmd = new SqlCommand(str, myconn);语句中的myconn此时却为空?为什么?如何改?

解决方案 »

  1.   

    public SqlConnection myconn;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
            }
        }    protected void Button1_Click(object sender, EventArgs e)
        {
            myconn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString);
            string str="select * from aspnet_Users";
            SqlCommand cmd = new SqlCommand(str, myconn);
            myconn.Open();
            this.GridView1.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            this.GridView1.DataBind();
        }改成这样试试
      

  2.   

    这样当然能行,我试过的,为什么以前在.net1.1中,是可以的,现在却不行了?
      

  3.   

    按钮提交后页面刷新了, if (!Page.IsPostBack)
    里的执行不到。所以没值。WEB是无状态的。