13 marzo 2011

En C sharp, insertar registros en una base de datos Access (versión 97) usando las librerias ODBC


Ayer, tras muchas horas buscando por Internet un ejemplo válido de cómo agregar registros en una base de datos Access, versión 97, utilizando las funciones de las librerias ODBC, di, al rededor de las 6 de la tarde con esta página web 32.36.2.Use DataTable to insert a Row

Aquí dejo mí codigio, logrado en base a esa página que os he dicho:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;


namespace GesPro.Tipo
{
class Tipo
{
string tipo;
string descripcion;
//constructor sin parametros de la clase
public Tipo()
{
this.descripcion = "";
this.tipo = "";
}
//constructor con parametros de la clase
public Tipo(string _tipo, string _descripcion)
{
this.descripcion = _descripcion;
this.tipo = _tipo;
}
// función que inserta nuevos regisrtros en la tabla Tipo de la base de datos GesPro.mdb
public void InsertarNuevoTipo(Tipo _tipo)
{
string ruta = System.IO.Directory.GetCurrentDirectory() + @"\GesPro.mdb"; //indica la ruta donde está la base de dxatos
string cadenaDeConexion = @"Provider=Microsoft.JET.OLEDB.4.0;" + @"data source=" + ruta; //establece cadena de conexión con la base de datos
OleDbConnection conexion = new OleDbConnection(cadenaDeConexion); //creo un objeto conexion
string seleccionarTodosLosRegistros = "SELECT * FROM Tipo";
conexion.Open(); //abro conexión
OleDbDataAdapter oAdaptador = new OleDbDataAdapter(seleccionarTodosLosRegistros,conexion); //creo un adaptador con una sql que selecciona todos los registros
OleDbCommandBuilder oBuilder = new OleDbCommandBuilder(oAdaptador);

DataSet oDsTipo = new DataSet("Tipo"); //creo un objeto dataset
oAdaptador.Fill(oDsTipo,"Tipo");
DataTable oTablaTipo = oDsTipo.Tables["Tipo"]; //creo una tabla para datos y le añado el nuevo registro campo a campo
DataRow oRow = oTablaTipo.NewRow();
oRow["Tipo"] = _tipo.tipo;
oRow["Descripcion"] = _tipo.descripcion;
oTablaTipo.Rows.Add(oRow);
oAdaptador.Update(oDsTipo, "Tipo"); //actualizo el objeto adaptador

conexion.Close();
}

}

}

3 comentarios:

  1. Hola, tengo el siguiente problema:
    Tengo una base de datos Access 2007 conectada a un programa hecho en C# en Visual Studio 2008. Al introducir datos mediante el programa, inicialmente los mete en el Access, pero después no quedan guardados al abrir la base de datos.
    Por favor te ruego me indiques cual puede ser el problema y su solución, esta en juego que aprueba la asignatura.

    ResponderEliminar
  2. puedo agregar una descripción al campo agregado a access??????

    ResponderEliminar
  3. gracias me fue muy útil este ejemplo

    ResponderEliminar