【问题标题】:Where is the SQL Server Compact "repair utility?"SQL Server Compact“修复实用程序”在哪里?
【发布时间】:2014-04-11 00:04:37
【问题描述】:

我使用 C# System.Data.SqlServerCe 版本 3.5.1.0 创建了一个 .SDF 数据库文件。创建后打开连接时,有时会收到以下错误:

数据库文件可能已损坏。运行修复实用程序检查 数据库文件。 [ 数据库名称 = \?\C:\SomeDatabase.sdf ]

“修复实用程序”在哪里?我们如何使用它?

我已经在 Google 和 StackOverflow 上搜索了答案:

  • SQL Server Compact 修复实用程序
  • SDF 修复实用程序

这个MSDN article 谈论以编程方式进行。有命令行方法吗?

【问题讨论】:

    标签: c# sql-server-ce


    【解决方案1】:

    这是一个可以运行的小型 C#.NET 控制台应用程序:

    class Program
    {
        static void Main(string[] args)
        {
            SqlCeEngine engine = 
                 new SqlCeEngine("Data Source = C:\\Users\\SomeUser\\Documents\\SomeDB.sdf");
            if (false == engine.Verify())
            {
                Console.WriteLine("Database is corrupted.");
                try
                {
                    engine.Repair(null, RepairOption.DeleteCorruptedRows);
                }
                catch(SqlCeException ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            Console.WriteLine("Press any key to continue.");
            Console.ReadLine();
        }
    }
    

    在此MSDN Article 中查找更多选项。使用ScriptCs在命令提示符下执行。

    【讨论】:

    • 首先试试这个:engine.Repair(null, RepairOption.RecoverAllPossibleRows);对我来说这也有效。
    【解决方案2】:

    您可以使用我的 sqlcecmd 工具来执行此操作,而无需编写任何代码。 https://github.com/erikej/sqlcecmd

    【讨论】:

    • 我投了赞成票,因为它很有帮助;成功下载您的工具并从命令行使用修复实用程序后,我会将其标记为答案。
    猜你喜欢
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多