你好。 我正在尝试使用 xampp 将我的 Visual Basic 项目连接到 mysql 数据库。 我从这个网站下载了一个 SQL vbconnector

编程


我正在尝试使用 xampp 将我的 Visual Basic 项目连接到 mysql 数据库。 我从这个网站下载了一个sql vbconnector https://dev.mysql.com/downloads/connector/net/
但是当我尝试调试我的项目时,每个 mysql 命令都会读取一个错误,如果我重新添加 mysql 引用,所有错误都会消失,但如果我再次调试,则会出现相同的调试问题。

我尝试过的:

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

解决方案1

该代码不会对数据库执行任何操作,因此很难找出您的问题可能是什么。 所有代码所做的就是设置一个连接字符串(我稍后会再讨论),没有其他任何事情:连接不可用 – 并且无论如何都处理得很糟糕。

当你提出问题时,你需要包含相关信息:“当我尝试调试我的项目时,每个 mysql 命令都会读取一个错误”告诉​​任何人任何事情,因为我们看不到代码对 Command 对象执行任何操作,或者告诉什么错误消息可能是。
如果您仔细阅读,错误消息将包含大量信息 – 从文件的哪一行显示问题到对所发现问题的描述。 所以从这里开始: 如何编写代码来解决问题,初学者指南第 2 部分:语法错误[^] – 它谈论语法错误,但运行时错误往往会以稍微不同的方式呈现相同的信息。

这里还有一篇很好的文章: 提出问题是一种技巧[^] 其中解释了如何提出问题以便您得到有用的答复。

回到您显示的代码,我可以看到三个问题:
1)多用户数据库的密码永远不应该为空,也不应该使用默认的管理员名称 – 这样做会让任何想要对您的数据库做任何事情的人:窃取它,扰乱它以勒索赎金,或者破坏它。 在重命名的管理员帐户上设置一个好的、强的密码,您会更安全。
2)不要将连接字符串硬编码到您的代码中:这意味着当您发布它时,您必须为生产服务器更改它(或更糟糕的是对生产服务器进行自杀性测试)并有效地发布未经测试的代码! 像这样的错误可能会对客户产生严重影响,并对您的声誉和银行余额产生负面影响…使用配置文件来保存连接字符串,以便在发布它时不必更改代码。
3)不要重复使用与数据库的单个连接:当您需要一个数据库连接时创建它 Using 块,当您完成它时,系统将关闭并处置它。 这样的连接不仅是稀缺资源,而且如果您在连接上打开 DataReader 然后尝试重用相同的连接来插入或更新表,它可能会导致真正的问题:服务器将抛出错误,因为读取器仍在使用联系。

コメント

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