0
SqlConnection con = new SqlConnection("My path");
SqlCommand cmd;
SqlDataReader dr;

Label1.Text = Session["name"].ToString();

con.Open();
cmd = new SqlCommand("Select '"+Session["name"]+"' from table1",con);
dr = cmd.ExecuteReader();

while(dr.read()){
   Dropdownlist1.Items.Add();   ------->Stuck here
}

3 つ以上のエントリを持つテーブルから列を選択しています。そして、それらをドロップダウンリストに入れたいです。さまざまなアプローチを試しましたが、必要な出力が得られません。エラーを表示するか、最初のエントリのみを表示します。

私のコードを自由に編集して、適切なアイデアを提供してください。

ありがとう

これは私のテーブルです:

SKY  |  SEA  | LAND
-----------------------
EAGLE| SHARK | LION
CROW | FISH  | TIGER
DUCK | WHALE | DEER   

SKY/SEA/LAND はどこSession["name"]にあり、それに応じて、ドロップダウンにその下のエントリを表示する必要があります。IF SKY が Session["name"] の場合、dropdwonlist には EAGLE CROW DUCK が表示されます

4

3 に答える 3

0

以下のように使用する必要があります

while (dr.read()){
  ListItem l = new ListItem(dr["name"].ToString(), "value", true);
  Dropdownlist.Items.Add(l);
}
于 2013-06-21T05:49:47.333 に答える
0

質問に基づいて、テーブルの列名である Session["name"] を選択クエリに渡します。

コードを変更する必要もあります。

あなたの Session["name"] 値がSKY​​ だとしましょう

"Select '"+Session["name"]+"' from tableA" --session["name"] is treated here as a string

Select 'Session[Name]' from TableAこれはどちらが間違っているかとしてレンダリングされます。結果は次のようになります。

Session[Name]
Session[Name]
Session[Name]

クエリの一重引用符を削除して、たとえば、Session["name"] の値がSKY​​ であるとします。

cmd = new SqlCommand("Select "+Session["name"].ToString()+" from table1",con);

クエリは->Select SKY from table1

そして選択結果

EAGLE 
CROW 
DUCK

もしそうなら、これを試してください:

SqlConnection con = new SqlConnection("My path");
SqlCommand cmd;
SqlDataReader dr;

Label1.Text = Session["name"].ToString();

con.Open();
cmd = new SqlCommand("Select "+Session["name"].ToString()+" from table1",con);
dr = cmd.ExecuteReader();

       while (dr.Read())
        {
                   // get the results of each column
                   Dropdownlist1.Items.Add(dr[0].ToString()); //this will get your first column even your Session["name"] will contain any column values

        }

このチュートリアルも確認してください:レッスン 04: SqlDataReader を使用したデータの読み取り

よろしくお願いします

于 2013-06-21T05:31:48.293 に答える
0

やってみました?

 while (dr.read()){
      Dropdownlist1.Items.Add(dr["Name"].ToString());
 }

列名を指定せずに一度だけ取得したい場合は、次のように GetString(0) を使用できます。

 while (dr.read()){
      Dropdownlist1.Items.Add(dr.GetString(0));
      break;
 }
于 2013-06-21T05:20:54.683 に答える