第一个其他部分不是阅读

时间:2013-06-20 23:49:34

标签: asp.net

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();
    }   
}

2 个答案:

答案 0 :(得分:1)

Page.IsPostBack将始终为true,在这种情况下,它只会在首页加载时为false。因为这个条件在按钮点击事件处理程序页面内.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();
}   
}

答案 1 :(得分:0)

看起来第一个其他人不会因以下任何原因被调用:

  • TextBox1.Text没有任何价值
  • Page.IsPostBack是真的
  • 发生某种异常

尝试检查那些,你可能会找到答案。