【问题标题】:Is there a way to set the DB as Single User Mode in C#?有没有办法在 C# 中将数据库设置为单用户模式?
【发布时间】:2009-10-05 17:20:15
【问题描述】:

我有一个 WPF 应用程序,它可以从代码内实体模型更新我的数据库。可能存在连接用户时更新数据库的情况,我想将其置于单用户模式以避免错误。

我也想避免使用 sql。我知道我可以使用以下命令运行 sql:

DataContext.ExecuteCommand("ALTER DATABASE...") 

我宁愿使用 C# 库中的命令来执行此操作,但我不知道在哪里查找。

有没有办法在不使用 SQL 的情况下将 DB 设置为 SUM?

【问题讨论】:

    标签: c# wpf database entity-framework


    【解决方案1】:

    所以我使用了这样的 SMO 服务器对象:

    Server server = GetServer();
             if (server != null)
            {
                Database db = server.Databases[Settings.Instance.GetSetting("Database", "MyDB")];
                if (db != null)
                {
                    server.KillAllProcesses(db.Name);
                    db.DatabaseOptions.UserAccess = DatabaseUserAccess.Single;
                    db.Alter(TerminationClause.RollbackTransactionsImmediately);
    

    问题是这打开了一个与我的数据上下文不同的连接,因此让我自己离开并且不让我访问数据库。最后我不得不恢复使用 SQL。

    【讨论】:

      【解决方案2】:

      您可以使用 SQLDMO 来管理 SQL Server 对象。

      http://msdn.microsoft.com/en-us/library/ms162169.aspx

      【讨论】:

      • 没错,现在已弃用。该链接实际上会将您带到 2014 年的 SMO 对象。
      猜你喜欢
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多