Comment tester si une requete est vide
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:
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:
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() |