Índice de la sección dedicada a .NET (en el Guille) ADO .NET

Cadena de conexión para conectar a una base de SQL Server

Publicado el 16/Mar/2006
Actualizado el 02/Jul/2006
Autor: Guillermo 'guille' Som

Cadenas de conexión para acceder a una base de datos de SQL Server, con ejemplo de cómo conectar y mostrar los datos en un DataGrid o DataView usando un objeto SqlDataAdapter y un DataTable.

 

Esto más que un artículo es una especie de truco, aunque en realidad es como una "chuleta", en el sentido de que, al menos a mí, que tengo la memoria que tengo, me servirá para esas ocasiones en las que quiero crear la cadena de conexión a una base de SQL Server y tengo que andar "rebuscando" en aplicaciones o códigos que ya tenga hecho.

Aunque esto esté en la sección de ADO.NET, es decir, "parezca" que solo es para usar con .NET, en realidad la cadena de conexión servirá igual para una aplicación de VB6 o cualquier otro lenguaje de programación.
Lo que si cambiará es la forma de realizar esa conexión, ya que dependiendo de que estemos usando .NET o no, habrá que usar "objetos" diferentes.

Pero como esta página está en la sección de .NET, el ejemplo de cómo realizar la conexión será para Visual Basic .NET (todas las versiones, incluida la 2005) y C#, en ambos casos usando objetos del espacio de nombres SqlClient.

Si quieres ver un ejemplo para VB6 usando ADO y Recordsets, puedes verlo pulsando en este link:
Conectar a una base de datos de SQL Server con VB6

Si quieres ver un ejemplo completo de acceso a SQL Server con VB y C#, pulsa en estos links:
Acceso a una base de datos de SQL Server con ADO.NET y Visual Basic
Acceso a una base de datos de SQL Server con ADO.NET y Visual C#

 

La cadena de conexión

La cadena de conexión puede ser de dos formas distintas, según se indique la autenticación de Windows o la de SQL Server.
En la primera no hay que indicar ni usuario ni password, en la segunda si que hay que indicar esos dos datos.
Las bases de datos de SQL Server a las que podemos acceder con esa cadena de conexión pueden ser de cualquier versión, al menos yo lo he probado con las versiones 7.0, 2000 y 2005, en los tres casos usando ADO.NET.

En los siguientes ejemplos usaremos ciertos valores que tendrás que indicar según tus preferencias, me refiero al nombre del servidor de SQL Server y a la base de datos a la que quieres acceder, además del nombre del usuario o la contraseña.

En esos casos estarán indicados con letra en negrita y cursiva, el resto es texto "fijo" y que siempre podrás usar.
Esos valores serán los siguientes:

Valor Descripción
ServidorSQL   El nombre del servidor de SQL Server al que quieres acceder.
Los valores que puede tener dependerá de tu configuración de SQL Server, pero estos son los valores más comunes:

 

Valor Descripción
.

(local)

Uno de estos valores indicará que quieres acceder a la instancia predeterminada de SQL Server que haya en el equipo en el que se está ejecutando la aplicación.
Es preferible usar (local).
NombreEquipo El nombre del equipo en el que se está usando la aplicación.
Es preferible usar (local) para que no influya el equipo en el que se ejecute el programa.
NombreDNS Un nombre DNS es decir, un nombre que después "resolverá" una dirección IP, por ejemplo, el nombre de un servidor de Internet: nombreDominio.com.
DirecciónIP Una dirección IP en la que está el servidor de SQL al que queremos acceder, esto vale para servidores que están en equipos remotos.
Por defecto se utilizará el puerto predeterminado: 1433
DirecciónIP, Puerto La dirección IP del servidor de IP al que se accederá por el puerto indicado.
Por defecto el puerto de SQL Server es el 1433.
ServidorSQL/Instancia   Si no queremos usar la instancia predeterminada del servidor de SQL Server indicado (usando cualquiera de los cuatro métodos anteriores), podemos indicarlo después del nombre del servidor separado con un \.
Por ejemplo, en Visual Studio .NET (2002 y 2003) se crea una instancia llamada NETSDK, para acceder a esa instancia usaremos: (local)\NETSDK.
En Visual Studio 2005 se suele instalar el SQL Server 2005 Express y se crea una instancia llamada SQLEXPRESS, para acceder a las bases de datos de esa instancia, usaremos: (local)\SQLEXPRESS.

 

BaseDatos   El nombre de la base de datos de SQL Server a la que quieres acceder (no la tabla)
Usuario   El nombre del usuario de la base de datos a la que quieres acceder.
Contraseña   El password (o contraseña) del usuario indicado.

 

 

Cadena de conexión con autenticación de Windows

Para conectar a una base de datos de SQL Server con autenticación de Windows, la cadena de conexión será:

Data Source = ServidorSQL; Initial Catalog = BaseDatos; Integrated Security = True

 

Cadena de conexión con autenticación de SQL Server

Para conectar a una base de datos de SQL Server usando autenticación del propio SQL Server, la cadena de conexión será:

data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña

 

Indicar una base de datos que está en un servidor "remoto"

Para acceder a una base de datos que está en un servidor remoto, es decir en otro equipo, debemos usar cualquiera de las dos cadenas de conexión que hemos visto antes, aunque lo normal será que se use la segunda en la que se indica el nombre del usuario y la contraseña.
Esto se suele usar cuando estamos en una página Web o bien si queremos acceder desde una aplicación de escritorio (Windows.Forms), pero la base de datos no está en nuestro equipo.
El código podría ser el siguiente, y puedes usar una dirección IP o el nombre de un dominio (DNS) para indicar el nombre del servidor de SQL Server:

data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña

 

 

Conectar usando código de ADO.NET

Lo habitual es que usemos dos tipos de "conexiones", una usando un objeto DataAdapter y la otra usando un objeto Connection. Esta última es la que debemos usar si el acceso lo haremos por medio de un objeto Command en lugar del DataAdapter, por ejemplo para acceder a un procedimiento almacenado.
Pero para mantener el ejemplo simple, solo mostraré cómo conectar usando el SqlDataAdapter en el que usaremos un objeto DataTable para traer los datos, y esos datos los mostraremos en un DataGrid o un GridView como es el caso del código mostrado.
Este mismo código será válido tanto para una aplicación de Windows o una página Web.

 

Conectar usando un objeto SqlDataAdapter

Cuando usamos un DataAdapter no necesitamos usar un objeto del tipo SqlCommand, ya que el adaptador se encarga de todo.
El código para Visual Basic y C# sería el siguiente:

 

Imports System.Data
Imports System.Data.SqlClient


Dim sCnn As String
sCnn = "data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña"

Dim sSel As String = "SELECT * FROM NombreTabla"

Dim da As SqlDataAdapter
Dim dt As New DataTable

Try
    da = New SqlDataAdapter(sSel, sCnn)
    da.Fill(dt)

    Me.GridView1.DataSource = dt
    Me.GridView1.DataBind()
    LabelInfo.Text = String.Format("Total datos en la tabla: {0}", dt.Rows.Count)
    
Catch ex As Exception
    LabelInfo.Text = "Error: " & ex.Message
    
End Try

 

using System.Data;
using System.Data.SqlClient;


string sCnn; 
sCnn = "data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña";

string sSel = "SELECT * FROM NombreTabla";

SqlDataAdapter da;
DataTable dt = new DataTable();

try
{
    da = new SqlDataAdapter(sSel, sCnn);
    da.Fill(dt);
 
    this.GridView1.DataSource = dt;
    this.GridView1.DataBind();
    LabelInfo.Text = String.Format("Total datos en la tabla: {0}", dt.Rows.Count);
}
catch(Exception ex)
{
    LabelInfo.Text = "Error: " + ex.Message;
}

 

 

Y esto es todo...

Nos vemos.
Guillermo

Nota (02/Jul/06):
Además de la conexión típica de Data Source = <servidor>; Initial Catalog = <baseDatos>,
puedes usar esta otra forma:
Server = <servidor>; DataBase = <baseDatos>.


Ir al índice principal de el Guille