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

Guardar dibujo C# WinForm 2005

Estas en el tema de Guardar dibujo C# WinForm 2005 en el foro de .NET en Foros del Web. Buenas, tengo el siguiente problema, llevo semanas tratando de guardar un dibujo en SQLSERVER 2005, ya tengo la tabla con el campo image. El programa ...
  #1 (permalink)  
Antiguo 08/12/2010, 20:34
 
Fecha de Ingreso: junio-2007
Mensajes: 47
Antigüedad: 16 años, 10 meses
Puntos: 0
Guardar dibujo C# WinForm 2005

Buenas, tengo el siguiente problema, llevo semanas tratando de guardar un dibujo en SQLSERVER 2005, ya tengo la tabla con el campo image.

El programa debe ser capaz de lograr dibujar con el mouse lo que sea y guardar ese dibujo en la BD y posteriormente poderlo recuperar cuando se desea. Actualmente el sistema logra dibujar sin problemas, pero no logro guardarlo.

El error exactamente es: "No se controló NullReferenceException" en la siguiente linea de código:

pictureBox1.Image.Save(stream,System.Drawing.Imagi ng.ImageFormat.Jpeg);

Asumo que no estoy capturando las lineas dibujadas, y estoy enviando un valor NULO. Realmente ya no se como hacerlo, espero me puedan ayudar con algún ejemplo sobre mi propio código.

En la espera de sus comentarios.

Coloco el codigo;

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

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

private void button1_Click(object sender, EventArgs e)
{

SqlConnection con = new SqlConnection("data source = .; initial catalog = SICOF; user id = sa; password = 1234");
SqlCommand com = new SqlCommand("insert into TABLAIMAGEN(CODIGO,IMAGEN) values(1,@Pic)", con);

MemoryStream stream=new MemoryStream();

pictureBox1.Image.Save(stream,System.Drawing.Imagi ng.ImageFormat.Jpeg);

byte[] pic=stream.ToArray();

com.Parameters.AddWithValue("@Pic", pic);
try
{
con.Open();
com.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
}

private void button2_Click(object sender, EventArgs e)
{
SqlConnection connect = new SqlConnection("data source = .; initial catalog = PRUEBAIMAGEN; user id = sa; password = 1234");

SqlCommand command = new SqlCommand("select IMAGEN from TABLAIMAGEN where CODIGO=1", connect);

SqlDataAdapter dp = new SqlDataAdapter(command);
DataSet ds = new DataSet("MyImages");

byte[] MyData = new byte[0];

dp.Fill(ds, "MyImages");
DataRow myRow;
myRow = ds.Tables["MyImages"].Rows[0];

MyData = (byte[])myRow["fldPic"];

MemoryStream stream = new MemoryStream(MyData);

pictureBox2.Image = Image.FromStream(stream);
}


private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
Graphics objGrafico = pictureBox1.CreateGraphics();

Pen objLapiz = new Pen(Color.Blue, (float)2);
objGrafico.DrawEllipse(objLapiz, e.X, e.Y, (float)2, (float)2);
}
}
}

Etiquetas: dibujo, winform
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 00:34.