Foros del Web » Programación para mayores de 30 ;) » .NET »

Insertar Registros con imagenes en una DB

Estas en el tema de Insertar Registros con imagenes en una DB en el foro de .NET en Foros del Web. Saludos Gente del Foro Por favor, alguien que me pueda ayudar. Estoy realizando un programa para manejar mercaderia, utilizando Visual .Net 2005 y Sql Server ...
  #1 (permalink)  
Antiguo 16/04/2010, 21:06
 
Fecha de Ingreso: abril-2008
Mensajes: 112
Antigüedad: 16 años
Puntos: 0
Insertar Registros con imagenes en una DB

Saludos Gente del Foro

Por favor, alguien que me pueda ayudar.
Estoy realizando un programa para manejar mercaderia, utilizando Visual .Net 2005 y Sql Server 2005, y deseo insertar registros que contengan codigo, descripcion, precio, etc y la imagen de cada producto.

Yo puedo insertar los registros con los datos (INSERT), y las imagenes por separado utilizando UPDATE, pero si alguien sabe como Insertar el registro completo en un solo paso, me ayudaria mucho, debo hacerlo asi

Muchas Gracias
  #2 (permalink)  
Antiguo 20/04/2010, 16:02
 
Fecha de Ingreso: febrero-2010
Mensajes: 35
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Insertar Registros con imagenes en una DB

Ps lo que tienes que hacer es, primero, dentro de la tabla declarar un campo de timop image el cual guardara la imagen binarizada, dentro de tu programa, crear un metodo dentro del cual se binarizen las imagenes y dentro de este metodo realizar la insercion, algo parecido a esto:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;

namespace BinarizacionImagenes
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
try
{
Image imagenProcesando = new Bitmap(Application.StartupPath + "/Imagenes/baja.png");
MemoryStream memStream = new MemoryStream();
imagenProcesando.Save(memStream, System.Drawing.Imaging.ImageFormat.Png);
Byte[] dibujoByteArray = memStream.GetBuffer();

SqlConnection conn = new SqlConnection("Data Source=LUISVELAZQUEZ;Initial Catalog=SolicitudServicios;Integrated Security=True");
conn.Open();
SqlCommand statement = new SqlCommand("insert into ImagenesPrioridad(imagenBinarizada,nombreImagen) values (@imagen,'Baja')", conn);
//SqlCommand statement = new SqlCommand("update ImagenesStatus set imagenBinarizada=@imagen,nombreImagen='En Proceso' where id_statusImg=1", conn);
statement.Parameters.AddWithValue("@imagen", dibujoByteArray);

MessageBox.Show(statement.ExecuteNonQuery().ToStri ng() + " filas fueron afectadas");
conn.Close();
}
catch (SqlException ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}

En esta clase hay un metodo el cual binariza mi imagen e inserta la imagen y los datos que hay dentro de mi tabla.

Suerte!
  #3 (permalink)  
Antiguo 22/04/2010, 15:43
 
Fecha de Ingreso: abril-2008
Mensajes: 112
Antigüedad: 16 años
Puntos: 0
Respuesta: Insertar Registros con imagenes en una DB

Gracias ChusterBoy, es precisamente lo q he hecho
Binarizar como tu lo llamas, por si alguien tiene interes en el tema es algo asi:

Private Sub BtnNvoProdINGRESAR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNvoProdINGRESAR.Click
Try
Cn.Open() 'Abrimos la conexion
Dim arrFileName() As String = Split(Text, "\")
Array.Reverse(arrFileName)

Dim ms As New MemoryStream 'variable para pasar la imagen a un Stream
PicBoxNvoProd.Image.Save(ms, PicBoxNvoProd.Image.RawFormat)
Dim arrImage As Byte() = ms.GetBuffer 'declaramos un arreglo para guardar el stream de la imagen

Dim cmd As New SqlCommand("Insert into Productos(codigo_producto, descripcion, precio, id_proveedor, imagen) Values(@codigo_producto, @descripcion, @precio, @id_proveedor, @imagen)", Cn)
With cmd
.Parameters.Add(New SqlParameter("@codigo_producto", SqlDbType.NVarChar, 50)).Value = Me.TxtNvoProdCodigo.Text
.Parameters.Add(New SqlParameter("@descripcion", SqlDbType.NVarChar, 50)).Value = Me.TxtNvoProdDescripcion.Text
.Parameters.Add(New SqlParameter("@precio", SqlDbType.SmallMoney)).Value = Me.TxtNvoProdPrecio.Text
.Parameters.Add(New SqlParameter("@id_proveedor", SqlDbType.NVarChar, 50)).Value = Me.TxtNvoProdIDProv.Text
.Parameters.Add(New SqlParameter("@imagen", SqlDbType.Image)).Value = arrImage
End With
MessageBox.Show("Registro Ingresado")
cmd.ExecuteNonQuery()

Catch SqlExc As SqlException
MessageBox.Show(SqlExc.ToString, "SQL Exception Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)
Catch ex As Exception
MsgBox(ex.Message)
Finally
Cn.Close() 'cerramos la Conexion
End Try

CargaInfoProducto() 'Refrescar el DataGridView general de productos
ProductoProveedor() 'Refrescar el DataGridView de productos pro proveedor
End Sub

'Examinar imagen para Producto
Private Sub BtnNvoProdImagen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNvoProdImagen.Click
With OpenFD
.InitialDirectory = ""
.Filter = "Archivos de Imagen |*.*|JPEGs|*.jpg|GIFS|*.gif|Bitmaps|*.bmp" 'Archivos que receptara el cuadro de dialogo
.FilterIndex = 1 'tipo de archivo por defecto
End With

If OpenFD.ShowDialog() = Windows.Forms.DialogResult.OK Then
With PicBoxNvoProd
.Image = Image.FromFile(OpenFD.FileName)
.SizeMode = PictureBoxSizeMode.CenterImage
.BorderStyle = BorderStyle.Fixed3D
Me.BtnNvoProdINGRESAR.Enabled = True
End With
End If
End Sub
  #4 (permalink)  
Antiguo 23/04/2010, 00:58
Avatar de KeiDash  
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Insertar Registros con imagenes en una DB

Muchas gracias a los dos por este aporte, me viene de perlas y es bastante sencillo.

Gracias.

Etiquetas: imagenes, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:52.