none
Problema con campo IMAGE al insertar registro RRS feed

  • Pregunta

  • Hola

    En la base de datos tengo una tabla con un campo de nombre Foto de tipo IMAGE , en un procedimiento almacenado declaro @Foto Image y del lado de mi aplicacion .Net (C#) tengo object Foto, al ejecutar el procedimiento almacenado me devuelve el error:

    SqlException el procedimiento o funcion Sp_InsertarProductor esperaba el parametro @Foto  que no se ha  especificado

    Que puedo hacer para solventar este problema ?

    Codigo Sql
    USE [FloraNueva]
    GO
    
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    ALTER PROCEDURE [dbo].[Sp_InsertarProductor] 
           (
                @Identificador UNIQUEIDENTIFIER,
                @IdUsuarioEncuestador INT,
                @FechaEncuesta DATETIME,
                @VisitaALaCasa BIT,
                @IdEstadoDiagnostico INT,
                @Nombres VARCHAR(50),
                @Apellido1 VARCHAR(50),
                @Apellido2 VARCHAR(50),
                @Foto IMAGE
              
       )
    AS
    BEGIN
    
    SET NOCOUNT ON;
    
       INSERT INTO  ProductorTrack 
       (
                Identificador, 
                IdUsuarioEncuestador ,
                FechaEncuesta ,
                VisitaALaCasa ,
                IdEstadoDiagnostico ,
                Nombres ,
                Apellido1 ,
                Apellido2 ,
                Foto         
       ) 
        VALUES 
       (
                @Identificador, 
                @IdUsuarioEncuestador ,
                @FechaEncuesta ,
                @VisitaALaCasa ,
                @IdEstadoDiagnostico ,
                @Nombres ,
                @Apellido1 ,
                @Apellido2 ,
                @Foto       
       )
    
    END ;
    Codigo C#
      public int InsertarActualizarProductor(FloraNuevaProductor.Productor Productor , string nombreSP)
            {
                int resultado = new int();
                SqlConnection Conexion = new SqlConnection(cadenaConexion);
                using (Conexion)
                {
                    Conexion.Open();
                    SqlCommand command = new SqlCommand(nombreSP, Conexion);
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.Clear();
                    command.Parameters.AddWithValue("@IdProductor", Productor.IdProductor);
                    command.Parameters.AddWithValue("@Identificador", Productor.Identificador);
                    command.Parameters.AddWithValue("@IdUsuarioEncuestador", Productor.IdUsuarioEncuestador);
                    command.Parameters.AddWithValue("@FechaEncuesta", Productor.FechaEncuesta);
                    command.Parameters.AddWithValue("@VisitaALaCasa", Productor.VisitaALaCasa);
                    command.Parameters.AddWithValue("@IdEstadoDiagnostico", Productor.IdEstadoDiagnostico);
                    command.Parameters.AddWithValue("@Nombres", Productor.Nombres);
                    command.Parameters.AddWithValue("@Apellido1", Productor.Apellido1);
                    command.Parameters.AddWithValue("@Apellido2", Productor.Apellido2);
                    command.Parameters.AddWithValue("@Foto", Productor.Foto);
                    resultado = command.ExecuteNonQuery();
                    Conexion.Close();
                }
                return resultado;
            }


    EFRAIN MEJIAS C VALENCIA - VENEZUELA



    miércoles, 19 de septiembre de 2018 19:17

Respuestas

Todas las respuestas

  • Hola, podrías mostrar el código de tu aplicación y el del sql?.

    Votar es agradecer.
    Saludos.
    Lima-Perú

    miércoles, 19 de septiembre de 2018 19:24
  • Codigo Sql
    USE [FloraNueva]
    GO
    
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    ALTER PROCEDURE [dbo].[Sp_InsertarProductor] 
           (
                @Identificador UNIQUEIDENTIFIER,
                @IdUsuarioEncuestador INT,
                @FechaEncuesta DATETIME,
                @VisitaALaCasa BIT,
                @IdEstadoDiagnostico INT,
                @Nombres VARCHAR(50),
                @Apellido1 VARCHAR(50),
                @Apellido2 VARCHAR(50),
                @Foto IMAGE,
              
       )
    AS
    BEGIN
    
    SET NOCOUNT ON;
    
       INSERT INTO  ProductorTrack 
       (
                Identificador, 
                IdUsuarioEncuestador ,
                FechaEncuesta ,
                VisitaALaCasa ,
                IdEstadoDiagnostico ,
                Nombres ,
                Apellido1 ,
                Apellido2 ,
                Foto         
       ) 
        VALUES 
       (
                @Identificador, 
                @IdUsuarioEncuestador ,
                @FechaEncuesta ,
                @VisitaALaCasa ,
                @IdEstadoDiagnostico ,
                @Nombres ,
                @Apellido1 ,
                @Apellido2 ,
                @Foto       
       )
    
    END ;
    Codigo C#
      public int InsertarActualizarProductor(FloraNuevaProductor.Productor Productor , string nombreSP)
            {
                int resultado = new int();
                SqlConnection Conexion = new SqlConnection(cadenaConexion);
                using (Conexion)
                {
                    Conexion.Open();
                    SqlCommand command = new SqlCommand(nombreSP, Conexion);
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.Clear();
                    command.Parameters.AddWithValue("@IdProductor", Productor.IdProductor);
                    command.Parameters.AddWithValue("@Identificador", Productor.Identificador);
                    command.Parameters.AddWithValue("@IdUsuarioEncuestador", Productor.IdUsuarioEncuestador);
                    command.Parameters.AddWithValue("@FechaEncuesta", Productor.FechaEncuesta);
                    command.Parameters.AddWithValue("@VisitaALaCasa", Productor.VisitaALaCasa);
                    command.Parameters.AddWithValue("@IdEstadoDiagnostico", Productor.IdEstadoDiagnostico);
                    command.Parameters.AddWithValue("@Nombres", Productor.Nombres);
                    command.Parameters.AddWithValue("@Apellido1", Productor.Apellido1);
                    command.Parameters.AddWithValue("@Apellido2", Productor.Apellido2);
                    command.Parameters.AddWithValue("@Foto", Productor.Foto);
                    resultado = command.ExecuteNonQuery();
                    Conexion.Close();
                }
                return resultado;
            }


    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    miércoles, 19 de septiembre de 2018 19:47
  • Ahi, se ve que el procedure tiene 9 parámetros, y tu envías 10 desde el código faltando el@IdProductor

    Votar es agradecer.
    Saludos.
    Lima-Perú


    • Editado Augusto1982 miércoles, 19 de septiembre de 2018 19:50
    miércoles, 19 de septiembre de 2018 19:50
  •  

    Ahi, se ve que el procedure tiene 9 parámetros, y tu envías 10 desde el código faltando el@IdProductor

    Modifique pero aun me dice que falta @Foto


    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    miércoles, 19 de septiembre de 2018 19:56
  • Podrías seguir este ejemplo

    [WinForms] Edición Empleados – Grabar imagen en base de datos

    .......
    command.Parameters.AddWithValue("@Apellido1", Productor.Apellido1);
    command.Parameters.AddWithValue("@Apellido2", Productor.Apellido2);
    SqlParameter imageParam = cmd.Parameters.Add("@Foto", System.Data.SqlDbType.Image);
    imageParam.Value = Productor.Foto
    ........


    Votar es agradecer.
    Saludos.
    Lima-Perú

    miércoles, 19 de septiembre de 2018 20:07