如何从SQLDataSource中过滤数据

时间:2015-07-11 02:59:53

标签: mysql asp.net vb.net web

我尝试按文本框名称​​ 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

1 个答案:

答案 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)