2013-07-12 6 views
0

Мне нужно получить «идентификатор» из источника данных выбранного элемента, но он всегда выдает ту же ошибку, упоминаемую в заголовке. Вот мой кодНевозможно наложить объект типа «System.Int32» на тип «System.Data.DataRowView»

 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" 

ответ

2

Do ниже

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

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

Я не могу вас достаточно поблагодарить :) –

0

Try Прямым Cast значение:

See it here (DirectCast (LbmCat.SelectedItem, DataRowView) ("ID") ToString().). Это может помочь

+0

та же ошибка, Невозможно привести объект типа 'System.Int32' к типу 'System.Data.DataRowView'. –

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 
Смежные вопросы