2013-07-12 2 views
0

Je dois récupérer le "id" de la source de données de l'élément sélectionné, mais il renvoie toujours la même erreur mentionnée dans le titre. Voici mon codeImpossible de convertir un objet de type 'System.Int32' en type '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" 

Répondre

2

Do comme ci-dessous

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

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

Je ne peux pas vous remercier assez :) –

0

Essayez de Direct Cast la valeur:

See it here (DirectCast (LbmCat.SelectedItem, DataRowView) (ToString() "ID").). Que peut-on faire?

+0

même erreur, Impossible de jeter l'objet de type 'System.Int32' taper 'System.Data.DataRowView'. –

0

que si vous vérifiez que la valeur sélectionnée n'est pas un entier?

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