none
Como guardar datos a una tabla en sql server desde C# en MVC 4 RRS feed

  • Pregunta

  • Hola buenas tardes tengo una base de datos con una tabla con 6 campos ID, Nombre, Apellido, Dirección, Telefono, Email, no puedo guardar en la tabla de sql estos datos desde c# en mvc 4 metí lo de la conexión en el modelo no se en cual deba de ir, tengo este código en el modelo: 

    SqlConnectioncnn = newSqlConnection(Conexión a BD);

    cnn.Open();

               

    SqlCommandcmd = newSqlCommand();

                cmd.Connection = cnn;

               

                cmd.CommandText = "INSERT INTO Personas Values(@Nombre,@Apellidos,@Direccion,@Telefono,@Email)";

     cmd.Parameters.AddWithValue( "@Nombre")

     

     

             

    Aquí me quede en cmd.Parameters.AddWithValue("@Nombre")<----ya no supe que mas seguía por fa espero me puedan ayudar

     

     

     


    hector arriaga

    martes, 11 de febrero de 2014 0:40

Respuestas

  • metí lo de la conexión en el modelo no se en cual deba de ir, tengo este código en el modelo

    como en el modelo, no eso es incorrecto, va en el Action del controller

    cuando realizas un submit imagino invocas un action, no ? y no es a este donde le defnes el model como parametro para que capture los valores de los controles de la view

    es por eso que en el action es donde deberias poner ese codigo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Hecktor martes, 11 de febrero de 2014 15:12
    martes, 11 de febrero de 2014 11:07
  • porque no usas

    publicActionResultgrabar(Personas persona) {

    }

    asi es mas facil de definir el parametro del action

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Hecktor martes, 11 de febrero de 2014 17:59
    martes, 11 de febrero de 2014 17:25
  • Deleted
    • Marcado como respuesta Hecktor martes, 11 de febrero de 2014 15:14
    martes, 11 de febrero de 2014 15:13
  • Deleted
    • Marcado como respuesta Hecktor martes, 11 de febrero de 2014 17:59
    martes, 11 de febrero de 2014 17:55

Todas las respuestas

  • Detrás tienes que poner el valor que quieras grabar en el Nombre. Si proviene de un INPUT escrito en el formulario, una posible forma de recuperarlo consiste en poner un parámetro con el mismo nombre en el método de acción que contiene tu código. Por ejemplo:

    public ActionResult Grabar(string nombre, string apellido, etc.etc.)
    {
        //....
        cmd.Parameters.AddWithValue("@Nombre", nombre);
    }

    suponiendo que el nombre del input en el HTML es precisamente "nombre".

    Nota: Si es una aplicación de alto tráfico, con este mecanismo se polucionará el cache de procedimientos en el servidor SQL debido a las varias longitudes de los parámetros. En lugar del AddWithValue, para los parámetros de longitud variable es preferible usar cmd.Parameters.Add y especificar la longitud que tiene el campo en el servidor.

    martes, 11 de febrero de 2014 7:21
  • metí lo de la conexión en el modelo no se en cual deba de ir, tengo este código en el modelo

    como en el modelo, no eso es incorrecto, va en el Action del controller

    cuando realizas un submit imagino invocas un action, no ? y no es a este donde le defnes el model como parametro para que capture los valores de los controles de la view

    es por eso que en el action es donde deberias poner ese codigo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Hecktor martes, 11 de febrero de 2014 15:12
    martes, 11 de febrero de 2014 11:07
  • hola gracias por su respuesta ya meti en el controller llamado personas la parte del código donde hago la conexión a la base de datos y lo meti en un actionresult como esta a continuación:

    public ActionResultIndex()

     

            {

       returnView();        

      }

     

    publicActionResultgrabar(stringNombre, stringApellido, stringDireccion, stringTelefono, stringEmail)      

      {

      SqlConnectioncnn = newSqlConnection("Conexión  a BD");    

              cnn.Open();

     

    SqlCommandcmd = newSqlCommand();

                cmd.Connection = cnn;

                cmd.CommandType = cmd.CommandType;

                     cmd.CommandText = "INSERT INTO Personas Values(@Nombre,@Apellidos,@Direccion,@Telefono,@Email)"; 

     }

    Según en un video que me pasaron de MVC4 en la parte del model declararon las variables de cada caja de texto esto dentro de una clase como esta a continuación:

    public class Personas

    {

    publicintID { get; set; }

    publicstringNombre { get; set; }      

    publicstringApellido { get; set; }

    publicstringDireccion { get; set; }

    publicstringTelefono { get; set; }      

    publicstringEmail { get; set; }

      }   

    en la vista solamente tengo las cajas de texto correspondiente a cada variable declarada mas arriba, tengo ya la conexión a la BD solo me falta lo mas importante que guarde, una pregunta mas la conexión a la BD tengo que agregarla en el webconfig o puedo dejarla  dentro del código, espero me puedan ayudar para entender mas todo esto gracias.

           

           

     

           

           

              

               

               

     

     

             

           


    hector arriaga

    martes, 11 de febrero de 2014 16:01
  • porque no usas

    publicActionResultgrabar(Personas persona) {

    }

    asi es mas facil de definir el parametro del action

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Hecktor martes, 11 de febrero de 2014 17:59
    martes, 11 de febrero de 2014 17:25