簡體   English   中英

如何將特定值從數據庫加載到下拉列表?

[英]How to load a specific value from a database to dropdownlist?

我有一個查詢,返回一個數據。 實際上,它只需要返回一行數據,但是我必須從不同的表中獲取幾條記錄,並且它們包含一個主要屬性的多個值 根據查詢,我得到幾行。 現在, 我想將一條記錄(一列的一個單元格)加載到下拉列表中。 我該怎么做?
這是我的查詢

select emp.[App_no] 
    ,emp.[EMP_CALLING_NAME]
    ,emp.[EMP_INI]
    ,emp.[EMP_SURNAME]
    ,emp.[EMP_TITLE]
    ,emp.[EMP_NAMES_INI]
    ,emp.[EMP_FULLNAME]
    ,emp.[EMP_NIC]
    ,emp.[EMP_dob]
    ,emp.[EMP_GENDER]
    ,emp.[NAT_CODE]
    ,emp.[EMP_MARITAL_STATUS] 
    ,emp.[EMP_DATE_JOINED]
    ,emp.[EMP_CONFIRM]
    ,emp.[CX_CODE]
    ,emp.[DSMG_CODE]
    ,emp.[CAQT_CODE]
    ,emp.[EMP_PER_ADDRESS1]
    ,emp.[EMP_PER_ADDRESS2]
    ,emp.[EMP_PER_ADDRESS3]
    ,emp.[EMP_PER_CITY]
    ,emp.[EMP_PER_TELEPHONE]
    ,emp.[EMP_PER_MOBILE]
    ,emp.[EMP_PER_PROVINCE]
    ,emp.[EMP_PER_DISTRICT]
    ,emp.[EMP_TEM_ADDRESS1]
    ,emp.[EMP_TEM_ADDRESS2]
    ,emp.[EMP_PER_ELECTORATE]
    ,emp.[EMP_TEM_ADDRESS3]
    ,emp.[EMP_TEM_CITY]
    ,emp.[EMP_PER_GD]
    ,bank.[BBRANCH_CODE]
    ,bank.[EBANK_ACC_NO]
    ,bank.[EBANK_ACC_TYPE_FLG]
    ,bank.[EBANK_ACTIVE_FLAG]
    ,bank.[LAST_MODIFIED_DATE]
    ,qual.[Qulif_code]
    ,lang.[lang_code]
    ,lang.[ability_type]
    ,ex.[From_date]
    ,ex.[To_date]
    ,ex.[Organization]
    ,ex.[designation]
    ,ex.[Cobtact_No]
    ,nation.[NAT_NAME]
    from [EMPLOYEE] emp, [EMP_BANK] bank,
    [QUALIF] qual, [LANG] lang,
    [Experience] ex, [NATIONALITY] nation
    where emp.App_no = bank.App_no and emp.App_no = qual.App_No 
    and emp.App_no = lang.App_no and nation.NAT_CODE = emp.[NAT_CODE]
    and emp.App_no = ex.App_no and emp.App_no=@num           

這就是我綁定數據的方式

ddlDesignations.DataSource = ds.Tables[0];
ddlDesignations.DataTextField = "designation";
ddlDesignations.DataValueField = "designation";
ddlDesignations.DataBind();              

這是下拉列表的顯示方式
下拉列表的圖像

這可能會解決問題

DataView view = new DataView(ds.Tables[0]);
DataTable distinctValues = view.ToTable(true, "designation");
ddlDesignations.DataSource = distinctValues;
ddlDesignations.DataTextField = "designation";
ddlDesignations.DataValueField = "designation";
ddlDesignations.DataBind();

在這里,ToTable()中的第一個參數是一個布爾值,指示是否要使用不同的行。 ToTable()中的第二個參數是列名,我們必須根據該列名選擇不同的行。 僅這些列將在返回的數據表中。

您可以為此使用LINQ

var distinctdesignations = ds.Tables[0].AsEnumerable()
                           .Select(row => new {
                             designation = row.Field<string>("designation")
                           })
                           .Distinct();


ddlFamilyMembers.DataTextField = "designation"; 
ddlFamilyMembers.DataValueField = "designation;  
ddlFamilyMembers.DataSource = distinctdesignations;
ddlFamilyMembers.DataBind();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM