Sei sulla pagina 1di 6

ADO .

NET
Cadena de conexin para conectar a una base de SQL Server
Publicado el 16/Mar/2006 Actualizado el 02/Jul/2006 Autor: Guillermo 'guille' Som
Cadenas de conexin para acceder a una base de datos de SQL Server, con ejemplo de cmo conectar y mostrar los datos en un DataGrid o DataView usando un objeto SqlDataAdapter y un DataTable.

Esto ms que un artculo 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 conexin a una base de SQL Server y tengo que andar "rebuscando" en aplicaciones o cdigos que ya tenga hecho. Aunque esto est en la seccin de ADO.NET, es decir, "parezca" que solo es para usar con .NET, en realidad la cadena de conexin servir igual para una aplicacin de VB6 o cualquier otro lenguaje de programacin. Lo que si cambiar es la forma de realizar esa conexin, ya que dependiendo de que estemos usando .NET o no, habr que usar "objetos" diferentes. Pero como esta pgina est en la seccin de .NET, el ejemplo de cmo realizar la conexin 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 conexin
La cadena de conexin puede ser de dos formas distintas, segn se indique la autenticacin 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 conexin pueden ser de cualquier versin, 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 tendrs que indicar segn tus preferencias, me refiero al nombre del servidor de SQL Server y a la base de datos a la que quieres acceder, adems del nombre del usuario o la contrasea. En esos casos estarn indicados con letra en negrita y cursiva, el resto es texto "fijo" y que siempre podrs usar. Esos valores sern los siguientes: Valor ServidorSQL Descripcin El nombre del servidor de SQL Server al que quieres acceder. Los valores que puede tener depender de tu configuracin de SQL Server, pero estos son los valores ms comunes:

Valor . (local)

Descripcin 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 aplicacin. Es preferible usar (local). El nombre del equipo en el que se est usando la aplicacin. Es preferible usar (local) para que no influya el equipo en el que se ejecute el programa. Un nombre DNS es decir, un nombre que despus "resolver" una direccin IP, por ejemplo, el nombre de un servidor de Internet:nombreDominio.com. Una direccin IP en la que est el servidor de SQL al que queremos acceder, esto vale para servidores que estn en equipos remotos. Por defecto se utilizar el puerto predeterminado: 1433 La direccin IP del servidor de IP

NombreEquipo

NombreDNS

DireccinIP

DireccinIP, Puerto

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 mtodos anteriores), podemos indicarlo despus 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 s uele 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 Usuario Contrasea

El nombre de la base de datos de SQL Server a la que quieres acceder (no la tabla) El nombre del usuario de la base de datos a la que quieres acceder. El password (o contrasea) del usuario indicado.

Cadena de conexin con autenticacin de Windows


Para conectar a una base de datos de SQL Server con autenticacin de Windows, la cadena de conexin ser:
Data Source = ServidorSQL; Initial Catalog = BaseDatos; Integrated Security = True

Cadena de conexin con autenticacin de SQL Server


Para conectar a una base de datos de SQL Server usando autenticacin del propio SQL Server, la cadena de conexin ser:

data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contrasea

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 conexin que hemos visto antes, aunque lo normal ser que se use la segunda en la que se indica el nombre del usuario y la contrasea. Esto se suele usar cuando estamos en una pgina Web o bien si queremos acceder desde una aplicacin de escritorio (Windows.Forms), pero la base de datos no est en nuestro equipo. El cdigo podra ser el siguiente, y puedes usar una direccin IP o el nombre de un dominio (D NS) para indicar el nombre del servidor de SQL Server:
data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contrasea

Conectar usando cdigo 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 cmo 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 cdigo mostrado. Este mismo cdigo ser vlido tanto para una aplicacin de Windows o una pgina 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 cdigo para Visual Basic y C# sera el siguiente:

Imports System.Data Imports System.Data.SqlClient

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

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 = Contrasea";

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):

Potrebbero piacerti anche