我尝试按文本框名称 PostCode1 过滤来自SQLDataSource POSTCODE_Data 的数据。
我使用.Rowfilter
属性执行此操作,但它无法正常工作。结果 POSTCODE_Data 仍未过滤。
我需要做些什么才能获得理想的结果?
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dv As DataView
Dim recPostDes As String
Dim recMiles As Integer
dv = CType(POSTCODE_Data.Select(DataSourceSelectArguments.Empty), DataView)
dv.RowFilter = "POSTCODE = '" & PostCode1.Text & "%'"
recPostDes = CType(dv.Table.Rows(0)(3), String)
recMiles = CType(dv.Table.Rows(0)(5), Integer)
If recMiles > 0 Then
Des1.Text = recPostDes
Mile1.Text = recMiles
End If
End Sub
答案 0 :(得分:0)
首先,您似乎正在尝试创建Like表达式。如果是,请将=
更改为Like
dv.RowFilter = "POSTCODE Like '" & PostCode1.Text & "%'"
DataView
"表示DataTable的数据表,自定义视图,用于排序,过滤,搜索,编辑和导航。 DataView不存储数据,而是表示其相应DataTable的连接视图。对DataView数据的更改将影响DataTable。对DataTable数据的更改将影响与其关联的所有DataView。" - MSDN -
现在,问题出在这里:您正在访问基础表格dv.Table
)和不视图。
recPostDes = CType(dv.Item(0).Row.Item(3), String)
recMiles = CType(dv.Item(0).Row.Item(5), Integer)
或者
recPostDes = CType(dv(0)(3), String)
recMiles = CType(dv(0)(5), Integer)