|
142
|
Programación / .NET (C#, VB.NET, ASP) / Re: Guardar Imagen en base de datos. (c#)
|
en: 14 Junio 2010, 15:03 pm
|
//........ byte[] img = gestor_contacto.Obtener_Imagen_Contacto(factoriaDAO); //..........
Estas seguro de que eso es una imagen? Ponlo en un picturebox de prueba aver si sale En cuanto a la discusión que llevais sobre almacenar imágenes o no en la bdd, no veo porqué es una mala practica el guardarlas. Veo mucho peor guardar solo la dirección. Si tu cambias la ímagen de sitio que haces??' como la recupera si ya no está en la dirección que tienes almacenada???.
La idea es que el directorio sea intocable Eso son los bytes de la imagen. Luego hago la conversión. Lo de la factoria es porque llamo a un método que accede a a la base de datos usando el patrón dao. Gracias por las respuestas. Voy a probar por separado como dice el compañero a ver si saco algo.
|
|
|
144
|
Programación / .NET (C#, VB.NET, ASP) / Re: Guardar Imagen en base de datos. (c#)
|
en: 14 Junio 2010, 12:18 pm
|
43H4FH44H45H4CH49H56H45H muchas gracias, voy a probar a ver si me funciona lo que me has dicho. D4N93R perdona, tienes razón que no expliqué lo que era. Es un windows form. xD gracias. raul338 como puse arriba sigo teniendo problemas. Voy a probar lo que me ha dicho el compañero a ver si me funciona y os comento. xD En cuanto a la discusión que llevais sobre almacenar imágenes o no en la bdd, no veo porqué es una mala practica el guardarlas. Veo mucho peor guardar solo la dirección. Si tu cambias la ímagen de sitio que haces??' como la recupera si ya no está en la dirección que tienes almacenada???. Saludos y gracias a todos.
|
|
|
145
|
Programación / .NET (C#, VB.NET, ASP) / Re: Guardar Imagen en base de datos. (c#)
|
en: 14 Junio 2010, 02:29 am
|
Vale ya lo he solucionado. Parece que al selecionar la imágen en el picture box algo no se guardaba bien y luego había conflicto. Ahora ya me va. En principio se me guarda en la base de datos, pero ahora me está fallando al leer de la base de datos. D4N93R Estoy haciendo una agenda electronica. Entonces para cada contacto se podrá seleccionar una imágen por eso de guardarla en la base de datos. Otra forma no se como hacerlo. Si dices que es mejor guardando solo la ruta pues la verdad que si me dijeras como te estaría agradecido. En cualquier caso ahora a ver si me podeis ayudar con esto. Para leer la imágen de la base de datos hago lo siguiente: public override byte[] Obtener_Imagen_Contacto() { byte[] img = null; String sentenciaSQL = "SELECT imagen FROM contactos WHERE apodo = 'pavolino'"; SqlConnection conexion = null; try { conexion = new SqlConnection (cadena_conexion ); SqlDataAdapter data_adapter = new SqlDataAdapter (sentenciaSQL, conexion ); DataTable data_table = new DataTable (); conexion.Open(); data_adapter.Fill(data_table); img = (byte[])data_table.Rows[0][0]; } catch (SqlException ex) { img = null; MessageBox.Show("No se ha podido acceder a la fuente de datos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { if(conexion != null) { if (conexion.State == ConnectionState.Open) { conexion.Close(); } } } return (img); }
luego desde el formulario, para que me cargue la imágen hago esto: public Interfaz_Datos_Contacto(Factoria_DAO factoria) { InitializeComponent(); factoriaDAO = factoria; MemoryStream stream = null; Gestor_Contacto gestor_contacto = new Gestor_Contacto (); byte[] img = gestor_contacto.Obtener_Imagen_Contacto(factoriaDAO); stream = new MemoryStream (img ); pictureBox_FotoImagen.Image = Image.FromStream(stream);
El error me lo da en la última linea. Me dice que el parametro no es válido. Solución?? Gracias de antemano.
|
|
|
147
|
Programación / .NET (C#, VB.NET, ASP) / Re: Guardar Imagen en base de datos. (c#)
|
en: 13 Junio 2010, 20:46 pm
|
gracias voy a probar, pero así leyendo por encima he visto esto: img.Save(fs, System.Drawing.Imaging.ImageFormat.Png);
Si la imágen que yo he escogido anteriormente para mi picturebox no es png que hago??. Es decir: yo tengo un formulario donde se agregan contactos (es una agenda) entonces cada contacto tendrá un picturebox con su imágen y unas serán en png, otras en jpg, otras gif... etc... Con eso todas las imágenes las convierte a png???. o como lo tendría que hacer sino... Salu2
|
|
|
148
|
Programación / .NET (C#, VB.NET, ASP) / Guardar Imagen en base de datos. (c#)
|
en: 13 Junio 2010, 20:25 pm
|
Hola de nuevo compañeros. Necesito guardar una imágen en la base de datos, y he mirao tutoriales pero no hay manera, porque yo intento guardarla como byte, pero no me covierte, me dice que no puedo convertir un System.Drawing.Image en byte[].
que puedo hacer?? como paso o convierto la imágen??.
gracias de antemano.
|
|
|
150
|
Programación / .NET (C#, VB.NET, ASP) / Problema al acceder a la base de datos: SQLserver y c#
|
en: 10 Junio 2010, 19:31 pm
|
Hola, en la aplicación en la que estoy, estoy intentando acceder a la base de datos para almacenar una serie de datos. y me salta un error en el catch (exception) que hago de la conexion. Lo raro esque al principio al realizar la conexión con la base de datos no me da problema ninguno pero luego cuando vuelvo a intentar acceder a ella sí me lo da. Este es el código que tengo: public override bool Nuevo_Contacto(string[] datos) { bool exito = false; //Sentencia Sql String sentenciaSQL = "insert into contactos values('" + datos[0] + "','" + datos[1] + "','" + datos[2] + "','" + datos[3] + "','" + datos[4] + "','" + datos[5] + "','" + datos[6] + "','" + datos[7] + "','" + datos[8] + "','" + datos[9] + "','" + datos[10] + "','" + datos[11] + "','" + datos[12] + "','" + datos[13] + "','" + datos[14] + "','" + datos[15] + "','" + datos[16] + "','" + datos[17] + "','" + datos[18] + "','" + datos[19] + "','" + datos[20] + "','" + datos[21] + "','" + datos[22] + "','" + datos[23] + "','" + datos[24] + "','" + datos[25] + "','" + datos[26] + "','" + datos[27] + "','" + datos[28] + "'," + datos[29] + "','" + datos[30] + "','" + datos[31] + "','" + datos[32] + "')"; SqlConnection conexion = null; try { conexion = new SqlConnection (cadena_conexion ); conexion.Open(); SqlCommand comando = new SqlCommand (sentenciaSQL, conexion ); if (1 != comando.ExecuteNonQuery()) { MessageBox.Show("Se ha producido un error al acceder a la fuente de datos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); exito = false; } else { exito = true; } } catch (Exception) { MessageBox.Show("Se ha producido un error al acceder a la fuente de datos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); exito = false; } finally { if (conexion != null) { if (conexion.State == ConnectionState.Open) { conexion.Close(); } } } return exito; }
Y el error que me da es en el catch(Exception). Al pasar el depurador en la variable conexion me sale en rojo lo siguiente: {System.Data.SqlClient.SqlConnection}Alguna solución???
|
|
|
|
|
|
|