none
mostrar imagen guardada en sql RRS feed

  • Pregunta

  • Buenas tardes tengo una tabla en sql donde guardo una imagen en una celda y quiero mostrarla en Visual.net

    con un procedimiento almacenado 

    ALTER proc [dbo].[Ver_lamina]
    @Id_lamina integer
    as 
    Select imagen from Laminas where Id_lamina= @Id_lamina

    la conexion tengo en una clase 

    en otra clase el set y get "Vlaminas"

    y otra Flaminas donde tengo funciones para Mostrar, Editar, Eliminar y ver_lamina  "Flamina"

    como hago para que no me carge todas las imagenes en el datagridview  solo me muestre la imagen cuando seleccione celda en el datagridview me muestre la  lamina que quiera ver en un picturebox 

    cuando carga con las imágenes es muy pesado y se demora mucho y aveces no se conecta

    muchas gracias de antemano 


    Willian61x


    • Editado Willian61x jueves, 20 de febrero de 2020 19:57
    jueves, 20 de febrero de 2020 19:45

Todas las respuestas

  • hola

    >>cuando carga con las imágenes es muy pesado y se demora mucho y aveces no se conecta

    Pero cuantos registros estas mostrando en el grid ? recuerda que si son mas de 10 deberias paginar los datos

    Lo lento no creo qeu sea por la imagen, si por la cantidad de registros

    >>solo me muestre la imagen cuando seleccione celda en el datagridview me muestre la  lamina que quiera ver en un picturebox

    eso esta bien, los detalles pesados de una entidad se deberian cargar cuando seleccionas una en concreto

    Lo que no entendi cual seria el problema? porque entiendo las imagenes puedes verlas en el grid y en el picturebox, solo que en el grid se demora, si es asi limita la cantidad de datos que muestras

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 20 de febrero de 2020 19:50
  • Hola,

    son mas de 1800 laminas y al cargase todas las imagenes en el datagreed view se demora

    ejemplo no en mi programa así me cargaba   y modifique el procedimiento para que solo me muestre id numero y el nombre y me carga rápido o normal y si limito la vista no creo que pueda buscar un registro en especifico 


    Willian61x



    • Editado Willian61x jueves, 20 de febrero de 2020 20:14
    jueves, 20 de febrero de 2020 20:05
  • hola

    >>son mas de 1800 laminas y al cargase todas las imagenes en el datagreed view se demora

    es que es una locura, no existe control que se soporte ese numero de registros y ademas con imagenes y pretendas ademas que lo haga performance

    Tendrias que permitir filtrar o paginar los datos para nos cargar mas de 10, 20 como mucho, no ese valor que mencionas

    >>si limito la vista no creo que pueda buscar un registro en especifico

    porque no?

    agrega valor a tu desarrollo permitiendo buscar por algo concreto, no listando todo en una sabana de datos que ningun humano podra trabajar con esa cantidad de datos a la vez

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 20 de febrero de 2020 23:29
  • perdón la molestia no soy bueno en esto de bases de datos casi todo lo que he hecho ha sido viendo tutoriales 

    para mostrar utilizo la función  

     Private Sub MostrarSolarte()
            Try
                Dim func As New Flaminas
                dt = func.mostrar
                If dt.Rows.Count <> 0 Then
                    DatLaminaWrs.DataSource = dt
                    TxtBusc_LaminaWrs.Enabled = True
                    LblNoExisteLaminaWrs.Visible = False
                    columnasSolarte()
                Else
                    DatLaminaWrs.DataSource = Nothing
                    LblNoExisteLaminaWrs.Visible = True

                End If

            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            buscar()

        End Sub

    y la función Buscar para buscar por nombre por ejemplo si me muestra 10 o 20 registro y ese reguistro no esta en el datagreedview como podría buscarlo 

    Private Sub buscar() 
            Try
                LblNumeroWrs.Text = "0000"
                PtbImagenWrs.Image = Nothing

                PtbImagenWrs.BackgroundImage = My.Resources.file
                Dim ds As New DataSet
                ds.Tables.Add(dt.Copy)
                Dim dv As New DataView(ds.Tables(0))
                dv.RowFilter = CboBusc_laminaWrs.Text & " like '%" & TxtBusc_LaminaWrs.Text & "%'"
                If dv.Count <> 0 Then
                    LblNoExisteLaminaWrs.Visible = False
                    DatLaminaWrs.DataSource = dv
                    columnasSolarte()
                Else
                    LblNoExisteLaminaWrs.Visible = True
                    DatLaminaWrs.DataSource = Nothing
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try



    Willian61x

    jueves, 20 de febrero de 2020 23:54