【问题标题】:How to filter data from SQLDataSource如何过滤来自 SQLDataSource 的数据
【发布时间】:2015-09-29 22:10:16
【问题描述】:

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

【问题讨论】:

    标签: mysql asp.net vb.net web


    【解决方案1】:

    首先,您似乎正在尝试创建 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)
    

    【讨论】:

      猜你喜欢
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多