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