Vb.net 如何按字母表对组合框中的项目进行排序
我用这段代码在combo pox中填充搜索结果记录,效果很好Vb.net 如何按字母表对组合框中的项目进行排序,vb.net,Vb.net,我用这段代码在combo pox中填充搜索结果记录,效果很好 da = New SqlDataAdapter("Select * From MovTable where NameOfMov like '" & AlphaCB.Text & "%'", sqlcon) da.Fill(dt0) SearchResultCbB1.DataSource = dt0 SearchResultCbB1.ValueMember = "NameOfMov" 但
da = New SqlDataAdapter("Select * From MovTable where NameOfMov like '" & AlphaCB.Text & "%'", sqlcon)
da.Fill(dt0)
SearchResultCbB1.DataSource = dt0
SearchResultCbB1.ValueMember = "NameOfMov"
但我需要一些改变,使组合按字母排序
谢谢当您将组合框的数据源附加到数据表(
dt0
)时,它实际上附加到表的.DefaultView
数据视图。这意味着您可以设置视图的.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;这是一个巨大的安全漏洞。有关原因的更多信息,请阅读-它还将提供如何预防的建议,但实际上,您应该考虑升级您的知识,以使用实体框架或进行数据访问,并且当您将组合框的数据源附加到数据表(
dt0
)时,再也不要将值连接到SQL字符串中它实际上附加到表的.DefaultView
数据视图。这意味着您可以设置视图的.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;这是一个巨大的安全漏洞。有关原因的更多信息,请阅读-它还将提供有关如何预防的建议,但实际上,您应该考虑升级您的知识,以使用实体框架或进行数据访问,并且不再将值连接到SQL字符串中这是我问题的另一个正确答案
da = New SqlDataAdapter("Select * From MovTable where NameOfMov like '" & AlphaCB.Text & "%' order by NameOfMov ", sqlcon)
我只需要加上一句“莫夫名下的订单”
不需要这么麻烦。这是我问题的另一个正确答案
da = New SqlDataAdapter("Select * From MovTable where NameOfMov like '" & AlphaCB.Text & "%' order by NameOfMov ", sqlcon)
我只需要加上一句“莫夫名下的订单”
不需要所有这些麻烦。请始终使用参数来避免sql注入,并使sql查询字符串更易于编写。我不得不猜测参数的数据类型和大小。请检查数据库中的实际值并调整代码 关闭数据库对象并使用
Using…End Using
块处理后,用户界面将更新
Private Sub OPCode()
Dim dt0 As New DataTable
Using sqlcon As New SqlConnection("Your connection string"),
da As New SqlDataAdapter("Select * From MovTable where NameOfMov like @Name Order By NameOfMov;", sqlcon)
da.SelectCommand.Parameters.Add("@Name", SqlDbType.NVarChar, 400).Value = AlphaCB.Text & "%"
da.Fill(dt0)
End Using
SearchResultCbB1.DataSource = dt0
SearchResultCbB1.DisplayMember = "NameOfMov"
SearchResultCbB1.ValueMember = "MovieID" 'The Primary Key field in you Database
End Sub
请始终使用参数以避免sql注入,并使sql查询字符串更易于编写。我不得不猜测参数的数据类型和大小。请检查数据库中的实际值并调整代码 关闭数据库对象并使用
Using…End Using
块处理后,用户界面将更新
Private Sub OPCode()
Dim dt0 As New DataTable
Using sqlcon As New SqlConnection("Your connection string"),
da As New SqlDataAdapter("Select * From MovTable where NameOfMov like @Name Order By NameOfMov;", sqlcon)
da.SelectCommand.Parameters.Add("@Name", SqlDbType.NVarChar, 400).Value = AlphaCB.Text & "%"
da.Fill(dt0)
End Using
SearchResultCbB1.DataSource = dt0
SearchResultCbB1.DisplayMember = "NameOfMov"
SearchResultCbB1.ValueMember = "MovieID" 'The Primary Key field in you Database
End Sub
加载itok时,您应该在
dt0
中对数据进行排序,但我如何才能做到这一点,没有人能回答这个问题,因为您还没有提供在dt0
中加载数据的代码,您应该将DisplayMember
设置为要显示的列的名称,并且您应该在查询中有一个orderby
子句来按该列排序。另外,请始终设置DataSource
last.ORDER BY必须在代码中,对吗?加载itok时,您应该在dt0
中对数据进行排序,但我如何才能做到这一点,没有人能回答这个问题,因为您还没有提供在dt0
中加载数据的代码,您应该将DisplayMember
设置为要显示的列的名称,并且您应该在查询中有一个orderby
子句来按该列排序。另外,始终将数据源设置为last.ORDER BY必须在代码中,对吗?我测试了您的代码,它运行良好!谢谢你的支持我测试了你的代码,效果很好!谢谢你的支持