none
Insertar en Base Datos MVC3 RRS feed

  • Pregunta

  • Queria saber como hay que hacer para insertar en la base de datos que viene en MVC3. (No uso ninguna BD externa)

    Tengo en mi programa una clase que inserta Usuarios al registrarse, esta clase llama al createUser de MembershipUser y a parte quiero que inserte algunos otros datos, mi duda viene en como hacer esta segunda parte.

    Gracias!

    jueves, 8 de diciembre de 2011 15:59

Respuestas

  • ya debes tener el codigo en tu aplicacion MVC, dale una revisada a Models/AccountModels  y Controllers/AccountController 

    en el ultimo podrias buscar una linea de codigo parecida a esta:

     

     public ActionResult Register()
    {.....
    }
    [HttpPost]
    public ActionResult Register(RegisterModel model)
    {
    .....
    }

    Ojala te sirva

    Saludos

     

    • Marcado como respuesta Eder Costa jueves, 18 de octubre de 2012 14:31
    viernes, 9 de diciembre de 2011 21:03
  • A ver...

    Si usas el proveedor de membership por defecto este inserta los datos en su propio formato. Y aunque hablas de una BBDD propia de ASP.NET MVC esto no existe. Lo que pasa es que VS crea una BBDD y la adjunta a tu proyecto, pero no hay nada que obligue a usar esta BBDD. Es solo lo que VS genera.

    Bueno, doy por supuesto que tienes el Membership Provider configurado y que simplemente quieres añadir más datos a la BBDD que este usa. Si te vas al web.config verás algo como:

      <connectionStrings>
        <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
      </connectionStrings>
    

    Esa es la BBDD que usa por defecto VS. Pero fíjate que NO es nada de ASP.NET MVC, es configuración que genera el propio VS. Bien, ya tienes el nombre de la cadena de conexión (ApplicationServices). Por lo tanto si quieres conectarte a esta BBDD:

                using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString))
                {
                   // Aquí tu código
                    con.Close();
                }
    

    La BBDD está físicamente localizada en la carpeta AppData y se llama ASPNET.MDF (tal y como indica la cadena de conexión).

    Puedes hacer lo que quieras con esta BBDD pero NO modifiques el esquema de ninguna de las tablas que se hayan creado automáticamente, porque si no el Membership Provider se quejará.

    Saludos!

    PD: Si lo que quieres es modificar el esquema de la tabla de usuarios (para tener más datos relacionados) también puedes considerar crearte tu propio membership provider


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    • Marcado como respuesta Eder Costa jueves, 18 de octubre de 2012 14:31
    lunes, 12 de diciembre de 2011 7:30

Todas las respuestas

  • gracias por tu respuesta, pero no explica como insertar en la bd desde el codigo. 

    yo quiero algo como

    OleDbConnection db = new OleDbConnection("insertString");

    pero no tengo idea en realidad como se hace con la base de datos propia de este framework

    viernes, 9 de diciembre de 2011 14:07
  • ya debes tener el codigo en tu aplicacion MVC, dale una revisada a Models/AccountModels  y Controllers/AccountController 

    en el ultimo podrias buscar una linea de codigo parecida a esta:

     

     public ActionResult Register()
    {.....
    }
    [HttpPost]
    public ActionResult Register(RegisterModel model)
    {
    .....
    }

    Ojala te sirva

    Saludos

     

    • Marcado como respuesta Eder Costa jueves, 18 de octubre de 2012 14:31
    viernes, 9 de diciembre de 2011 21:03
  • A ver...

    Si usas el proveedor de membership por defecto este inserta los datos en su propio formato. Y aunque hablas de una BBDD propia de ASP.NET MVC esto no existe. Lo que pasa es que VS crea una BBDD y la adjunta a tu proyecto, pero no hay nada que obligue a usar esta BBDD. Es solo lo que VS genera.

    Bueno, doy por supuesto que tienes el Membership Provider configurado y que simplemente quieres añadir más datos a la BBDD que este usa. Si te vas al web.config verás algo como:

      <connectionStrings>
        <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
      </connectionStrings>
    

    Esa es la BBDD que usa por defecto VS. Pero fíjate que NO es nada de ASP.NET MVC, es configuración que genera el propio VS. Bien, ya tienes el nombre de la cadena de conexión (ApplicationServices). Por lo tanto si quieres conectarte a esta BBDD:

                using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString))
                {
                   // Aquí tu código
                    con.Close();
                }
    

    La BBDD está físicamente localizada en la carpeta AppData y se llama ASPNET.MDF (tal y como indica la cadena de conexión).

    Puedes hacer lo que quieras con esta BBDD pero NO modifiques el esquema de ninguna de las tablas que se hayan creado automáticamente, porque si no el Membership Provider se quejará.

    Saludos!

    PD: Si lo que quieres es modificar el esquema de la tabla de usuarios (para tener más datos relacionados) también puedes considerar crearte tu propio membership provider


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    • Marcado como respuesta Eder Costa jueves, 18 de octubre de 2012 14:31
    lunes, 12 de diciembre de 2011 7:30