INSERTAR UNA IMAGEN EN BASES DE DATOS SQL SERVER 2008 CON VISUAL STUDIO 2008(C#)

Uno de los temas un poco mas complicados de mantenimiento de Registros en Bases de Datos es el de poder insertar Imágenes o fotografías cuando sea necesario para el cliente, navegando un poco por la web encontré algunas soluciones, pero me quede con la más fácil, en el próximo tutorial a éste mostraré como hacer para mostrar los registros que guarden imagenes en REPORTING SERVICES y/o CRYSTAL REPORT, pero primero paso a paso como insertar un registro que contiene imagen en C#.

1. CREAR LA BASE DE DATOS Y LA TABLA EN SQL SERVER 2008
– Clic en nueva consulta y escribir el siguiente código y luego ejecutar

2. CREAR EL PROYECTO EN VISUAL STUDIO 2008 Y DISEÑAR LA INTERFAZ
– Proyecto de Aplicacion Windows c#
– Para mostrar la imagen elegir el control PictureBox

3. ESCRIBIR EL CÓDIGO DEL BOTÓN EXAMINAR PARA QUE SE ABRA EL CUADRO DE SELECCIÓN DE LA IMAGEN Y SELECCIONEMOS LA IMAGEN DESEADA Y SE MUESTRE EN EL PICTURE BOX

– cuando ejecutamos se muestra de la siguiente manera

4. ESCRIBIR EL CÓDIGO PARA EL BOTÓN GUARDAR

private void btnGuardar_Click(object sender, EventArgs e)
{
try
{
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(@”Data Source=
(local);Initial Catalog=EJEMPLO;Integrated Security=SSPI”);
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();

// Estableciento propiedades
cmd.Connection = conn;
cmd.CommandText = “INSERT INTO Productos VALUES (@Codigo, @Descripcion, @Cantidad, @precio, @foto)”;

// Creando los parámetros necesarios
cmd.Parameters.Add(“@Codigo”, System.Data.SqlDbType.Int);
cmd.Parameters.Add(“@Descripcion”, System.Data.SqlDbType.NVarChar);
cmd.Parameters.Add(“@Cantidad”, System.Data.SqlDbType.Int);
cmd.Parameters.Add(“@precio”, System.Data.SqlDbType.SmallMoney);
cmd.Parameters.Add(“@foto”, System.Data.SqlDbType.Image);

// Asignando los valores a los atributos
cmd.Parameters[“@Codigo”].Value = int.Parse(txtCodigo.Text);
cmd.Parameters[“@Descripcion”].Value = txtDescripcion.Text;
cmd.Parameters[“@Cantidad”].Value = int.Parse(txtCantidad.Text);
cmd.Parameters[“@precio”].Value = float.Parse(txtPrecio.Text);

// Asignando el valor de la imagen

// Stream usado como buffer
System.IO.MemoryStream ms = new System.IO.MemoryStream();
// Se guarda la imagen en el buffer
picFoto.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
// Se extraen los bytes del buffer para asignarlos como valor para el
// parámetro.
cmd.Parameters[“@foto”].Value = ms.GetBuffer();

conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
MessageBox.Show(“Registro Guardado Correctamente”);
}

}
}

5. EJECUTAMOS Y PROBAMOS

6. VERIFICAMOS EN LA BASE DE DATOS SI SE GUARDO EL REGISTRO

Como vemos el registro se guardo correctamente y en la columna Foto se guarda y valor de la ubicación en memoria de dicha imagen que se ha extraído sus bytes, para almacenarlos en un buffer que es finalmente en esta forma como se almacena en la BD.


Gracias

8 comentarios el “INSERTAR UNA IMAGEN EN BASES DE DATOS SQL SERVER 2008 CON VISUAL STUDIO 2008(C#)

  1. es exactamente lo que necesito pero lo realizo en web y no en formulario ,lo quiero realizar con fileupload , me das una ayuda Carlos ? jeje

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s