OBJETOS DE ADO.NET PARA C#
Acontinuacion le presentamos un diagrama :- Maneja la conexion a una base de datos.
- Ejecuta Comandos contra una base de datos.
- Intercambia datos entre un dataset y una base de datos
- Copia local de Datos Relacionales.
- Provee acceso a datos Reand-Only, Forward-Only.
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 continuación escribe el siguiente código:
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;
{ 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 código:
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 botón derecho sobre el
DataGridView.
7.
Edita el código 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.TextdataGridView1[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 código de los eventos.
• Verifiquen bien
el nombre de sus controles.
• Integren un
módulo de validación de datos.
• Agreguen control
de errores en las partes que lo requieran.
No hay comentarios:
Publicar un comentario