Tutoriales gratuitos para el aprendizaje de la programacion informatica! Recuerda que si lo puedes imaginar... lo puedes programar!

ALMACENAR IMAGEN EN SQL SERVER DESDE APLICACIÓN C# (LA FOTO NO LA RUTA)


ALMACENAR IMAGEN EN SQL SERVER DESDE APLICACIÓN C# (LA FOTO NO LA RUTA)


CODIFICACIÓN:

CÓDIGO DE LA CLASE IMAGEN

(CLASE QUE PERMITE CONECTARSE CON LA BASE – INSERTAR LA IMAGEN – CONSULTAR LA IMAGEN)

USING SYSTEM;
USING SYSTEM.COLLECTIONS.GENERIC;
USING SYSTEM.LINQ;
USING SYSTEM.TEXT;
USING SYSTEM.THREADING.TASKS;
USING SYSTEM.DATA;
USING SYSTEM.DATA.SQL;
USING SYSTEM.DATA.SQLCLIENT;
USING SYSTEM.WINDOWS.FORMS;

NAMESPACE GUARDARMOSTRARIMAGEN_SIN_RUTA_
{
    CLASS IMAGEN
    {
        SQLCONNECTION CN;
        SQLCOMMAND CMD;
        SQLDATAADAPTER DA;
        DATASET DS;
        DATAROW DR;
        SQLDATAREADER SQLDR;
        PUBLIC STRING ABRIRCONEXION()
        {
            TRY
            {
                CN = NEW SQLCONNECTION("DATA SOURCE=.;INITIAL CATALOG=PRACTICAIMAGEN;INTEGRATED SECURITY=TRUE");
                CN.OPEN();
                RETURN "CONECTADO";
            }
            CATCH(EXCEPTION EX)
            {
                RETURN "NO CONECTADO: " + EX.TOSTRING();
            }
        }
                PUBLIC STRING INSERTARIMAGEN(STRING DESCRIPCION, PICTUREBOX PBIMAGEN)
        {
            STRING MENSAJE = "SE INSERTO LA IMAGEN";
            TRY
            {
                CMD = NEW SQLCOMMAND("INSERT INTO IMG(DESCRIPCION,IMG) VALUES(@DESCRIPCION,@IMAGEN)", CN);
                CMD.PARAMETERS.ADD("@DESCRIPCION", SQLDBTYPE.NCHAR);
                CMD.PARAMETERS.ADD("@IMAGEN", SQLDBTYPE.IMAGE);

                CMD.PARAMETERS["@DESCRIPCION"].VALUE = DESCRIPCION;
                SYSTEM.IO.MEMORYSTREAM MS = NEW SYSTEM.IO.MEMORYSTREAM();

                PBIMAGEN.IMAGE.SAVE(MS, SYSTEM.DRAWING.IMAGING.IMAGEFORMAT.JPEG);
                CMD.PARAMETERS["@IMAGEN"].VALUE = MS.GETBUFFER();
                CMD.EXECUTENONQUERY();
            }
            CATCH(EXCEPTION EX)
            {
                MENSAJE = "NO SE INSERTO LA IMAGEN: " + EX.TOSTRING();
            }
            RETURN MENSAJE;
        }
                PUBLIC VOID VERIMAGEN(PICTUREBOX PBFOTO, STRING DESCRIPCION)
        {
            TRY
            {
                DA = NEW SQLDATAADAPTER("SELECT IMG FROM IMG WHERE DESCRIPCION = '" + DESCRIPCION + "'", CN);
                DS = NEW DATASET();
                DA.FILL(DS, "IMG");
                BYTE[] DATOS = NEW BYTE[0];
                DR = DS.TABLES["IMG"].ROWS[0];
                DATOS = (BYTE[])DR["IMG"];
                SYSTEM.IO.MEMORYSTREAM MS = NEW SYSTEM.IO.MEMORYSTREAM(DATOS);
                PBFOTO.IMAGE = SYSTEM.DRAWING.BITMAP.FROMSTREAM(MS);
            }
            CATCH(EXCEPTION EX)
            {
                MESSAGEBOX.SHOW("NO SE PUDO CONSULTAR LA IMAGEN: " + EX.TOSTRING());
            }
        }
                PUBLIC VOID CARGARIMAGENES(COMBOBOX CBIMG)
        {
            TRY
         {
                CMD = NEW SQLCOMMAND("SELECT DESCRIPCION FROM IMG", CN);
                SQLDR = CMD.EXECUTEREADER();
                WHILE(SQLDR.READ())
             {
                    CBIMG.ITEMS.ADD(SQLDR["DESCRIPCION"]);
                }
                SQLDR.CLOSE();
            }
            CATCH(EXCEPTION EX)
         {
                MESSAGEBOX.SHOW("NO SE CARGARON LAS IMAGENES EN EL COMBOBOX: " + EX.TOSTRING());
            }
        }
    }
}

CÓDIGO DEL FORMULARIO

USING SYSTEM;
USING SYSTEM.COLLECTIONS.GENERIC;
USING SYSTEM.COMPONENTMODEL;
USING SYSTEM.DATA;
USING SYSTEM.DRAWING;
USING SYSTEM.LINQ;
USING SYSTEM.TEXT;
USING SYSTEM.THREADING.TASKS;
USING SYSTEM.WINDOWS.FORMS;

NAMESPACE GUARDARMOSTRARIMAGEN_SIN_RUTA_
{
    PUBLIC PARTIAL CLASS FORM1 : FORM
    {
        IMAGEN IMG = NEW IMAGEN();
        PUBLIC FORM1()
        {
            INITIALIZECOMPONENT();
        }
                PRIVATE VOID BTNCARGARFOTO_CLICK(OBJECT SENDER, EVENTARGS E)
        {
            TRY
            {
                THIS.OPENFILEDIALOG1.SHOWDIALOG();
                IF(THIS.OPENFILEDIALOG1.FILENAME.EQUALS("") == FALSE)
                {
                    PICTUREBOX1.LOAD(THIS.OPENFILEDIALOG1.FILENAME);
                }
            }
            CATCH(EXCEPTION EX)
            {
                MESSAGEBOX.SHOW("NO SE PUDO CARGAR LA IMAGEN: " + EX.TOSTRING());
            }
        }
                PRIVATE VOID FORM1_LOAD(OBJECT SENDER, EVENTARGS E)
        {
            IMG.ABRIRCONEXION();
            IMG.CARGARIMAGENES(CBLISTAFOTOS);
            CBLISTAFOTOS.SELECTEDINDEX = 0;
        }
                PRIVATE VOID BTNAGREGARFOTO_CLICK(OBJECT SENDER, EVENTARGS E)
        {
            MESSAGEBOX.SHOW(IMG.INSERTARIMAGEN(TXTDESCRIPCION.TEXT, PICTUREBOX1));
            CBLISTAFOTOS.ITEMS.CLEAR();
            IMG.CARGARIMAGENES(CBLISTAFOTOS);
        }
                PRIVATE VOID COMBOBOX1_SELECTEDINDEXCHANGED(OBJECT SENDER, EVENTARGS E)
        {
            IMG.VERIMAGEN(PICTUREBOX1, CBLISTAFOTOS.SELECTEDITEM.TOSTRING());
        }
    }
}

No hay comentarios:

Publicar un comentario