【问题标题】:How I Do Filter Data in ComboBox Vb.Net我如何在 ComboBox Vb.Net 中过滤数据
【发布时间】:2019-12-11 06:53:47
【问题描述】:

enter image description here我需要帮助,因为我在Combobox 中有一些国家/地区名称。我想要从 (A) 开始的第一个节目,然后从 (B) 开始按字母顺序显示。

Dim connection As New SqlConnection("Data Source=PC1-PC;Initial Catalog=Test2;Integrated Security=True")
Dim command As New SqlCommand("select * from Table_6", connection)
Dim adapter As New SqlDataAdapter(command)
Dim table As New DataTable()

adapter.Fill(table)
ComboBox1.DataSource = table
ComboBox1.DisplayMember = "Country"

【问题讨论】:

  • 那么你是要过滤数据还是排序呢?请提供对问题的完整和清晰的解释,包括您尝试解决问题的详细信息。你提供的内容太模糊了。
  • 亲爱的,我在组合框中有 ad sql server 列,现在我希望所有从 a 开始的单词,它们显示的第一秒显示 b 的单词
  • @SamuelLiew 我早就建议过,但 OP 没有足够的聊天积分。
  • 版主已将讨论移至 Chat,但我认为您没有足够的代表参与聊天。对不起。持续时间过长的讨论被转移。
  • 我现在做什么来解决我的问题

标签: sql-server vb.net


【解决方案1】:

建立您所在国家/地区的列表。然后对列表进行排序并添加到组合框。

Private Sub OpCode()
    Dim Countries As New List(Of String) From {"Cabo Verde", "Ecuador", "Haiti", "Iraq", "El Salvador", "Djibouti", "France", "Bahrain",
   "Cameroon", "Guinea", "Albania", "Finland", "Italy", "Jordan", "Grenada", "Dominica"}
    Countries.Sort()
    ComboBox1.Items.AddRange(Countries.ToArray)
End Sub

编辑

好的,我正在呼叫您感兴趣的领域"CountryName"。我假设它是表中的第二个字段,即索引1

Using...End Using 语句可确保您的数据库对象即使出现错误也已关闭和处置。你不需要DataAdapter;只需加载DataTable

对列表进行排序的最佳方法是让数据库通过添加Order By 子句来完成工作。

Private Function GetCountryNames() As DataTable
    Dim dt As New DataTable
    Using cn As New SqlConnection("Data Source=PC1-PC;Initial Catalog=Test2;Integrated Security=True"),
            cmd As New SqlCommand("Select * From Tabel_6 Order By CountryName;", cn)
        cn.Open()
        dt.Load(cmd.ExecuteReader)
    End Using
    Return dt
End Function

Private Sub FillSortedCountriesCombo()
    ComboBox1.DataSource = GetCountryNames()
    ComboBox1.DisplayMember = "CountryName"
End Sub

如果出于某种原因,您需要在代码中进行排序,那么...

Private Sub FillUnsortedCountriesCombo()
    Dim dt = GetCountryNames()
    Dim CountriesArray = (From row In dt.AsEnumerable
                          Order By row.Field(Of String)(1)
                          Select row("CountryName")).ToArray
    ComboBox1.Items.AddRange(CountriesArray)
End Sub

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
  • 2011-11-26
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多