Sv Community El Salvador
Soporte y Tecnología => Programación => Base de Datos => Topic started by: Rick.Hunter.007 on November 22, 2007, 10:26:25 am
-
Hola... (Por favor le pido a los admins, mods que no me muevan en 2 dias este post, es que necesito que tenga un poquito de vistocidad....)
Hola!!!... Ey, ¿Alguien sabe como anexar a una base de datos una imagen?... es que estoy haciendo el mantenimiento de una tablita de productos, con el .net y SQL server., pero me estan exigiendo que le puedan poner una 1 foto a cada producto... y de verdad no tengo la menor idea de como hacerlo, ayuda pleaseeeee.... o si pueden con MySql.... me imagino que lo más o menos lo mismo se hace no?.... ayudaaaaaaaaaaaa
-
Hey Rick leete lo que me recomendario aqui... sobre todo lo que me dijo el joven administrador...
http://www.svcommunity.org/forum/index.php?topic=30562.0 (http://www.svcommunity.org/forum/index.php?topic=30562.0)
Yo tuve ese problema en ORACLE y en POSTGRE ... pero gracias a esas ideas... logre mi cometido... leete eso... cualquier cosa avisas.. pa ver que ondas.
-
Ah interesante... lo que pasa es que el registro de tipo image, segun la msdn es de tipo byte.... o algo asi.... ¿supongo entonces que tengo que mandarle una cadena de bytes en la consulta?... segun el enlace que me diste, asi se hace... ¿Cierto? mmmm :shockd:
-
el ejemplo que puso tecun... es para vos si lo estas utilizando en SQL SERVER
-
lo siento, pero reglas son reglas y tenemos todos que cumplirlas
la misma "vistosidad" vas a tener en el respectivo foro...
-
Ya te salió lo de las imagenes???, tengo unos ejemplos que te pueden ser útililes. Contestame en el foro y por aqui los posteo
-
También tenés que cambiarle el nombre del tema a uno más descriptivo.
-
Ey, ya le halle amigos, muchas gracias por sus ayudas. Jejejeje :sur:
Miren, asi me quedo:
Comun1.Conexion.ParaClear();
Comun1.Conexion.ParaAdd("@Nombres", DbType.String, txtNombres.Text);
Comun1.Conexion.ParaAdd("@Apellidos", DbType.String, txtApellidos.Text);
Comun1.Conexion.ParaAdd("@Direccion", DbType.String, txtDireccion.Text);
Comun1.Conexion.ParaAdd("@Telefonos", DbType.String, txtTelefonos.Text);
Comun1.Conexion.ParaAdd("@Dui", DbType.String, txtDui.Text);
Comun1.Conexion.ParaAdd("@Email", DbType.String, txtEmail.Text);
Comun1.Conexion.ParaAdd("@Isss", DbType.String, txtIsss.Text);
Comun1.Conexion.ParaAdd("@Cargo", DbType.String, cbCargo.Text);
Comun1.Conexion.ParaAdd("@Clave", DbType.String, txtClave.Text);
//Insertar la imagen a la BD:
String DirTemp = Application.StartupPath + "\\";
Bitmap BitmapTemp = new Bitmap(PicFoto.BackgroundImage);
BitmapTemp.SetResolution(320, 240);
BitmapTemp.Save(DirTemp + "FotoTemp.png", System.Drawing.Imaging.ImageFormat.Png);
System.IO.FileStream StreamTemp = new System.IO.FileStream(DirTemp + "FotoTemp.png", System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.BinaryReader BinaryReaderTemp = new System.IO.BinaryReader(StreamTemp);
byte[] FotoSQL = BinaryReaderTemp.ReadBytes((int)(StreamTemp.Length));
BinaryReaderTemp.Close();
StreamTemp.Close();
Comun1.Conexion.ParaAdd("@Foto", DbType.Binary, FotoSQL);
if (Comun1.Conexion.InsertCmd("INSERT INTO Empleado(Nombres, Apellidos, Direccion, Telefonos, DuiEmpleado, Email, Isss, Cargo, Clave, Foto) VALUES(@Nombres, @Apellidos, @Direccion, @Telefonos, @Dui, @Email, @Isss, @Cargo, @Clave, @Foto)") == 1)
{
Comun1.Informacion("La información ha sido anexada.");
Identificador = txtDui.Text;
RellenarAutoComplementacion();
txtNombres.Focus();
}
else
{
Comun1.Errores("La información no ha podido ser anexada.");
}
Estaba facil la verdad... ahora el problema que tengo es que no puedo modificar la foto.... a la función de modificar (UPDATE) le he puesto temporalmente que que primero: Elimine (DELETE) y que despues Agrege (INSERT INTO)....
¿Me darian una manito en esta otra?.... miren como lo tengo:........ bien ineficiente, esta Core 2 Duro si me funciona chivo... pero ya en las que lo voy a instalar, creo que no....
private void btnModificar_Click(object sender, EventArgs e)
{
if (!Validar())
return;
//Borrar primero...
if (Comun1.Conexion.UpdateCmd("delete from empleado where DuiEmpleado='" + Identificador + "'") == 1)
{
//Ahora insertar a BD:
if (Comun1.Conexion.SelectCmd("select DuiEmpleado from Empleado where DuiEmpleado='" + txtDui.Text + "'"))
{
Comun1.Conexion.DrClose();
Comun1.Errores("Error al modificar. El número de DUI ya existe y no se puede repetir.");
return;
}
else
{
Comun1.Conexion.ParaClear();
Comun1.Conexion.ParaAdd("@Nombres", DbType.String, txtNombres.Text);
Comun1.Conexion.ParaAdd("@Apellidos", DbType.String, txtApellidos.Text);
Comun1.Conexion.ParaAdd("@Direccion", DbType.String, txtDireccion.Text);
Comun1.Conexion.ParaAdd("@Telefonos", DbType.String, txtTelefonos.Text);
Comun1.Conexion.ParaAdd("@Dui", DbType.String, txtDui.Text);
Comun1.Conexion.ParaAdd("@Email", DbType.String, txtEmail.Text);
Comun1.Conexion.ParaAdd("@Isss", DbType.String, txtIsss.Text);
Comun1.Conexion.ParaAdd("@Cargo", DbType.String, cbCargo.Text);
Comun1.Conexion.ParaAdd("@Clave", DbType.String, txtClave.Text);
//Insertar la imagen a la BD:
String DirTemp = Application.StartupPath + "\\";
Bitmap BitmapTemp = new Bitmap(PicFoto.BackgroundImage);
BitmapTemp.SetResolution(320, 240);
BitmapTemp.Save(DirTemp + "FotoTemp.png", System.Drawing.Imaging.ImageFormat.Png);
System.IO.FileStream StreamTemp = new System.IO.FileStream(DirTemp + "FotoTemp.png", System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.BinaryReader BinaryReaderTemp = new System.IO.BinaryReader(StreamTemp);
byte[] FotoSQL = BinaryReaderTemp.ReadBytes((int)(StreamTemp.Length));
BinaryReaderTemp.Close();
StreamTemp.Close();
Comun1.Conexion.ParaAdd("@Foto", DbType.Binary, FotoSQL);
if (Comun1.Conexion.InsertCmd("INSERT INTO Empleado(Nombres, Apellidos, Direccion, Telefonos, DuiEmpleado, Email, Isss, Cargo, Clave, Foto) VALUES(@Nombres, @Apellidos, @Direccion, @Telefonos, @Dui, @Email, @Isss, @Cargo, @Clave, @Foto)") == 1)
{
Comun1.Informacion("La información ha sido modificada.");
Identificador = txtDui.Text;
RellenarAutoComplementacion();
txtNombres.Focus();
}
else
{
Comun1.Errores("La información no ha podido ser modificada.");
}
}
}
}
[/color]