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 :

VB.Net / Base Access plante si résultat vide [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 50
    Points : 41
    Points
    41
    Par défaut VB.Net / Base Access plante si résultat vide
    Bonjour



    J'ai programmé un petit logiciel en VB.net sans prétention pour gerer des enregistrement dans une base de données en access 2003.

    Débutant dans la prog, j'ai récupéré un bout de code sur le net avec un module pour se connecter à la base access.

    module1.vb
    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
     
    Imports System.Data.OleDb
     
    Module Module1
     
        Public acsconn As New OleDb.OleDbConnection
        Public acscdr As OleDbDataReader
        Public strsql As String
     
        Sub connect()
            acsconn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0; data source= d:\base.mdb;"
            acsconn.Open()
     
        End Sub
     
    End Module

    et le form1.vb

    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
     
    Public Class Form1
     
        'combo NOM
        Sub fillcomboNom()
            strsql = "select distinct (nom) from membres order by nom"
            Dim acscmd As New OleDb.OleDbCommand
            acscmd.CommandText = strsql
            acscmd.Connection = acsconn
            acscdr = acscmd.ExecuteReader
     
            While (acscdr.Read())
                ComboBoxNom1.Items.Add(acscdr("nom"))
            End While
            acscmd.Dispose()
            acscdr.Close()
        End Sub
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Module1.connect()
            Me.fillcomboNom()
        End Sub
     
        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxNom1.SelectedIndexChanged
            strsql = "select * from membres where nom='" & ComboBoxNom1.Text & "'"
     
            Dim acscmd As New OleDb.OleDbCommand
            acscmd.CommandText = strsql
            acscmd.Connection = acsconn
            acscdr = acscmd.ExecuteReader
            If (acscdr.Read() = True) Then
     
                TextBox1.Text = (acscdr("Prénom"))
                TextBox2.Text = (acscdr("Adresse1"))
     
            End If
            acscmd.Dispose()
            acscdr.Close()
        End Sub
     
     
    End Class

    Tout va bien, quand je change la valeur dans le combobox, le TextBox1 et le TextBox2 se remplissent bien avec le prénom et l'adresse récupérées dans la base de données.

    Par contre, s'il arrive qu'un champ de la base de données soit vide, le logiciel se plante.
    Il y a peut être une exception à gérer, mais de quelle façon ?



    Merci de votre aide pour un newbie

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 156
    Points : 25 075
    Points
    25 075
    Par défaut
    il faut tester si la valeur de la colonne n'est pas null
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if not acscdr("nomcol") is system.dbnull.value then
       ' on peut la mettre dans le textbox
    end if
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 50
    Points : 41
    Points
    41
    Par défaut
    C'est Nickel et ça me va très bien !

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. .NET Base Access : Déploiement
    Par toss.net dans le forum Accès aux données
    Réponses: 0
    Dernier message: 08/08/2009, 18h42
  2. [VB.NET] création d'une table dans une base access
    Par smedini dans le forum Accès aux données
    Réponses: 1
    Dernier message: 31/12/2005, 11h53
  3. Vb.Net et Access : comment modifier la structure d'une base
    Par hucliez dans le forum Accès aux données
    Réponses: 3
    Dernier message: 09/11/2005, 13h33
  4. [VB.NET] Update base Access
    Par Nesmontou dans le forum ASP.NET
    Réponses: 6
    Dernier message: 16/06/2005, 09h42
  5. [ADO.NET] Installation appli utilisant base access
    Par Didier69 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 27/09/2004, 11h50

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