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

Visual Basic连接MySQL报错:未知数据库'new_time_and_attendance'

问题分析与解决步骤

你的错误核心是**Unknown database 'new_time_and_attendance'**——连接字符串中指定的数据库不存在,或者名称拼写错误,身份验证提示是连带触发的次要信息。以下是具体解决流程:

1. 确认目标数据库是否存在

打开MySQL客户端(命令行、Workbench、Navicat均可),登录root用户后执行:

SHOW DATABASES;

如果列表中没有new_time_and_attendance,立即创建:

CREATE DATABASE new_time_and_attendance;

2. 修正连接字符串

你的代码中使用Form1.connection作为连接字符串,必须确保它包含正确的数据库信息,标准格式如下(替换你的密码):

Server=localhost;Database=new_time_and_attendance;Uid=root;Pwd=你的密码;SslMode=None;

若你的MySQL版本是8.0+,默认身份验证插件为caching_sha2_password,需额外添加参数兼容mysql_native_password:

Server=localhost;Database=new_time_and_attendance;Uid=root;Pwd=你的密码;SslMode=None;AllowPublicKeyRetrieval=True;

或者直接修改root用户的身份验证方式(永久生效):

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

3. 代码优化建议

你的loadenrolleddata方法存在重复声明变量、资源未自动释放的问题,建议改用Using语句管理连接和命令,避免资源泄漏:

Sub loadenrolleddata()
    Dim drt As MySqlDataReader
    Dim nm As String
    fptemplist.Clear()
    listofnames.Clear()

    ' Using语句自动释放连接资源
    Using mysqlconn As New MySqlConnection(Form1.connection)
        mysqlconn.Open()

        nm = "select personnelid,fingerdata1,fingerdata2,fingerdata3,fingerdata4,fingerdata5,fingerdata6,fingerdata7,fingerdata8," _
            & "fingerdata9,fingerdata10 from new_enrollment"

        ' Using语句自动释放命令资源
        Using cmd As New MySqlCommand(nm, mysqlconn)
            drt = cmd.ExecuteReader()
            While drt.Read()
                Dim mstram As IO.MemoryStream

                For i = 1 To 10
                    Dim fpbytes As Byte() = drt("fingerdata" & i)
                    mstram = New IO.MemoryStream(fpbytes)
                    If fpbytes.Length > 0 Then
                        Dim temp8 As DPFP.Template = New DPFP.Template()
                        temp8.DeSerialize(mstram)
                        fptemplist.Add(temp8)
                        listofnames.Add(drt("personnelid"))
                    End If
                Next
            End While
            drt.Close()
        End Using
    End Using
End Sub

内容的提问来源于stack exchange,提问作者Bruno Ganontha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:03:22