2012-04-28 92 views
17

我通过SQL Server创建了一个.mdf文件,并将其放到本地文件中。我在没有安装SQL Server的计算机上运行我的程序。而且我以前从System.Data.SqlClient命名空间的类(即SqlConnection ..)是否可以在没有SQL Server的情况下访问.mdf数据库?

我要让这是由SQL Server创建与.mdf文件某种接入连接?可能吗 ?

+0

有提供一些方便的第三方工具,将帮助您查看mdf文件没有SQL服务器http://www.mdfviewer.com/ – 2017-02-15 11:20:28

回答

21

我不认为有可能不通过SQL Server引擎与MDF文件进行交互。如果您选择通过Visual Studio的添加/删除程序,您可能会安装SQL Server Express(如果您选择通过Visual Studio的添加/删除程序,则该选项应该是一个选项),然后连接数据库,然后从程序连接到该引擎。

许多在线的教程都建议您使用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

+0

非常感谢你的回答亚伦。它非常有用 – unbalanced 2012-04-28 19:11:55

+0

实际上你说要安装https://www.microsoft.com/en-us/download/details.aspx?id=23650与管理工作室和240MB是否有任何解决方案可用,我们donot安装管理工作室,只安装其服务或实例,而部署时只需简单缩小尺寸 – 2016-08-08 07:33:21

2

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

+1

请注意,如果您的数据库未使用Compact Edition中不支持的任何功能或语法,则转换为Compact将仅适用。不会表达(也是免费的)是一个更安全的建议?它不是“嵌入式”的,但它不太可能成为问题。 – 2012-04-28 19:09:13

+0

并且可以使用sql类?或者我必须在c#中使用oledbd类?.. – unbalanced 2012-04-28 19:11:22

+0

使用Express时,您不需要使用sqloledb。我在精简版中不够精通,不知道这里的交互有何不同,我只知道文件格式和功能集有很大不同。 – 2012-04-28 19:13:05

5

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

什么是OrcaMDF?

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

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

Author's blog

相关问题