我是新手,除了创建一个小的Asp.net c#项目。
我有一个将数据填充到数据库表的表单和一个快速概述数据网格,它重新填充from我应该在该数据网格上编辑一行。
我创建了一个单独的优先级数据库表/列表来测试表单上的下拉列表,值L,VL,M,H,VH只有这些没有添加删除。我能够将列表拉到下拉框中,并且可以看到所有5个值,但是列表很大并且包含另外45个空项。
如果我改变了ddl_priority.DataTextField =“ID”;
从上到下的列表显示1到45然后1,2,3,4,5后来是我的值,我试图用“SQL Where”限制值,但它没有工作
下拉列表的代码是:
public void Populate_priority_dropdownlist()
{
ad = new SqlDataAdapter("select * FROM x_priority_list_tbl", con);
//ad = new SqlDataAdapter("select [Priority] FROM [x_priority_list_tbl] where [ID] < 7 ", con);
ad.Fill(ds, "s");
dt = ds.Tables["s"];
ddl_priority.DataSource = dt;
ddl_priority.DataValueField = "Priority";
ddl_priority.DataTextField = "Priority";
ddl_priority.DataBind();
}
必须在某处设置?
答案 0 :(得分:1)
我猜你有一些null
的表条目作为Priority(或PriorityName?)列值的值。可能你应该解决这个问题。您始终可以在select查询中添加where条件,以便仅显示具有有效PriorityName值的记录。
ad = new SqlDataAdapter("select * FROM x_priority_list_tbl
WHERE PriorityName is not null and PriorityName<>''", con);
同时将ID设置为DataValueField
属性值,并将PriorityName
设置为文本字段。
ddl_priority.DataValueField = "ID";
ddl_priority.DataTextField = "PriorityName";
假设您的表格中包含名称为ID
和PriorityName
的列。如果您的列名不同,您可以在代码中相应地更改它。