Statement If/Else/Then

Signaler
Messages postés
4
Date d'inscription
mardi 23 juin 2015
Statut
Membre
Dernière intervention
25 juin 2015
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonsoir,
Je cherche à rendre mes requêtes ainsi que mon programme plus 'intelligent', c'est a dire que les données entrées dans mes 'TextBox' qui interrogent ma base de données soient vérifiées si elles existent bien dans ma base de données.
Pour cela je cherche donc à ce que la valeur entrée dans la 'TextBox1' par exemple soit vérifiée si elle est présente ou non. Et en ressort une 'erreur' ou un 'succès'.
Voici une idée qui ne marche pas :/ (au point de vue syntaxe/code) :
Conn = New SqlConnection("Server='" & TextIp.Text & "';Database=PS_UserData;User Id='" & TextUser.Text & "';Password='" & TextPassword.Text & "'")
Try
Conn.Open()
Dim query As New SqlCommand("Select * from Ps_UserData.dbo.Users_master where UserUID='" & TextUID.Text & "'")
Dim reader As New SqlDataReader
reader = query.ExecuteReader()
If IsDBNull(reader.GetString(0)) Then
MessageBox.Show("Erreur!")
Else

Dim query2 As New SqlCommand("Update PS_UserData.dbo.Users_Master SET blabla (passons les détails)")
End If
ResultApSuccess.Text = "[Success!] -" & TextAp.Text & " AP removed to UserUID=" & TextUID.Text & ""
ResultApError.Text = ""
TextAp.Text = ""
TextUID.Text = ""
Conn.Close()

Catch ex As Exception
ResultApError.Text = "[Error!] Can not add " & TextAp.Text & " AP to UserUID=" & TextUID.Text & ""
ResultApSuccess.Text = ""
Finally
Conn.Dispose()
End Try


De ce faites ma query 'check' l'existence de l'userUID entré.
Mais cette syntaxe/code pourrai me servir pour 'interroger' d'autre colonnes de ma bdd.
Si quelqu'un aurait un tuto (ou corriger mes erreur) ou bien un code plus propre et plus fonctionnel je suis preneur!

Merci

4 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Bonjour

Si tu veux rendre ton prog plus intelligent écris des requêtes parametrées
pourquoi ?
http://webman.developpez.com/articles/aspnet/sqlparameter/vbnet/#L3

Voici une idée qui ne marche pas
c.a.d
où tu executes la querry2 ?
Messages postés
4
Date d'inscription
mardi 23 juin 2015
Statut
Membre
Dernière intervention
25 juin 2015

Elle ne marche pas car l'ensemble ne correspond pas et 'query2' utilise la même connexion string que 'query'
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Elle ne marche pas car l'ensemble ne correspond pas ?
query2' utilise la même connexion string que 'query'
mais où est le reader = query.ExecuteReader()
Messages postés
4
Date d'inscription
mardi 23 juin 2015
Statut
Membre
Dernière intervention
25 juin 2015
>
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019

en rajoutant cela :
Command = New SqlCommand(query2, conn)
SQlREADER = Command.ExecuteReader


On me dit :
Erreur	1	Impossible de convertir une valeur de type 'System.Data.SqlClient.SqlCommand' en 'String'.	C:\Users\Baptiste\Desktop\SQL\SQL\panel.vb	84	42	SQL
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Peut être pas rapport à ta question directement
mais
Si tu veux coder correctement active Option strict et Option explicit de ton projet


et ici


tu as écrit
en rajoutant cela :

montre ton code comme il faut pas seulement une ligne
Messages postés
4
Date d'inscription
mardi 23 juin 2015
Statut
Membre
Dernière intervention
25 juin 2015

Voici tous mon code (de ma form bouton click)
Private Sub Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Add.Click
Conn = New SqlConnection("Server='" & TextIp.Text & "';Database=PS_UserData;User Id='" & TextUser.Text & "';Password='" & TextPassword.Text & "'")
Dim SQlREADER As SqlDataReader
Try
Conn.Open()
Dim query As New SqlCommand("Select * from Ps_UserData.dbo.Users_master where UserUID='" & TextID.Text & "'")
SQlREADER = query.ExecuteReader()
If IsDBNull(SQlREADER.GetString(0)) Then
MessageBox.Show("Erreur!")
Else

Dim query2 As New SqlCommand("Update PS_UserData.dbo.Users_Master SET blabla (passons les détails)")
Command = New SqlCommand(query2, Conn)
SQlREADER = Command.ExecuteReader
End If
ResultApSuccess.Text = "[Success!] -" & TextAp.Text & " AP removed to UserUID=" & TextID.Text & ""
ResultApError.Text = ""
TextAp.Text = ""
TextID.Text = ""
Conn.Close()

Catch ex As Exception
ResultApError.Text = "[Error!] Can not add " & TextAp.Text & " AP to UserUID=" & TextID.Text & ""
ResultApSuccess.Text = ""
Finally
Conn.Dispose()
End Try
End Sub


Même en ayant fait ce que vous avez dit, toujours ce message
Erreur	1	Impossible de convertir une valeur de type 'System.Data.SqlClient.SqlCommand' en 'String'.	C:\Users\Baptiste\Desktop\SQL\SQL\panel.vb	83	42	SQL
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Même en ayant fait ce que vous avez dit, toujours ce message

bien sur cela ne corrige pas les fautes

 Dim query2 As New SqlCommand("Update PS_UserData.dbo.Users_Master SET blabla (passons les détails)")
Command = New SqlCommand(query2, Conn)


1 command n'est pas déclaré
2 tu ne peux pas passer à ton constructeur sqlcommand un paramètre de type System.Data.SqlClient.SqlCommand
https://msdn.microsoft.com/fr-fr/library/system.data.sqlclient.sqlconnection.sqlconnection(v=vs.110).aspx

Que veux tu faire avec Command ?
Pourquoi ne pas se servir de query2 ainsi

 Dim query2 As New SqlCommand("Update PS_UserData.dbo.Users_Master SET blabla (passons les détails)", conn)
SQlREADER = query2.ExecuteReader