asp.net 下拉列表 SQL 表中不存在的默认值
本文关键字:不存在 默认值 net 下拉列表 SQL asp | 更新日期: 2023-09-27 18:35:45
嗨,这是我在这个网站上的第一个问题
我有一个带有下拉列表的 Web 表单,该表单是从我的数据库 sql-server 2012 填充的。
我的表具有 genderID 和 genderName 等值,它会填充下拉列表,但我还想在页面加载事件触发"选择性别"时显示默认值。
我可以将此值添加到要在下拉列表中显示的数据库中,但这不是完美的解决方案,因为这意味着我在 sql server 中输入了一个不是有效数据的数据。 如何在下拉列表中显示此默认值,该值在SQL Server表中实际上并不存在。
我的代码隐藏:
using(SqlConnection con = new SqlConnection(cs))
{
using(SqlCommand cmd = new SqlCommand("select * from dbo.Gender", con))
{
con.Open();
DropDownList1.DataSource = cmd.ExecuteReader();
DropDownList1.DataTextField = "GenderName";
DropDownList1.DataValueField = "ID";
DropDownList1.DataBind();
}
}
当页面加载时,它应该在下拉列表中显示"选择性别"。
您不必在数据库中添加条目即可在下拉列表中显示该默认值。只需初始化 ListItem 对象并将其插入到索引 0 处的下拉列表中即可。
请记住,您的下拉列表是ListItem对象的集合,因此请初始化ListItem类型的对象并将其添加到下拉列表中。
像...
using(SqlConnection con = new SqlConnection(cs))
{
using(SqlCommand cmd = new SqlCommand("SELECT * FROM dbo.Gender", con))
{
con.Open();
DropDownList1.DataSource = cmd.ExecuteReader();
DropDownList1.DataTextField = "GenderName";
DropDownList1.DataValueField = "ID";
DropDownList1.DataBind();
ListItem li = new ListItem("Select Gender", "-1");
DropDownList1.Items.Insert(0, li);
}
}
将数据绑定到下拉列表后,执行以下操作:
DropDownList1.Items.Insert(0, new ListItem("Select gender","")
另一种选择是在 select 语句中使用 UNION ALL 添加项目。
下面是示例:
using(SqlConnection con = new SqlConnection(cs))
{
using(SqlCommand cmd = new SqlCommand("select 'Select Gender' genderName, 0 genderID UNION ALL select genderName, genderId from Gender", con))
{
con.Open();
DropDownList1.DataSource = cmd.ExecuteReader();
DropDownList1.DataTextField = "genderName";
DropDownList1.DataValueField = "genderID";
DropDownList1.DataBind();
}
}
绑定
后,这样的事情会起作用:
DropDownList1.Items.Insert(0, new ListItem("Select Gender","-1")