Creando una aplicación para conectarse a MS SQL Server

Anuncio
Creando una aplicación para conectarse
a MS SQL Server
Cuando uno instala .Net Framework, se instalan las clases que permiten el acceso a una base de
datos MS Sql Server, por lo que dentro de la biblioteca de clases, vienen las clases que nos
permiten trabajar con esta base de datos. Si queremos cambiar de base de datos, debemos de
conseguirnos las clases que nos permitirán conectarnos a la base de dato que deseemos, existen
conectores para MySql, Postgress ,etc.
En esta ocasión, lo que voy a hacer es crear dos proyectos del tipo ClassLibrary, uno en C# y otro
en C++ para que tengas la aplicación en ambos lenguajes. A través de estas aplicaciones me
conectaré a una Base de Datos MS SQL Server 2008, extraeré la información y en un post posterior
te mostraré como puedes hacer para mostrarla en pantalla.
Te recomiendo leer el post Creando un Proyecto Class Library para que recuerdes de que se trata.
Continuando, recuerda que que estoy haciendo dos proyectos, uno en C# y otro en C++, pero
basta con hacer sólo uno de ellos, porque recuerda que en Visual Studio, puedes combinar, en una
misma solución, varios lenguajes.
En general, para conectarnos a una base de datos necesitamos de un objeto Connection y un
objeto Command y de manera puntual los objetos en el caso de SQL son SqlConnection y
SqlCommand, ambos definidos en el namespace System.Data.Sql. De igual forma necesitamos de
un SqlAdapter, quien es el vínculo entre el comando definido y por lo tanto quien será el canal de
comunicación entre nuestra aplicación y la base de datos.
Luego de crear los proyectos, lo primero que voy a colocar son los namespace que me hacen falta
para trabajar:
Visual C++
C#
1 using namespace System;
2 using namespace System::Collections::Generic;
3 using namespace System::Linq;
4 using namespace System::Text;
5 using namespace System::Data;
6 using namespace System::Data::Sql;
7 using namespace System::Data::SqlClient;
Asignando la Cadena de Conexión
Por su nombre en inglés, la cadena de conexión es asignada mediante la propiedad
ConnectionString, del objeto Connection que se utilice para conectarse a la Base de Datos indicada.
Si leíste los dos post a los que hago mención al inicio, pudiste observar que hay una serie de Clases
que nos permitirán trabajar con la data. Uno de estas clases es el DataSet. El DataSet, te permite
definir un objeto para que, luego de extraída la información, el cliente pueda mostrarla, insertar
nuevos campos, modificarla, etc. En resumen, el DataSet se refleja desde el lado Cliente, por lo que
permite que la aplicación Cliente, tenga en memoria los datos que han sido extraídos para poder
trabajar con ellos.
Por lo tanto, voy a definir una función que te permita obtener todos los registros de la tabla
CopstoneTable ubicada en la base de datos llamada CopstoneBD y que retorne un DataSet, el cual
será recorrido o manipulado por otra aplicación.
Visual C++
C#
view sourceprint?
01 public ref class MiPrimeraConexionaunaBD
02
{
public <img src="http://copstone.com/wp03 includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley">
ataSet^
Trae_Informacion_Desde_BD()
04
{
05
06
/*Creamos un objeto del tipo SqlConnection
* para conectarnos a la Base de Datos*/
07
08
SqlConnection ^sqlcon = gcnew SqlConnection();
/*Mediante la propiedad ConnectionString
09
10
*asignamos la cadena de conexión */
sqlcon->ConnectionString = "DatSource=localhost;
11
12
initial catalog=Pubs;
user id=sa; password=SsAa";
13
14
/*Creamos un comando para seleccionar
*los campos que deseamos obtner*/
15
16
SqlCommand ^cmd = gcnew SqlCommand("Select * from pubs");
/*Creamos un sqladapter que estará
17
* vinculado a la consulta realizada*/
18
SqlDataAdapter ^da = gcnew SqlDataAdapter(cmd);
19
20
//Creamos un objeto DataSet
DataSet ^ds = gcnew DataSet();
21
22
try
{
//Abrimos la conexión a la BD
23
24
sqlcon->Open();
try{
25
26
/*A partir del sqladapter
*definido llenamos
27
el dataset*/
28
29
30
da->Fill(ds);
}
31
__finally{
32
33
34
/*Finalmente siempre cerramos
la conexión a la BD
35
36
*/
sqlcon->Close();
37
38
}
}
39
40
catch(...)
{ //Ante cualquier error lanzamos la excepción
41
throw ;
42
}
43
44
/*Retornamos el objeto dataset
*para ser utilizado por el cliente*/
45
return ds;
46
47
}
};
Bueno, con este código, cambiado el nombre de la Base de Datos en la cadena de conexión y el
nombre de la tabla, puedes obtener la información desde cualquier tabla. Cuando instalas MSSQL
Server, trae Bases de Datos de Ejemplo: Pubs, NorthWind, etc, las cuales puedes utilizar para
practicar estas rutinas.
Lo que hace este código únicamente es recopilar información desde una tabla, pero lo que aún no
hacemos es como insertar, modificar o borrar los valores, eso lo iremos aprendiendo de a pocos.
En el próximo post, lo que voy a realizar es una aplicación cliente que interactúe con este Proyecto
ClassLibrary y por lo tanto recorra el DataSet y puedas mostrar la información en pantalla.
Descargar