我正在使用下拉列表值从数据库绑定我的代码
Public Function get_type() As String
'get type
If IsPostBack = False Then
da = New OleDbDataAdapter("select (type) from prod_type", con)
da.Fill(ds, "prod_type")
ddtype.DataSource = ds
ddtype.DataTextField = "type"
ddtype.DataValueField = "type"
ddtype.DataBind()
da.Dispose()
ds.Dispose()
con.Close()
End If
我在页面加载中调用此函数
答案 0 :(得分:1)
编辑:忽略这一点,这是错误的:
这是一个SQL问题,而不是asp.net或VB问题。 您的sql不会从prod_type表中选择唯一的“类型”。执行以下SQL:
select distinct(type) from prod_type
另请阅读发布常见问题解答:https://stackoverflow.com/faq
答案 1 :(得分:0)
有两种情况,这些值会在DropDownList
这里重复:
数据库中有重复的值。
您在第一次加载页面时多次调用该函数。
您可以在select语句中使用DISTINCT来解决第一种情况:
SELECT DISTINCT type FROM prod_type
您可以通过将TableAdapter.ClearBeforeFill
属性的值设置为 true 来解决秒。
答案 2 :(得分:0)
像这样修改:
Public Function get_type() As String
'get type
If IsPostBack = False Then
ds.Clear() //new
ddtype.Items.Clear() //new
da = New OleDbDataAdapter("select (type) from prod_type", con)
da.Fill(ds, "prod_type")
ddtype.DataSource = ds
ddtype.DataTextField = "type"
ddtype.DataValueField = "type"
ddtype.DataBind()
da.Dispose()
ds.Dispose()
con.Close()
End If
如果您仍然有重复的条目,那应该是因为您在数据库中有重复项。