• Jueves 28 de Marzo de 2024, 19:50

Autor Tema:  duda con acces y c#  (Leído 7084 veces)

thinlizzy

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
duda con acces y c#
« en: Viernes 21 de Septiembre de 2012, 02:53 »
0
Necesito una pequeña ayuda, nesecito volcar datos desde access y mostrarlos en una grilla en visual studio. en un windows form. :guitar:

estoy recién comenzando en esto y espero me den una ayudita!!!

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #1 en: Viernes 21 de Septiembre de 2012, 15:54 »
0
@gabio87

thinlizzy

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #2 en: Viernes 21 de Septiembre de 2012, 17:53 »
0
si esta bueno el video, pero no es lo exactamente lo que nesecito, ya que tengo que hacer lo mismo pero con un boton que por ej, mostrar tabla de acces y que me muestre cierta tabla en un datagrid. en windowsform, en visual studio 2010

lpzpela

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #3 en: Martes 25 de Septiembre de 2012, 03:25 »
0
es muy sencillo mira
este es el codigo del formulario tu si plemente crea un aplicacion fomr ponle un boton y el datagridview dale doble click al fomr o bien click derecho ver codigo borras todo el codigo por defaul y pega todo este:

Código: C#
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Data.OleDb;    //Para conectarse a BDs OLE (Object Linking & Embedding)
  10.  
  11.  
  12. namespace MiSistema_DAP1_2012_SI31
  13. {
  14.     public partial class frmConectarAAccess : Form
  15.     {   //Atributos:
  16.         // Cadena de conexión a Access 2007-2010:
  17.         public string cadConn =
  18.             "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=access_bd.accdb;";
  19.  
  20.         private string iSql;            // la instruccion SQL
  21.         private OleDbConnection cnn;    // la conexion a la BD
  22.         private OleDbCommand cmd;       // el comando
  23.         private OleDbDataAdapter da;    // el adaptador de datos
  24.         private DataSet ds;             // el conjunto de registros
  25.  
  26.         public frmConectarAAccess()     //Constructor
  27.         {
  28.             InitializeComponent();
  29.         }
  30.  
  31.         private void frmConectarAAccess_Load(object sender, EventArgs e)
  32.         {
  33.             //label2.Text = cadConn;
  34.         }
  35.  
  36.         private void btnLeerDatos_Click(object sender, EventArgs e)
  37.         {
  38.             //Se crea la conexión (objeto cnn) a la BD con la cadena de cadConn:
  39.             cnn = new OleDbConnection(cadConn);
  40.  
  41.             //Se crea el comando (objeto cmd) con la instruccion iSql y el objeto cnn:
  42.             iSql = "SELECT * FROM Usuarios;";
  43.             cmd = new OleDbCommand(iSql, cnn);
  44.  
  45.             //Se crea el DataAdapter (objeto da) con el comando cmd:
  46.             da = new OleDbDataAdapter(cmd);
  47.  
  48.             //Se crea el DataSet (objeto ds) en blanco:
  49.             ds = new DataSet();
  50.  
  51.             try
  52.             {
  53.                 da.Fill(ds);
  54.             }
  55.             catch (OleDbException objex)
  56.             {
  57.                 MessageBox.Show(objex.Message, "Error No. " + objex.ErrorCode,
  58.                     MessageBoxButtons.OK, MessageBoxIcon.Error);
  59.                 return;     //hasta aquí
  60.             }
  61.             //Se llena el dataGridView1:
  62.             dataGridView1.DataSource = ds.Tables[0].DefaultView;
  63.  
  64.          
  65.         }
  66.     }
  67. }
  68.  
  69.  
  70. saludos desde hermosillo sonora
« última modificación: Martes 25 de Septiembre de 2012, 03:27 por lpzpela »

lpzpela

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #4 en: Martes 25 de Septiembre de 2012, 03:28 »
0
avisame si te funciono bueno..

cristiantorres

  • Nuevo Miembro
  • *
  • Mensajes: 22
  • Nacionalidad: sv
  • Bendiciones para todos
    • Ver Perfil
    • Blog dedicado a la programacion
Re:duda con acces y c#
« Respuesta #5 en: Martes 25 de Septiembre de 2012, 04:55 »
0
Pues es una de las cosas mas fáciles que hay, la forma que te puso el amigo de arriba no me parece la mejor ya que para cargar los datos de una tabla no necesitas de un dataset con un datatable basta.

Código: [Seleccionar]
using (SqlConnection conn = new SqlConnection("CadenaConexion"))
{
         DataTable dt = new DataTable();
         string query = "SELECT * FROM TABLA";
         SqlCommand cmd = new SqlCommand(query, conn);
         OleDbDataAdapter adap = new OleDbDataAdapter(cmd);
         adap.Fill(dt);

         dataGridView1.DataSource = dt;
}
Visita mi Blog C#, Asp.Net, Python y mas...
Blog Cristian Torres
Foro Codemania

lpzpela

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #6 en: Martes 25 de Septiembre de 2012, 06:32 »
0
ps si tienes razon pero tampoko es para echarme tierra slee

thinlizzy

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #7 en: Martes 25 de Septiembre de 2012, 16:09 »
0
los codigos son mas o menos lo que nesecito, pero me falta el para eliminar, actualizar pero gracias por su ayuda de pasaron, subire una foto para mostrar lo que nesecito

thinlizzy

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #8 en: Martes 25 de Septiembre de 2012, 19:56 »
0


adjunte un archivo para que vean mas o menos lo que nesecito.
gracias por su ayuda.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

thinlizzy

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #9 en: Martes 25 de Septiembre de 2012, 21:11 »
0
Código: [Seleccionar]
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 ENSAYO_EXAMEN
{
    public partial class Form1 : Form
    {
        //Creo la cadena de conexion para Office //ESTA ES LA PRIMERA INSTRUCCION
        public static string cadena = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ficha.accdb;Persist Security Info=False";
        //Objeto conexion
        OleDbConnection cn = new OleDbConnection(cadena);
        //Abro la conexion
        DataSet ds = new DataSet();

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //CONSULTA LA TABLA // ESTA ES LA TABLA BUSCAR// es traer un fragmento de la informacion
            //-----------------
           
           
            // crear el alias del adaptador del DataSet
            OleDbDataAdapter adaptador = new OleDbDataAdapter("Select * from Alumno", cn);
            //("select * from Alumno where rut_alumn = " + textbox1.text;cn)
            adaptador.Fill(ds);
            //Fill recupera los datos de la consulta // extrae la informacion del adaptador
            // crear el alias de la tabla           
            DataTable dt = ds.Tables[0];
            //aca se almacena esta es una tabla temporal, es de tipo data tables ( guarda tablas)
            //Recorremos el recordset
            foreach (DataRow dr in dt.Rows)
            // dr es un registro de la tabla alumno// se recorre registro a registro la tabla temporal
            {
                //MOSTRAR GRILLA
            string[] registro ={ long Convert.ToUInt64( dr["Rut_Alumn"]),
                Convert.ToString( dr ["Nombres"]),
                Convert.ToString( dr["Direccion"]),
                Convert.ToString(dr["Sexo"]) };
            this.dataGridView1.Rows.Add(registro);

            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //INSERTA REGISTROS LA TABLA
            //--------------------------
            // crear el alias del adaptador del DataSet
            //los nº no llevan comillas                                                   
            //?               
            OleDbDataAdapter adaptador1 = new OleDbDataAdapter("Insert into clientes values (" +
            Convert.ToInt32(textBox1.Text) + ",'" + Convert.ToString(textBox2.Text) + "','" +
            Convert.ToString(comboBox1.Text) + "'", cn);
            adaptador1.Fill(ds);//Fill ejecuta la consulta
        }

        private void button3_Click(object sender, EventArgs e)
        {

        }

        private void button4_Click(object sender, EventArgs e)
        {
             //CODIGO PARA BORRAR
            OleDbDataAdapter adaptador3 = new OleDbDataAdapter("Delete from clientes where cedula = 1111") cn);
            adaptador1.Fill(ds);//Fill ejecuta la consulta
            // borrar datos de una tabala acces
        }

        private void button5_Click(object sender, EventArgs e)
        {

        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}

ahi esta el codigo, pero no puedo hechar a correr este formulario, no puedo conectar con acces, solo quiero agregar datos desde el form1 a una tabla acces, por ej, cambiar el nombre de un estudiante, o consultar el nombre.

El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
« última modificación: Jueves 27 de Septiembre de 2012, 18:07 por ProfesorX »

lpzpela

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #10 en: Martes 25 de Septiembre de 2012, 22:44 »
0
te dejo este link, devido q  ando ocupado con unos proyectos.
pero este link te lo explica paso a paso
si no le comprendes me avisas
y si te sirve tambien

http://es.scribd.com/doc/38388244/insertar-CSharp-con-Access


saludos
hillo,son

thinlizzy

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #11 en: Miércoles 26 de Septiembre de 2012, 22:02 »
0
al parecer en este foro no se pudo, no importa, nadie es perfecto.

gerardo alberto

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #12 en: Jueves 27 de Septiembre de 2012, 17:56 »
0
Quieres aprender a hacerlo o quieres que te hagan el trabajo...
en ambos casos te puedo ayudar.

 :scream:

thinlizzy

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #13 en: Jueves 27 de Septiembre de 2012, 20:15 »
0
ambos.... ya que soy nuevo en esto y  con codigos resueltos puedo tener la nocion para ejecutar otros, ... de hacerlo yo solo no he podido, por algo estoy aca, si lo hiciera yo solo, no nesecitaria de foros, he intentado de todas formas y no he podido hacer lo que menciono aca. pero pronto tendra que resultar jaj!!! gracias.

gerardo alberto

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re:duda con acces y c#
« Respuesta #14 en: Viernes 28 de Septiembre de 2012, 00:34 »
0
Código: [Seleccionar]
using System.Data.OleDb; // para establecer conexión con base de datos access

Código: [Seleccionar]
try
 {
   string filas = "SELECT id, articulo, cantidad, unidad, parte, descripcion FROM Almacen WHERE descripcion LIKE '%" + tbx_buscar.Text + "%'"; //para buscar determinados campos o bien

string filas = "SELECT * FROM Almacen"; // cuando vas a mostrar todo lo que contenga la tabla

                DataTable dt = new DataTable();
                OleDbDataAdapter da = new OleDbDataAdapter(ruta de tu base de datos);
                da.Fill(dt);
                this.dataGridView1.DataSource = dt; // aqui muestras toda la info en el datagridview
}
 catch (OleDbException ex)
{
    MessageBox.Show(ex.Message);
}

el try lo utilizo cuando la base de datos contiene una columna vacia.



 
Código: [Seleccionar]
void RegistrarEnLaBase()
        {
            OleDbConnection _conexion;
            OleDbCommand _cmd;
            _conexion = new OleDbConnection(ruta de la base de datos);
            string _parametros = "INSERT INTO [b]Almacen01[/b](Id, Articulo, Cantidad, Unidad, Parte, Descripcion, Subtotal, Iva, Total, Compra, Porcentaje,stockmin,stockmax)" +
                       " values (@Id, @Articulo, @Cantidad, @Unidad, @Parte, @Descripcion, @Subtotal, @Iva, @Total, @Compra, @Porcentaje, @stockmin, @stockmax)";
            try
            {
// indicas la conexion y sus parametros
                _cmd= new OleDbCommand(_parametros, _conexion);

// aqui se indica de donde se tomara el valor a guardar y de que tipo debe ser, si no coinciden los valores marcara error
                _cmd.Parameters.Add(new OleDbParameter("@Id", OleDbType.VarChar, 20)).Value = tbx_id.Text;
                _cmd.Parameters.Add(new OleDbParameter("@Articulo", OleDbType.VarChar, 20)).Value = tbx_articulo.Text;
                _cmd.Parameters.Add(new OleDbParameter("@Cantidad", OleDbType.VarChar, 20)).Value = tbx_cantidad.Text;
                _cmd.Parameters.Add(new OleDbParameter("@Unidad", OleDbType.VarChar, 20)).Value = cbx_unidad.Text;
                _cmd.Parameters.Add(new OleDbParameter("@Parte", OleDbType.VarChar, 20)).Value = tbx_parte.Text;
                _cmd.Parameters.Add(new OleDbParameter("@Descripcion", OleDbType.VarChar, 20)).Value = tbx_descripcion.Text;
                _cmd.Parameters.Add(new OleDbParameter("@Subtotal", OleDbType.VarChar, 20)).Value = tbx_subtotal.Text;
                _cmd.Parameters.Add(new OleDbParameter("@Iva", OleDbType.VarChar, 20)).Value = tbx_iva.Text;
                _cmd.Parameters.Add(new OleDbParameter("@Total", OleDbType.VarChar, 20)).Value = tbx_total.Text;
                _cmd.Parameters.Add(new OleDbParameter("@Compra", OleDbType.VarChar, 60)).Value = tbx_compra.Text;
                _cmd.Parameters.Add(new OleDbParameter("@Porcentaje", OleDbType.VarChar, 20)).Value = cbx_porcentaje.Text;
                _cmd.Parameters.Add(new OleDbParameter("@stockmin", OleDbType.VarChar, 20)).Value = tbx_stockmin.Text;
                _cmd.Parameters.Add(new OleDbParameter("@stockmax", OleDbType.VarChar, 20)).Value = tbx_max.Text;
// aqui abres la conexion, esto siempre se hace
                _cmd.Connection.Open();
//ejecutas los parametros, es decir realizas el guardado de la info en la base de ser correcto
                _cmd.ExecuteNonQuery();
// aqui cierras la conexion.
                _cmd.Connection.Close();
// realizas un mensage donde indicas que todo se realizo con exito, es opcional
                MessageBox.Show("Registro Exitoso,"",MessageBoxButtons.OK, MessageBoxIcon.Information);
                limpiar();       // aqui limpio los cuadros de texto o TextBox
                cargar_id();   // aqui contabilizo el id y muestro nuevamente
                tbx_subtotal.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message); // si tuviste algun erro el catch envia un mensage donde indica cual fue el tipo de error
            }
}
luego pongo mas...
       
disculpa si algunas cosas no coinciden pero le fui cambiando nombres porque los que tenia eran al aisevan...