【问题标题】:unable to cast object of type 'system.data.datarow' to type 'system.data.datarowview'无法将“system.data.datarow”类型的对象转换为“system.data.datarowview”类型
【发布时间】:2015-05-07 21:33:09
【问题描述】:

我一直收到

无法将“system.data.datarow”类型的对象转换为类型 'system.data.datarowview'

对于这第一行代码,它甚至没有到达第二行,请有人告诉我已经用谷歌搜索和搜索过,但我发现的示例都不是我使用的语言,这对我没有帮助。

    For Each lDataRow As DataRow In Me.SearchGrid.SelectedItems
        lDataRow.Delete()
        lDataTable = lDataRow.Table

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    看起来您的网格绑定到数据视图,而不是数据表。为了迭代行,你必须这样做

    For Each lDataRow As DataRowView In Me.SearchGrid.SelectedItems
    

    但请记住,这只是视图,而不是表格。因此,您最好从行中获取标识符,然后返回表并删除那里的值,然后更新数据视图以反映更改。

    【讨论】:

    • 我也试过了,当我改变它时,它不喜欢 lDataRow.Table 并且我不知道如何让它工作我没有让它工作的选项或者,我是一名 C# 程序员,我刚开始这份新工作,他们做的是 VB,虽然概念相同,但某些东西却大不相同。
    【解决方案2】:

    如果你想得到选中的行,你必须要求选中的行而不是选中的项目:

    For Each test As DataRow In DataGridView1.SelectedRows
        test.Delete()
    Next
    

    上面的代码对我来说运行得很好。

    【讨论】:

    • 我没有 .SelectedRows 作为选项我只有 .SelectedItem 或 .SelectedItems
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2013-07-10
    • 2012-01-23
    相关资源
    最近更新 更多