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();
}
{
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();
}
因为每次页面一提交,sqlstr变量就释放了。这样的话这个值永远是空的。当然提示“ExecuteReader: CommandText 属性尚未初始化。”
全局变量不是这么用的。
{
string txtbox = TextBox1.Text;
if (DropDownList1.SelectedValue == "-1")
{
if (!Page.IsPostBack)
//////////////////// 此段代码永远不执行,因为既然是 Click,那么 IsPostBack = true
sqlstr = "select * from bts where Pt_No='a'";
gridsql();
////////////////////
}
应该将sqlstr 当作参数代入 gridsql()函数把。
因为每次页面一提交,sqlstr变量就释放了。这样的话这个值永远是空的。当然提示“ExecuteReader: CommandText 属性尚未初始化。”
全局变量不是这么用的。
========
同意!
{
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();
}
......輸出了select * from bts但我一點Button時就報錯了,,,,