在 C#.NET 中对 SQL Server 的 MS 访问

Posted

技术标签:

【中文标题】在 C#.NET 中对 SQL Server 的 MS 访问【英文标题】:MS Access to SQL Sever in C#.NET 【发布时间】:2012-05-14 03:33:59 【问题描述】:

出口。我们正在对 SQL Server 进行导出 Ms 访问。

我们知道如何逐表导出该表。我们面临并且无法处理的是,MS Access中存在的表之间的关系在导出后会丢失。这很烦人。有没有一种方法或工具可以让我们一次处理多个表格,或者有一些解决方法?

【问题讨论】:

您希望在传输过程中保持表之间的关系? 【参考方案1】:

由于您使用 c# 标记了它,我将假设您想自己实现它。以下是您需要的构建块:

    创建到您的 Access 数据库的 DAO 连接(添加对 DAO 库的引用,创建新的 DBEngine,然后使用其 OpenDatabase 方法获取 Database 引用):

    DBEngine dbe = new DBEngine();
    Database db = dbe.OpenDatabase(pathToDatabase);
    

    遍历 Relations property 以访问存储在 MS Access 数据库中的关系。

    在您的 SQL Server 数据库中创建关系。为此,您可以

    use SMO 或

    plain old T-SQL:

    ALTER TABLE table1 
    ADD CONSTRAINT table1_fkfield_fk FOREIGN KEY (fkfield) 
    REFERENCES table2 (pkfield)
    

【讨论】:

你能告诉我一些你开发的例子或链接吗? @KarthicG:对不起,我没有实现它,我只是想好了。【参考方案2】:

看起来微软对此有一个答案。 Access 中有一个名为 Upsizing Wizard 的选项,它“保留数据库结构,包括数据、索引和默认设置”。

这里是解释更多内容的知识库文章的链接: http://support.microsoft.com/kb/237980

【讨论】:

谢谢你,虽然似乎没有提到关系。【参考方案3】:

使用 SQL Server 数据转换服务 (DTS) 将数据从 Access 数据库导入 SQL Server 数据库。有关 DTS 和 DTS 导入向导的详细信息,请参阅 SQL Server 7.0 联机丛书中的“数据转换服务”和“使用导入和导出向导”主题。有关示例,请参阅 SQL Server 联机丛书中的“从 Access 数据库示例导入数据”主题。

【讨论】:

【参考方案4】:

为了将 Access 数据库迁移到 SQL Server,我们有许多第三方工具和 Microsoft Assitant。检查此链接 Link 1 Link 2

【讨论】:

以上是关于在 C#.NET 中对 SQL Server 的 MS 访问的主要内容,如果未能解决你的问题,请参考以下文章

使用 C#/VB.NET 实现 SQL Server Profiler

如何在 SQL Server 2005 中对 sql 表进行尴尬的旋转?

使用 C# 在 ASP.NET 中检查 SQL Server 表中的列值是不是为空

如何在 SQL Server 中对时间进行排序?

ExtJS 使用 C#.net 与 SQL Server 连接

在 C#.NET 应用程序中使用 SQL Server 时间数据类型?