0

quiero dar de alta peliculas, donde tiene los campos: txtnombre,txtanio,txtweb,txtdescripcion.

En la base de datos el Id es incrementable.

Pero cuando presiono el botón de alta me sale el siguiente error:

introducir la descripción de la imagen aquí

Y el código siguiente para cuando carga el form es:

 private void Alta_Load(object sender, EventArgs e)
        {

            conexion = new SqlConnection("DataSource = EMILIANO-PC; InitialCatalog = VideoClub; Integrated Security = True"); 
            adaptador = new SqlDataAdapter();
            SqlCommand alta = new SqlCommand("insert into peliculas values (@nombre_pelicula, @web_pelicula, @descripcion, @anio)", conexion);
            adaptador.InsertCommand = alta;
            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@nombre_pelicula", SqlDbType.VarChar));
            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@web_pelicula", SqlDbType.VarChar));
            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@descripcion", SqlDbType.VarChar));
            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@anio", SqlDbType.Int));


        }

No le encuentro el error.

Ibarra Emiliano
  • 379
  • 2
  • 4
  • 20
  • 2
    Hola @Ibarra Emiliano. mira en [esta pregunta](https://es.stackoverflow.com/questions/211411/update-sql-server-por-medio-de-visual-studio-asp-net-web-forms/211421#211421) le explico como puede hacer un update correctamente. Puedes editar un poco el código para hacer un insert. – Fran Islas Nov 08 '18 at 01:04

1 Answers1

0

No necesitas definir nada en el Load, puedes en el mismo click del boton de alta asignar el objeto SqlCommand y los parametros

Algo como esto

private void btnAlta_Click(object sender, EventArgs e)
{
    string connstring = "DataSource = EMILIANO-PC; InitialCatalog = VideoClub; Integrated Security = True";
    usig(var conexion = new SqlConnection(connstring)) 
    {
        string query = "insert into peliculas values (@nombre_pelicula, @web_pelicula, @descripcion, @anio)";
        SqlCommand alta = new SqlCommand(, conexion);
        alta.Parameters.Add("@nombre_pelicula", SqlDbType.VarChar).Value = txtnombre.Text;
        alta.Parameters.Add("@web_pelicula", SqlDbType.VarChar).Value = txtweb.Text;
        alta.Parameters.Add("@descripcion", SqlDbType.VarChar).Value = txtdescripcion.Text;
        alta.Parameters.Add("@anio", SqlDbType.Int).Value = Convert.ToTnt32(txtanio.Text);

        alta.ExecuteNonQuery();
    }

}

tampoco necesitas ninguna adapter, usa el command directo

Leandro Tuttini
  • 35,380
  • 3
  • 13
  • 40