这是我的“必要时升级”代码:
try
{
cn.Open();
}
catch (System.Data.SqlServerCe.SqlCeInvalidDatabaseFormatException ex)
{
//Try to upgrade
SqlCeEngine engine = new SqlCeEngine(strConnection);
engine.Upgrade(strConnection);
cn.Open();
}实际将3.5db版本升级到4.0版本。有没有更好的解决方案?这将是很好的,如果我检测到安装的引擎和数据库版本在使用中。
发布于 2011-10-10 14:26:42
有关文件版本检测,请参阅以下内容:How can I upgrade my Sql Server CE 3.5 sdf database to Sql Server CE 4.0?
下面的代码可以检测安装的引擎版本:
internal static bool IsV40Installed()
{
try
{
System.Reflection.Assembly.Load("System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91");
}
catch (System.IO.FileNotFoundException)
{
return false;
}
try
{
var factory = System.Data.Common.DbProviderFactories.GetFactory("System.Data.SqlServerCe.4.0");
}
catch (System.ArgumentException)
{
return false;
}
return true;
}
internal static bool IsV35Installed()
{
try
{
System.Reflection.Assembly.Load("System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91");
}
catch (System.IO.FileNotFoundException)
{
return false;
}
try
{
var factory = System.Data.Common.DbProviderFactories.GetFactory("System.Data.SqlServerCe.3.5");
}
catch (System.ArgumentException)
{
return false;
}
return true;
}https://stackoverflow.com/questions/7089709
复制相似问题