Prolème de Conversion de type DBNuull en String [Résolu]

coulibalysy 12 Messages postés vendredi 30 mai 2008Date d'inscription 6 février 2009 Dernière intervention - 24 janv. 2009 à 12:47 - Dernière réponse : coulibalysy 12 Messages postés vendredi 30 mai 2008Date d'inscription 6 février 2009 Dernière intervention
- 30 janv. 2009 à 18:28
Je suis débutant en VB.net et je developpe sur VB.Net Express 2008
Lorsque je lance l'exe mon programme me signale l'erreur suivante:
"La conversion du type 'DBNull' en type 'String' n'est pas valide." à la ligne que j'ai présenté en rouge dans le programme ci-dessus. SVP venez moi en aide.

 'déclaration des variables
    Private cnx As OleDbConnection
    Private cmd As OleDbCommand
    Private dta As OleDbDataAdapter
    Private cmdb As OleDbCommandBuilder
    Private dts As New DataSet
    Private dtt As DataTable
    Private dtc As DataColumn
    Private dtr As DataRow
    Private rownum As Integer
    Private conn As String
    Private sql As String
    Private Sub Inscriptions_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'ouverture de la connection(à partir du répertoire de l'application)
        conn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\Etablissements.accdb"
        cnx = New OleDbConnection
        cnx.ConnectionString = conn
        cnx.Open()
        'exécution de la commande(cmd),                      
        'du dataadapter (dta),                                
        'du dataset(dts),                                  
        'de la datatable (dtt)                                          
        'sql=>cmd=>dta                                                  
        'cnx=>cmd                                                        
        'dta=>dts=>dtt                                     
        sql = "select Étudiants.* from Étudiants"
        cmd = New OleDbCommand(Sql)
        dta = New OleDbDataAdapter(cmd)
        cmd.Connection() = cnx

        'chargement du DataSet à partir du DataAdapter                  
        dta.Fill(dts, "Étudiants")

        'chargement de la DataTable à partir du DataSet                 
        dtt = dts.Tables("Étudiants")

        'si la table est vide alors
        If rownum > dtt.Rows.Count - 1 Then

            'désactivation des boutons pour éviter une erreur
            'si la table est vide
            BntNouveau.Enabled = False
            BntEnrégistrer.Enabled = True
            BntSupprimer.Enabled = False
            BntQuitter.Enabled = False

            Me.Show()
            Me.Nom.Focus()

        Else

            'affichage des données dans les textbox             
            Me.Nom.Text = dtt.Rows(rownum).Item("nom")
            Me.Prénoms.Text = dtt.Rows(rownum).Item("prénom")
            Me.LieuNais.Text = dtt.Rows(rownum).Item("Lieu de Naissance")
          Me.TélPersonnel.Text = dtt.Rows(rownum).Item("Téléphone personnel")
            Me.TélProfessionnel.Text = dtt.Rows(rownum).Item("Téléphone professionnel")

            Me.TelMobile.Text = dtt.Rows(rownum).Item("Téléphone mobile")
            Me.Mail.Text = dtt.Rows(rownum).Item("Page Web")
            Me.Télécopie.Text = dtt.Rows(rownum).Item("Numéro de télécopie")
            Me.Adresse.Text = dtt.Rows(rownum).Item("Adresse")
            Me.Ville.Text = dtt.Rows(rownum).Item("Ville")
            Me.CP.Text = dtt.Rows(rownum).Item("Code Postal")
            Me.Departement.Text = dtt.Rows(rownum).Item("Département")
            Me.Remarque.Text = dtt.Rows(rownum).Item("Remarques")
            Me.IDEtudiant.Text = dtt.Rows(rownum).Item("ID étudiant")
            Me.DateInscription.Text = dtt.Rows(rownum).Item("Date Inscription")
            Me.NumInscription.Text = dtt.Rows(rownum).Item("N°Inscription")
            Me.Hinscription.Text = dtt.Rows(rownum).Item("Heure Inscription")

            Me.ContactUrgence.Text = dtt.Rows(rownum).Item("Nom contact en cas d'urgence")
            Me.Tél1Urgence.Text = dtt.Rows(rownum).Item("Téléphone du contact pour les urgences 1")
            Me.Tél2Urgence.Text = dtt.Rows(rownum).Item("Téléphone du contact pour les urgences 2")
            Me.RelationUrgence.Text = dtt.Rows(rownum).Item("Relation contact pour les urgences")
            Me.NomMedecin.Text = dtt.Rows(rownum).Item("Nom du médecin")
            Me.TélMedecin.Text = dtt.Rows(rownum).Item("Numéro de tél du médecin")
            Me.Allergies.Text = dtt.Rows(rownum).Item("Allergies")
            Me.Médicaments.Text = dtt.Rows(rownum).Item("Médicaments")

            'affichage des données dans le datagrid             
            DataGridView1.DataSource = dtt

            BntEnrégistrer.Enabled = False

        End If

        BntQuitterRecherche.Enabled = False

    End Sub
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 25 janv. 2009 à 20:18
3
Merci
oups en effet isempty n'existe plus en vb.net...

tu peux passer par ISNOTHING(x), ou STRING.ISNULLOREMPTY(x)

if string.IsNullOrEmpty(dtt.Rows(rownum).Item("Téléphone personnel") then


  Me.TélPersonnel.Text = string.empty




else
  Me.TélPersonnel.Text = dtt.Rows(rownum).Item("Téléphone personnel")
end if

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de PCPT
Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 30 janv. 2009 à 06:54
3
Merci
Me.TélPersonnel.Text = dtt.Rows(rownum).Item("Téléphone personnel")


.value ou .Tostring
?

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de PCPT
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 24 janv. 2009 à 13:43
0
Merci
salut,

le forum ne supporte pas le BBCODE


Me.TélPersonnel.Text = dtt.Rows(rownum).Item("Téléphone personnel")




tu dois tester "non null" avant d'attribuer la valeur

if (not isnull(
dtt.Rows(rownum).Item("Téléphone personnel")
)) andelse (not isempty(
dtt.Rows(rownum).Item("Téléphone personnel")
)) then
Me.TélPersonnel.Text = dtt.Rows(rownum).Item("Téléphone personnel")




pas testé mais çà devrait être bon

ps : évite les accents dans les noms de tes contrôles (et dans tout en fait : variables, noms de form, noms de modules, etc..)
++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Commenter la réponse de PCPT
coulibalysy 12 Messages postés vendredi 30 mai 2008Date d'inscription 6 février 2009 Dernière intervention - 24 janv. 2009 à 20:09
0
Merci
Merci pour tes conseil 
Cà ne marche tjrs pas je deveoppe Visual Basic.net 2008 express
csy
Commenter la réponse de coulibalysy
coulibalysy 12 Messages postés vendredi 30 mai 2008Date d'inscription 6 février 2009 Dernière intervention - 24 janv. 2009 à 20:26
0
Merci
Le message d'erreur qui apparait est le suivant :
Le nom isnull n'est pas déclaré
le  nomp isempty n'est pas déclaré

cvomment les déclarer
csy
Commenter la réponse de coulibalysy
coulibalysy 12 Messages postés vendredi 30 mai 2008Date d'inscription 6 février 2009 Dernière intervention - 28 janv. 2009 à 19:29
0
Merci
Merci, mais malheureusement ça ne marche tjrs pas et je ne comprends pas
csy
Commenter la réponse de coulibalysy
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 28 janv. 2009 à 19:39
0
Merci
tu as un message d'erreur? le même que dans ton premier post?
tu utilises le framework 3.5 ?
Commenter la réponse de PCPT
coulibalysy 12 Messages postés vendredi 30 mai 2008Date d'inscription 6 février 2009 Dernière intervention - 29 janv. 2009 à 08:54
0
Merci
oui exactement et VB.Net express 2008
Commenter la réponse de coulibalysy
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 29 janv. 2009 à 18:24
0
Merci
umm....

quelques idées :
if blabla is nothing then
if blabla = nothing then
if isdbempty(blabla) then
if blabla.tostring.equals(string.empty) then

ps : en vb2008 ( VS version complète du moins) on peut choisir d'utiliser un autre framework que le 3.5, pour çà que je demandais ;)
Commenter la réponse de PCPT
coulibalysy 12 Messages postés vendredi 30 mai 2008Date d'inscription 6 février 2009 Dernière intervention - 30 janv. 2009 à 01:07
0
Merci
Toujours le même message mais cette fois-ci juste après le else, au niveau de Me.TélPersonnel.Text = dtt.Rows(rownum).Item("Téléphone personnel")

Voici le code, les autres exemples ne marchent pas.

If dtt.Rows(rownum).Item("Téléphone personnel")is nothing then

  Me.TélPersonnel.Text = string.empty

else

  Me.TélPersonnel.Text = dtt.Rows(rownum).Item("Téléphone personnel")

end If
Commenter la réponse de coulibalysy
coulibalysy 12 Messages postés vendredi 30 mai 2008Date d'inscription 6 février 2009 Dernière intervention - 30 janv. 2009 à 18:28
0
Merci
Merci tout marche bien maintenant

csy
Commenter la réponse de coulibalysy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.