[英]Connect to an older version of SQL Server Compact database without upgrading
[英]You are trying to access an older version of a SQL Server Compact Edition database
嘗試打開連接時出現錯誤。 我的DB.sdf文件在我的應用程序文件夾中
我在這里存儲了db.sdf
{
string ConnectionString= new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + @"\APP_DATA\DB.sdf";
public int ExecuteNonQuery(string query){
int res = -1;
try
{
using (SqlCeConnection conn = new SqlCeConnection(ConnectionString))
{
SqlCeCommand command = new SqlCeCommand(query, conn);
command.CommandType = CommandType.Text;
conn.Open();
res = command.ExecuteNonQuery();
}
}
catch (Exception e)
{
new Logs().TraceProcessError(e.Message);
}
return res;
}
}
錯誤:
您正在嘗試訪問SQL Server Compact Edition數據庫的舊版本。 如果這是SQL Server CE 1.0或2.0數據庫,請運行upgrade.exe。 如果這是SQL Server Compact Edition 3.0或更高版本的數據庫,請運行“壓縮/修復”。 [Db版本= 3505053,請求的版本= 3004180,文件名= D:\\ DB.sdf]“
我正在使用SQL Server Compact 3.5,VS2010,SQLServer 2008R2。
請幫忙。 謝謝。
確保您(1)知道數據庫是哪個版本的SQL Server CE,以及(2)從與該SQL CE版本匹配的項目中引用了相應的System.Data.SqlServerCe.DLL
。
從此處下載SQL Server緊湊型工具箱
https://sqlcetoolbox.codeplex.com/
針對您的數據庫文件運行它,並記下版本號(例如3.5)
進入Visual Studio,在資源下單擊System.Data.SqlServerCe,然后在屬性下單擊。 在屬性中記下版本號(例如3.0)
庫版本號是否較舊。 下載SQL Server Compact安裝程序並運行。 http://www.microsoft.com/en-IE/download/details.aspx?id=12264
安裝完成后。 從您的項目中刪除對System.Data.SqlServerCe和System.Data.SqlClient的引用,並添加它們等效的3.5版本。 在我的系統上找到。
C:\\ Program Files(x86)\\ Microsoft SQL Server Compact Edition \\ v3.5 \\ Devices \\ System.Data.SqlServerCe.dll
和
C:\\ Program Files(x86)\\ Microsoft SQL Server Compact Edition \\ v3.5 \\ Devices \\ Client \\ System.Data.SqlClient.dll
清理,然后重建。 就像我在評論中提到的那樣,它在VS 2008上的某個時候本身就很不安全,因此如果再次遇到錯誤,請再次檢查路徑是否指向上面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.