我有一个下拉列表来选择学生姓名。当我在下拉列表中选择学生姓名时,网格视图必须显示所选名称的详细信息。 这是我对此的编码,但它没有显示任何内容。
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代码,用于获取所选值的详细信息。但它没有任何用处。
答案 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();