Imagenes en Access con C# guardar y leer binario

April 22, 2018 | Author: karlitoo | Category: N/A
Share Embed Donate


Short Description

Download Imagenes en Access con C# guardar y leer binario...

Description

Imagenes en Access con C# Hola amigos, aqui les dejo una publicación sobre como grabar imagenes en una base de datos Access. Es bien fácil, aqui les dejo el ejemplo. Aqui les muestro la estructura de la tabla t abla en Access

Y éste es el código: class ImagenesAccess { string _connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Application. Application.StartupPath StartupPath + "\\IMG.mdb" "\\IMG.mdb"; ; public string ConnStr { get { return _connStr; } set { _connStr = value value; ; } } public bool GuardarImagen( GuardarImagen(byte byte[] [] abImagen) { OleDbConnection conn = new OleDbConnection(_connStr); OleDbCommand OleDbComman d comm = new OleDbCommand("INSERT OleDbCommand( "INSERT INTO imagenes (imagen) VALUES (?)", (?)" , conn); OleDbParameter OleDbParame ter parImagen = new OleDbParameter( OleDbParameter("@imagen" "@imagen", , OleDbType.VarBinary, OleDbType.V arBinary, abImagen.Le abImagen.Length); ngth); parImagen.Value = abImagen; comm.Parameters.Add(parImagen); conn.Open(); int iResultado = comm.Execute comm.ExecuteNonQuery(); NonQuery(); conn.Close(); return Convert.ToBoolean(iResultado); } public byte byte[] [] ObtenerImagen(int ObtenerImagen(int iImageID) { OleDbConnection conn = new OleDbConnection(_connStr); OleDbCommand OleDbComman d comm = new OleDbCommand( OleDbCommand("SELECT "SELECT ID,imagen "+ "+ " FROM imagenes where ID=" + iImageID + "" , conn); conn.Open(); OleDbDataReader dr = null null; ; dr = comm.ExecuteReader(); byte[] byte [] aBytes = null null; ; if (dr.Read()) { aBytes = (byte (byte[])dr.GetValue(1); [])dr.GetValue(1); iImageID = dr.GetInt32( dr.GetInt32(0); 0); } conn.Close(); dr.Close(); return (aBytes);

} }

Esta clase utiliza las directivas (using): using using using using

System; System.Data; System.Data.OleDb; System.Windows.Forms;

Ahora veamos como utilizar la clase:

Si queremos insertar una imagen, utilicemos un código como el siguiente: string CnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Application.StartupPath + "\\IMG.mdb"; private void btnSubirImagen_Click( object sender, EventArgs e){ OpenFileDialog m_OpenFile = new OpenFileDialog(); m_OpenFile.InitialDirectory = Application.ExecutablePath.ToString(); m_OpenFile.Title = "Buscar Imágenes"; m_OpenFile.Filter = "Todos los archivos(*.*)*.*"+ "Imagenes JPG (*.jpg)*.jpg"+ "Imagenes GIF (*.gif)*.gif"; m_OpenFile.FilterIndex = 2; if (m_OpenFile.ShowDialog() == DialogResult.OK) { System.IO.FileStream fs = new FileStream(m_OpenFile.FileName, FileMode.Open, FileAccess.Read); System.IO.BinaryReader br = new System.IO.BinaryReader(fs); byte[] abImagen = new byte[fs.Length]; br.Read(abImagen, 0, (int)fs.Length); br.Close(); fs.Close(); Class.ImagenesAccess _ImagenesAccess = new Class.ImagenesAccess(); if (_ImagenesAccess.GuardarImagen(abImagen)) { MessageBox.Show("Imagen almacenada"); } } }

Si queremos recuperar la imagen y mostrarla en un picture box: Class.ImagenesAccess _ImagenesAccess = new Class.ImagenesAccess(); byte[] img = _ImagenesAccess.ObtenerImagen(varID);//aqui el ID if (img != null) { //Transformar los bytes en una imagen de nuevo MemoryStream ms = new MemoryStream(); ms.Write(img, 0, img.GetUpperBound(0) + 1); picImagen.Image = System.Drawing.Image.FromStream(ms); ms.Close(); }

Espacios de nombres utilizamos:

using System.IO; using System.Drawing;

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF