【问题标题】:datatable.select() with gridview and datatable带有gridview和datatable的datatable.select()
【发布时间】:2016-04-05 17:53:43
【问题描述】:

您能否在 datatable.select() 语句中将 gridview 值与 datatable 值进行比较?如果这是可能的,这似乎是设置它的方式。我需要使用与 gridview 行匹配的数据表行。

与此类似:

For Each gvRow As GridViewRow In gvMaps.Rows

    For Each dtrow As DataRow In indt.Select(gvRow.DataItem("Policy") & "=" & dtrow("Policy") & " AND " & _
                                       "'" & gvRow.DataItem("LineCounty") & "'='" & dtrow("LineCounty") & "' AND " & _
                                             gvRow.DataItem("Section") & "=" & dtrow("Section"))

    'code handling only returned rows from datatable.select()

    Next
Next

【问题讨论】:

  • 你可以使用 DataView 代替 .Select

标签: vb.net gridview datatable


【解决方案1】:

你不能那样做,当你在 indt 上调用 Select 时,选择查询需要 name=value 形式的东西,所以我想这可能会更好(如果我弄错了引号,请道歉)

dim query As String = "Policy='" & gvRow.DataItem("Policy") & "' AND " & _
                      "LineCounty='" & gvRow.DataItem("LineCounty") & "' AND " & _
                      "Section=" & gvRow.DataItem("Section") 
For Each dtrow As DataRow In indt.Select(query)

这就是说,对于大型数据集,这不会很快,最好将其中一些信息(DataTable 中的数据)存储在一个类中,该类具有通过 Policy,LineCounty,Section 三元组获取数据的方法使用底层字典等。

【讨论】:

  • 这不会是一个大数据集,但我明白你的意思。我更改了我的语句以对您编写的内容进行建模,并且我收到此错误“对象变量或未设置块变量”。这是在谈论我的 gvRow 对象吗?
  • 我建议您将上述查询与实际调用 indt.Select(...) 的行分开,这样您就可以在调试器中检查您的查询字符串(并确保该行构建查询没有错)...也可以确认 DataTable 实际上包含所有确切命名的列 Policy,LineCounty,Section.. 除了我不熟悉那个错误。
猜你喜欢
  • 2014-11-29
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 2017-07-20
  • 1970-01-01
相关资源
最近更新 更多