none
Ayuda Con solucionar el problema de guardar una imagen RRS feed

  • Pregunta

  • buenos gente otra vez solicitando su ayuda, resulta que tengo una clase en donde tengo la sentencia de insertar, mediante meditos Get y Set, los registros se guardarn correctamente, el problema viene cuando le agrego una imagen al registro al intentar guardar me sale" No se puede convertir un objeto de tipo 'System.Drawing.Bitmap' al tipo 'System.IConvertible'."

    el codigo es el siguiente:

    Public Sub InsertarDetenidos()
            Comando.Connection = Conexion.AbrirConexion()
            Comando.CommandText = "insert into Detenidos(ExpteAfectado, Nombre, Apellido, Alias, Nacionalidad, Edad, Documento, Domicilio, Instruccion, Ocupacion, Padre, Vivep, Madre, Vivem, FechaNacimiento, LugarNacimiento, FechaDetencion , LugarDetencion, LugarAlojamiento, Amistades, AspectoFisico, EquipoSimpatizante, AntecedentesPenales, Enfermedades, GrupoBandasIntegra, Fiscal, Juez, Abogado, Adicciones, MarcasParticulares, Foto, FechaLibertad, MedidasCautelares, Otros, Observaciones)" &
                                               "values(@ExpteAfectadoCombobox, @NombreTextBox, @ApellidoTextbox, @AliasTextBox, @NacionalidadTextBox, @EdadTextBox, @DocumentoTextBox, @DomicilioTextBox, @InstruccionTextBox, @OcupacionTextboxTextBox, @PadreTextBox, @ViveCheckBox, @MadreTextBox, @Vive_CheckBox, @FechaNacimientoTextBox, @LugarNacimientoTextBox, @FechaDetencionTextBox, @LugarDetencionTextBox, @LugarAlojamientoTextBox, @AmistadesTextBox, @AspectoFisicoTextBox, @EquipoSimpatizanteTextBox, @AntecedentesPenalesTextBox, @EnfermedadesTextBox, @GrupoBandasIntegraTextBox, @FiscalTextBox, @JuezTextBox, @AbogadoTextBox, @AdiccionesTextBox, @MarcasParticularesTextBox, @FotoPictureBox, @FechaLibertadTextBox, @MedidasCautelaresTextBox, @OtrosTextBox, @ObservacionesTextBox)"
            Comando.CommandType = CommandType.Text
            'Comando.Parameters.AddWithValue("@Id", id)
            Comando.Parameters.AddWithValue("@ExpteAfectado", expteafectado)
            Comando.Parameters.AddWithValue("@Nombre", nombre)
            Comando.Parameters.AddWithValue("@Apellido", apellido)
            Comando.Parameters.AddWithValue("@Alias", aliass)
            Comando.Parameters.AddWithValue("@Nacionalidad", nacionalidad)
            Comando.Parameters.AddWithValue("@Edad", edad)
            Comando.Parameters.AddWithValue("@Documento", documento)
            Comando.Parameters.AddWithValue("@Domicilio", domicilio)
            Comando.Parameters.AddWithValue("@Instruccion", instruccion)
            Comando.Parameters.AddWithValue("@Ocupacion", ocupacion)
            Comando.Parameters.AddWithValue("@Padre", padre)
            Comando.Parameters.AddWithValue("@Vivep", vivep)
            Comando.Parameters.AddWithValue("@Madre", madre)
            Comando.Parameters.AddWithValue("@Vivem", vivem)
            Comando.Parameters.AddWithValue("@FechaNacimiento", fechanacimiento)
            Comando.Parameters.AddWithValue("@LugarNacimiento", lugarnacimiento)
            Comando.Parameters.AddWithValue("@FechaDetencion", fechadetencion)
            Comando.Parameters.AddWithValue("@LugarDetencion", lugardetencion)
            Comando.Parameters.AddWithValue("@LugarAlojamiento", lugaralojamiento)
            Comando.Parameters.AddWithValue("@Amistades", amistades)
            Comando.Parameters.AddWithValue("@AspectoFisico", aspectofisico)
            Comando.Parameters.AddWithValue("@EquipoSimpatizante", equiposimpatizante)
            Comando.Parameters.AddWithValue("@AntecedentesPenales", antecedentespenales)
            Comando.Parameters.AddWithValue("@Enfermedades", enfermedades)
            Comando.Parameters.AddWithValue("@GruposBandasIntegra", grupobanda)
            Comando.Parameters.AddWithValue("@Fiscal", fiscald)
            Comando.Parameters.AddWithValue("@Juez", juez)
            Comando.Parameters.AddWithValue("@Abogado", abogado)
            Comando.Parameters.AddWithValue("@Adicciones", adicciones)
            Comando.Parameters.AddWithValue("@MarcasParticulares", marcasparticulares)
            Comando.Parameters.AddWithValue("@Foto", foto)
            Comando.Parameters.AddWithValue("@FechaLibertad", fechalibertad)
            Comando.Parameters.AddWithValue("@MedidasCautelares", medidascautelaes)
            Comando.Parameters.AddWithValue("@Otros", otros)
            Comando.Parameters.AddWithValue("@Observaciones", observacionesd)
            Comando.ExecuteNonQuery()
            Comando.Parameters.Clear()
    
        End Sub
    'esta es una clase.-
    If Operacion = "Insertar" Then
    
                objDetenidos.Expteafectado1 = ExpteAfectadoComboBox.SelectedValue
                objDetenidos.Nombre1 = NombreTextBox.Text
                objDetenidos.Apellido1 = ApellidoTextBox.Text
                objDetenidos.Aliass1 = AliasTextBox.Text
                objDetenidos.Nacionalidad1 = NacionalidadTextBox.Text
                objDetenidos.Edad1 = EdadTextBox.Text
                objDetenidos.Documento1 = DocumentoTextBox.Text
                objDetenidos.Domicilio1 = DomicilioTextBox.Text
                objDetenidos.Instruccion1 = InstruccionTextBox.Text
                objDetenidos.Ocupacion1 = OcupacionTextBox.Text
                objDetenidos.Padre1 = PadreTextBox.Text
                objDetenidos.Vivep1 = Convert.ToBoolean(ViveCheckBox.Checked)
                objDetenidos.Madre1 = MadreTextBox.Text
                objDetenidos.Vivem1 = Convert.ToBoolean(Vive_CheckBox.Checked)
                objDetenidos.Fechanacimiento1 = FechaNacimientoTextBox.Text
                objDetenidos.Lugarnacimiento1 = LugarNacimientoTextBox.Text
                objDetenidos.Fechadetencion1 = FechaDetencionTextBox.Text
                objDetenidos.Lugardetencion1 = LugarDetencionTextBox.Text
                objDetenidos.Lugaralojamiento1 = LugarAlojamientoTextBox.Text
                objDetenidos.Amistades1 = AmistadesTextBox.Text
                objDetenidos.Aspectofisico1 = AspectoFisicoTextBox.Text
                objDetenidos.Equiposimpatizante1 = EquipoSimpatizanteTextBox.Text
                objDetenidos.Antecedentespenales1 = AntecedentesPenalesTextBox.Text
                objDetenidos.Enfermedades1 = EnfermedadesTextBox.Text
                objDetenidos.Grupobanda1 = GrupoBandasIntegraTextBox.Text
                objDetenidos.Fiscald1 = FiscalTextBox.Text
                objDetenidos.Juez1 = JuezTextBox.Text
                objDetenidos.Abogado1 = AbogadoTextBox.Text
                objDetenidos.Adicciones1 = AdiccionesTextBox.Text
                objDetenidos.Marcasparticulares1 = MarcasParticularesTextBox.Text
                objDetenidos.Foto1 = Convert.ToByte(FotoPictureBox.Image) <----- aqui el problema
                objDetenidos.Fechalibertad1 = FechaLibertadTextBox.Text
                objDetenidos.Medidascautelaes1 = MedidasCautelaresTextBox.Text
                objDetenidos.Otros1 = OtrosTextBox.Text
                objDetenidos.Observacionesd1 = ObservacionesTextBox.Text
                objDetenidos.InsertarDetenidos()
                objDetenidos.ListarDetenidos()
                MsgBox("Actualice la tabla para ver los datos", MsgBoxStyle.Information, "Datos Guardados")
                Me.Close()
    este seria el boton guardar...en un formulario hijo...

    por favor si podrian ayudarme... perdon si no soy claro, aun no manejo con fluidez la problamacion.-

    desde ya muchas gracias. saludos

    lunes, 10 de diciembre de 2018 23:38

Respuestas

  • El problema es que no puedes hacer esto:

    Convert.ToByte(FotoPictureBox.Image)

    Un objeto Image no se puede convertir en bytes. Hay que decirle a la imagen que se salve en algún formato concreto, como por ejemplo jpg, y ese jpg meterlo en un array de bytes.Puedes, por ejemplo, salvar la imagen en un MemoryStream y luego pasar el MemoryStream a bytes:

    Dim ms as New MemoryStream()
    FotoPictureBox.Image.Save(ms, ImageFormat.Jpeg)
    dim b as Byte() = ms.ToArray()

    Y ahora ese array b ya lo puedes salvar en base de datos.

    • Propuesto como respuesta Pedro AlfaroModerator martes, 11 de diciembre de 2018 15:44
    • Marcado como respuesta Frankozub martes, 11 de diciembre de 2018 21:30
    martes, 11 de diciembre de 2018 7:49