Server 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 Descripcin ServidorSQL 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 Descripcin . (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 aplicacin. Es preferible usar (local). NombreEquipo 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. NombreDNS Un nombre DNS es decir, un nombre que despus "resolver" una direccin IP, por ejemplo, el nombre de un servidor de Internet: nombreDominio.com. DireccinIP 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 DireccinIP, Puerto La direccin 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 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 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. Contrasea 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 (DNS) 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): Adems de la conexin tpica de Data Source = <servidor>; Initial Catalog = <baseDatos>, puedes usar esta otra forma: Server = <servidor>; DataBase = <baseDatos>. Listado de cadenas de Conexin Lista de algunos ConnectionString prrafo Acceder a la Base de Datos y Archivos de Datos MEDIANTE Ado Aqui s Listan ALGUNAS cadenas de Conexin, y also pods descargar archivo this Enviado por Luis Nuez, Que Contiene ejemplos de cadenas de conexion de ADO prr ODBC DSN / DSN-Less, OLE DB Proveedores, Remote Data Services (RDS), MS remoto, y MS DataShape. TAMBIEN ESTAN includas Cadenas De Conexion prr ADO.NET Y Proveedores de como MySQL, ODBC, OLE DB, Oracle , y SQL Server . NET estndar Descargar listado
Microsoft Access
Conecta una base de ua de Datos de pisos de acceso MEDIANTE OleDB Dim path_Bd As String
path_Bd = App.Path & "\ Nombre.mdb"
cnn.Open "Provider = Microsoft.Jet.OLEDB.4.0;" Y "Fuente de datos =" & _ path_Bd & ";" Y "User Id = admin, contrasea ="
Conecta una base de ua de Datos Microsoft Access MEDIANTE ODBC. Sin la contrasea y el pecado CONTRASEA cnn.Open "driver = {Microsoft Access Driver (* mdb.)};" & _ "Dbq = c: \ LaBase.mdb; uid = administrador; pwd ="
Conecta MEDIANTE ODBC en Modo Exclusivo cnn.Open "Driver = {Microsoft Access Driver (* mdb.)};" & _ "Dbq = C: \ Labase.mdb; Exclusive = 1; UID = admin; Pwd =;"
Para. Net OleDB MEDIANTE y estafa Contrasea cnn.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _ "Origen de datos = C: \ LaBase.mdb;" & _ "Jet OLEDB: Database Password = contrasea;"
Conecta una base de ua de Datos Microsoft Access MEDIANTE OLEDB, Log in using ONU Grupo de Trabajo Dim path_Bd As String
Cadena de Conexin Log in using OLEDB cnn.Open "Provider = SQLOLEDB;" & _ "Origen de datos = Nombre_del_Servidor;" & _ "Initial Catalog = Nombre_de_la_base;" & _ "User Id = USUARIO, contrasea = PASSWORD"
Log in using ODBC cnn.Open "driver = {SQL Server};" & _ "Server = NOMBRE_DEL_SERVIDOR; base de datos = LA_BASE; uid = USUARIO; pwd = contrasea"
MySql Una ONU OLEDB MEDIANTE MySql Servidor Servidor en. NET cnn.Open "Provider = MySQLProv;" Y "Data Source = base;" & _ "User Id = USUARIO, contrasea = PASSWORD"
Una base Mysql Una Remota MEDIANTE ODBC cnn.Open "Driver = {MySQL ODBC 3.51};" & _ "Servidor = data.domain.com;" & _ "Port = 3306; Database = Labase;" & _ "Usuario = USUARIO, contrasea = contrasea; opcin = 3;"
Base de Datos MEDIANTE local de ODBC cnn.Open "Driver = {MySQL ODBC 3.51}; Servidor = localhost;" & _ "Database = Labase; usuario = Usuario, contrasea = contrasea; opcin = 3;"
Cadenas de Conexin prr Conectar un Microsoft Excel
Un archivo de Excel sin MEDIANTE OLEDB conexion.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _ "Origen de datos =" & path_Bd & _ "; Extended Properties =" "Excel 8.0; HDR = Yes;" "" Example: Leer hoja de Excel estafa ADO
ConnectionString prr Archivos de texto (txt, csv, etc.)
ODBC cnn.Open "DRIVER = {Microsoft Text Driver (* txt,. *. csv)};" & _ "DBQ =" & App.Path & ";", "", "" 'cargar Example prrafo de registros sin 'El archivo de texto en la clusula Desde