0

学生名を選択するためのドロップダウン リストが 1 つあります。ドロップダウン リストで学生名を選択すると、選択した名前の詳細がグリッド ビューに表示されます。これは私のコーディングですが、何も表示されませんでした。

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コードですが、何もしませんでした。

4

3 に答える 3

1

VALUET-SQLの予約済みキーワードです。次のような角括弧で使用します[VALUE]

代わりにパラメータ化されたクエリを使用してください。この種の文字列連結は、SQL インジェクション攻撃に対してオープンです。

SqlCommand cmd = new SqlCommand("SELECT [VALUE], VDESC FROM CSOPTFD WHERE OPTFIELD = 'WONO' AND [VALUE] LIKE '%' + @value + '%'", con);
cmd.Parameters.AddWithValue("@value", customerddl.SelectedValue);
于 2013-10-01T07:54:46.687 に答える
0

CustomerId 、 Text のように、ドロップダウンを正しくバインドしましたか?その後、 PostBack True で Selected_Index_Changed イベントからこのコードを呼び出していますか?

于 2013-10-01T10:59:17.257 に答える
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();
于 2013-10-15T08:35:04.403 に答える