Bonjour. J’essaie de connecter mon projet Visual Basic à la base de données MySQL à l’aide de xampp. J’ai téléchargé un vbconnector SQL depuis ce site Web

la programmation


J’essaie de connecter mon projet Visual Basic à la base de données MySQL à l’aide de xampp. J’ai téléchargé un vbconnector SQL depuis ce site Web https://dev.mysql.com/downloads/connector/net/
mais lorsque j’essaie de déboguer mon projet, chaque commande mysql lit une erreur et si je rajoute la référence mysql, toutes les erreurs disparaissent, mais si je débogue à nouveau, le même problème de débogage se produit.

Ce que j’ai essayé :

Imports MySql.Data.MySqlClient
Imports System.IO
Module databaseconn
    Public conn As MySqlConnection
    Public dr As MySqlDataReader
    Public flag As Boolean
    Public dt As DataTable
    Public da As MySqlDataAdapter
    Public i As Integer
    Public ds As DataSet
    Public cmd As MySqlCommand
    Public result As Boolean

    Public Function dbconn() As Boolean
        Try
            If conn.State = ConnectionState.Closed Then
                conn.ConnectionString = "server=localhost;username=root;password=;database=database"
                result = True
            End If
        Catch ex As Exception
            result = False
            MsgBox(ex.Message)

        End Try
        Return result
    End Function
End Module

Solution 1

Ce code ne fait rien avec la base de données, il est donc difficile de déterminer quel pourrait être votre problème. Tout ce que fait ce code, c’est définir une chaîne de connexion (sur laquelle je reviendrai plus tard) et rien d’autre : la connexion n’est pas utilisable – et est de toute façon mal gérée.

Lorsque vous posez une question, vous devez inclure des informations pertinentes : “quand j’essaie de déboguer mon projet, chaque commande mysql lit une erreur” ne dit rien à personne car nous ne pouvons pas voir le code qui fait quoi que ce soit avec un objet Command, ni dire ce que le des messages d’erreur pourraient être.
Les messages d’erreur contiennent une multitude d’informations si vous les lisez attentivement – depuis quelle ligne de quel fichier présente le problème jusqu’à une description du problème détecté. Alors commencez ici : Comment écrire du code pour résoudre un problème, guide du débutant, partie 2 : erreurs de syntaxe[^] – il parle d’erreurs de syntaxe, mais les erreurs d’exécution ont tendance à avoir les mêmes informations présentées un peu différemment.

Il y a aussi un bon article ici : Poser des questions est une compétence[^] qui explique comment poser une question afin d’obtenir une réponse utile.

Revenons au code que vous montrez, et j’y vois trois problèmes :
1) Votre mot de passe pour une base de données multi-utilisateurs ne doit jamais être vide et le nom d’administrateur par défaut ne doit jamais être utilisé. Cela permet à toute personne souhaitant faire quoi que ce soit sur votre base de données de la voler, de la brouiller pour obtenir une rançon ou de la détruire, par exemple. Définissez un bon mot de passe fort sur un compte administrateur renommé et vous serez plus en sécurité.
2) Ne codez pas en dur les chaînes de connexion dans votre code : cela signifie que lorsque vous le publiez, vous devez le modifier pour le serveur de production (ou pire tester contre le serveur de production qui est suicidaire) et publier effectivement le code non testé ! De telles erreurs peuvent avoir un impact négatif sur les clients et avoir un impact négatif sur votre réputation et votre solde bancaire… Utilisez un fichier de configuration pour contenir la chaîne de connexion afin que le code n’ait pas besoin d’être modifié lorsque vous le publiez.
3) Ne réutilisez pas une seule connexion à la base de données : créez-la lorsque vous en avez besoin dans un Using bloquer et le système le fermera et le supprimera lorsque vous en aurez terminé. Non seulement ces connexions sont des ressources rares, mais cela peut vous poser de réels problèmes si vous ouvrez un DataReader sur une connexion et essayez ensuite de réutiliser la même connexion pour INSÉRER ou METTRE À JOUR une table : le serveur générera une erreur car le lecteur utilise toujours le connexion.

コメント

タイトルとURLをコピーしました