Problème avec mon datareader.
Bonjour,
Je débute en VB.net avec mysql.
J'ai une classe qui gère ma connexion avec mysql
cl.mysql.vb
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
Imports MySql.Data.MySqlClient
Public Class cl_mysql
Dim conn As New MySqlConnection 'Adresse pour se connecter a la DB MySQL.
Dim dta As MySqlDataAdapter 'Data adapter
Dim dts As New DataSet 'Dataset
Dim dtr As MySqlDataReader 'datareader
Dim cmd As MySqlCommand
Dim str_requete As String 'Chaine ou sera stocker les requetes
'fonction d'enregistrement des variables user , pass ,serveur et eventuellement database
Function FONC_CONN(ByVal str_adresse As String, ByVal str_user As String, ByVal str_mdp As String, ByVal str_nom_db As String)
'on ferme la connection si jamais elle existe
conn.Close()
'on attribut les variables de la nouvelle connection
conn.ConnectionString = "Server=" & str_adresse & ";" _
& "User ID=" & str_user & ";" _
& "Password=" & str_mdp & ";" _
& "Database=" & str_nom_db & ""
Return 1
End Function
'charger une table dans un dataset
Function FONC_CHARGE_TABLE_DATASET(ByVal str_table As String)
'on clear le dts si jammais il y a quelque chose
dts.Clear()
Try
str_requete = "SELECT * FROM " & str_table & ""
'on ouvre la connection
conn.Open()
'on execute la requete
dta = New MySqlDataAdapter(str_requete, conn)
'on rempli le dts avec la table demandée
dta.Fill(dts, str_table)
'on retourne le dts
Return dts
'si il y a une erreur
Catch myerror As MySqlException
'afficher le msg d'erreur
MessageBox.Show("Error Connecting to Database: " & myerror.Message)
Return 0
End Try
End Function
'charger une table dans un datareader
Function FONC_CHARGE_TABLE_DATAREADER(ByVal str_table As String)
Try
str_requete = "SELECT * FROM " + str_table + ""
'on ouvre la connection
If conn.State = 0 Then conn.Open()
'on execute la requete
cmd = New MySqlCommand(str_requete, conn)
dtr = cmd.ExecuteReader
Return dtr
Catch myerror As MySqlException
'afficher le msg d'erreur
MessageBox.Show("Erreur de connexion à la base de donnée: " & myerror.Message)
Return 0
End Try
End Function
'fonction pour enregistrer la base modifier ( on envoi en paramettre la table en cours )
Function FONC_ENR_DB(ByVal data As DataSet, ByVal str_table As String)
Try
'commande de mise a jour de la base
Dim MyCommBuild As New MySqlCommandBuilder(dta)
dta.Update(data, str_table)
Return 1
Catch err As Exception
'si erreur on affiche l'erreur et on charge la table de la base
MsgBox(err.Message, MsgBoxStyle.Exclamation, "error")
dts = New DataSet
str_requete = "SELECT * FROM " + str_table + ""
dta = New MySqlDataAdapter(str_requete, conn)
dta.Fill(dts, str_table)
Return dts
Exit Function
End Try
End Function
'fonction pour requete specifique
Function FONC_REQ_MYSQL(ByVal query As String)
dts.Clear()
Try
str_requete = query
conn.Open()
'on execute la requete
dta = New MySqlDataAdapter(str_requete, conn)
dta.Fill(dts)
Return dts
'on renvoi la table
Catch myerror As MySqlException
MessageBox.Show("Error Connecting to Database: " & myerror.Message)
Return 0
End Try
End Function
End Class |
Ensuite j'ai une form1.vb
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
|
Imports Agenda_coiffure.cl_mysql
Imports MySql.Data.MySqlClient
Public Class Form1
'creer une instance de la class cl_mysql
Dim db As New cl_mysql
Dim dts As New DataSet
Dim dtr As MySqlDataReader
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
db.FONC_CONN("127.0.0.1", "root", ";", "agenda_coiffure")
'dts = db.FONC_CHARGE_TABLE_DATAREADER("tbl_statut")
dtr = db.FONC_CHARGE_TABLE_DATAREADER("tbl_statut")
While dtr.Read()
ListView1.Items.Add(dtr.GetString(1))
End While
Catch ex As Exception
End Try
End Sub
End Class |
Mon problème est que je n'arrive pas à récupérer les données de ma table: "TBL_statut" dans mon datareader==> dtr via la classe .
Code:
1 2 3 4 5 6
|
dtr = db.FONC_CHARGE_TABLE_DATAREADER("tbl_statut")
While dtr.Read()
ListView1.Items.Add(dtr.GetString(1))
End While |
Je n'ai aucun message d'erreur, ma listview esr vide.
Je suis bien connecté a ma base de données.
Si quelle qu'un a une solution a me donner :ccool:
ps: je suis débutant
Merci d'avance