2012-04-28 310 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

相關問題