Espelhamento de Banco de Dados usando Microsoft SqlClient Data Provider for SQL Server

Exemplo de string de conexão com SQL Server usando Microsoft SqlClient Data Provider for SQL Server

Exemplo de string de conexão

Essa é uma string de conexão Microsoft SqlClient Data Provider for SQL Server para se conectar com SQL Server 2022, SQL Server 2019, SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 ou SQL Server 2005.

Espelhamento de Banco de Dados

Se você se conectar com ADO.NET ou o SQL Native Client a um banco de dados que está sendo espelhado, sua aplicação pode aproveitar a capacidade do driver de redirecionar automaticamente as conexões quando ocorre uma falha no espelhamento do banco de dados. Você deve especificar o servidor principal inicial e o banco de dados na string de conexão e o servidor parceiro de failover.

Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;

Existem, claro, muitas outras maneiras de escrever a string de conexão usando o espelhamento de banco de dados, este é apenas um exemplo destacando a funcionalidade de failover. Você pode combinar isso com as outras opções de string de conexão disponíveis.

Conexão através de diferentes linguagens

C#

Exemplo de código em C# de conexão com SQL Server usando Microsoft SqlClient Data Provider for SQL Server:

using System;
// Use o Namespace System.Data.SqlClient em versões anteriores ao .NET 5
using Microsoft.Data.SqlClient;

class DatabaseConnection {
    static void Main() {
        // Define a string de conexão SQL Server usando Microsoft SqlClient Data Provider for SQL Server
        string connectionString = "Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;";

        using (SqlConnection connection = new SqlConnection(connectionString)) {
            try {
                // Abre a conexão
                connection.Open();

                Console.WriteLine("Conexão aberta com sucesso!");

                //
                // INSIRA SEU CÓDIGO AQUI
                //
                
            } catch (SqlException ex) {
                // Erros específicos do SqlException
                Console.WriteLine("Erro: " + ex.Message);
            } catch (Exception ex) {
                // Outros erros
                Console.WriteLine("Erro: " + ex.Message);            
            } finally {
                // Fecha a conexão
                if (connection != null) {
                    connection.Close();
                    Console.WriteLine("Conexão fechada.");
                }
            }
        }
    }
}

Importante: Use o Namespace System.Data.SqlClient em versões anteriores ao .NET 5.

Alternativamente, você pode usar o código abaixo, que usa a classe DbProviderFactory:

using System;
using System.Data.Common;

class DatabaseConnection {
    static void Main() {
        /// Define a string de conexão SQL Server usando Microsoft SqlClient Data Provider for SQL Server
        string connectionString = "Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;";

        // Cria o objeto factory usando o namespace Microsoft.Data.SqlClient
        // Use o Namespace System.Data.SqlClient em versões anteriores ao .NET 5
        DbProviderFactory factory = DbProviderFactories.GetFactory("Microsoft.Data.SqlClient");

        using (DbConnection connection = factory.CreateConnection()) {
            if (connection == null) {
                Console.WriteLine("Não foi possível criar a conexão.");
                return;
            }

            connection.ConnectionString = connectionString;

            try {
                // Abre a conexão
                connection.Open();
                Console.WriteLine("Conexão aberta com sucesso!");

                //
                // INSIRA SEU CÓDIGO AQUI
                //
            }
            catch (DbException ex) {
                // Erros específicos do DbException
                Console.WriteLine("Erro: " + ex.Message);
            }
            catch (Exception ex) {
                // Outros erros
                Console.WriteLine("Erro: " + ex.Message);
            }
            finally {
                // Fecha a conexão
                if (connection != null) {
                    connection.Close();
                    Console.WriteLine("Conexão fechada.");
                }
            }
        }
    }
}

Importante: Use o Namespace System.Data.SqlClient em versões anteriores ao .NET 5.

VB.NET

Exemplo de código em VB.NET de conexão com SQL Server usando Microsoft SqlClient Data Provider for SQL Server:

Imports System
' Use o Namespace System.Data.SqlClient em versões anteriores ao .NET 5
Imports Microsoft.Data.SqlClient

Public Class DatabaseConnection
    Public Shared Sub Main()
        ' Define a string de conexão SQL Server usando Microsoft SqlClient Data Provider for SQL Server
        Dim connectionString As String = "Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;"

        Using connection As New SqlConnection(connectionString)
            Try
                ' Abre a conexão
                connection.Open()

                Console.WriteLine("Conexão aberta com sucesso!")

                '
                ' INSIRA SEU CÓDIGO AQUI
                '

            Catch ex As SqlException
                ' Erros específicos do SqlException
                Console.WriteLine("Erro: " & ex.Message)
            Catch ex As Exception
                ' Outros erros
                Console.WriteLine("Erro: " & ex.Message)
            Finally
                ' Fecha a conexão
                If connection IsNot Nothing Then
                    connection.Close()
                    Console.WriteLine("Conexão fechada.")
                End If
            End Try
        End Using
    End Sub
End Class

Importante: Use o Namespace System.Data.SqlClient em versões anteriores ao .NET 5.

Alternativamente, você pode usar o código abaixo, que usa a classe DbProviderFactory:

Imports System
Imports System.Data.Common

Public Class DatabaseConnection
    Public Shared Sub Main()
        ' Define a string de conexão SQL Server usando Microsoft SqlClient Data Provider for SQL Server
        Dim connectionString As String = "Data Source=BancoDeDados;Failover Partner=Servidor2;Initial Catalog=BancoDeDados;Integrated Security=True;"

        ' Cria o objeto factory usando o namespace Microsoft.Data.SqlClient
        ' Use o Namespace System.Data.SqlClient em versões anteriores ao .NET 5
        Dim factory As DbProviderFactory = DbProviderFactories.GetFactory("Microsoft.Data.SqlClient")

        Using connection As DbConnection = factory.CreateConnection()
            If connection Is Nothing Then
                Console.WriteLine("Não foi possível criar a conexão.")
                Return
            End If

            connection.ConnectionString = connectionString

            Try
                ' Abre a conexão
                connection.Open()
                Console.WriteLine("Conexão aberta com sucesso!")

                '
                ' INSIRA SEU CÓDIGO AQUI
                '

            Catch ex As DbException
                ' Erros específicos do DbException
                Console.WriteLine("Erro: " & ex.Message)
            Catch ex As Exception
                ' Outros erros
                Console.WriteLine("Erro: " & ex.Message)
            Finally
                ' Fecha a conexão
                If connection IsNot Nothing Then
                    connection.Close()
                    Console.WriteLine("Conexão fechada.")
                End If
            End Try
        End Using
    End Sub
End Class

Importante: Use o Namespace System.Data.SqlClient em versões anteriores ao .NET 5.