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"],取决于我希望我的下拉菜单显示它下面的条目如果 SKY 是 Session["name"] 那么 dropdwonlist 应该显示 EAGLE CROW DUCK

4

3 回答 3

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 回答
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"] value is 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

        }

另请查看本教程:第 4 课:使用 SqlDataReader 读取数据

最好的祝福

于 2013-06-21T05:31:48.293 回答
0

你应该像下面这样使用

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