2017-09-26 161 views
0

我知道已經有類似問題的帖子here。不過,我的問題在於開發計算機本身。文件名無效。檢查數據庫的文件名。 [文件名= E:\ PractDB.sdf]

我們有客戶要求爲Motorola MC 65(Window CE os)設備開發數據庫驅動的應用程序。

以下因特網能夠在設備上運行一個空的表單應用程序(連接到支架的設備)。

我創建了一個SQL Server Compact數據庫,添加了一個表並向其中填充了數據。通過Visual Studio Server Explorer成功建立連接。

但是通過代碼,我得到一個錯誤。

下面是我的連接字符串代碼:

SqlCeConnection con = new SqlCeConnection(); 

con.ConnectionString = @"Persist Security Info = False; 
         Data Source = 'E:\\PractDB.sdf'; 
         Password = 'password#123'; 
         File Mode = 'shared read'; 
         Max Database Size = 256; 
         Max Buffer Size = 1024"; 

con.Open(); 

請讓我知道我錯過了什麼。在連接字符串中引用.sdf數據庫文件的正確方法是什麼?

+1

通常在Windows CE上,您不使用驅動器號 – ErikEJ

回答

0

領先的@字符表示您有一個未轉義的字符串。沒有轉義字符和反斜槓(\)沒有做任何特殊的事情。

所以,當你有這樣的:

'E:\\PractDB.sdf' 

這兩個反斜槓字符的是你的字符串的一部分。只要擺脫其中一個,你會沒事的,假設真的是正確的路徑和文件。

此外,你不應該需要引號。因此,最終連接字符串看起來像這樣:

con.ConnectionString = @"Persist Security Info = False; 
         Data Source = E:\PractDB.sdf; 
         Password =password#123; 
         File Mode = shared read; 
         Max Database Size = 256; 
         Max Buffer Size = 1024;"; 

但是,快速谷歌檢查該設備顯示它運行Windows Mobile 6.5。懷疑E:\驅動器是該數據庫或任何數據庫的正確路徑,因爲Windows Mobile從未使用驅動器號。不幸的是,我必須更多地瞭解您的應用程序的部署方式,然後才能提供有關您實際應用的更具體信息。

0

Windows CE不使用驅動器號。

如果數據庫存儲在根文件夾中,只需使用\PractDB.sdf即可。