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

如何使用VB.NET将MySQL表数据导入SQL Server Compact表(.sdf)

VB.NET 实现MySQL数据导入SQL Server Compact(.sdf)的正确方案

原有代码的错误点

  • InsertCommand 错误使用了 MySQL 专属的 MySqlCommand 类,目标库为 SQL Server Compact,需要改用 SqlCeCommand
  • INSERT 语句不完整,缺少字段列表和 VALUES 参数占位部分
  • MySQL 连接字符串参数不全,缺少用户名、密码、目标数据库名等必填配置
  • 未显式释放连接资源,容易出现连接泄漏

修正后的完整实现代码

' 需提前引用对应依赖:MySql.Data、Microsoft.SqlServer.Compact
Imports MySql.Data.MySqlClient
Imports System.Data.SqlServerCe

Public Class DataImport
    Public Sub ImportItemsData()
        ' 补全MySQL连接串参数:服务器地址、用户名、密码、源数据库名
        Dim mysqlConnStr As String = "server=你的MySQL服务地址;user id=登录用户名;password=登录密码;database=源数据库名;Charset=utf8;"
        Dim sdfConnStr As String = "Data Source=|DataDirectory|\Barcodedatabase.sdf;Password=leonado-abg;Persist Security Info=True"

        ' 使用Using自动释放资源,无需手动关闭连接
        Using con1 As New MySqlConnection(mysqlConnStr)
            Using con2 As New SqlCeConnection(sdfConnStr)
                con1.Open()
                con2.Open()

                ' 从MySQL读取数据
                Dim da As New MySqlDataAdapter("SELECT ID, Name FROM Items", con1)
                da.AcceptChangesDuringFill = False

                ' 配置SQLCE的插入命令
                Dim insertCmd As New SqlCeCommand("INSERT INTO Items (ID, Name) VALUES (@ID, @Name)", con2)
                insertCmd.Parameters.Add("@ID", SqlDbType.VarChar, 50, "ID")
                insertCmd.Parameters.Add("@Name", SqlDbType.VarChar, 50, "Name")
                da.InsertCommand = insertCmd

                Dim dt As New DataTable()
                da.Fill(dt)

                ' 批量插入到sdf库
                da.Update(dt)
            End Using
        End Using
    End Sub
End Class

注意事项

  • 需提前确保.sdf文件中Items表的字段类型、长度和MySQL源表的对应字段完全匹配,否则会触发插入失败
  • 数据量较大时可以在da.Update(dt)前加SqlCe事务,批量提交避免脏数据
  • 部署时需确保运行环境安装了SQL Server Compact对应的运行时

内容的提问来源于stack exchange,提问作者likedark web

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:27:03