C# 如何将特定值从数据库加载到dropdownlist?
我有一个返回数据的查询。实际上,它只需要返回一行数据,但我必须从不同的表中获取多条记录,它们包含一个主属性的多个值。根据查询,我得到了几行。现在,我想将列的一个单元格中的一个记录加载到dropdownlist。我怎么做? 这是我的问题C# 如何将特定值从数据库加载到dropdownlist?,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我有一个返回数据的查询。实际上,它只需要返回一行数据,但我必须从不同的表中获取多条记录,它们包含一个主属性的多个值。根据查询,我得到了几行。现在,我想将列的一个单元格中的一个记录加载到dropdownlist。我怎么做? 这是我的问题 select emp.[App_no] ,emp.[EMP_CALLING_NAME] ,emp.[EMP_INI] ,emp.[EMP_SURNAME] ,emp.[EMP_TITLE] ,emp.[EMP_NAMES_
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
这就是我绑定数据的方式
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();
这是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
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进行此操作
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
您想在下拉列表中显示哪一列?@Ahmar[designation]column我想避免在下拉列表中重复相同的记录如果您只需要在UI中显示指定,那么为什么要获取这么多不相关的值?与答案无关,一个一般性建议-停止使用垃圾值进行测试,您可能会感到困惑。下拉列表上只显示[designation]列,然后从数据库端更改查询仅返回[designation]列。这很有效。谢谢你的回答。我会接受的,谢谢你的帮助。快乐编码:@Mohit我试图对界面中的其他几个dropdownlists使用相同的代码,但只有第一个有效。“你知道这是为什么吗?”莫希特说,“我犯了一个小错误,我可以找出原因。”。