如何根据下拉列表选择的值绑定网格视图数据

时间:2013-10-01 07:45:44

标签: c# asp.net sql-server sql-server-2008 webforms

我有一个下拉列表来选择学生姓名。当我在下拉列表中选择学生姓名时,网格视图必须显示所选名称的详细信息。 这是我对此的编码,但它没有显示任何内容。

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MGLCOMConnectionString"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("SELECT VALUE,VDESC FROM CSOPTFD WHERE OPTFIELD='WONO'AND VALUE LIKE '%" + customerddl.SelectedValue + "%'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();

这是我的cs代码,用于获取所选值的详细信息。但它没有任何用处。

3 个答案:

答案 0 :(得分:1)

VALUE是T-SQL的reserved keyword。与[VALUE]

等方括号一起使用

请改用parameterized queries。这种字符串连接对SQL Injection攻击开放。

SqlCommand cmd = new SqlCommand("SELECT [VALUE], VDESC FROM CSOPTFD WHERE OPTFIELD = 'WONO' AND [VALUE] LIKE '%' + @value + '%'", con);
cmd.Parameters.AddWithValue("@value", customerddl.SelectedValue);

答案 1 :(得分:0)

您是否正确绑定了Dropdown,如CustomerId,Text,之后是否使用PostBack True从Selected_Index_Changed事件中调用此代码?

答案 2 :(得分:0)

尝试在try - catch块中提供代码。使用finally块关闭连接,使用con.Close();

还尝试关闭连接,然后访问数据集以获取值。

SqlConnection con =null;
DataSet ds=null;
try
{
        con = new SqlConnection(ConfigurationManager.ConnectionStrings["MGLCOMConnectionString"].ConnectionString);
        con.Open();
        SqlCommand cmd = new SqlCommand("SELECT VALUE,VDESC FROM CSOPTFD WHERE OPTFIELD='WONO'AND VALUE LIKE '%" + customerddl.SelectedValue + "%'", con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        ds = new DataSet();
        da.Fill(ds);

}
catch(SQLException ex)
{

}
finally
{
     if(con!=null)
         con.Close();
}
GridView1.DataSource = ds;
GridView1.DataBind();
相关问题