IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

transmission des infos d'un datagridview dans des labels


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 1
    Par défaut transmission des infos d'un datagridview dans des labels
    Bonjour les amis. j'ai urgemment besoin de votre aide.
    je travaille sur un projet Vb.Net et SQL Server.
    j'ai créé un datagridview pour afficher la liste des clients et j'ai fait de tel sorte que lorsqu'on clique sur un élément du tableau les infos du client sont transmises dans des labels
    mais le problème est que lorsque je clique plusieurs fois dans le tableau, des erreurs sont générés et le message suivant s'affiche:

    L'exception System.InvalidCastException n'a pas été gérée
    HResult=-2147467262
    Message=Impossible d'effectuer un cast d'un objet de type 'System.DBNull' en type 'System.Byte[]'.




    voici le code:

    -code sql:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TABLE CLIENT(
    	NUM_CL varchar(10) PRIMARY KEY NOT NULL,
    	PRENOM_CL varchar(40) NOT NULL,
    	NOM_CL varchar(25) NOT NULL,
    	AGE_CL date NOT NULL,
    	GENRE_CL varchar(10) NOT NULL,
    	ADRESSE_CL varchar(40) NOT NULL,
    	TEL_CL varchar(18) NOT NULL,
    	PHOTO_CL image NULL,
    	EMAIL_CL varchar(50) NULL,
    (
    -code vb.net:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    Imports System.Data
    Imports System.Data.SqlClient
     
    Module Module1
        Public conx As SqlConnection
     
        Public Sub chaine_connection()
            conx = New SqlConnection("")
            Try
                conx.Open()
     
            Catch ex As Exception
                MessageBox.Show(ex.Message)
     
            End Try
     
        End Sub
        Public Function ByteArray2Image(ByVal BArray As Byte()) As Image
            Try
                Dim mstImage As MemoryStream = New MemoryStream(BArray)
                Dim img As Image = Image.FromStream(mstImage)
                Return img
     
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                Return Nothing
            End Try
        End Function
     
     
        Public Function Image2ByteArray(ByVal img As Image) As Byte()
     
            Try
                Dim mstimage As MemoryStream = New MemoryStream
                img.Save(mstimage, System.Drawing.Imaging.ImageFormat.Jpeg)
                Dim BytImage As Byte() = mstimage.GetBuffer
                Return BytImage
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                Return Nothing
     
            End Try
        End Function
    End module
     
     
     
     
        '**************************************************************************************************************'
        '                               PROCEDURE AFFICHAGE client dans un datagridview
        '**************************************************************************************************************'
        Public Sub affiche_client()
            chaine_connection()
            Dim cmd As New SqlCommand("select NUM_CL as Numero,PRENOM_CL as Prénom, NOM_CL as Nom ,AGE_CL  as Age, GENRE_CL as Genre, ADRESSE_CL as Adresse, TEL_CL as Téléphone, PHOTO_CL as Photo,EMAIL_CL as EMail from CLIENT ")
            cmd.Connection = conx
            Dim da = New SqlDataAdapter(cmd)
            Dim ds As New DataTable
            da.Fill(ds)
            Form2_menu_principal.UserControl1_client1.dgvclients.DataSource = ds
        End Sub
     
     
        '**************************************************************************************************************'
        '                               transmission de l'element selectionné dans le datagridview pour le mettre dans les labelles
        '**************************************************************************************************************'
     
    Private Sub dgvclients_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvclients.CellContentClick
     
            If dgvclients.CurrentRow.Cells(0).Value.ToString <> "" Then
                lbl_num_client.Text = dgvclients.CurrentRow.Cells(0).Value.ToString
                lbl_prenom_client.Text = dgvclients.CurrentRow.Cells(1).Value.ToString
                lbl_nom_client.Text = dgvclients.CurrentRow.Cells(2).Value.ToString
                lbl_age_client.Text = dgvclients.CurrentRow.Cells(3).Value.ToString
                lbl_genre_client.Text = dgvclients.CurrentRow.Cells(4).Value.ToString
                lbl_adresse_client.Text = dgvclients.CurrentRow.Cells(5).Value.ToString
                lbl_tel_client.Text = dgvclients.CurrentRow.Cells(6).Value.ToString
                If Pict_img__client.Visible = True Then
     
                    Dim img As Image
                    Dim t() As Byte
                    t = dgvclients.CurrentRow.Cells(7).Value
                    img = ByteArray2Image(t)
                    Pict_img__client.Image = img
     
                Else
                    Pict_img__client.Image = My.Resources.default_avatar1
                End If
                lbl_email_client.Text = dgvclients.CurrentRow.Cells(8).Value.ToString
     
     
     
     
            End If
     
        End Sub
    L'exception System.InvalidCastException n'a pas été gérée
    HResult=-2147467262
    Message=Impossible d'effectuer un cast d'un objet de type 'System.DBNull' en type 'System.Byte[]'.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Tu essaies de convertir quelque chose qui n'existe pas (nul) en quelque chose qui existe (byte)

  3. #3
    Membre averti
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Juillet 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2016
    Messages : 34
    Par défaut
    Salut,
    Tu peux traiter l'erreur comme ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not IsDBNull("textbox.text") then label.text=textbox.text

Discussions similaires

  1. [applet]utilser des infos pour les traiter dans une servlet
    Par jeromejanson dans le forum Applets
    Réponses: 5
    Dernier message: 07/03/2010, 23h22
  2. Réponses: 3
    Dernier message: 26/09/2008, 14h25
  3. Changer la police des colonnes d'un DataGridView dans un groupbox
    Par Pilloutou dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/10/2007, 21h08
  4. Réponses: 1
    Dernier message: 15/06/2006, 15h17
  5. [Info] ajout de fichier dans des projets eclipse
    Par root76 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/12/2005, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo