none
Necesito ayuda para agregar un registro en C# RRS feed

  • Pregunta

  • Saludos necesito hacer un programa en c# con una base de datos de access.
    Pero he llegado a un punto en el que no se que hacer, necesito ayuda por favor.

    ---------------------------------------------------------------------------------------------------------------------------------------

                  

    public static void AGREGARPRODUCTO
                (
                string codigo,
                string nombre,
                int precio,
                string cantidad,
                DateTime fechav,
                string cliente,
                string suplidor
                )
            {
               using (BaseDatos BD = new BaseDatos())
               {

               }
            }

    ------------------------------------------------------------------------------------------------------------------------------



    El problema es el siguiente y es que necesito poner BD.Productos.AddObject pero no me sale la opcion, he utilizado esta opcion pero con una basededatos en Sql pero necesito en una de Access, por lo tanto necesito que me digan si existe otra forma de hacerlo, o como lo resolveria. Gracias!

    sábado, 24 de junio de 2017 0:21

Respuestas

  • BD.Productos.AddObject es una instrucción de Entity Framework. Pero, hasta donde yo sé, no hay Entity Framework para Access. Me temo que tendrás que retroceder a una tecnología más antigua y usar directamente ADO.NET con una conexión OLEDB. Puedes usar datasets + dataadappters o directamente construir la sentencia Insert, parametrizarla, y ejecutarla con un OleDbCommand. En cualquier caso, todo el manejo de datos cambia por completo, no te valdrá nada de lo que conozcas de Entity Framework.
    sábado, 24 de junio de 2017 9:28
    Moderador
  • Hola 

    Te recomiendo leer este tutorial Parte 5 – Operaciones CRUD

    Debes trabajar con en namespace

    using System.Data.OleDb;

    Algo como ser: Es un ejemplo adaptalo a tus necesidades

    public static void Guardar(AlumnoEntity alumno)
            {
                using (OleDbConnection cn = new (OleDbConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
                {
                    using (OleDbCommand cmd = cn.CreateCommand())
                    {
                        cmd.CommandText = "INSERT INTO Alumnos(AlumnoId, Nombre, Direccion, Telefono, Email) VALUES(@AlumnoId, @Nombre, @Direccion, @Telefono, @Email)";
    
                        cmd.Parameters.AddWithValue("@AlumnoId", alumno.AlumnoId);
                        cmd.Parameters.AddWithValue("@Nombre", alumno.Nombre);
                        cmd.Parameters.AddWithValue("@Direccion", alumno.Direccion);
                        cmd.Parameters.AddWithValue("@Telefono", alumno.Telefono);
                        cmd.Parameters.AddWithValue("@Email", alumno.Email);
                        cmd.ExecuteNonQuery();
                    }
                }
            }

    Espero la información brindada sea de utilidad.

    Saludos.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    sábado, 24 de junio de 2017 12:16

Todas las respuestas

  • BD.Productos.AddObject es una instrucción de Entity Framework. Pero, hasta donde yo sé, no hay Entity Framework para Access. Me temo que tendrás que retroceder a una tecnología más antigua y usar directamente ADO.NET con una conexión OLEDB. Puedes usar datasets + dataadappters o directamente construir la sentencia Insert, parametrizarla, y ejecutarla con un OleDbCommand. En cualquier caso, todo el manejo de datos cambia por completo, no te valdrá nada de lo que conozcas de Entity Framework.
    sábado, 24 de junio de 2017 9:28
    Moderador
  • Hola 

    Te recomiendo leer este tutorial Parte 5 – Operaciones CRUD

    Debes trabajar con en namespace

    using System.Data.OleDb;

    Algo como ser: Es un ejemplo adaptalo a tus necesidades

    public static void Guardar(AlumnoEntity alumno)
            {
                using (OleDbConnection cn = new (OleDbConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
                {
                    using (OleDbCommand cmd = cn.CreateCommand())
                    {
                        cmd.CommandText = "INSERT INTO Alumnos(AlumnoId, Nombre, Direccion, Telefono, Email) VALUES(@AlumnoId, @Nombre, @Direccion, @Telefono, @Email)";
    
                        cmd.Parameters.AddWithValue("@AlumnoId", alumno.AlumnoId);
                        cmd.Parameters.AddWithValue("@Nombre", alumno.Nombre);
                        cmd.Parameters.AddWithValue("@Direccion", alumno.Direccion);
                        cmd.Parameters.AddWithValue("@Telefono", alumno.Telefono);
                        cmd.Parameters.AddWithValue("@Email", alumno.Email);
                        cmd.ExecuteNonQuery();
                    }
                }
            }

    Espero la información brindada sea de utilidad.

    Saludos.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    sábado, 24 de junio de 2017 12:16
  • hola

    >>es que necesito poner BD.Productos.AddObject

    AddObject ?

    Cuando defines BaseDatos  en el using puedes determinar donde se define esa clase? tienes algun diagrama visual donde mapeas la db a clases

    Porque cambias de una db de versas como es Sql Server a Ms Access ? entienedo si lo harias a MySql o quizas a Sqlite o Sql Compact, pero porque Access

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 26 de junio de 2017 10:00