如何获取Dropdownbox C#ASP.NET的Datasource()

如何获取Dropdownbox C#ASP.NET的Datasource(),c#,asp.net,C#,Asp.net,我有表tblDepartments,其中列DeptID,Department,Description。我还有dropdownboxdrpDepartments。我想在下拉框中显示部门列的内容。我尝试在winforms中使用此C#代码,但没有成功: drpDepartments.DataSource = dsDep.Tables["tblDepartment"]; drpDepartments.DisplayMember = "Department";

我有表
tblDepartments
,其中列
DeptID,Department,Description
。我还有dropdownbox
drpDepartments
。我想在下拉框中显示
部门
列的内容。我尝试在winforms中使用此C#代码,但没有成功:

        drpDepartments.DataSource = dsDep.Tables["tblDepartment"];
        drpDepartments.DisplayMember = "Department";
        drpDepartments.ValueMember = "DeptID";
        drpDepartments.Text = "Choose Department";
如何使用ASP.NET C#进行此操作?谢谢

新代码(仍不工作)

您是否调用了DataBind()


在asp.net webForms中必须这样称呼它

        drpDepartments.DataSource = dsDep.Tables["tblDepartment"];// Set DataSource Table First
        drpDepartments.DataTextField = "Department";// Set Column Name of DataTable to set as Text Field
        drpDepartments.DataValueField = "DepartmentID";// Set Column Name of DataTable to set as Value Field
        drpDepartments.DataBind();
您必须从
使用System.Web.UI.WebControls使用它名称空间。您似乎在使用winforms名称空间

DataTextField
相当于
DisplayMember
ValueMember
相当于
DataValueField

drpDepartments.DataSource = ds1;
drpDepartments.DataTextField = "textcol";
drpDepartments.DataValueField = "valuecol";
drpDepartments.DataBind();
在btn_保存方法中执行此操作后 加上这个

希望能有帮助


缺少drpDepartments.Databind()。此外,您还可以在“说明”中检查此链接,您可以列出列名
DeptID,Department
,但在“代码使用
DepartmentID,Department
”中,是否确实使用了正确的列名称?请使用
部门
而不是
针对
数据文本字段
属性选择部门
。代码在哪个事件处理程序中?我收到此错误
'drpDepartments'有一个SelectedValue,该值无效,因为它在项目列表中不存在。
这是一个单独的属性您询问的问题。您必须设置drpDepartments.SelectedValue=???在某个地方,您正在设置的值在下拉项列表中不存在(它会查找具有相同值的项)。仍然没有显示,但错误已消失。请检查我是否已更新代码此代码没有任何意义。它将有效地创建一个空下拉列表,因为数据源是一个新实例化的DataTable?我应该使用什么?web命名空间中没有
DisplayMember
ValueMember
属性。所以我假设您使用的是一些winforms名称空间
namespace绑定下拉列表。
选择Department
DepartmentID
必须是DataTable中的列名称。调试时检查VisualStudio中填充的数据表
        drpDepartments.DataSource = dsDep.Tables["tblDepartment"];// Set DataSource Table First
        drpDepartments.DataTextField = "Department";// Set Column Name of DataTable to set as Text Field
        drpDepartments.DataValueField = "DepartmentID";// Set Column Name of DataTable to set as Value Field
        drpDepartments.DataBind();
drpDepartments.DataSource = ds1;
drpDepartments.DataTextField = "textcol";
drpDepartments.DataValueField = "valuecol";
drpDepartments.DataBind();
 cmd.Parameters.AddWithValue("@a", drpDepartments.SelectedValue);