2017-07-18 30 views
0

我正在創建Windows應用程序以維護學校學生信息。我正在使用一個LocalDB數據庫,我確實有<DBName>.MDF<DBName>_Log.LDF的副本。隨着Visual Studio和MSSQLLocalDB已經安裝在我的筆記本電腦中,我可以連接到數據庫和應用程序正常工作。無法從客戶端機器連接到Windows應用程序中的.mdf數據庫文件

我剛剛在我的客戶機中複製了構建文件和數據庫文件,並試圖打開Windows應用程序。但應用程序返回下面的錯誤,當它試圖訪問該數據庫:

的深層提供未能打開」
內期望:服務器無法訪問或不可用

我非常肯定。我的客戶端計算機未安裝任何SQL客戶端工具,因此它很可能是無法連接.MDF數據庫文件

現在我的問題是:

  1. 真的有可能在客戶端機器上連接到Windows應用程序的.mdf數據庫文件而無需安裝任何大型工具?因爲我的客戶不想在他們的系統上安裝任何大工具

  2. 如果我的第一個問題的答案是肯定的,我們如何實現這一目標?我的代碼或配置文件中需要的任何更改?

  3. 如果這需要在客戶端應用程序中安裝任何小工具,它們是什麼?

  4. 如果.MDF數據庫文件根本不在客戶機上工作,有沒有其他的選擇?請建議。

我的連接字符串:

<connectionStrings> 
    <add name="SchoolDBEntities" 
     connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\SchoolDB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" /> 
</connectionStrings> 
+0

您現在可以刪除該評論Eraj - 代碼塊需要在空白行之前正確工作。 – halfer

+0

請閱讀[在什麼情況下,我可以添加「緊急」或其他類似的短語到我的問題,以獲得更快的答案?](/ meta.stackoverflow.com/q/326569) - 總結是,這不是這是解決志願者問題的理想方式,可能會對獲得答案產生反作用。請不要將這添加到您的問題。 – halfer

+1

如果不在客戶端計算機上安裝Sql服務器,則無法訪問mdf文件。至少你需要安裝Sql server express。 –

回答

0

@Chetan Ranpariya幾乎是正確的。如果您使用的是MS SQL Server - 任何版本 - 您必須在mdf/ldf文件所在的機器上安裝SQL Server,或者至少在SQL Server程序可以訪問的位置安裝SQL Server。

如果我正確地讀你的問題,你的筆記本電腦上安裝了MSSQL,這就是爲什麼它在那裏工作。您沒有在客戶端的計算機或網絡上安裝MSSQL,因此調用數據庫失敗。

至於還有什麼用,這個問題太廣泛了。這取決於很多因素。

約翰

+0

@Chetan Ranpariya感謝您的輸入。我正在嘗試在客戶端機器中安裝SQL Server Express,並測試我是否可以建立連接。我會很快讓你知道更新。 – Eraj

+0

感謝您的回覆。如果你能解釋其他因素,我可以決定我可以用來連接數據庫的其他選項,這將非常有幫助。如果你能舉出一個例子,那將會非常有用。感謝你的幫助。 – Eraj

+0

您需要考慮一些事情,例如要保存的數據量 - 即數據庫的大小;什麼是可接受的性能 - 即數據需要以多快的速度返回給客戶/用戶;有多少客戶將同時訪問數據;什麼樣的數據保護;數據加密。有人已經提到了SQL Express。對於某些場景,您可以使用MS Access。同樣看看MySQL也是免費的。對於非常小的數據集,您還可以使用不需要特殊軟件的XML。做一個谷歌搜索類似「數據庫軟件」 – John

相關問題