SQL Server 2005连接问题

时间:2009-11-26 15:19:40

标签: sql-server-2005

在SQL Server 2005中,有没有办法在.NET应用程序中指定多个连接字符串,其中一个是主要的首选连接,但如果不可用,则默认尝试另一个连接(可能会到差异数据库/服务器等)?

如果没有沿着那些确切的行,我们可以使用什么,而不是试图编写某种循环代码来检查连接?

感谢。

3 个答案:

答案 0 :(得分:1)

我们通常会在SqlConnection对象上使用composition来检查这一点。所有数据访问都是通过后端类完成的,我们在web / app.config中指定了多个服务器。 (原谅任何错误,我实际上是手工写出来的)

它看起来像这样:

class MyComponent
    {
    private SqlConnection connection;

    ....
    public void CheckServers()
    {
        // Cycle through servers in configuration files, finding one that is usable
        // When one is found assign the connection string to the SqlConnection
        // a simple but resource intensive way of checking for connectivity, is by attempting to run
        // a small query and checking the return value
    }
    public void Open()
    {

        connection.Open();

    }

    public ConnectionState State
    {
        get {return connection.State;}
        set {connection.State = value;}
    }
    // Use this method to return the selected connection string
    public string SelectedConnectionString
    {
        get { return connection.ConnectionString; }
    }
    //and so on
}

此示例不包含错误检查或错误日志记录,请确保添加该错误,因此对象可以选择报告哪些连接失败以及原因。

答案 1 :(得分:1)

假设您想要访问同一组数据,那么您可以使用群集或镜像来提供高可用性。

  • SQLNCLI provider支持SQL Server数据库镜像

    Provider=SQLNCLI;Data Source=myServer;Failover Partner=myMirrorServer

  • 群集只使用虚拟SQL实例名称。

否则,我无法理解你为什么要这样做......

答案 2 :(得分:0)

不幸的是,没有FCL方法可以做到这一点 - 你需要自己实现它。