是否可以在没有SQL Server的情况下访问.mdf数据库?

时间:2012-04-28 18:59:55

标签: c# sql-server mdf

我通过SQL Server创建了一个.mdf文件并将其放到本地文件中。我在没有安装SQL Server的计算机上运行我的程序。我还使用了System.Data.SqlClient命名空间中的类(即SqlConnection ..)

我想与SQL Server创建的.mdf文件进行某种访问连接?有可能吗?

3 个答案:

答案 0 :(得分:21)

我不认为可以在不通过SQL Server引擎的情况下与MDF文件进行交互。您最有可能安装SQL Server Express(如果您选择为Visual Studio添加/删除程序,或者您可以download it separately from here - this is the 2008 R2 With Tools option,则应该是一个选项),附加数据库,然后从您的数据库连接到该引擎程序

许多在线教程会建议您使用User Instances功能和AttachDbFileName。我建议你走这条路,因为它经常导致混乱 - 很多很多用户通过Management Studio连接到数据库的一个实例,与他们的程序不同的实例,然后不理解为什么没有人看到对方做出的更新。不推荐使用User Instances功能,我更倾向于将数据库正确附加到实例。

在SQL Server 2012中,您可以下载新的SqlLocalDb运行时(you want either the x86 or x64 SqlLocalDB.MSI file from here),这使得此过程更加轻松,因为它是一种免维护的按需SQL Server引擎。但请注意,您的数据库将升级到新的11.0文件格式,这意味着您将无法分离/附加或备份/还原到旧版本(2008,2008 R2等)。我添加了许多troubleshooting techniques for new users starting with SqlLocalDb here

答案 1 :(得分:6)

您可以尝试使用OrcaMDF这是一个开源项目。

什么是OrcaMDF?

  

MDF文件的C#解析器。允许您读取表格,元数据和   来自MDF文件的索引,而不将其附加到正在运行的SQL   服务器实例。

(此描述取自项目页面。)

Author's blog

答案 2 :(得分:2)

您需要SQL才能连接到MDF。您可以将其转换为SDF并加载紧凑版(免费)。 http://msdn.microsoft.com/en-us/data/ff687142