ola, me estoy iniciando en la programacion C_Sharp.Estoy siguiendo el ejemplo de un libro para trabajar con bases de datos JET.Al depurar el código obtengo el siguiente error:
En la instrucción: m_daDataAdapter.Fill(m_dtContactos);
me aparece el error:
No se controló OleDbException
He comprobado que la ruta a la base de datos sea la correcta, nombre de la tabla, etc...
El código es el siguiente y agradecería vuestra colaboración:
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;
using System.Data.OleDb;
namespace Ej_Basedatos_Contactos
{
public partial class Form1 : Form
{
//Declara el objeto m_cnADO
OleDbConnection m_cnADONetConnection = new OleDbConnection();
// Declara variable para el adaptador de datos a nivel de módulo.
OleDbDataAdapter m_daDataAdapter;
// Instrucción que genera automaticamente en la clase de encabezado la manera de actualizar , borrar,
// insertar en el origen de datos -> con CommandBuilder.
OleDbCommandBuilder m_cbCommandBuilder;
// Crea una variable DataTable a nivel de módulo en el proyecto.
DataTable m_dtContactos = new DataTable();
// Crea una variante para mantener el registro de fila de la base de datos.
int v_rowposContact = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// Especifica la propiedad de conexión con el proveedor de la base de datos, en este caso Access.
m_cnADONetConnection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\Proyectos\C_Share\Ej_BaseDatos\Bd_Contac tosProv.mdb";
// Una vez definida la conexión con la base de datos, se abre la conexión con el origen de datos.
m_cnADONetConnection.Open();
// Origen de Datos.
m_daDataAdapter = new OleDbDataAdapter("Select * From Bd_ContactosProv", m_cnADONetConnection);
// Inicializa el objeto CommandBuilder. Tras haberlo inicializado ya trabajaremos directamente con él.
// Trabaja en segundo plano para controlar la inserción, actulización y eliminación.
OleDbCommandBuilder m_cbCommandBuilder = new OleDbCommandBuilder(m_daDataAdapter);
// Instrucción para rellenar la tabla de datos con datos.
m_daDataAdapter.Fill(m_dtContactos);
// Instrucción para cargar el primer registro de la base de datos en la tabla.
this.ShowCurrentRecord();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
m_cnADONetConnection.Close();
m_cnADONetConnection.Dispose();
}
// Procedimiento para mostrar el registro actual de la base de datos.
private void ShowCurrentRecord()
{
if (m_dtContactos.Rows.Count == 0)
{
txtContact_Nombre.Text = " ";
txtContact_Apellidos.Text = " ";
return;
}
txtContact_Nombre.Text = m_dtContactos.Rows[v_rowposContact]["Nombre"].ToString();
txtContact_Apellidos.Text = m_dtContactos.Rows[v_rowposContact]["Apellidos"].ToString();
}
}
}