-1

嗯,这是我的问题,如果我有一个数据表“Student”,里面的“Section”列是 BE701P、BE101P、BE701P、BE701P、BE101P,我该如何防止组合框中的双重显示。我只想显示这样的“BE701P和BE101P”组合框以防止冗余显示,这可能吗?

   Private Sub section()
    Try
        conn = New OleDbConnection(Get_Constring)
        Dim sSQL As String = ("SELECT [section] FROM student where username like'" & Administrator.lblusername.Text & "%' ")
        Dim da As New OleDbDataAdapter(sSQL, conn)
        Dim ds As New DataSet
        da.Fill(ds)
        cmbsection.ValueMember = "section"
        cmbsection.DataSource = ds.Tables(0)
        cmbsection.SelectedIndex = 0
    Catch ex As Exception
        MsgBox("ERROR : " & ex.Message.ToString)
    End Try
End Sub

它将所有数据显示到组合框中并进行冗余显示。因为我想防止冗余。我很乐意接受任何建议。

4

2 回答 2

1

为什么不在DISTINCT您的 sql 查询中使用,例如:

 Dim sSQL As String = ("SELECT DISTINCT [section] FROM student 
 where username like'" &   Administrator.lblusername.Text & "%' ")

有关 mysql 示例,请参见此处的链接(尽管您没有指定 DBMS)。

于 2013-10-05T03:35:39.560 回答
1

您可以从仅显示不同记录的 DataTable 的默认 DataView 创建一个 DataTable。使用这种方法的优点是您可以将所有记录保留在原始 DataTable 中(可能用于其他一些绑定)。另请注意,这是客户端操作,因此如果有很多客户端执行此操作,您可以为服务器节省一些处理工作。

语法类似于:

 ds.Tables(0).DefaultView.ToTable(True, {"section"})
于 2013-10-05T03:50:17.770 回答