Bonjour à tous !

Je ne comprends pas pourquoi mon programme, lorsque je le compile, génère une erreur de type : "System.NullReferenceException".
Car je n'ai pas touché la ligne en question et c'est apparu d'un jour à l'autre.

J'utilise une classe me permettant de me connecter à ma Base de Données (MySQL) qui s'apelle "Cl_MySQL".

Ensuite dans ma Form1, je la déclare ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Imports Comptabilité.Cl_MySQL
 
Public Class Form1
 
    'Créer un DataSet :
    Dim Dts As DataSet
    'Créer une instance de ma classe perso' pour les requêtes
    Dim Db As Cl_MySQL
Voilà, puis une fois que le nom d'utilisateur et le mot de passe sont vérifiés, j'ouvre ma base de données et je rempli mon "DataGridView1 & 2" (.DataSource) avec les deux tables "recette" & "dépense".

Jusque là tout marchait bien, mais allons savoir pourquoi, maintenant mes DataGridView ne se remplissent plus. ='(

Voici le code :

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
 
        If (TextBox18.Text = "Utilisateur" And TextBox19.Text = "Mot_De_Passe") Then
            GroupBox7.Visible = False
            TabControl1.Visible = True
            Try
                Db.SetVar("localhost", "root", "", "compta")
                Dts = Db.LoadDb("recette")
                DataGridView1.DataSource = Dts.Tables("recette")
            Catch ex As Exception
            End Try
            Try
                Db.SetVar("localhost", "root", "", "compta")
                Dts = Db.LoadDb("depense")
                DataGridView2.DataSource = Dts.Tables("depense")
            Catch ex As Exception
            End Try
        Else : MessageBox.Show("Erreur! Identifiant ou Mot de Passe incorrect.", "Erreur d'identification", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, 0, False)
        End If
Et, pour que ce soit plus simple, voici le code de ma classe, du moins la partie dont je me sert pour remplir les DataGridView :

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
43
44
45
46
47
48
 
Imports MySql.Data.MySqlClient ' Importation de la classe MySQL
 
Public Class Cl_MySQL
 
    Dim HostConn As New MySQLConnection 'Pour une connexion à la base de données MySQL
    Dim Dta As MySqlDataAdapter 'Data adapter
    Dim Dts As New DataSet 'Dataset
    Dim Requete As String 'Chaîne où seront stocké les requêtes
    Dim Serv, User, Pass, Database, Table As String
 
    'Fonction d'enregistrement des variables User , Pass ,Serveur et eventuellement Database
    Function SetVar(ByVal Servv, ByVal Userv, ByVal Passv, ByVal Databasev)
        'On ferme la connection si jamais elle existe
        HostConn.Close()
        Serv = Servv
        User = Userv
        Pass = Passv
        Database = Databasev
        'On attribut les variables de la nouvelle connection
        HostConn.ConnectionString = "server=" + Serv + ";" _
                             & "user id=" + User + ";" _
                             & "password=" + Pass + ";" _
                             & "database=" + Database + ""
        Return 1
    End Function
 
    'Charger la table
    Function LoadDb(ByVal Table As String)
        'On clear le Dts si jamais il y a quelque chose
        Dts.Clear()
        Try
            Requete = "SELECT * FROM " + Table + ""
            'On ouvre la connection
            HostConn.Open()
            'On execute la requete
            Dta = New MySqlDataAdapter(Requete, HostConn)
            'On rempli le Dts avec la table demandée
            Dta.Fill(Dts, Table)
            'On retourne le Dts
            Return Dts
            'S'il y a une erreur
        Catch myerror As MySqlException
            'Afficher le message d'erreur
            MessageBox.Show("Erreur de Connection à la Base de Données : " & myerror.Message)
            Return 0
        End Try
    End Function
Voilà, sa marchait très bien hier, sa ne marche plus aujourd'hui, pourtant je n'ai rien touché par rapport à cette partie du code... Enfin je pense, car il dois bien y avoir une erreur, mais je ne fais que relire et je ne trouve pas.

J'espère que vous aurez plus l'oeil que moi!

Merci pour la lecture,
CleeM.