0

数据库表结构:Store(id, storeName, country, region, area,continent)

Location ( DropDownList) 下的 UI 上,我必须将国家、地区、地区、大陆显示为一个列表。假设当用户单击位置时DropDownList,每个项目应该是国家或地区或地区或大陆。

我可以从不同的论坛中看到,大多数人都在尝试将数据合并DropDownList为名称(名字+姓氏),其中两列值显示为一个项目。但是,我试图得到相反的结果,但还没有成功。

假设,国家(美国、英国)、地区(东部、西部)、地区(东部 1、东部 2)、大陆(欧洲、亚洲)

地点

美国
英国
东西

1
欧洲
亚洲
......

到目前为止我尝试过的是

        DataTable dt = new DataTable();
        using (SqlConnection con = new SqlConnection("Data Source=sesqlAB\\APP;Database=BD12;user id=id;password=pwd;Persist Security Info=true;"))
        {
            con.Open();
            SqlCommand cmd = new SqlCommand("Select country,region,area, continent as CombinedLocation from Store", con);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt);
        }

        _UIDDListLocation.DataSource = dt;
        _UIDDListLocation.DataTextField = "CombinedLocation";
        _UIDDListLocation.DataValueField = "CombinedLocation";
        _UIDDListLocation.DataBind();    

问题:在 SQL 语句中使用逗号,我总是在 DropDownList 中得到最后一个选定的。如果我使用 + 号,那么我会并排获得列值,我不希望这样。

任何的想法?

4

1 回答 1

0

立即解决您的问题将是使用SQL UNION. 像这样的东西:

SELECT Country AS CL FROM STORE 
UNION
SELECT Region AS CL FROM STORE 
UNION
SELECT Area AS CL FROM STORE 
UNION
SELECT Continent AS CL FROM STORE 

进而,

....ListLocation.DataValueField = "CL"
于 2013-10-10T10:16:30.137 回答