Bonjour à tous et à toutes,

Tout est à peu près dit dans le Titre, je voudrais savoir si une requête SQL me retourne un objet ou si elle est vide, j'ai trouvé une astuce avec un boolean mais je voudrai savoir si il est possible de faire quelque chose de plus propre ? Je vous met dans un premier temps mon code sans l'astuce du boolean, puis avec l'astuce.

Merci par avance du temps pris à me lire et/ou à me répondre.


Code sans le boolean :
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
 Dim ctn As New System.Data.OleDb.OleDbConnection("Provider = Microsoft.Ace.OLEDB.12.0;  Data Source = reclamation.accdb")
 
Private Sub BT_1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_AJOUT.Click
 
        If TXT_REF.Text = "" Then
            MsgBox("Veuillez entrer une valeur", MsgBoxStyle.OkOnly, "Erreur")
        Else
 
            Dim cmd As IDbCommand
            Dim lecteur As IDataReader
            ctn.Open()
 
            cmd = ctn.CreateCommand
            cmd.CommandText = "select * from Client where RefClient =" + TXT_REF.Text
            lecteur = cmd.ExecuteReader
 
 
            'Si la référence client existe on lit le résultat de la requete et on affiche
 
            Do While lecteur.Read
                LBL.Text = "la référence client est " & lecteur.GetInt32(0) & " son nom est " & lecteur.GetString(1)
            Loop
 
 
            'Sinon
 
            'msgbox du type le client n'existe pas dans la BDD voulez vous créer une nouvelle fiche client ?
 
        End If
 
 
        ctn.Close()

Code avec le Boolean :

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
 Dim ctn As New System.Data.OleDb.OleDbConnection("Provider = Microsoft.Ace.OLEDB.12.0;  Data Source = reclamation.accdb")
 
    Private Sub BT_1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_AJOUT.Click
 
        Dim exist As Boolean = False
 
        If TXT_REF.Text = "" Then
            MsgBox("Veuillez entrer une valeur", MsgBoxStyle.OkOnly, "Erreur")
        Else
 
            Dim cmd As IDbCommand
            Dim lecteur As IDataReader
            ctn.Open()
 
            cmd = ctn.CreateCommand
            cmd.CommandText = "select * from Client where RefClient =" + TXT_REF.Text
            lecteur = cmd.ExecuteReader
 
            'Si la référence client existe on lit le résultat de la requete et on affiche
 
            Do While lecteur.Read
                LBL.Text = "la référence client est " & lecteur.GetInt32(0) & " son nom est " & lecteur.GetString(1)
                exist = True
            Loop
 
            'Sinon
            If exist = False Then
                MsgBox("Ce client n'existe pas. Voulez vous ajouter ce client à la base de donnée", MsgBoxStyle.YesNoCancel, "Ajouter")
            End If
 
        End If
 
        ctn.Close()