在 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 表中的列值是不是为空