Gracias a mi vecino de blog Bruno por pasarme la información en respuesta a un post que publique esta mañana. El caso es que el me puso un código de ejemplo para ver la conexión entre una aplicación .NET y una base de datos en Access 2007, pero el código publicado por el
Fue en VB.NET y pues ahora yo mismo código (aunque el no utiliza DataSet) pero en C#.
//Creo la cadena de conexion para Office 2007
string cadena = @»Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=D:BDPROBANDO2007.accdb;Persist Security Info=False»;
//Objeto conexion
OleDbConnection conexion = new OleDbConnection(cadena);
//Abro la conexion
conexion.Open();
//Creo el adaptador y selecciono los datos de la tabla
OleDbDataAdapter adap = new OleDbDataAdapter(«SELECT * FROM TblPrueba», conexion);
//Creo el DataSet
DataSet dsDatos = new DataSet();
//Relleno el adaptador con los datos en memoria
adap.Fill(dsDatos, «TblPrueba»);
//Creo el miembro de datos del DataGridView
this.dtgDatos.DataMember = «TblPrueba»;
//Vuelco los datos al DataGridView
this.dtgDatos.DataSource = dsDatos;
HOLA, MI COMENTARIO ES EL SIGUIENTE:
LA CADENA DE CONEXION FUNCIONA CORRECTAMENTE DESDE CODIGO, PERO COMO LE HAGO PARA SELECCIONAR EL NUEVO PROVEEDOR DE DATOS (Microsoft.ACE.OLEDB.12.0) MEDIANTE EL ASISTENTE DE DATASETS DE VISUAL STUDIO 2005 ???? DE ANTEMANO, MUCHAS GRACIAS
Hola Juan Carlos.
Bueno…., mira al parecer no es posible hacerlo desde el asistete ya que el Visual Studio no te tiene esa opcion.
Espero que en la proxima version (ORCAS) yas esto sea posible.
Un Saludo
le falta el this.dtgDatos.Databind();
Excelente! 😀
Conciso y muy claro. Felicitaciones 😉
Hola,
no se si podra alguien ayudarme, pero intento crear un formulario conectado a una BD de Access, donde existen varias tablas vinculadas.
El problema es que cuando creo datos nuevos, tengo problemas al grabar los datos, pues los campos de las tablas enlazadas no se actualizan.
Podría alguien explicarme como hacerlo.
Gracias…
gracias por la cadena de una manera exelente. eres conciso gracias hasta pronto
Buen dia
amigos alguno sabe que conexion puedo utilizar para llamar una consulta de access con tablas de access y tablas vinculadas de ODBC.
tengo la siguiente conexion pero no se como llamar la tablas vinculadas las cuales me piden el usuario y contraseña.
Public cnn As New OleDb.OleDbConnection
Public Function abrir_base() As OleDb.OleDbConnection
Try
If cnn.State = 1 Then cnn.Close()
cnn.ConnectionString = «provider = microsoft.ace.oledb.12.0;data source =» & Application.StartupPath & «datosgrupoidea.accdb»
Return cnn
Catch ex As Exception
MessageBox.Show(Err.Description)
Return Nothing
End Try
End Function
Les agredeciria cualquier ayuda o aporte
Mil Gracias.
como la abres si tiene contrasena? claro ya sabes la contrasena?, osea como le pones en la cadena de conexion?
Para poner la contraseña en la cadena de conexión, solo le tienes que poner Password=’lacontraseña’; y listo, un ejemplo:
cnn.ConnectionString=»Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:basedatos.mdb;Jet OLEDB:Database Password=123;
Y para las tablas relacionadas, basta con crear un DataSet a partir de la base de datos y verificar que no haya registros que necesiten una llave foránea que no se encuentre en el dataset, ya que marcará un error al llenarlo (Depende de la integridad referencial).
tengo el siguiente codigo la conexion no c si esta bien pero cuando le digo guardar no inserta los datos a la tabla
Private Sub btn_acu_guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_acu_guardar.Click
‘creando y cargando conexion command
Dim coneccion As New OleDb.OleDbConnection
Dim orden As OleDb.OleDbCommand
‘abriendo la coneccion o enlace
coneccion.ConnectionString = «Provider=Microsoft.ACE.OLEDB.12.0;Data Source=» & CurDir() & «colegio1.accdb;Jet OLEDB:Database Password=1234;»
‘ creando y cargando un objeto OLEDBCOMMAND con
‘ instruccion sql insert into mitabla(listacampos) values(listadatos)
‘ @variable es una variable de tipo parametro
Dim q As String = «insert into acudiente (acu_cedula,acu_nombre,acu_apellido,acu_telefono,acu_celular,acu_sexo,acu_est_documento_id) values (@cedula,@nombre,@apellido,@telefono,@celular,@sexo,@estudiante)»
orden = New OleDb.OleDbCommand(q, coneccion)
orden.Parameters.Add(New OleDb.OleDbParameter(«@cedula», OleDb.OleDbType.Numeric))
orden.Parameters(«@cedula»).Value = txt_acu_cedula.Text
orden.Parameters.Add(New OleDb.OleDbParameter(«@nombre», OleDb.OleDbType.VarWChar, 20))
orden.Parameters(«@nombre»).Value = txt_acu_nombre.Text
orden.Parameters.Add(New OleDb.OleDbParameter(«@apellido», OleDb.OleDbType.VarWChar, 20))
orden.Parameters(«@apellido»).Value = txt_acu_apellido.Text
orden.Parameters.Add(New OleDb.OleDbParameter(«@telefono», OleDb.OleDbType.Numeric))
orden.Parameters(«@telefono»).Value = txt_acu_telefono.Text
orden.Parameters.Add(New OleDb.OleDbParameter(«@celular», OleDb.OleDbType.VarWChar, 20))
orden.Parameters(«@celular»).Value = txt_acu_celular.Text
orden.Parameters.Add(New OleDb.OleDbParameter(«@sexo», OleDb.OleDbType.VarWChar, 1))
orden.Parameters(«@sexo»).Value = txt_acu_sexo.Text
orden.Parameters.Add(New OleDb.OleDbParameter(«@estudiante», OleDb.OleDbType.Numeric))
orden.Parameters(«@estudiante»).Value = txt_acu_est_id.Text
‘ mandando sql a base de datos
orden.Connection.Open()
orden.ExecuteNonQuery()
orden.Connection.Close()
‘ limpiando TEXTBOXS para otra inserccion
txt_acu_cedula.Text = » »
txt_acu_nombre.Text = » »
txt_acu_apellido.Text = » »
txt_acu_telefono.Text = » »
txt_acu_celular.Text = » »
txt_acu_sexo.Text = » »
txt_acu_est_id.Text = » »
End Sub
End Class
kiero conectar una base de access a C# pero encuentro mil codigos diferentes y no se cual usar, no necesito que este en internet, solo lo kiero en .exe …alguien me puede ayudar??
Y luego para generar el installer, luego lo instalo en un equipo sin office2007 y no conecta a la bd access ¿que hay que hacer?
tk!!
HOLA
queiro saber si puedo conectar una base de datos hecha en access 2007 a Visual C# porque e leido y segun que no se puede.
y si me pueden dejar algunas lineas de codigo.
Gracias les agradeceria si me dieran respuestas favorables.
Hola
la conexion fue exitosa, ahora quieria pedirles ayuda para realizar un updat e insert a la base de datos de acces 2007 mediante C#
de antemano gracias!!
Carlos
necesito konectar una base de datos que esta en acces y konectarla a un formulario de C# en aplicaiones windows. y las tablas tienen ke estar konectadas a un main menu….
kien me podria kolaborar kon esta inkietud…
graxias !!!
Juan, muchas gracias por esta publicación. tu respuesta me ha ayudado mucho con mi problema.
MUuuchisimasss gracias… muy muy bueno excelente…
stoy muy agradecida contigo amixs, bye cuidate
amigos alguien me puede ayudar con algun ejemplo, de asp.net con controles y conexion a access 2007, es que no tengo idea de como se hace todo esto, pues nunca he visto nada de programacion, pero debo realizar una aplicacion, que contenga dropdownlist, listbox, checkbox, panel, y pues la verdad, en algunas ocasiones solo vi algo pero fue de console.readline
por favor algun ejemplo de lo que me pueda ayudar a tener una idea de como hacer esto
si alguien me puede ayudar mi correo es
julioc2-@hotmail.com
que esten muy bien y gracias de verdad
hola que tal como estan saludos y muy buena info
soy nuevo en esto de la programacion y quisiera saber como agregar eliminar modificar y mostrar los datos de la base de datos mediante visual c#.
saludo que tengas un buen dia
Email : sei_g@msn.com
Hola que tal.
hojala tu me puedas ayudar, viendo tu ejemplo tu saber si se puede usar Access con silverlight, c# o vb, VS2010.
Algun ejemplo (web) que realize, Altas, bajas, cambios, consultas e impresiones.
tengo que hacer una aplicacion para web usando access, pero usando silverlight.
gracias, me sacaste del paso
no te olvides aclara por ahi que hay que poner using System.Data.OleDb;
saludos
Muchas Gracias me sirvio de muchisima ayuda 😀
Hola soy nuevo en esto…el codigo creo que va bien pero aqui me marca dos errores exactamente en esto
//Creo el miembro de datos del DataGridView
this.dtgDatos.DataMember = «TblDatabase1″;
//Vuelco los datos al DataGridView
this.dtgDatos.DataSource = dsDatos;
Me marca el dtgDatos y me dice que hace falta un referencia de uso o de ensamblado… no se que me falte… mi codigo completo es el sig.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Windows.Forms;
namespace Conexion_Base_Datos
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void BTNCONEXION_Click(object sender, EventArgs e)
{
//Creo la cadena de conexion para Office 2007
string cadena = @»Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=C:UsersdesaDocuments.accdb;Persist Security Info=False»;
//Objeto conexion
OleDbConnection conexion = new OleDbConnection(cadena);
//Abro la conexion
conexion.Open();
//Creo el adaptador y selecciono los datos de la tabla
OleDbDataAdapter adap = new OleDbDataAdapter(«SELECT * FROM TblDatabase1», conexion);
//Creo el DataSet
DataSet dsDatos = new DataSet();
//Relleno el adaptador con los datos en memoria
adap.Fill(dsDatos, «TblDatabase1»);
//Creo el miembro de datos del DataGridView
this.dtgDatos.DataMember = «TblDatabase1»;
//Vuelco los datos al DataGridView
this.dtgDatos.DataSource = dsDatos;
}
Ayuda porfas….
Hola nuevamente me podrias decir a que se refiere con esto o que quiere decir
this.dtgDatos.DataMember = «TblDatabase1»;
this.dtgDatos.DataSource= dsDatos;
En este caso mi base de datos se llama Basedata1 y el nombre de la tabla le puse Alumnos.
en «TblDatabase1»; iria Basedata1 o Alumnos