首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在DataTable.Select()方法中使用Vb.Net时出错

在DataTable.Select()方法中使用Vb.Net时出错
EN

Stack Overflow用户
提问于 2011-12-06 06:56:27
回答 2查看 3K关注 0票数 0

基于某些条件,我正在使用DataTable.Select()方法进行文件处理。

代码语言:javascript
运行
复制
dtRows = m_dtTable.Select(String.Format("IdentifierID={0}", dtRow
("QuestionID").ToString))

我使用类似的方法在不同的地方对数据进行排序。但只有一个地方我错了。有什么能帮我找出为什么会出现这种异常吗?还要帮助我知道为什么在其他地方也没有例外?datatable的值是从存储过程中填充的。

Min (2) must be less than or equal to max (-1) in a Range object.是我得到的例外。

编辑--在第一个答案之后--

我并不是每次都有异常,但只有一些时候我无法确定情况。:(

在第一个答案之后加上--

谢谢你的解决方案。:)

注意: m_DependantQuestionsDataTable和m_dtTable的模式是相同的。

colIdentifierID.DataType = Type.GetType("System.String") colIdentifierID.ColumnName = "IdentifierID"

这是特定列的类型。还有另一个列,它也是类似的类型,当我将它与类似的方法一起使用时,不会发生错误。

colQuestionID.DataType = Type.GetType("System.String") colQuestionID.ColumnName = "QuestionID"是列,我这样使用。‘m_DependantQuestionsDataTable.Select(String.Format(strFilterExpression,dRow(“QuestionID”))‘’

这里没有异常或错误正在发生。因此,如果我选择您的解决方案,我需要通过在我的解决方案中使用Filter方法的所有位置添加'来更改Filter表达式。

EN

回答 2

Stack Overflow用户

发布于 2011-12-06 07:30:06

您没有指定要过滤的列的数据类型,如果是字符串,则需要在筛选器表达式中的参数周围添加单引号:

代码语言:javascript
运行
复制
dtRows = m_dtTable.Select(String.Format("IdentifierID='{0}'", dtRow("QuestionID").ToString()))
票数 2
EN

Stack Overflow用户

发布于 2014-05-25 06:40:43

或者,如果您希望通过DGV进行sort+筛选,而不需要重新填充DT和DGV,则可以使用DataView的.Sort和.RowFilter。

http://msdn.microsoft.com/en-ca/library/system.data.dataview.rowfilter.aspx

代码语言:javascript
运行
复制
Private _DS As New DataSet
Private _DT As New DataTable
Private _DV As New DataView
Private _DGV As New DataGridView
Private _isFiltering As Boolean = False

Private Sub filterView()
    If _isFiltering Then Return
    _isFiltering = True
    Dim _SF As String = "price ASC"
    'Dim _RF As String = tableStructure.Columns(0).Name & " < 20" ' just an example
    Dim _RF As String = "price < 20"
    _DGV.ClearSelection()
    _DT.DefaultView.Sort = _SF
    _DT.DefaultView.RowFilter = _RF
    _isFiltering = False
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8396336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档