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
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(); }
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.