Published on

February 14, 2023

Conexión a SQL Server desde una aplicación .NET: Opciones de cadena de conexión

Cuando se desarrolla una aplicación .NET que necesita conectarse a una base de datos de SQL Server, es importante comprender las diferentes opciones disponibles para crear cadenas de conexión. En este tutorial, exploraremos diversas formas de conectarse a Microsoft SQL Server utilizando diferentes propiedades de cadena de conexión en .NET.

Cadenas de conexión de SqlClient

SqlClient es una opción popular para conectarse a bases de datos de SQL Server en .NET. Aquí hay algunos ejemplos de cadenas de conexión de SqlClient:

  • Conexión utilizando un inicio de sesión de SQL Server:
  • Server=NombreDelServidor;Database=NombreDeLaBaseDeDatos;User Id=NombreDeUsuario;Password=Contraseña;
  • Conexión a localhost utilizando autenticación de Windows:
  • Server=.;Database=NombreDeLaBaseDeDatos;Trusted_Connection=True;
  • Conexión a una instancia con nombre utilizando un número de puerto en localhost utilizando autenticación de Windows:
  • Server=.\nombredeinstancia,51688;Database=NombreDeLaBaseDeDatos;Trusted_Connection=True;
  • Conexión a SQL Server Express en localhost utilizando autenticación de Windows:
  • Server=.\SQLExpress;Database=NombreDeLaBaseDeDatos;Trusted_Connection=True;

Cadenas de conexión de ODBC

ODBC es otra opción para conectarse a bases de datos de SQL Server. Aquí hay algunos ejemplos de cadenas de conexión de ODBC:

  • Conexión utilizando un inicio de sesión de SQL Server:
  • Driver={ODBC Driver 17 for SQL Server};Server=NombreDelServidor;Database=NombreDeLaBaseDeDatos;UID=NombreDeUsuario;PWD=Contraseña;
  • Conexión utilizando autenticación de Windows:
  • Driver={ODBC Driver 17 for SQL Server};Server=NombreDelServidor;Database=NombreDeLaBaseDeDatos;Trusted_Connection=yes;
  • Conexión a una instancia con nombre utilizando autenticación de Windows:
  • Driver={ODBC Driver 17 for SQL Server};Server=NombreDelServidor\nombredeinstancia;Database=NombreDeLaBaseDeDatos;Trusted_Connection=yes;
  • Conexión utilizando autenticación de Windows y especificando un servidor de conmutación por error:
  • Driver={ODBC Driver 17 for SQL Server};Server=NombreDelServidor;Failover_Partner=NombreDelServidorDeConmutaciónPorError;Database=NombreDeLaBaseDeDatos;Trusted_Connection=yes;
  • Conexión utilizando un DSN y autenticación de Windows:
  • Driver={ODBC Driver 17 for SQL Server};Dsn=NombreDelDsn;Trusted_Connection=yes;

Cadenas de conexión de OLEDB

OLEDB es otra opción para conectarse a bases de datos de SQL Server. Aquí hay algunos ejemplos de cadenas de conexión de OLEDB:

  • Conexión utilizando autenticación de Windows:
  • Provider=MSOLEDBSQL;Server=NombreDelServidor;Database=NombreDeLaBaseDeDatos;Integrated Security=SSPI;
  • Conexión a un grupo de disponibilidad utilizando autenticación de Windows:
  • Provider=MSOLEDBSQL;Server=tcp:NombreDelListenerDelGrupoDeDisponibilidad,55001;MultiSubnetFailover=Yes;Database=NombreDeLaBaseDeDatos;Integrated Security=SSPI;Connect Timeout=30;
  • Conexión utilizando un inicio de sesión de SQL Server y cifrando la conexión:
  • Provider=MSOLEDBSQL;Server=NombreDelServidor;Database=NombreDeLaBaseDeDatos;UID=NombreDeUsuario;PWD=Contraseña;Encrypt=yes;
  • Conexión utilizando autenticación de Windows para el reflejo de bases de datos:
  • Provider=MSOLEDBSQL;Data Source=NombreDelServidor;Failover Partner=NombreDelServidorEspejo;Database=NombreDeLaBaseDeDatos;Integrated Security=SSPI;

Ejemplos de código

Aquí hay ejemplos de código que demuestran cómo conectarse a una base de datos de SQL Server utilizando diferentes cadenas de conexión:

Ejemplo de SqlClient

using System;
using System.Data.SqlClient;

namespace EjemploDeDeteccionDeIdioma
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                SqlConnectionStringBuilder conn = new SqlConnectionStringBuilder();
                conn.ConnectionString = "Server=.;Database=AdventureWorks2019;Trusted_Connection=True;";

                using (SqlConnection connection = new SqlConnection(conn.ConnectionString))
                {
                    String sql = "SELECT CurrencyCode,Name from Sales.Currency";
                    using (SqlCommand sqlcommand = new SqlCommand(sql, connection))
                    {
                        connection.Open();
                        using (SqlDataReader reader = sqlcommand.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                Console.WriteLine("\t{0}\t{1}\n", reader.GetString(0), reader.GetString(1));
                            }
                        }
                    }
                }
            }
            catch (SqlException e)
            {
                Console.WriteLine(e.ToString());
            }
            Console.ReadLine();
        }
    }
}

Ejemplo de ODBC

using System;
using System.Data.Odbc;

namespace ejemplo_odbc
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = "Driver={ODBC Driver 17 for SQL Server};Server=.;Database=AdventureWorks2019;Trusted_Connection=yes;";
            string query = "SELECT CurrencyCode,Name from Sales.Currency";

            OdbcConnection connection = new OdbcConnection(connectionString);

            OdbcCommand cmd = new OdbcCommand(query);

            cmd.Connection = connection;

            connection.Open();

            OdbcDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                Console.WriteLine("\t{0}\t{1}\n", reader.GetString(0), reader.GetString(1));
            }

            reader.Close();
            connection.Close();
        }
    }
}

Ejemplo de OLEDB

using System;
using System.Data.OleDb;

namespace ejemplo_oledbreader
{
    class Program
    {
        static void Main(string[] args)
        {
            string connetionString = null;
            OleDbConnection connection;
            OleDbCommand cmd;
            string query = null;
            OleDbDataReader reader;

            connetionString = "Provider=MSOLEDBSQL;Server=.;Database=adventureworks2019;Integrated Security=SSPI;";
            query = "SELECT CurrencyCode,Name from Sales.Currency";

            connection = new OleDbConnection(connetionString);
            try
            {
                connection.Open();
                cmd = new OleDbCommand(query, connection);
                reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    Console.WriteLine("\t{0}\t{1}\n", reader.GetString(0), reader.GetString(1));
                }
                reader.Close();
                cmd.Dispose();
                connection.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}

Al comprender las diferentes opciones de cadena de conexión disponibles en .NET, puede conectarse de manera efectiva a bases de datos de SQL Server y recuperar datos para sus aplicaciones .NET.

Última actualización del artículo: 2022-04-28

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.