0

ドロップダウン リストに基づいて、データベースから値を選択したいと考えています。私のデータベースには、フィールド値を持つテーブルが含まれています: id(primary key),name,fullname,depat.

マイwebform1.aspxページにはドロップダウンリストがGridviewあり、SqlDatasource.

これは私のWebform1.aspx.csコードです:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    string s = DropDownList1.SelectedValue.ToString();

    SqlConnection con = new SqlConnection(
        ConfigurationManager.ConnectionStrings["ztvConnectionString"].ConnectionString);
    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Table1 where name=depat", con);
    DataTable dt = new DataTable();
    da.Fill(dt);
    GridView1.DataSource = dt;
    GridView1.DataBind();
}

ドロップダウン リストから値を選択した後、データは表示されません。エラーはどこにありますか?

4

3 に答える 3

1

あなたのコードから読んで、あなたがしたいことは、名前= depatであるTable1からのデータでGridView1を埋めることです、それは本当にあなたが望むものですか?たぶん、あなたはあなたが望むものをより明確にすることができます。

選択した値に基づいてデータを取得する場合は、次のようにする必要があります。

SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Table1 where name='" + s + "'", con);

ただし、パラメータ化されたクエリを使用し、最初にSqlCommandを作成することを強くお勧めします

SqlCommand cmd = new SqlCommand("SELECT * FROM Table1 WHERE name = @name", conn)
cmd.Parameters.Add("@name", SqlDbType.NVarChar);
cmd.Parameter["@name"].Value = s;

SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);

編集:

特定の部門のすべてのデータを取得する場合:

string s = DropDownList1.SelectedValue.ToString();

//SqlConnection...

SqlCommand cmd = new SqlCommand("SELECT * FROM Table1 WHERE depat = @depat", conn)
cmd.Parameters.Add("@depat", SqlDbType.NVarChar);
cmd.Parameter["@depat"].Value = s;

SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);

GridView1.DataSource = dt;
GridView1.DataBind();
于 2013-03-22T01:19:20.257 に答える
0

私はルリーが答えを得たと信じていました=)

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string s = DropDownList1.SelectedValue.ToString();

SqlConnection con = new SqlConnection(
    ConfigurationManager.ConnectionStrings["ztvConnectionString"].ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Table1 where name=@name", con);
cmd.Parameters.Add("@name", s);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
于 2013-03-22T02:50:16.040 に答える
0

明らかなことを除外するために、Management Studio で SQL ステートメント「SELECT * FROM Table1 where name=depat」を実行すると、レコードが返されますか?

于 2013-03-22T01:23:07.553 に答える