c#如何向下拉列表从数据库加载一个特定的值?

标签: Asp.net SQLServer C#
发布时间: 2017/2/25 3:40:45
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个查询返回的数据。实际上,它有只返回一行的数据,但我不得不采取几个不同的表中的记录和它们包含几个值的一个主要属性。在那里按查询我得到几个行。现在我想要加载记录 (列的一个单元格) 向下拉列表之一。如何能做到?
这是我的查询

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();              

这是下拉列表中的显示方式
image of the dropdownlist

解决方法 1:

这可能做的伎俩

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() 中的第二个参数是列的名称的基础上,我们要选择不同的行。只有这些列将返回 datatable 中。

官方微信
官方QQ群
31647020