Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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# 使用特定值加上sql查询中的值数组填充dropdownlist_C#_Asp.net - Fatal编程技术网

C# 使用特定值加上sql查询中的值数组填充dropdownlist

C# 使用特定值加上sql查询中的值数组填充dropdownlist,c#,asp.net,C#,Asp.net,我对dropdownlists这个奇妙的世界还很陌生,我知道这对我来说很难解释,但我会尽我所能 以下是我的数据: **类型****ID****状态** 信1 A 信2 B 信3 C 信4 D 信5 E 从我的查询结果中,我返回ID“3”,我的下拉列表显示“C”。我已经完成了这篇文章:)。我的问题是,如何用状态填充dropdownlist?我的DDL将显示一个“C”,单击箭头时,将显示其余的状态值 这是sql查询可以完成的吗?我必须创建一个单独的方法吗?如果有人能给我指出正确的方向,或者提供一些

我对dropdownlists这个奇妙的世界还很陌生,我知道这对我来说很难解释,但我会尽我所能

以下是我的数据:

**类型****ID****状态**
信1 A
信2 B
信3 C
信4 D
信5 E
从我的查询结果中,我返回ID“3”,我的下拉列表显示“C”。我已经完成了这篇文章:)。我的问题是,如何用状态填充dropdownlist?我的DDL将显示一个“C”,单击箭头时,将显示其余的状态值

这是sql查询可以完成的吗?我必须创建一个单独的方法吗?如果有人能给我指出正确的方向,或者提供一些有用的代码,那就太棒了!这是我的密码:

SqlDataAdapter adapter = new SqlDataAdapter("SELECT Status FROM dbo.database WHERE ID = @ID AND Type = 'Letter'", mySqlConnection1);
adapter.SelectCommand.Parameters.Add("@ID", SqlDbType.Char).Value = lblID.Text;
adapter.Fill(test);

ddlStatus.DataSource = test;
ddlStatus.DataTextField = "Status";
ddlStatus.DataValueField = Status";
ddlStatus.DataBind();

我想你要找的是SelectedValue

 ddlStatus.DataSource = test;
 ddlStatus.DataTextField = "Status";
 ddlStatus.DataValueField = "ID";
 ddlStatus.DataBind();

 //Add this line
 string defaultValue = "3";
 ddlStatus.SelectedValue = defaultValue; //C has ID of 3

我想这就是你想要的:

SqlDataAdapter adapter = new SqlDataAdapter(
    "SELECT ID, Status FROM dbo.database WHERE Type = 'Letter'", 
    mySqlConnection1);
adapter.Fill(test);

ddlStatus.DataSource = test;
ddlStatus.DataTextField = "Status";
ddlStatus.DataValueField = "ID";
ddlStatus.DataBind();

ddlStatus.SelectedValue = lblID.Text;
首先,用所需的值填充下拉列表,然后设置SelectedValue以自动显示该值。据我所知,您希望向用户显示状态,但实际选择的值应该是ID


根据您对ViewState的使用情况,您可能只需要加载DropDownList一次(当页面首次加载时),然后简单地设置SelectedValue。(您需要在第二次加载页面时重新加载列表。使用
IsPostBack
值确定是否重新加载)。但是,每次重新加载都没有什么害处,只是页面加载时间增加了几分之一秒。

他们感谢cyborg。我正在研究你的解决方案,过几天会给你回复。