public partial class StudentView : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["DBCS"].ConnectionString);
protected void Button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(TextBox1.Text))
{
string str = "Mysqlqeury";
con.Open();
SqlCommand cmd = new SqlCommand(str, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
if (Page.IsPostBack)
{
da.Fill(ds, str);
GDStudents.DataSource = ds;
GDStudents.DataBind();
}
else
{
string myStringVariable1 = "No Student Record(s) Exist!! ";
ClientScript.RegisterStartupScript(this.GetType(), "myAlert", "alert('" + myStringVariable1 + "');", true);
}
}
else
{
string myStringVariable = "Enter Student Id Or Student Name!";
ClientScript.RegisterStartupScript(this.GetType(), "myAlert", "alert('" + myStringVariable + "');", true);
}
con.Close();
}
}
问问题
72 次
2 回答
1
Page.IsPostBack 在这种情况下将始终为真,它只会在第一页加载时为假。因为此条件在按钮单击事件处理程序中 Page.IsPostBack 永远不会为假,所以 else 部分永远不会被执行。
这是有关 Page.IsPostBack 属性的一些文档
http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback.aspx
如果您需要在第一页加载时执行代码,您应该只使用 Page.IsPostBack。
你到底想在这里测试什么?
如果您只想测试数据库中是否有任何记录,那么只需检查您返回的 DataSet 是否为空。尝试这样的事情:
public partial class StudentView : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["DBCS"].ConnectionString);
bool IsDataSetEmpty(DataSet dataSet)
{
foreach(DataTable table in dataSet.Tables)
{
if (table.Rows.Count != 0)
return false;
}
return true;
}
protected void Button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(TextBox1.Text))
{
string str = "Mysqlqeury";
con.Open();
SqlCommand cmd = new SqlCommand(str, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, str);
if (!IsDataSetEmpty(ds))
{
GDStudents.DataSource = ds;
GDStudents.DataBind();
}
else
{
string myStringVariable1 = "No Student Record(s) Exist!! ";
ClientScript.RegisterStartupScript(this.GetType(), "myAlert", "alert('" + myStringVariable1 + "');", true);
}
}
else
{
string myStringVariable = "Enter Student Id Or Student Name!";
ClientScript.RegisterStartupScript(this.GetType(), "myAlert", "alert('" + myStringVariable + "');", true);
}
con.Close();
}
}
于 2013-06-21T00:27:22.303 回答
0
由于以下任何原因,看起来第一个 else 不会被调用:
TextBox1.Text
没有任何价值Page.IsPostBack
是真的- 发生某种异常
尝试检查这些,您可能会找到答案。
于 2013-06-20T23:58:10.570 回答