无法将类型为“System.Int32”的对象强制转换为“System.Data.DataRowView”

时间:2013-07-12 03:27:40

标签: vb.net datarowview

我需要从所选项目的数据源中检索“id”,但它总是抛出标题中提到的相同错误。这是我的代码

        Dim DMV As DataRowView = LbMCat.SelectedValue 'Here occurs the error
    SelectedMainCat = DMV.Item("id") 

    'Filling the SUB Categories part / same code used to fill Main categories
    Dim DataAdapterCats As New MySqlDataAdapter("SELECT * From catS where maincat = '" & SelectedMainCat & "';", MySqlConnection)
    Dim dsSc As New DataSet
    DataAdapterCats.Fill(dsSc, "SubCategories")
    Dim SDataTable As DataTable = dsSc.Tables(0)
    LbSCat.DataSource = SDataTable
    LbSCat.DisplayMember = "title"
    LbSCat.ValueMember = "id"

3 个答案:

答案 0 :(得分:2)

执行以下操作

Dim DMV As DataRowView = TryCast(LbMCat.SelectedItem, DataRowView)

If DMV IsNot Nothing Then
    SelectedMainCat = DMV.Item("id")
End If

答案 1 :(得分:0)

尝试直接投射值:

(DirectCast(LbmCat.SelectedItem,DataRowView)(" ID")。ToString())

See it here。这可能会有所帮助

答案 2 :(得分:0)

如果检查的是所选值是不是整数??

If Not TypeOf (LbMCat.SelectedValue) Is Integer Then
    Dim DMV As DataRowView = LbMCat.SelectedValue 'Here occurs the error
    SelectedMainCat = DMV.Item("id")     
End If