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
Session["name"]
可以是SKY / SEA / LAND,根据我的要求,我希望我的下拉菜单显示下面的条目如果SKY是Session [“name”],那么dropdwonlist应显示EAGLE CROW DUCK
答案 0 :(得分:0)
你试过吗?
while (dr.read()){
Dropdownlist1.Items.Add(dr["Name"].ToString());
}
如果你只想获得一次而不必指定列名,那么你可以使用GetString(0),如:
while (dr.read()){
Dropdownlist1.Items.Add(dr.GetString(0));
break;
}
答案 1 :(得分:0)
根据您的问题,您将会话[[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]
删除查询中的单引号,让我们说:会话[“名称”]值为 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
}
另请参阅本教程:Lesson 04: Reading Data with the SqlDataReader
最好的问候
答案 2 :(得分:0)
你应该使用如下
while (dr.read()){
ListItem l = new ListItem(dr["name"].ToString(), "value", true);
Dropdownlist.Items.Add(l);
}