C# y Base de Datos (INSERT, SELECT, UPDATE, DELETE) ABM

Como manipular los datos  de una base de datos en access con programación mediante  C#

1. Crear una base de datos en Access
Nuestro primer paso será crear una base de datos para eso utilizaremos la plataforma de Access: A continuación se muestra un ejemplo de cómo hacerla: 






2. CREAR UN NUEVO PROYECTO EN C#

3. CREAR UNA NUEVA CLASE LLAMA "DATABASE" y acontinuación escribimos 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;
}
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. CREAR AHORA UNA CLASE QUE SE LLAMARÁ "ALUMNOS" y añadimos 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. AL FORMULARIO LE AÑADIMOS LOS SIGUIENTE CONTROLES. 

Se puede ver que añadimos Un contextMenuStrip que es el que nos mostraráa el menú.
Un datagridview que es el control que nos ayuda a visualizar la información de nuestra base de datos.
Los contenedores PanelGroup que son los que contienen los Textbox y Label. 

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.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 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.

0 comentarios: