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

Como insertar imagen en base de datos

Estas en el tema de Como insertar imagen en base de datos en el foro de .NET en Foros del Web. Hola!! El otro dia ya plantee una duda de como podia programar el tipico boton de Examinar para subir un archivo. Pues vale,eso ya lo ...
  #1 (permalink)  
Antiguo 28/02/2005, 03:56
 
Fecha de Ingreso: febrero-2005
Mensajes: 31
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta Como insertar imagen en base de datos

Hola!!

El otro dia ya plantee una duda de como podia programar el tipico boton de Examinar para subir un archivo.
Pues vale,eso ya lo consegui gracias a vuestra ayuda pero ahora lo que quiero es que ese archivo que subo que van a ser imagenes quiero que las guarde en la base de datos,pero es que no me sale.
Le digo que inserte y lo hace pero cuando voy a la BD pone en ese campo datos binarios y no hay nada,me dice que ha habido un problema con el servidor ole.

Claro,yo le he puesto que es un objeto ole pero creo que lo que falla es con la progrmación con c# que le hago porque no se a que tipo convertirlo porque no esta el tipo image.

Tambien he puesto una declaración del control html que creo que no es correcta,es la siguiente:

protected System.Web.UI.HtmlControls.HtmlInputFile imagen;

Pongo el codigo que tiene que ver con el tratamiento de la base de datos y pongo la declaracion que le he hecho al campo imagen:

public class crearespuesta : System.Web.UI.Page{


protected System.Web.UI.WebControls.TextBox cod_respuesta;
protected System.Web.UI.WebControls.TextBox desc_respuesta;
protected System.Web.UI.WebControls.Button bAceptar;
protected System.Web.UI.WebControls.Literal Literal1;
protected System.Web.UI.WebControls.Literal Literal2;
protected System.Web.UI.WebControls.Button bExaminar;
protected System.Web.UI.HtmlControls.HtmlInputFile imagen;

string sqlquery = "INSERT INTO Respuesta(cod_respuesta,desc_respuesta,imagen) VALUES (@cod_respuesta, @desc_respuesta, @imagen)";

//Ruta donde esta la BD para que se conecte con ella

string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Inetpub\\wwwroot\\proyecto\\bd.mdb";

//Establece la conexión
OleDbConnection con = new OleDbConnection(ConnectionString);

OleDbCommand cmd = new OleDbCommand(sqlquery,con);
{
//Coleccion de parametros
OleDbParameterCollection pms = cmd.Parameters;

pms.Add("@cod_respuesta", OleDbType.Integer, 10);
pms.Add("@desc_respuesta", OleDbType.VarChar, 1000);
//Aqui no se a que tipo convertirlo??
pms.Add("@imagen", OleDbType.VarChar, 50);


pms["@cod_respuesta"].Value = cod_respuesta.Text.Trim();
pms["@desc_respuesta"].Value = desc_respuesta.Text.Trim();
//Aqui no se a que tipo convertirlo??
pms["@imagen"].Value =imagen.;
  #2 (permalink)  
Antiguo 28/02/2005, 10:42
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Yo cuando tengo que hacer algo parecido es guardar la imagen en el disco duro en una carpeta, y en la base de datos simplemente guardo la ubicación de la misma, de esta manera, no tengo la imagen (o cualquier archivo repetido) lo que hace engrosar muchísimo la BD y carga el Disco Duro innecesariamente.

Si esta solución no te es factible, dependería de la base de datos, por ej, Postgress utiliza para ello el tipo blob, y creo que la manera de insertarlo es como tu lo estas haciendo, pero como creo que estas usando Access, por lo de tipo Ole, voy a mirar algo a ver si te puedo decir algo
  #3 (permalink)  
Antiguo 01/03/2005, 04:24
 
Fecha de Ingreso: febrero-2005
Mensajes: 31
Antigüedad: 19 años, 2 meses
Puntos: 0
Muchas gracias por interesarte por mi duda.

Lo que tu me has dicho ya me lo dijeron que era mas factible pero el problema es que no se como se hace asi.

Gracias de nuevo

Leti
  #4 (permalink)  
Antiguo 01/03/2005, 04:42
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
HAber si te sirve esto

yo tengo un datagrid con una relacion de cursos
pero claro si queria poner informacion detalllada de los cursos el datagrid podria aumentar mucho de tamaño

Lo que hice fue añadir una columna en el datagrid y en la bd
La columna en la bd era una ruta,bueno mas bien,es el nombre del archibo q esta grabado .doc,cdo inserta el nombre del archivo le añado yo el .doc(en tu caso .gif o lo q sea)
Todos los archibos los grabo en un mismo lugar que es el mismo donde estan tus paginas aspx
He editao todas las columnas q aparecen en el datagrid en el editor d epropiedades
Y esta columna es de tipo hypervinculo en en el campo url field le he dicho q columna es(la columna que pone archivo.doc) y al pinchar directamente me abre un doc

Esto lo puedes hacer con enlaces hipervinculos


al cargarlo
  #5 (permalink)  
Antiguo 01/03/2005, 06:39
 
Fecha de Ingreso: enero-2005
Mensajes: 23
Antigüedad: 19 años, 3 meses
Puntos: 0
Como insertar imagen en base de datos

Puede que este articulo encuentres algo.

http://www.mundoprogramacion.com/col...enesAccess.htm

Saludos
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 07:23.