gpt4 book ai didi

c# - 自动 mdb 到 sql server

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:55 26 4
gpt4 key购买 nike

我知道你可以使用 access 中的升迁向导来正常转换它,但由于这是一个服务器端进程,我们每天从第三方获取 mdb 文件,我必须能够使用无接触架构。

目前,我正准备着手全部手工编写(呃),我通过数据源读取 Access 数据库,并通过批量插入或 Entity Framework 将其插入到 sql server 中。不过,我真的希望有更好的方法来做到这一点。我愿意接受很多创造性的方法,因为有很多表格和大量数据。

最佳答案

我想到了很多方法,它们确实都涉及自定义编程,但实现起来应该相对简单直接。

  1. 从另一个 Access 数据库,以编程方式打开源数据库(即使用 VBA)。在源数据库中创建到 SQL 后端的链接表。将数据从源数据库复制到链接表(使用 insert dest select * from source)。
  2. 在 SQL Server 中使用 OPENDATASETOPENROWSOURCE 直接连接到 Access DB 并复制数据。您可以再次使用 insert dest select * from source 复制数据,或使用 select * into dest from source 从源数据创建一个新表。这涉及调整 sql server 上的一些系统设置,因为它在默认情况下未启用,但一些谷歌搜索应该可以让您开始。
  3. 在 .NET 程序中,使用 SqlBulkCopy(这是用于自动化 bcp 的 .NET 类)从 Access 数据库上传数据。只需使用 ADO.Net 直接处理数据,因为没有理由仅仅为了将数据从一个来源迁移到另一个来源而构建整个 EF 层。

我在各种项目中使用了上述所有三种方法的变体,但对于移动大量表,我发现选项 #2 相对有效。如果您的表名每天都是动态的,它将涉及一些动态 SQL 代码,但如果它们是静态的,您应该只需要编写一次逻辑并使用一个参数作为要读取的文件名。

关于c# - 自动 mdb 到 sql server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com