首页 > 解决方案 > 如何按字母对组合框中的项目进行排序

问题描述

我使用此代码填充组合痘中的搜索结果记录,它运行良好..

    da = New SqlDataAdapter("Select * From MovTable where NameOfMov like '" & AlphaCB.Text & "%'", sqlcon)
    da.Fill(dt0)
    SearchResultCbB1.DataSource = dt0
    SearchResultCbB1.ValueMember = "NameOfMov"

但我需要一些改变来使组合痘按字母排序

谢谢

标签: vb.net

解决方案


当您将 ComboBox 的数据源附加到数据表 ( dt0) 时,它实际上附加到.DefaultView表的 DataView。这意味着您可以设置.Sort视图的属性来对组合进行排序:

dt0.DefaultView.Sort = "[NameOfMov] ASC";
SearchResultCbB1.DisplayMember = "NameOfMov" 'this shows in the combo
SearchResultCbB1.ValueMember= "ID" 'you probably want an ID, not the movie name, for this
SearchResultCbB1.DataSource = dt0

您可以随时更改此排序属性。有关您可以使用它的更多信息,请参阅文档

请不要像那里那样编写 SQL;这是一个巨大的安全漏洞。有关原因的更多信息,请阅读http://bobby-tables.com - 它还将提供有关如何防止它的建议,但实际上您应该考虑升级您的知识以使用 Entity Framework 或Dapper进行数据访问,并且再也不会, 曾经将一个值连接到一个 SQL 字符串中


推荐阅读