Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将特定值从数据库加载到dropdownlist?_C#_Asp.net_Sql Server - Fatal编程技术网

C# 如何将特定值从数据库加载到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_

我有一个返回数据的查询。实际上,它只需要返回一行数据,但我必须从不同的表中获取多条记录,它们包含一个主属性的多个值。根据查询,我得到了几行。现在,我想将列的一个单元格中的一个记录加载到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           
这就是我绑定数据的方式

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使用相同的代码,但只有第一个有效。“你知道这是为什么吗?”莫希特说,“我犯了一个小错误,我可以找出原因。”。