Está en la página 1de 78

Base de Datos

Resumen

Base de Datos

Tipos de Bases de Datos

ADO.NET

Lenguaje de Consulta
Estructurado (SQL)

Principales Clases de ADO.NET

Proveedores de datos de ADO.NET

Comandos

Clausulas

Desplazamientos por los registros


de una tabla

Operadores Lgicos

Operadores de comparacin

Funciones de agregado

Sentencias Bsicas SQL

Conexin a BD

Bases de Datos

Una base de datos es un sistema formado por un conjunto de datos relacionados y


almacenados en discos que permiten el acceso directo a ellos y una serie de
programas que manipulan ese conjunto de datos (SGBD sistema de gestin de
bases de datos).

Cada base de datos se compone de una o ms tablas que guardan los datos.

Cada tabla tiene una o ms columnas y filas.

Las columnas guardan una parte de la informacin sobre cada elemento que se
quiere guardar en la tabla, cada fila de la tabla conforma un registro.

Un registro contiene campos que pueden ser del mismo tipo de dato o de
diferentes tipos de datos.

Tipos de Bases de Datos


En el mercado existen varios sistemas de administracin de bases de datos, algunos
son: SQL Server, Access, Oracle, MySQL, etc.

Relacionales

Son las que ms se utilizan. Las bases de datos relacionales son un conjunto de
tablas relacionadas entre s, las tablas pertenecientes a una base de datos pueden
relacionarse entre s utilizando campos clave comunes entre las tablas.

Orientada a objetos

El esquema de una base de datos por objetos est representado por un conjunto de
clases que definen las caractersticas y el comportamiento de los objetos que
poblarn la base de datos. Con una base de datos orientada a objetos, los objetos
memorizados en la base de datos contienen tanto los datos como las operaciones
posibles con tales datos

Lenguaje de Consulta Estructurado


(S.Q.L.)
Es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de
bases de datos para realizar determinadas operaciones sobre los datos o sobre la
estructura de los mismos. El lenguaje SQL est compuesto por comandos, clusulas,
operadores y funciones de agregado. Estos elementos se combinan en las
instrucciones para crear, actualizar y manipular las bases de datos.

Comandos

Existen dos tipos de comandos SQL:

DLL que permiten crear y definir nuevas bases de datos, tablas, campos e ndices.

DML que permiten generar consultas para ordenar, filtrar y extraer datos de la
base de datos.

Comandos
Comandos DLL
Comando

Descripcin

CREATE

Utilizado para crear nuevas bases de datos, tablas, campos e ndices.

DROP

Empleado para eliminar bases de datos, tablas e ndices.

ALTER

Utilizado para modificar las tablas agregando campos o cambiando la definicin


de los campos.
Comandos DML

SELECT

INSERT

Utilizado para consultar registros de la base de datos que satisfagan un criterio


determinado.
Utilizado para cargar lotes de datos en la base de datos en una nica operacin.

UPDATE

Utilizado para modificar los valores de los campos y registros especficados.

DELETE

Utilizado para eliminar registros de una tabla de una base de datos.

Clausulas
Clusula

Descripcin

FROM

Para especficar la tabla de la cual se van a seleccionar los registros.

Para especficar las condiciones que deben reunir los registros a seleccionar.
WHERE
GROUP BY

Utilizada para separar los registros seleccionados en grupos especficos.

HAVING

Utilizada para expresar la condicin que debe satisfacer cada grupo.

ORDER BY

Para ordenar los registros seleccionados.

Operadores lgicos
Operador

Uso

AND

Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo si


ambas son ciertas.

OR

Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si alguna


de las dos es cierta.

NOT

Negacin lgica. Devuelve el valor contrario de la expresin.

BETWEEN

Utilizado para especficar un intervalo de valores.

LIKE

Utilizado en la comparacin de un patrn.

IN

Utilizado para especficar registros de una base de datos.

ALL

Devuelve True si el conjunto de comparaciones es verdad.

Operadores de Comparacin
Operador

Uso

<

Menor que

>

Mayor que

<>

Distinto de

<=

Menor o igual que

>=

Mayor o igual que

Igual que

Funciones de agregado
Funcin

Descripcin
Utilizada para calcular el promedio de los valores de un campo determinado.

AVG
COUNT

Utilizada para devolver el nmero de registros de la seleccin.

Utilizada para devolver la suma de todos los valores de un campo determinado.


SUM
MAX

Utilizada para devolver el valor ms alto de un campo especficado.

Utilizada para devolver el valor ms bajo de un campo especficado.


MIN

Sentencias Bsicas SQL

CREATE DATABASE <nombre_base_de_datos)

DROP DATABASE <nombre_base_de_datos_a_eliminar>

CREATE TABLE nombre_tabla (campo1 tipodato DEFAULT,., campo2 tipodato,


DEFAULT)

La clusula DEFAULT indica la caracterstica de cada columna: NOT NULL (no permite
valores nulos), UNIQUE (dos filas no pueden tener un mismo valor en la misma
columna), PRIMARY KEY (define una columna como clave principal).

DROP TABLE nombre_tabla

INSERT INTO nombre_tabla (campo1, campo2,.) VALUES (valor1, valor2,.)

ALTER TABLE nombre_tabla ADD nombre_campo tipo_de_dato ()

Sentencias Bsicas SQL

SELECT * FROM usuarios

SELECT identificacion FROM usuarios

SELECT * FROM usuarios WHERE identificacin<=116

SELECT nombres FROM usuarios WHERE nombres IN (Andres,Cristian)

SELECT * FROM usuarios WHERE identificacin<=130 AND ciudad=Bogota

SELECT * FROM usuarios WHERE nombres LIKE C%

SELECT * FROM usuarios WHERE nombres LIKE %i%

SELECT * FROM usuarios WHERE nombres LIKE _o%

SELECT * FROM usuarios WHERE identificacin BETWEEN 116 AND 140

Sentencias Bsicas SQL

DELETE FROM nombre_tabla

DELETE FROM usuarios WHERE identificacin >150

DELETE FROM usuarios WHERE nombres NOT IN (Cristian)

UPDATE nombre_tabla SET nombre_campo=criterio

UPDATE usuarios SET credito=100000

UPDATE usuarios SET credito=credito +200000 WHERE nombres LIKE A%

UPDATE usuarios SET credito=credito+50000 WHERE ciudad=Bogota

Sentencias Bsicas SQL

DELETE FROM nombre_tabla

DELETE FROM usuarios WHERE identificacin >150

DELETE FROM usuarios WHERE nombres NOT IN (Cristian)

UPDATE nombre_tabla SET nombre_campo=criterio

UPDATE usuarios SET credito=100000

UPDATE usuarios SET credito=credito +200000 WHERE nombres LIKE A%

UPDATE usuarios SET credito=credito+50000 WHERE ciudad=Bogota

Conexin a Base de Datos


Visual Basic .NET utiliza la tecnologa ADO.NET que permite el acceso a bases de
datos mediante proveedores para sistemas administradores de bases de datos que
funcionan en el entorno .NET. ADO.NET se utiliza entonces para conectar a estos
orgenes de datos y recuperar, manipular y actualizar los datos contenidos.

ADO.NET es un conjunto de clases que se encuentran en el archivo System.Data.dll y


est integrada con las clases del archivo System.Xml.dll. Cuando se compila un
cdigo que utiliza el espacio de nombres System.Data se hace referencia a dichos
archivos. Estas clases sirven para separar el acceso a la base de datos y la
manipulacin de los mismos.

Principales clases de ADO.NET

DataSet: Es el conjunto de datos donde se pueden incluir una o ms tablas con la


informacin acerca de las relaciones entre stas, y las restricciones que puedan
tener los datos.

DataTable: Permite la manipulacin de los datos en la memoria y realiza


operaciones como exploracin, ordenacin, edicin, aplicacin de filtros,
creacin de vistas, etc.

DataView: Permite representar los datos de la clase DataTable, creando mltiples


vistas de los mismos.

DataReader: Lee un flujo de datos de solo avance y solo lectura desde un origen
de datos

Proveedores de datos de ADO.NET


La plataforma .NET incorpora cuatro proveedores: SQL SERVER, ORACLE, ODBC,
OLEDB. Los proveedores de datos proporcionan el puente entre las bases de datos y
las aplicaciones. Los principales objetos de un proveedor de datos .NET son:

Connection: Sirve para establecer una conexin con una base de datos.

Command: Sirve para ejecutar sentencias SQL y devolver resultados de una base
de datos.

BD

DataAdapter:
Es el adaptadorConnection
de datos, el cual
es un conjunto
de objetos para
NameSpace
Command
DataAdapter
intercambiar datos entre una base de datos y un conjunto de datos.

SQL SERVER

System.Data.SqlClient

SqlConnection

SqlCommand

SqlDataAdapter

OLEDB

System.Data.OleDb

OleDbConnection

OleDbCommand

OleDbDataAdapter

ORACLE

System.Data.OracleClient

OracleConnection

OracleCommand

OracleDataAdapter

ODBC

System.Data.Odbc

OdbcConnection

OdbcCommand

OdbcDataAdapter

Objetos comunes de ADO.NET

Desplazamiento por los registros de una


tabla
Se ha realizado conexin a una base de datos utilizando cdigo o por medio de la
herramienta Explorador de servidores y recurriendo al control DataGridView,
visualizndose los registros de una tabla especfica.
Aparte de visualizar la informacin que contenga una tabla, tambin puede
desplazarse o moverse por cada uno de los registros que contenga dicha tabla. Est
operacin la realiza en un formulario utilizando TextBox o un DataGridView y puede
desplazarse por cada uno de los registros por medio de botones o de un control
BindingNavigator.

Muchas Gracias
Cuando menos lo esperamos, la vida nos coloca delante un desafo que pone a
prueba nuestro coraje y nuestra voluntad de cambio Paulo Coelho.

LISTADO DE REGISTROS DE LA TABLA EMPLEADOS (MODO


CONECTADO)
1. Para este ejercicio, se requiere tener el archivo Empleados.mdb en
C:\Datos,esta es una base de datos creada en Microsoft Access. Es necesario
asegurarse que el archivo se llame Empleados.mdb y se encuentre ubicado
en C:\Datos.
2. Crear un nuevo proyecto Windows en C#.NET. En la Forma (Form1), colocar 3
botones de comando y un dataGridView de la siguiente manera:

El dataGridView principalmente sirve para desplegar una cuadrcula que


muestra datos (aunque tambin es posible modificarlos, si se desea). Un
dataGridView permite configurar los renglones y las columnas que se
muestran en ella.
3. Cambiar las siguientes propiedades:
a. En la Forma (Form1)
i. Text: Listado
b. En el DataGridView
i. Name: dataGridView1 (Por default ya aparece as, solo checar
que tenga ese nombre)
ii. ReadOnly: True
4. Dar doble click en el botn Regresar y teclear lo siguiente:
this.Close();
5. Dar doble click en el botn Limpiary teclear lo siguiente:
dataGridView1.DataSource = null;
6. Buscar arriba, al principio del cdigo, la seccin donde se colocan las sentencias
using. Slo busque la seccin, no cambie nada: Inmediatamente despus,
agregue esta lnea: (NOTA: Esta lnea es la referencia a las clases necesarias
para acceso a datos mediante ADO.NET en este programa.).

a. using System.Data.OleDb;
7. Regresar al modo de diseo de la forma, dar doble click en el botn LISTAR y
teclear lo siguiente:

private void btnListar_Click(object sender, EventArgs e)


{
try
{
string cc = "provider=Microsoft.Jet.OLEDB.4.0;data source=C:\\Datos\\Empleados.mdb";
OleDbConnection cn = new OleDbConnection(cc);
cn.Open();
string comando = "Select * from Empleados";
OleDbCommand cm = new OleDbCommand(comando, cn);
OleDbDataReader dr = cm.ExecuteReader();
if (dr.HasRows == true)
{
DataTable dt = new DataTable();
dt.Load(dr);
dataGridView1.DataSource = dt;
dataGridView1.Columns[2].DefaultCellStyle.Format = "c2";
dataGridView1.Columns[2].DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleRight;
dataGridView1.AutoResizeColumns();
}
else
{
MessageBox.Show(" No hay datos para mostrar! ");
}
cn.Close();
}
catch (Exception ex)
{
MessageBox.Show(" Ha habido un error! " + ex.Message);
}
}

8. En este punto, el programa debe mostrar los registros que se encuentran en la


tabla Empleados. Entre a Access, y verifique que los registros que se muestran
en pantalla sean los que se efectivamente se encuentran grabados en la tabla
Empleados.

EXPLICACIN DEL CDIGO PARA EL LISTADO DE DATOS (BOTN


LISTAR)
Observe que todo el cdigo se encuentra dentro de un bloque try..catch. Es una
practica comn que todas las operaciones realizadas con una base de datos se
encierren siempre en un bloque try..catch para prevenir que un error inesperado
altere la ejecucin del programa. De esta manera, si ocurre alguna excepcin, el usuario
obtiene el respectivo aviso, y sigue con la operacin normal de su programa.
Para realizar este listado, usaremos el modo conectado de ADO.NET. En este modo
conectado, los objetos principales son el Connection, Command, y DataReader.
Recordemos que el Connection es el encargado de conectar, y mantener un enlace
con la base de datos. El Command es una va para ejecutar sentencias SQL en la base
de datos. El DataReader es un objeto donde temporalmente se almacenan los
registros que son el resultado de la consulta ejecutada. El DataReader proporciona

una manera limitada de almacenamiento, pero ofrece la ventaja de que no consume


muchos recursos y funciona rpidamente. El primer paso es construir la cadena de
conexin. Observe que se utiliza una variable string llamada cc para almacenar los
datos de la cadena de conexin, la cual contiene todos los detalles que necesita
ADO.NET para conectarse a la base de datos. Observe como en esta cadena de
conexin se menciona que el archivo se encuentra en C:\Datos\ y se llama
Empleados.mdb.
Nota: Se coloca doble diagonal (c:\\datos\\empleados.mdb) pues la diagonal (\)
es un carcter especial en C#, y su sintaxis requiere que se coloque doble (\\) para que
C# lo interprete como tal.
string cc = "provider=Microsoft.Jet.OLEDB.4.0;data
source=C:\\Datos\\Empleados.mdb;";
El siguiente paso es crear una conexin hacia esta base de datos (descrita en la cadena
de conexin anterior) y posteriormente abrirla:
OleDbConnection cn = new OleDbConnection(cc);
cn.Open();

El siguiente paso es colocar en una variable la sentencia SQL con la cual se va a llenar
el DataSet para el listado que se desea obtener. En este caso, la sentencia Select *
from empleados es suficiente para traer todos los campos de los registros de la tabla
Empleados.
string comando = "Select * from empleados";
Ahora se debe crear un objeto Command para poder enviar esta consulta, utilizando la
conexin que previamente se ha creado y abierto hacia la base de datos que se est
utilizando:
OleDbCommand cm = new OleDbCommand(comando, cn);
Ahora se debe crear un objeto DataReader para almacenar el resultado de la consulta
que ejecutar el objeto Command creado anteriormente.
Nota: Observe que el mtodo ExecuteReader indica que se espera un resultado
despus de ejecutar la consulta; dicho resultado se debe almacenar en un
DataReader.
OleDbDataReader dr = cm.ExecuteReader();
El siguiente paso es verificar si la consulta entrega resultados (Es posible que no haya
ningn dato en la tabla de Empleados). Si el DataReader tiene renglones (HasRows
= true), significa que por lo menos hay un rengln que debe mostrarse. En el caso
contrario (else), no hay ningn dato para mostrar.

if (dr.HasRows == true)
{
/* Ahora bien, si hay datos para mostrar, el DataReader debe ser
cargado a una estructura llamada DataTable, que permite que el
DataGridView muestre los datos directamente de ella. Nota: El
DataGridView NO puede mostrar los datos directamente del
DataReader. */
DataTable dt = new DataTable();
dt.Load(dr);
dataGridView1.DataSource = dt;
/*Estas lineas sirven para colocar formato especial a la tercera
columna (Recordar que las columnas se numeran comenzando en cero).
La tercera columna debe mostrar un signo de pesos, dos decimales
y la cantidad debe estar cargada a la derecha de la celda donde
se muestra.*/
dataGridView1.Columns[2].DefaultCellStyle.Format = "c2";
dataGridView1.Columns[2].DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleRight;
/*Esta instruccin permite que automticamente se ajuste el ancho
de las columnas del DataGridview */
dataGridView1.AutoResizeColumns();
}
else
{
MessageBox.Show(" No hay datos para mostrar! ");
}
Finalmente, se debe cerrar la conexin que fue abierta anteriormente:
cn.Close();

Bases de Datos Access y C#. Insert, select, update, delete

1. Crea una base de Datos en Access

2. Crea un Nuevo proyecto en C#

3. Agrega una nueva clase llamada Database y a continuacin escribe el siguiente cdigo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
namespace bd_access2
{
class Database
{
private string StrConexion;
private OleDbConnection Conexion;
private OleDbDataAdapter Adapter;
private DataSet miDataSet = new DataSet();
public void IniciarConexion(string DataBase)
{
//Creo la cadena de conexion para Office 2007
StrConexion = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = " + DataBase;
//Objeto conexion
Conexion = new OleDbConnection(StrConexion);
}

public int ejecutar_sql(string sql)


{
//inserto en la BD
int i = 0;
try
{
Conexion.Open();
OleDbCommand cmd = new OleDbCommand(sql, Conexion);
i = cmd.ExecuteNonQuery();
}
catch
{
i = -1;
}
return i;
}
public DataTable consultar(string sql, string tabla)
{
Adapter = new OleDbDataAdapter(sql, Conexion);
//Creo el DataTable
DataTable dt = new DataTable();
//Relleno el adaptador con los datos en memoria
Adapter.Fill(dt);
return dt;
}
}
}

4. Crea una nueva clase llamada Alumnos y escribe el siguiente cdigo:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace bd_access2
{
class Alumnos
{
public string ncuenta;
public string nombre;
public string apellidop;
public string apellidom;
public int edad;
public int semestre;
public Alumnos()
{
}
public Alumnos(string ncuenta, string nombre, string apellidop, string apellidom, int edad, int
semestre)
{
this.ncuenta = ncuenta;
this.nombre = nombre;
this.apellidop = apellidop;
this.apellidom = apellidom;
this.edad = edad;
this.semestre = semestre;
}
}
}

5. Edita el formulario agregando los siguientes componentes:

6. Edita la propiedad ContextMenuStrip del DataGridView1. (Le permitir mostrar un men


flotante al dar clic con el botn derecho sobre el DataGridView.

7. Edita el cdigo del Form1.cs


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace bd_access2
{
public partial class Form1 : Form
{
Database DB = new Database();
String sql;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
DB.IniciarConexion("../../prueba.accdb");
//Creo el miembro de datos del DataGridView
dataGridView1.DataMember = "alumnos";
}
private Alumnos asig_alum_text()
{
string ncta, nombre, apellidop, apellidom;
int edad = 0, semestre;
ncta = txtnCta.Text;
nombre = txtNombre.Text;
apellidop = txtApellidop.Text;
apellidom = txtApellidom.Text;
try

{
edad = Convert.ToInt32(txtEdad.Text);
}
catch
{
//Ejemplo de validacion
MessageBox.Show("Ingrese un valor numerico");
txtEdad.Focus();
txtEdad.SelectionStart = 0;
txtEdad.SelectionLength = txtEdad.TextLength;
}
semestre = Convert.ToInt32(txtSemestre.Text);
Alumnos A = new Alumnos(ncta, nombre, apellidop, apellidom, edad, semestre);
return A;
}
private void btnInsertar_Click(object sender, EventArgs e)
{
Alumnos a = asig_alum_text();
sql = "INSERT INTO alumnos(ncuenta,nombre,apellidop,apellidom,edad,semestre)";
sql += "VALUES('" + a.ncuenta + "'" + ",'" + a.nombre + "','" + a.apellidop + "'";
sql += ",'" + a.apellidom + "','" + a.edad + "', '" + a.semestre + "')";
int insert = DB.ejecutar_sql(sql);
if (insert == 1) //Si se logro la insercion limpio el formulario
{
MessageBox.Show("Se insertaron correctamente sus datos");
foreach (Control txt in this.Controls)
{
if (txt.GetType() == typeof(TextBox))
txt.Text = "";
}
}
else
MessageBox.Show("Hubo un error al insertar los datos");
}
private void btnBuscar_Click(object sender, EventArgs e)
{
sql = "SELECT * FROM alumnos WHERE ncuenta='" + txtCriterio.Text + "'";
//Vuelco los datos al DataGridView
dataGridView1.DataSource = DB.consultar(sql, "alumnos");
}
private void modificarToolStripMenuItem_Click(object sender, EventArgs e)
{
//Para modificar los datos del alumnos
int renglon = dataGridView1.CurrentCell.RowIndex;
int ncuenta = Convert.ToInt32(dataGridView1[0, renglon].Value.ToString());
if (ncuenta != -1)
{
txtnCta.Text = dataGridView1[0, renglon].Value.ToString();
txtNombre.Text = dataGridView1[1, renglon].Value.ToString();
txtApellidop.Text = dataGridView1[2, renglon].Value.ToString();
txtApellidom.Text = dataGridView1[3, renglon].Value.ToString();
txtEdad.Text= dataGridView1[4, renglon].Value.ToString();
txtSemestre.Text = dataGridView1[5, renglon].Value.ToString();
btnActualizar.Enabled = true;
}
}

private void eliminarToolStripMenuItem_Click(object sender, EventArgs e)


{
//Para eliminar un alumno
int renglon = dataGridView1.CurrentCell.RowIndex;
int ncuenta = Convert.ToInt32(dataGridView1[0, renglon].Value.ToString());
if (ncuenta != -1)
{
if (MessageBox.Show("Esta seguro que desea eliminar el alumno " + dataGridView1[1,
renglon].Value.ToString(), "Eliminar registro", MessageBoxButtons.YesNo) ==
DialogResult.Yes)
DB.ejecutar_sql("DELETE FROM alumnos WHERE Cuenta='"+ ncuenta +"'");
dataGridView1.Rows.RemoveAt(renglon);
}
}
private void btnActualizar_Click(object sender, EventArgs e)
{
Alumnos a = asig_alum_text();
sql = "UPDATE alumnos SET nombre='" + a.nombre + "',";
sql += " apellidop='" + a.apellidop + "',apellidom='" + a.apellidom + "',";
sql += " edad='" + a.edad + "', semestre='" + a.semestre + "'";
sql += " WHERE ncuenta='" + a.ncuenta + "'";
int update = DB.ejecutar_sql(sql);
if (update == 1) //Si se logro la insercion limpio el formulario
{
MessageBox.Show("Se actualizaron correctamente sus datos");
foreach (Control txt in this.Controls)
{
if (txt.GetType() == typeof(TextBox))
txt.Text = "";
}
}
else
MessageBox.Show("Hubo un error al actualizar los datos");
}
}
}

NOTAS:

No olviden generar todo el cdigo de los eventos.


Verifiquen bien el nombre de sus controles.
Integren un mdulo de validacin de datos.
Agreguen control de errores en las partes que lo requieran.

Crear conexin a base de datos SQL Server

Programando con Visual C# 2008

Objetivo: Conectar una base de datos SQL Server a nuestra aplicacin en Microsoft Visual
C# 2008, por medio de cdigo.
1. Para empezar, crear una aplicacin en Microsoft Visual Studio 2008, a la cual yo llamare
Conexin.
2. En el primer formulario lo nico que agregar ser un componente Button (Botn), tal
como se ve en la siguiente imagen.

3. Supondr que esta Forma ser el SplashScreen de nuestra aplicacin, pero sin la
funcionalidad del mismo. El Button me servir para instanciar la apertura de la siguiente
Forma.
4. Para llevar a cabo la conexin de mi aplicacin con la base de datos, en mi caso llamada
Empresa, me valdr del evento Load de la Forma, y en el colocare el siguiente cdigo.

Try
{
myConnection.ConnectionString = conexion;
myConnection.Open();
MessageBox.Show("Conectado a la Base de Datos: " +
myConnection.Database);
}
catch
{
MessageBox.Show("No se pudo establecer conexion con la base de
datos: " + myConnection.Database);
Application.Exit();
}

En este sencillo cdigo, estoy implementando un Try catch (yo lo llamo: Intenta esto Si
falla haz esto), en donde en la primer parte estoy utilizando una variable llamada
myConnection (se le puede poner cualquier nombre) la cual es de tipo SqlConnection, y
que por haber sido creado de este tipo, hereda ciertos mtodos y propiedades, como lo es
ConnectionString; la cual almacenara, propiamente, la cadena de conexin con el Servidor

Autor: I.S.C. E.D. M.C.E. Ricardo de Jess Bustamante Gonzlez

Crear conexin a base de datos SQL Server

Programando con Visual C# 2008

u Origen de datos (Data Source), conexion; es simplemente una variable tipo cadena que
almacena la cadena de conexin.
Open(), es un mtodo, que permite abrir, lgicamente, la conexin de nuestra base de
datos, para nuestra aplicacin. Despus genero un mensaje indicando que se ha
conectado a la base de datos, e indico el nombre de esta en el mensaje, cabe mencionar
que este mensaje no es obligatorio colocarlo, es lo para que sirva me mtodo se
aseguramiento nuestro de que ya se conect a la base de datos, ya que se ejecut el
cdigo dentro de Try y no el de catch.
Ahora bien, en el cdigo que se ejecutara si no se realiza lo de Try o sea lo de catch ,
muestro un simple mensaje como el anterior pero indicando lo contrario, que no se pudo
conectar a la base de datos; para despus terminar la ejecucin de la aplicacin.
Pero o sorpresa, si ejecutas tu aplicacin, NO FUNCIONA, marca errores. Esto es porque
no hemos definido las variables, as que manos a la obra.
5. Dentro de public partial class Form1 : Form, la cual es la clase de la Forma 1, declararemos
nuestras variables.
public SqlConnection myConnection = new SqlConnection();
public string conexion = "server=.\\SQLEXPRESS;" +
"Trusted_Connection=yes;" + "database=Empresa; " + "connection
timeout=30";

Como podemos ver, en este cdigo, indico public antes del tipo de dato, ya que deseo que
mi variable sea pblica, es decir accesible en todo momento, el tipo de dato que necesito,
como ya explique antes, es SqlConnection; ya que es una conexin de SQL, y el nombre de
mi variable, que tambin ya se haba visto, es myConnection, y dentro de ella almaceno la
funcin SqlConnection, la cual me servir para poder heredar propiedades y mtodos
propios de este tipo de dato.
De igual manera, en la siguiente instruccin, declaro una variable pblica (public) de tipo
string, llamada conexion, en la cual almaceno la cadena de conexin de mi servidor u
origen de datos, con sus debidos parmetros.
PARMETRO

DESCRIPCIN

Data Source o Server

Hace referencia al servidor de Base de datos. A este campo


se le puede asignar uno de los siguientes valores:

Initial
Catalog
DataBase

El nombre del equipo servidor, por ejemplo:


BDEJEMPLO
La IP del servidor, por ejemplo: 10.10.1.1
La instancia del servidor de Base de Datos, por
ejemplo: .\\MSSQL o bien .\\SQLEXPRESS
Hace referencia a la Base de datos contenida en el Data
Source indicado, debe de escribirse el nombre de la base de
datos, no el nombre de la tabla.

Autor: I.S.C. E.D. M.C.E. Ricardo de Jess Bustamante Gonzlez

Crear conexin a base de datos SQL Server

Programando con Visual C# 2008

Entre otros.
6. Ahora s, guarda los cambios de tu aplicacin, y debers de ver si la conexin es correcta el
siguiente mensaje.

Y al dar click en el botn OK, se mostrara nuestra ventana.

7. En caso contrario, se mostrara el mensaje siguiente:

Y al dar click en OK, se terminara la ejecucin de la aplicacin.


8. Y hasta aqu eh terminado satisfactoriamente, la conexin de la base de datos Empresa,
de SQL Server, se ha conectado a mi aplicacin en Visual C# 2008. Ahora bien, antes que
otra cosa, cambia la propiedad Text del Button a: Ir al Form 2, y en el evento Click del
Button, colocaremos el cdigo para instanciar a la siguiente Forma, la Forma 2.

Autor: I.S.C. E.D. M.C.E. Ricardo de Jess Bustamante Gonzlez

Crear conexin a base de datos SQL Server

Programando con Visual C# 2008

Form2 f2 = new Form2();


f2.Show();

9. En esta instancia, cuando des click en el Button, se abrir la segunda Forma, como se
muestra a continuacin.

En Leccin 2 veremos: La generacin de una interfaz de conectividad para la


realizacin de las tareas como: Loggin, Registrar Usuario, Modificar Usuario y Cerrar.

Autor: I.S.C. E.D. M.C.E. Ricardo de Jess Bustamante Gonzlez

Manual Programacin C#.NET Visual Studio 2010 2012

TODOS LOS LOGOS E IMGENES EMPLEADOS EN ESTE MANUAL, SE HAN


UTILIZADO SOLAMENTE CON EL PROPSITO EDUCATIVO, ES DECIR, ILUSTRAR A
LOS ESTUDIANTES EN EL PROCESO ENSEANZA APRENDIZAJE. PERTENECEN
A SUS RESPECTIVAS EMPRESAS Y COMPAAS LOS DERECHOS DE AUTORES
(COPYRIGHT,) SON PROPIOS DE SU EMPRESAS.

Manual Programacin C#.NET Visual Studio 2010 2012


CAPTULO III. INTRODUCCIN A BASE DE DATOS Y ADO.NET
3.1 Medios de conexin a base de datos desde C#.net
3.2 Funcionamiento de los enlaces de datos
3.3 Modelo de objetos con ADO.NET
3.4 Programacin con ADO. NET
3.5 Datagridview y DataTable
3.6 Uso de un Dataset para leer y escribir XML

Manual Programacin C#.NET Visual Studio 2010 2012


CAPTULO III. INTRODUCCIN A BASE DE DATOS Y ADO.NET
3.0. Introduccin a las bases de Datos Relacionales con SQL Sever 2008.

Microsoft Sync Framework es una completa plataforma de sincronizacin que habilita la


colaboracin y el acceso sin conexin para las aplicaciones, servicios y dispositivos.
Ofrece tecnologas y herramientas que habilitan la movilidad, el uso compartido y la
capacidad necesaria para poner los datos fuera de conexin. Mediante Sync Framework,
los programadores pueden generar ecosistemas de sincronizacin que integran cualquier
aplicacin con cualquier dato de cualquier almacn que use un protocolo a travs de una
red.
Sync Framework est formado por las siguientes tecnologas, las tres primeras se pueden
instalar con SQL Server 2008:
Sync Services for ADO.NET se puede utilizar para sincronizar bases de datos en
escenarios sin conexin y de colaboracin.
Sync Services for ADO.NET puede utilizar los componentes bsicos de Sync
Framework con el fin de sincronizar las bases de datos y tambin se pueden utilizar
para crear proveedores de sincronizacin para otros tipos de almacenes de datos.
Sync Services para FeedSync se puede utilizar para sincronizar fuentes RSS y
Atom con los datos de un almacn local.
Sync Services for File Systems se puede utilizar para sincronizar los archivos y
carpetas en un sistema de archivos.
Metadata Storage Service se puede utilizar para almacenar los metadatos de
sincronizacin en SQL Server Compact 3.5.
El resto de este tema proporciona informacin general de Sync Services for
ADO.NET e incluye una comparacin con otras tecnologas de Microsoft.
3

Manual Programacin C#.NET Visual Studio 2010 2012


Aplicaciones conectadas ocasionalmente
Una alternativa a la solucin que se ha descrito en la seccin anterior es implementar una
aplicacin conectada ocasionalmente. Una aplicacin que se conecta de vez en cuando
permite a un trabajador remoto continuar teniendo acceso a los datos. Sin embargo, a
diferencia del escenario anterior en el que el usuario deba tener acceso directamente a la
base de datos corporativa para obtener la informacin que deseaba, esta se almacena de
forma local en un dispositivo. Para rellenar una base de datos local, una aplicacin
conectada ocasionalmente suele usar la sincronizacin de datos.
La sincronizacin de datos consiste en la capacidad de tomar peridicamente la
informacin que est almacenada en una base de datos cliente (como SQL Server
Compact 3.5) y sincronizar los cambios con una base de datos servidor (como SQL
Server). Una solucin basada en la sincronizacin proporciona la ventaja de que un
usuario ya no tiene que disponer de una conexin de red constante para obtener acceso a
la informacin. Dado que los datos estn almacenados localmente, un usuario tiene
acceso constante a los mismos mientras el procesamiento se descarga de la base de
datos central. Adems, dado que la velocidad de la red ya no es un factor limitador, ahora
un usuario puede obtener acceso a los datos a la velocidad del dispositivo.
Synchonization Services for ADO.NET
Sync Services for ADO.NET habilita la
sincronizacin entre las bases de datos.
Proporciona una API intuitiva y flexible que le
permite generar aplicaciones destinadas a
escenarios sin conexin y de colaboracin. Sync
Services for ADO.NET habilita la sincronizacin
entre dos elementos del mismo nivel, por
ejemplo entre bases de datos de SQL Server o
entre una base de datos cliente de SQL Server
Compact 3.5 y cualquier base de datos servidor
para las que se disponga de un proveedor
ADO.NET. La API le permite utilizar todos los
componentes que se proporcionan o slo
algunos, dependiendo de la arquitectura y los
requisitos de una aplicacin.
Las ilustraciones siguientes muestran ejemplos
de aplicaciones que estn conectadas
ocasionalmente en las que los datos
(representados por una base de datos verde) se conservan de forma local en el dispositivo
de un trabajador remoto. El primer ejemplo muestra un sistema de base de datos
independiente en el que la informacin se almacena directamente en el dispositivo del
usuario. El segundo ejemplo muestra una oficina remota en la que la informacin se
almacena en una base de datos de grupo de trabajo dentro de esta oficina remota, para
que varios trabajadores locales puedan tener acceso a los datos.
4

Manual Programacin C#.NET Visual Studio 2010 2012


Una extensin comn de este tipo de aplicacin conectada ocasionalmente es la
capacidad de admitir escenarios de colaboracin. Se trata de escenarios en los que dos
bases de datos se pueden sincronizar punto a punto sin tener que pasar por un
concentrador central. Como se muestra en la ilustracin siguiente, una base de datos
remota puede intercambiar informacin con cualquier otra.
Este tipo de solucin es til cuando trabajadores remotos (por ejemplo, auditores
financieros in situ) trabajan en grupo en una ubicacin remota. Estos trabajadores deben
compartir a menudo informacin entre s. Sin embargo, dado que no tienen conectividad
con la base de datos central, deben compartir la informacin a travs de algn tipo de red
punto a punto
Usar Synchonization Services for ADO.NET con SQL Server
Sync Services for ADO.NET admite bases de datos de las maneras siguientes:
En escenarios sin conexin, la base de datos cliente debe ser de la versin 3.5 de SQL
Server Compact 3.5 o posteriores. El servidor puede ser cualquier base de datos para la
que se disponga de un proveedor ADO.NET. En escenarios de colaboracin, cada base
de datos del mismo nivel debe ser de SQL Server 2000 Service Pack 4 o una versin
posterior.
SQL Server es una base de datos de clase
empresarial que proporciona un base slida
para
las
aplicaciones
que
requieren
sincronizacin. SQL Server 2008 proporciona el
seguimiento de cambios, una de las
caractersticas
ms
tiles
para
los
programadores
de
sincronizacin.
Sync
Services for ADO.NET ofrece una API para
sincronizar los cambios pero, en realidad, no
realiza el seguimiento de los cambios en el
servidor ni en la base de datos del mismo nivel.
((SQL Server Compact 3.5 realiza el
seguimiento de los cambios en la base de datos
cliente). Puede crear un sistema de seguimiento
de cambios personalizado, pero esto suele
introducir una complejidad significativa y
sobrecarga en el rendimiento. Recomendamos
usar el seguimiento de cambios de SQL Server
2008, porque resulta fcil de configurar y su
rendimiento es elevado
Comparar Synchonization Services for ADO.NET con otras tecnologas
Microsoft proporciona varias tecnologas que estn diseadas para las aplicaciones que
realizan la sincronizacin. Por consiguiente, comparar Sync Services for ADO.NET con
otras tecnologas que se utilizan en escenarios sin conexin y de colaboracin resulta de
utilidad.
5

Manual Programacin C#.NET Visual Studio 2010 2012


Sincronizacin sin conexin
Las tecnologas ms importantes de Microsoft para la sincronizacin sin conexin son las
siguientes:
Acceso a datos remotos (RDA). Se utiliza para sincronizar una base de datos de SQL
Server Compact 3.5 con una base de datos de otra edicin de SQL Server.
Replicacin de mezcla. Se utiliza para sincronizar ediciones diferentes de SQL Server,
incluido SQL Server Compact 3.5.
Sincronizacin de colaboracin
La tecnologa ms significativa para realizar la comparacin en lo que se refiere a la
sincronizacin de colaboracin es la replicacin transaccional punto a punto, que se utiliza
para sincronizar dos o ms bases de datos de SQL Server Enterprise. Tanto Sync
Services for ADO.NET como la replicacin transaccional admiten la sincronizacin punto a
punto: la replicacin transaccional es ms adecuada para mantener una alta disponibilidad
y escalar la actividad de lectura a travs de varios servidores, mientras que Sync Services
for ADO.NET es ms conveniente para las aplicaciones en las que los usuarios trabajan
en colaboracin con los mismos datos.
La tabla siguiente puede ayudarle a determinar qu tecnologa es apropiada para las
aplicaciones que desea generar.
Determinar el tipo de tecnologa que se debe utilizar
Sync Services for ADO.NET proporciona la flexibilidad de un modelo de programacin,
como son los conjuntos de datos sin conexin, y un conjunto de caractersticas de
sincronizacin ms variadas, como las que se encuentran en la replicacin. La
funcionalidad de Sync Services for ADO.NET es superior a RDA. La replicacin est
destinada a los administradores de bases de datos y se ha diseado principalmente para
sincronizar las bases de datos de SQL Server.
La replicacin proporciona una funcionalidad significativa cuya configuracin se puede
realizar a travs de asistentes, procedimientos almacenados y su propia API. Sync
Services for ADO.NET est destinada a los programadores y admite bases de datos
heterogneas y la sincronizacin a travs de servicios, como Windows Communication
Foundation (WCF).

Manual Programacin C#.NET Visual Studio 2010 2012


Pasos para crear una base de datos
1. Hacer un clic derecho encima de la opcin DataBases de Bases de Datos.
2. Seleccionar del men emergente la opcin New DataBases y hacer clic
3. Digitar el nombre de la base de datos, claro si no desea modificar algunos
parmetros, eje: RIDO.
Pasos en Grficos.
1. Seleccionar Database y luego New Database, para una nueva base de datos.

Clic aqu para crear una


nueva base de datos.

2. Digitar el nombre de la base de datos y dejar los parmetros por defecto.


Eje: RIDO

Manual Programacin C#.NET Visual Studio 2010 2012

Introducir aqu el
nombre de la base de
datos, Eje: RIDO

Pantalla ejecutado al creacin de la nueva base de datos

Ejecutando..

Manual Programacin C#.NET Visual Studio 2010 2012


Base de datos RIDO ya creada.

Base de Datos
Creada. RIDO

Trabajando con Tablas.


Pasos para crear una tabla.
Nota: Las tablas tienen propiedades que las diferencias de las vistas o consultas, aunque
podemos manejar la filosofa de una tabla como una vista. El uso de las tablas es
genrico, es decir, tiene la misma filosofa que en cualquier lenguaje de Administracin de
Bases de Datos con u otro gestor de bases de datos
Pasos para crear una tabla:
1. Hacer clic en la Opcin Table de la parte derecha de la ventana del Enterprise
Manager
2. Seleccionar New Table, para una nueva tabla.
3. Digitar el Nombre de la tabla, eje: ESTUDIANTES
4. Presionar Enter o hacer clic
9

Manual Programacin C#.NET Visual Studio 2010 2012


Digitar la estructura de la tabla, como se ve en la siguiente figura

Estructura de la Tabla:
MATRICULA
NOMBRE
APELLIDO
DIRECCION
TELEFONO

char
char
char
char
char

20
40
40
60
13

Pantalla para crear la tabla

Clic Primero en Table y


luego en New Table

Nota: Una tabla es como si estuvisemos trabajando en uan hoja de clculo de Excel, es
decir, tendr un conjunto de filas y columnas, en donde las columnas representarn cada
campo y las filas los registros de la misma.
10

Manual Programacin C#.NET Visual Studio 2010 2012


Pantalla para crear la estructura de la tabla.

Proceder a digitar la estructura de la tabla, como se visualiz en la siguiente figura.

Clic en este icono para guardar la


configuracin y colocarle el
nombre de estudiantes

11

Manual Programacin C#.NET Visual Studio 2010 2012


Por ltimo, grabar la estructura de la tabla y asignarle el nombre de ESTUDIANTES, un
ejemplo, usted podr asignarle el nombre que desee.

Listo. A continuacin imgenes de que la tabla fue creada.

Tabla Estudiantes

12

Manual Programacin C#.NET Visual Studio 2010 2012


Introduccin Datos en la Tabla Creada.

Pasos para introducir datos en la nueva tabla


1. Hacer clic derecho encima del nombre de la tabla de ESTUDIANTES en la parte
derecha de la ventana del Enterprise manager.
2. Seleccionar Open Table (abrir tabla)
3. Introducir los Datos

Introducir los datos


en estas filas

13

Manual Programacin C#.NET Visual Studio 2010 2012


Tabal con los datos introducidos.

Tabla ya Procesada.
12-0001
12-0002
12-0003
12-0004
12-0005
12-0006
12-0007
12-0008

LUIS MANUEL
BETZABEL
LUIS EMIL
SAMUEL ELIAN
CAMIL
CRISMER
GEORGE LUIS
BETSI

CRUZ
CRUZ
EMIL
CRUZ MATEO
ALBURQUERQUE
CRUZ
CRUZ
CRUZ

809-221-3222
809-564-4141
809-564-8989
809-221-4747
809-731-3222
809-456-7878
809-123-1515
809-1515

3.1 Medios de conexin a base de datos desde C#.net


Existen diferentes Espacios de Nombres y objetos para trabajar con las bases de Datos
desde C#.Net y ellos son los siguientes:
System.Data, para trabajar con las bases de datos
System.Data.OleDb y System.Data.SqlClient, Contienen clases para acceder al origen
de datos
SqlConecction, representa una conexin a un origen de datos
SqlCommand, representa un comando que se le puede dar a travs de SQL Server
La Clase DataTable, representa una tabla en la base de datos
DataRow es una coleccin de objetos que contienen las filas de una tabla especfica
Las conexiones que utilizan los objetos ADO.NET son sin conexin, a diferencia de los
dems que son permanentes, esto se logra a travs de un DataSet que consta de un
14

Manual Programacin C#.NET Visual Studio 2010 2012


conjunto de objetos DataTabley de las relaciones entre ellos que se representa en una
cache.
Una ventaja del DataSet es que trabaja sin conexin a la base de datos, en vez de
concertarse persistentemente, se conecta al origen de datos y trata de poblar el Objeto
data Set.
3.2 Funcionamiento de los enlaces de datos
La tcnica a travs del cual se conectan los controles del GUI del C#.NET con los
orgenes de datos se conoce como enlace de datos. El IDE permite que los controles tales
como DataGridView se enlacen a un origen de datos como un objeto DataSet, que
representa a una tabla en con origen e datos.
De igual forma se pueden conectar otros controles con los orgenes del DataSet
3.3 Modelo de objetos con ADO.NET
El modelo de objetos ADO.NET proporciona un API para acceder a los sistemas de bases
de datos mediante la programacin desde C#.NET.
ADO.Net se creo para que el Framework .Net sustituya a la tecnologa ActiveX Data
Objetos (ADO) de Microsoft. El IDE cuenta con herramientas de programacin que
simplifican el proceso de utiliza una base de datos en sus proyectos.
3.4 Programacin con ADO. NET
En este apartado mostraremos como conectarnos a una base de datos y realizar consultas
y expandir los datos en una grilla (DataGridView)
Pasos para realizar el proceso:
1.- Crear el Proyecto

15

Manual Programacin C#.NET Visual Studio 2010 2012


2-. Agregar un origen e datos al proyecto

2.1.- Clic en Nuevo Origen de Datos

16

Manual Programacin C#.NET Visual Studio 2010 2012


3-. Seleccionar el tipo de origen de datos que se va a agregar al proyecto, en este caso
una base de datos

4-. Agregar una nueva conexin de bases de datos

17

Manual Programacin C#.NET Visual Studio 2010 2012


5.- Seleccionar el tipo de conexin

5.1.- Seleccionar el motor, en este caso SQL Server

18

Manual Programacin C#.NET Visual Studio 2010 2012


5.2.- Seleccionar el nombre del servidor,

5.3.- Verificar la conexin haciendo clic en Test Connection

19

Manual Programacin C#.NET Visual Studio 2010 2012


6-. Seleccionar el nombre de la tabla, en este caso Unnatec

6.1.- Hacer clic en Next

20

Manual Programacin C#.NET Visual Studio 2010 2012


6.2.- Hacer clic en next para salvar la conexin

7-. Clic en Finsh para finalizar el proceso

21

Manual Programacin C#.NET Visual Studio 2010 2012


9-. Seleccionar la tabla o tablas y vistas

Como se ve en la siguiente seleccin a de la tabal estudiantes

22

Manual Programacin C#.NET Visual Studio 2010 2012


3.5 Datagridview y DataTable
Para colocar un DataGriView, hay que arrastrar el control hacia le formulario y colocarle en
la propiedad DataSource el nombre del objeto del DataSet, Estudiantes

Los datos solamente se visualizan en tiempo de ejecucin, como se ve a continuacin:

23

Manual Programacin C#.NET Visual Studio 2010 2012


Elementos que se colocan en el proyecto al arrastrar el DatSet

Elementos seleccionados

24

Manual Programacin C#.NET Visual Studio 2010 2012


Cdigo Fuente generado al insertar los elementos
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void estudiantesBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.estudiantesBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.uNNATECDataSet);
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'uNNATECDataSet.Estudiantes'
table. You can move, or remove it, as needed.
this.estudiantesTableAdapter.Fill(this.uNNATECDataSet.Estudiantes);
}
}
}
Insertar BinDinNavigator.
Nos permite recorrer los registros de una tabla a travs de la visualizacin en el proyecto

25

Manual Programacin C#.NET Visual Studio 2010 2012


Compendio de Prcticas
Pantalla de Captura de la Aplicacin

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration; //Agregue esta referencia
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private OleDbConnection conexion;
private OleDbCommand comando;
private OleDbDataReader lector;
private String consulta;
private String cadena;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//utilizo esta variable y recupero la cadena de configuracion gracias
//a la referencia using System.Configuration; esta para poder utilizar
//app.config el archivo de configuracion que se puede adicionar al proyecto o
//con el asistente de conexion de base de datos
cadena
ConfigurationManager.ConnectionStrings["ClinicaConnectionString"].ToString();
26

Manual Programacin C#.NET Visual Studio 2010 2012


try
{
//Creamos el objeto de conexion con su cadena respectiva
conexion = new OleDbConnection(cadena);
//Verificamos el estado de la conexion
if (conexion.State == ConnectionState.Closed)
conexion.Open();
}
catch (Exception ex)
{
MessageBox.Show("Imposible
conectarse
a
Error:"+ex.Message.ToString());
}
btnGuardar.Enabled = false;
}

la

DB.

private void txtIdentidad_Leave(object sender, EventArgs e)


{
try
{
//Creamos una consulta basica para determinar si ya existe la identidad
//tomando como dato el valor de la caja txtIdentidad
consulta = "select * from Clientes where identidad=";
consulta += "\"" + txtIdentidad.Text.Trim() + "\"";
//Creamos el comando y pasamos la cadena sql
comando = new OleDbCommand(consulta, conexion);
lector = comando.ExecuteReader();
//Determinamos si hay registros devueltos en el DataReader
if (lector.HasRows)
{
MessageBox.Show("Cliente ya existe!");
txtIdentidad.Focus();
txtIdentidad.Clear();
}
else
btnGuardar.Enabled = true;
lector.Dispose();
comando.Dispose();
}
catch (Exception ex) { MessageBox.Show("Imposible crear consulta. Error:" +
ex.Message.ToString()); }
}
private void btnGuardar_Click(object sender, EventArgs e)
{
if ((txtIdentidad.Text != "") && (txtNombres.Text != "") && (txtApellidos.Text != ""))
27

Manual Programacin C#.NET Visual Studio 2010 2012


{
try
{
//Creamos el query insert para adicionar el registro
consulta = "insert into clientes(identidad,nombres,apellidos) values(";
consulta += "\"" + txtIdentidad.Text.Trim() + "\",\"" + txtNombres.Text.Trim() +
"\",\"";
consulta += txtApellidos.Text.Trim() + "\")";
comando = new OleDbCommand(consulta, conexion);
comando.ExecuteNonQuery();
MessageBox.Show("Registro Almacenado con Exito");
txtIdentidad.Focus();
txtIdentidad.Clear();
txtNombres.Clear();
txtApellidos.Clear();
btnGuardar.Enabled = false;
}
catch (Exception ex)
{
MessageBox.Show("Imposible
crear
consulta.
ex.Message.ToString());
}
}
else
{
MessageBox.Show("Debes llenar todos los campos!");
txtIdentidad.Focus();
}
}
private void btnSalir_Click(object sender, EventArgs e)
{
this.Close();
}
private void Form1_Leave(object sender, EventArgs e)
{
//Liberamos los objetos
conexion.Close();
conexion.Dispose();
}
private void btnMostrar_Click(object sender, EventArgs e)
{
//Mostramos el datagrid
frmDataGrid frm = new frmDataGrid();
frm.Show();
28

Error:"

Manual Programacin C#.NET Visual Studio 2010 2012


}
}
}
Pantalla de la Aplicacin

29

Manual Programacin C#.NET Visual Studio 2010 2012


Ejercicios Propuestos:
REALIZAR LOS SIGUIENTES EJERCICIOS
1.
Dado el sueldo bruto y los descuentos calcular el sueldo neto.
2.
Dado el sueldo bruto de un empleado calcular los descuento y el sueldo neto. Si el
empleado gana menos o igual de RD$ 5,000.00, descontar un 3%, sino, descontar un 5%.
3.
Dado un nmero verificar si es par o impar.
4.
Imprimir los nmeros de 1 al 20
5.
Imprimir los nmeros pares del 1 al 14. Utilizar el mdulo residuo.
6.
Dado un nmero verificar si es primo o no. Un nmero es primo si es divisible por el
y la unidad solamente.
7.
En un rango de edades, clasificados por letras, asignar el vehculo que le
corresponde a cada edad.
a.
Entre 18-25
auto: honda
b.
Entre 26-30
auto: porshe
c.
Entre 31-40
auto: bmw
d.
Entre 41-50
auto: mercedes benz
e.
Entre 51-60
auto: jaguar
8.
Dado 5 elementos en un arreglo, determinar si la suma de ellos es par o impar
9.
Dado 8 elementos en un arreglo, ordenarlos en forma ascendente y cambiando un
signo en forma descendente.
REALIZAR LOS SIGUIENTES PROGRAMAS. SI TIENES QUE AUXILIARSE DEL
PROFESOR, HGALO, PERO DEBE REALIZAR TODOS ESTOS EJERCICIOS. DE
USTED DEPENDE SU AVANCE.
2.
Pedro es estudiante activo de CENTU y paga RD$ 900.00 de mensualidad y el
costo del curso es RD$1,800.00. Cuanto debe pagar Pedro en el Primer mes de clase y
cul es el balance pendiente del curso.
3.
Dado el monto de venta de un vendedor, eje: RD$ 50,000.00 calcular la comisin
por venta de dicho vendedor, la cual corresponde a un 10% del monto total vendido.
4.
Dado tres nmeros hallar la suma de ellos.
5.
Dado dos nmeros, determinar la multiplicacin de ellos.
6.
Fui al supermercado y compr 3 libras de arroz a RD$ 15.00 cada una. Cuanto
pagu en la caja al momento del cuadre.
7.
Si Samuel tie 2 carros comprados a RD$ 500.00 cada uno, cuanto le costaron los
dos carros.
8.
Luis Manuel Cruz tom un prstamo en el Banco Popular de RD$ 10,000.00 a una
tasa de inters anual de 28%. Cuanto deber pagar Luis Manuel Cruz mensualmente si
decide pagarlo en un ao.
9.
Cielo Reynoso tiene una librera y compra 20 libros a RD$ 100.00 para venderlos a
RD$ 115.00. Cuanto se ganar Cielo en la venta Total.
10.
Dado dos nmeros hallar la divisin de ambos. Asumir que el segundo nunca ser
igual a cero.

30

SQL Server 2008 Conectando Aplicacin VS2010 Windows Forms C# | Angaroasoft's Blog

Pgina 1 de 16

Angaroasoft's Blog

SQL Server 2008 Conectando Aplicacin VS2010 Windows


Forms C#

(http://angaroasoft.files.wordpress.com/2011/06/logo.png)
Cuando desarrollamos aplicaciones con Visual Studio 2010, muchas veces (la mayor parte)
necesitaremos que estas aplicaciones interacten con una Base de Datos, es por ello que hoy veremos la
manera de conectar nuestras Bases de Datos creadas en SQL Server 2008 Management Studio a nuestras
aplicaciones.
El primer paso que debemos hacer (Ya que estamos usando una aplicacin Windows Forms C# como
ejemplo) una vez abierto nuestro Visual Studio 2010, es seleccionar:
Visual C#
-> Windows
Y seleccionamos Aplicacin de Windows Forms Visual C#
En nombre escribimos el nombre que llevar nuestra aplicacin (En este caso le he colocado
Conexion_SQL_Server_2008), en ubicacin colocamos la ruta donde almacenaremos nuestra aplicacin y
damos clic en Aceptar.

http://angaroasoft.wordpress.com/2011/09/08/sql-server-2008-conectando-aplicacion-vs2010-windo... 19/03/2014

SQL Server 2008 Conectando Aplicacin VS2010 Windows Forms C# | Angaroasoft's Blog

Pgina 2 de 16

(http://angaroasoft.files.wordpress.com/2011/09/1.jpg)
Al cargar la plataforma y aparecer el Form en pantalla, hacemos clic en Orgenes de datos lo que nos
desplegar una ventana donde haremos clic en Agregar nuevo origen de datos

(http://angaroasoft.files.wordpress.com/2011/09/2.jpg)
Esto har que aparezca la ventana del Asistente para la configuracin de orgenes de datos, donde
eligiremos el tipo de origen de datos, es decir de que aplicacin obtendremos los datos, en este caso
seleccionaremos Base de Datos y daremos clic en Siguiente

http://angaroasoft.wordpress.com/2011/09/08/sql-server-2008-conectando-aplicacion-vs2010-windo... 19/03/2014

SQL Server 2008 Conectando Aplicacin VS2010 Windows Forms C# | Angaroasoft's Blog

Pgina 3 de 16

(http://angaroasoft.files.wordpress.com/2011/09/3.jpg)
Ahora la ventana del asistente nos solicitar el Modelo de la Base de Datos que vamos a utilizar,
seleccionamos Conjunto de datos y hacemos clic en Siguiente

(http://angaroasoft.files.wordpress.com/2011/09/4.jpg)
Esto abrir una nueva ventana donde nos mostrar varios tipos de orgenes de datos, seleccionamos
Microsoft SQL Server y en Proveedor de datos seleccionamos Proveedor de datos de .NET Framework para
servidor SQL Server y damos clic en Continuar

http://angaroasoft.wordpress.com/2011/09/08/sql-server-2008-conectando-aplicacion-vs2010-windo... 19/03/2014

SQL Server 2008 Conectando Aplicacin VS2010 Windows Forms C# | Angaroasoft's Blog

Pgina 4 de 16

(http://angaroasoft.files.wordpress.com/2011/09/5.jpg)
Aparecer una nueva ventana Agregar conexin, donde indicaremos el nombre de nuestro servidor
SQL Server 2008 al cual nos conectaremos, indicaremos el tipo de autenticacin segn sea el caso para
conectarnos (Autenticacin de Windows y/o Autenticacin de SQL Server), luego en Establecer conexin
con una base de datos en el listado indicaremos la Base de datos a la que nos conectaremos (En este caso
he seleccionado Libreria)

(http://angaroasoft.files.wordpress.com/2011/09/6.jpg)
Despus de seleccionar nuestra Base de datos, hacemos clic en Probar conexin para comprobar que
hemos establecido conexin correctamente con nuestra Base de datos y que el motor est trabajando
bien

http://angaroasoft.wordpress.com/2011/09/08/sql-server-2008-conectando-aplicacion-vs2010-windo... 19/03/2014

SQL Server 2008 Conectando Aplicacin VS2010 Windows Forms C# | Angaroasoft's Blog

Pgina 5 de 16

(http://angaroasoft.files.wordpress.com/2011/09/7.jpg)
Luego de comprobar que nuestra conexin est funcionando correctamente cerramos la ventana que nos
indica que la prueba se realiz correctamente haciendo clic en el botn Aceptar, damos clic de nuevo en
Aceptar en la ventana de conexin y esto nos llevar a la ventana donde nos preguntarn que conexin
de datos deber utilizar nuestra aplicacin

(http://angaroasoft.files.wordpress.com/2011/09/8.jpg)
Seleccionamos la que acabamos de crear (En este caso poseidon.Libreria.dbo) y podemos ver mas abajo en
cadena de conexin que nos indica que es
Data Source=POSEIDON; Initial Catalog=Libreria; Integrated Security=True
luego hacemos clic en Siguiente y nos aparecer otra ventana donde nos preguntarn si deseamos
guardar la cadena de conexin en el archivo de configuracin de nuestra aplicacin, seleccionamos la
casilla y colocamos un nombre identificativo que sea facil para nosotros recordar, y damos clic en
siguiente

http://angaroasoft.wordpress.com/2011/09/08/sql-server-2008-conectando-aplicacion-vs2010-windo... 19/03/2014

SQL Server 2008 Conectando Aplicacin VS2010 Windows Forms C# | Angaroasoft's Blog

Pgina 6 de 16

(http://angaroasoft.files.wordpress.com/2011/09/9.jpg)
En la siguiente ventana y ya para finalizar se nos solicitar que seleccionemos los objetos de la base de
datos que deseamos tener en el conjunto de datos, en este caso seleccionaremos solamente las tablas
Autores y Libros, y damos clic en Finalizar

(http://angaroasoft.files.wordpress.com/2011/09/10.jpg)
Ahora que tenemos creada nuestra conexin procederemos a probarla In Situ con nuestra aplicacin,
para ello haremos clic en Cuadro de herramientas y seleccionaremos un DataGridView para probar la
funcionalidad de la conexin

http://angaroasoft.wordpress.com/2011/09/08/sql-server-2008-conectando-aplicacion-vs2010-windo... 19/03/2014

SQL Server 2008 Conectando Aplicacin VS2010 Windows Forms C# | Angaroasoft's Blog

Pgina 7 de 16

(http://angaroasoft.files.wordpress.com/2011/09/11.jpg)
Arrastramos el DataGridView a nuestro Form y le damos las medidas que deseemos, luego hacemos
clic en la flecha que aparece en el lado superior derecho del DataGridView para que aparezca la ventana
de tareas

(http://angaroasoft.files.wordpress.com/2011/09/12.jpg)
En ventana haremos clic en Elegir origen de datos donde se desplegar la lista y hacemos clic en:
Otros orgenes de datos
-> Orgenes de datos del proyecto
-> LibreriaDataSet
-> Libros
Con esto ya tenemos conectado nuestro DataGridView y nuestra tabla Libros en la aplicacin, ahora
incluiremos un nuevo DataGridView a nuestra aplicacin y la asociaremos a la tabla Autores

http://angaroasoft.wordpress.com/2011/09/08/sql-server-2008-conectando-aplicacion-vs2010-windo... 19/03/2014

SQL Server 2008 Conectando Aplicacin VS2010 Windows Forms C# | Angaroasoft's Blog

Pgina 8 de 16

(http://angaroasoft.files.wordpress.com/2011/09/13.jpg)
Ahora procederemos a correr nuestra aplicacin para comprobar que las conexiones fueron correctas y
poder ver los datos almacenados en nuestras tablas

(http://angaroasoft.files.wordpress.com/2011/09/14.jpg)
Con esto hemos aprendido a conectar nuestras bases de datos de SQL Server 2008 Management Studio a
nuestras aplicaciones creadas en Visual Studio 2010.
Como siempre ante cualquier duda no dejen de comunicarse que con gusto les responder.
Saludos!
Roberto Pozo
About these ads (http://en.wordpress.com/about-these-ads/)

http://angaroasoft.wordpress.com/2011/09/08/sql-server-2008-conectando-aplicacion-vs2010-windo... 19/03/2014

Crear conexin a base de datos SQL Server

Programando con Visual C# 2008

Objetivo: Conectar una base de datos SQL Server a nuestra aplicacin en Microsoft Visual
C# 2008, por medio de cdigo.
1. Para empezar, crear una aplicacin en Microsoft Visual Studio 2008, a la cual yo llamare
Conexin.
2. En el primer formulario lo nico que agregar ser un componente Button (Botn), tal
como se ve en la siguiente imagen.

3. Supondr que esta Forma ser el SplashScreen de nuestra aplicacin, pero sin la
funcionalidad del mismo. El Button me servir para instanciar la apertura de la siguiente
Forma.
4. Para llevar a cabo la conexin de mi aplicacin con la base de datos, en mi caso llamada
Empresa, me valdr del evento Load de la Forma, y en el colocare el siguiente cdigo.

Try
{
myConnection.ConnectionString = conexion;
myConnection.Open();
MessageBox.Show("Conectado a la Base de Datos: " +
myConnection.Database);
}
catch
{
MessageBox.Show("No se pudo establecer conexion con la base de
datos: " + myConnection.Database);
Application.Exit();
}

En este sencillo cdigo, estoy implementando un Try catch (yo lo llamo: Intenta esto Si
falla haz esto), en donde en la primer parte estoy utilizando una variable llamada
myConnection (se le puede poner cualquier nombre) la cual es de tipo SqlConnection, y
que por haber sido creado de este tipo, hereda ciertos mtodos y propiedades, como lo es
ConnectionString; la cual almacenara, propiamente, la cadena de conexin con el Servidor

Autor: I.S.C. E.D. M.C.E. Ricardo de Jess Bustamante Gonzlez

Crear conexin a base de datos SQL Server

Programando con Visual C# 2008

u Origen de datos (Data Source), conexion; es simplemente una variable tipo cadena que
almacena la cadena de conexin.
Open(), es un mtodo, que permite abrir, lgicamente, la conexin de nuestra base de
datos, para nuestra aplicacin. Despus genero un mensaje indicando que se ha
conectado a la base de datos, e indico el nombre de esta en el mensaje, cabe mencionar
que este mensaje no es obligatorio colocarlo, es lo para que sirva me mtodo se
aseguramiento nuestro de que ya se conect a la base de datos, ya que se ejecut el
cdigo dentro de Try y no el de catch.
Ahora bien, en el cdigo que se ejecutara si no se realiza lo de Try o sea lo de catch ,
muestro un simple mensaje como el anterior pero indicando lo contrario, que no se pudo
conectar a la base de datos; para despus terminar la ejecucin de la aplicacin.
Pero o sorpresa, si ejecutas tu aplicacin, NO FUNCIONA, marca errores. Esto es porque
no hemos definido las variables, as que manos a la obra.
5. Dentro de public partial class Form1 : Form, la cual es la clase de la Forma 1, declararemos
nuestras variables.
public SqlConnection myConnection = new SqlConnection();
public string conexion = "server=.\\SQLEXPRESS;" +
"Trusted_Connection=yes;" + "database=Empresa; " + "connection
timeout=30";

Como podemos ver, en este cdigo, indico public antes del tipo de dato, ya que deseo que
mi variable sea pblica, es decir accesible en todo momento, el tipo de dato que necesito,
como ya explique antes, es SqlConnection; ya que es una conexin de SQL, y el nombre de
mi variable, que tambin ya se haba visto, es myConnection, y dentro de ella almaceno la
funcin SqlConnection, la cual me servir para poder heredar propiedades y mtodos
propios de este tipo de dato.
De igual manera, en la siguiente instruccin, declaro una variable pblica (public) de tipo
string, llamada conexion, en la cual almaceno la cadena de conexin de mi servidor u
origen de datos, con sus debidos parmetros.
PARMETRO

DESCRIPCIN

Data Source o Server

Hace referencia al servidor de Base de datos. A este campo


se le puede asignar uno de los siguientes valores:

Initial
Catalog
DataBase

El nombre del equipo servidor, por ejemplo:


BDEJEMPLO
La IP del servidor, por ejemplo: 10.10.1.1
La instancia del servidor de Base de Datos, por
ejemplo: .\\MSSQL o bien .\\SQLEXPRESS
Hace referencia a la Base de datos contenida en el Data
Source indicado, debe de escribirse el nombre de la base de
datos, no el nombre de la tabla.

Autor: I.S.C. E.D. M.C.E. Ricardo de Jess Bustamante Gonzlez

Crear conexin a base de datos SQL Server

Programando con Visual C# 2008

Entre otros.
6. Ahora s, guarda los cambios de tu aplicacin, y debers de ver si la conexin es correcta el
siguiente mensaje.

Y al dar click en el botn OK, se mostrara nuestra ventana.

7. En caso contrario, se mostrara el mensaje siguiente:

Y al dar click en OK, se terminara la ejecucin de la aplicacin.


8. Y hasta aqu eh terminado satisfactoriamente, la conexin de la base de datos Empresa,
de SQL Server, se ha conectado a mi aplicacin en Visual C# 2008. Ahora bien, antes que
otra cosa, cambia la propiedad Text del Button a: Ir al Form 2, y en el evento Click del
Button, colocaremos el cdigo para instanciar a la siguiente Forma, la Forma 2.

Autor: I.S.C. E.D. M.C.E. Ricardo de Jess Bustamante Gonzlez

Crear conexin a base de datos SQL Server

Programando con Visual C# 2008

Form2 f2 = new Form2();


f2.Show();

9. En esta instancia, cuando des click en el Button, se abrir la segunda Forma, como se
muestra a continuacin.

En Leccin 2 veremos: La generacin de una interfaz de conectividad para la


realizacin de las tareas como: Loggin, Registrar Usuario, Modificar Usuario y Cerrar.

Autor: I.S.C. E.D. M.C.E. Ricardo de Jess Bustamante Gonzlez

También podría gustarte