You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET连接MySQL报错:MySqlConnection未定义及参数异常

解决VB.NET连接MySQL的两个核心问题

一、解决「Type 'MySqlConnection' is not defined」错误

这个问题本质是未正确引用MySQL数据驱动或未添加命名空间,按以下步骤操作:

  • 移除项目中所有手动添加的MySQL相关dll引用(包括之前尝试的5.0.0 Alpha、MySQLConnector 1.0.0 Beta版本),避免版本冲突。
  • 通过NuGet安装稳定兼容的MySQL数据驱动:
    • 若用Oracle官方的Connector/NET,安装MySql.Data包(推荐8.0.x版本,对.NET Framework4.6兼容性更好,暂避8.1.x的不稳定版本)。
    • 若用第三方轻量驱动,安装MySQLConnector包(选稳定版,不要用Beta版)。
  • 在代码文件顶部添加对应命名空间:
    • 用MySql.Data的话:Imports MySql.Data.MySqlClient
    • 用MySQLConnector的话:Imports MySqlConnector

二、解决「System.ArgumentException」错误

这个错误是连接字符串格式错误导致的,按以下修正:

1. 去掉参数值的单引号

MySQL连接字符串的参数值不需要用单引号包裹,原写法会被驱动识别为参数名的一部分,引发格式错误。

2. 使用正确的参数名

驱动对参数名有严格要求,user应改为user id或uid,避免识别失败。

3. 推荐用连接字符串构建器(更安全且避免语法错误)

替换原连接字符串拼接代码为:

Dim connBuilder As New MySqlConnectionStringBuilder()
connBuilder.Server = Server
connBuilder.UserID = DbUName
connBuilder.Password = DbUPass
connBuilder.Database = DbName
connBuilder.SslMode = MySqlSslMode.None
MysqlConn.ConnectionString = connBuilder.ToString()

如果用MySQLConnector,只需把MySqlConnectionStringBuilder换成MySqlConnector.MySqlConnectionStringBuilder即可。

最终验证代码示例

Imports MySql.Data.MySqlClient ' 对应MySql.Data驱动,若用MySQLConnector则替换为Imports MySqlConnector

Module Module1
    Sub Main()
        Dim Server As String = "localhost"
        Dim DbUName As String = "root"
        Dim DbUPass As String = ""
        Dim DbName As String = "cypos"

        Using MysqlConn As New MySqlConnection()
            Dim connBuilder As New MySqlConnectionStringBuilder()
            connBuilder.Server = Server
            connBuilder.UserID = DbUName
            connBuilder.Password = DbUPass
            connBuilder.Database = DbName
            connBuilder.SslMode = MySqlSslMode.None
            MysqlConn.ConnectionString = connBuilder.ToString()

            Try
                MysqlConn.Open()
                Console.WriteLine("连接成功")
            Catch ex As Exception
                Console.WriteLine("连接失败:" & ex.Message)
            Finally
                MysqlConn.Close()
            End Try
        End Using
    End Sub
End Module

内容的提问来源于stack exchange,提问作者The Only Smart Boy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 15:05:18