当前位置: 代码迷 >> ASP.NET >> GridView循环显示有关问题
  详细解决方案

GridView循环显示有关问题

热度:5278   发布时间:2013-02-25 00:00:00.0
GridView循环显示问题?
一个GridView,一个DropDownList,一个Button ,
DropDownList为(0,最近7天),(1,最近15天),(2,最近30天),(3,查询所有)
当button点击时,根据DropDownList的SelectedIndex值查询。
该怎么循环查询好些呢。

C# code
    protected void btn_cha_Click(object sender, EventArgs e)    {        if (ddl7.SelectedIndex == 0)        {            GridView1.DataSource = null;            string sql = "select * from [jinhuo] where datediff(day,j_date,'" + DateTime.Now.ToShortDateString() + "')<7 and user_name='" + Session["userName"] + "'";            SqlConnection con = new SqlConnection(conString);            con.Open();            SqlCommand cmd = new SqlCommand(sql, con);            SqlDataReader sdr = cmd.ExecuteReader();            GridView1.DataSource = sdr;            GridView1.DataBind();            con.Close();            sdr.Close();        }        if (ddl7.SelectedIndex == 1)        {            GridView1.DataSource = null;            string sql = "select * from [jinhuo] where datediff(day,j_date,'" + DateTime.Now.ToShortDateString() + "')<15 and user_name='" + Session["userName"] + "'";            SqlConnection con = new SqlConnection(conString);            con.Open();            SqlCommand cmd = new SqlCommand(sql, con);            SqlDataReader sdr = cmd.ExecuteReader();            GridView1.DataSource = sdr;            GridView1.DataBind();            con.Close();            sdr.Close();        }        if (ddl7.SelectedIndex == 2)        {            GridView1.DataSource = null;            string sql = "select * from [jinhuo] where datediff(day,j_date,'" + DateTime.Now.ToShortDateString() + "')<30 and user_name='" + Session["userName"] + "'";            SqlConnection con = new SqlConnection(conString);            con.Open();            SqlCommand cmd = new SqlCommand(sql, con);            SqlDataReader sdr = cmd.ExecuteReader();            GridView1.DataSource = sdr;            GridView1.DataBind();            con.Close();            sdr.Close();        }        if (ddl7.SelectedIndex == 3)        {            GridView1.DataSource = null;            string sql = "select * from [jinhuo] where user_name='" + Session["userName"] + "'";            SqlConnection con = new SqlConnection(conString);            con.Open();            SqlCommand cmd = new SqlCommand(sql, con);            SqlDataReader sdr = cmd.ExecuteReader();            GridView1.DataSource = sdr;            GridView1.DataBind();            con.Close();            sdr.Close();        }    }


------解决方案--------------------------------------------------------
别的不说,如下
C# code
private void ExecSql(string sql){            GridView1.DataSource = null;            SqlConnection con = new SqlConnection(conString);            con.Open();            SqlCommand cmd = new SqlCommand(sql, con);            SqlDataReader sdr = cmd.ExecuteReader();            GridView1.DataSource = sdr;            GridView1.DataBind();            con.Close();            sdr.Close();}    protected void btn_cha_Click(object sender, EventArgs e)    {            string sql = "";        if (ddl7.SelectedIndex == 0)        {            sql = "select * from [jinhuo] where datediff(day,j_date,'" + DateTime.Now.ToShortDateString() + "')<7 and user_name='" + Session["userName"] + "'";        }        if (ddl7.SelectedIndex == 1)        {           sql = "select * from [jinhuo] where datediff(day,j_date,'" + DateTime.Now.ToShortDateString() + "')<15 and user_name='" + Session["userName"] + "'";        }        if (ddl7.SelectedIndex == 2)        {            sql = "select * from [jinhuo] where datediff(day,j_date,'" + DateTime.Now.ToShortDateString() + "')<30 and user_name='" + Session["userName"] + "'";        }        if (ddl7.SelectedIndex == 3)        {            sql = "select * from [jinhuo] where user_name='" + Session["userName"] + "'";        }        ExecSql(sql);    }