“Conocimiento software>Software de base de datos

En Aspnet, ¿cómo adjuntar la imagen en ImageBox de SqlDataSource?

2012/12/14
No hay una forma directa de vincular una imagen de un SQLDATASOURCE a una caja de imágenes en ASP.NET. ImageBoxes (suponiendo que se refiera al control `system.windows.forms.pictureBox`, que es para aplicaciones WinForms, no se utilizan formularios web ASP.NET) en aplicaciones de Windows, no en aplicaciones web. En los formularios web ASP.NET, utilizaría un control `ASP:Image`.

Así es como lo haría en formularios web ASP.NET utilizando un control `ASP:Image` y un SQLDataSource:

1. Configuración de la base de datos:

Asegúrese de que su base de datos SQL tenga una tabla con una columna que almacene los datos de la imagen (generalmente como `varbinary (max)`). También necesitará columnas para identificar la imagen (por ejemplo, una ID).

2. Página de formularios web ASP.NET (.aspx):

`` `ASPX

<%@ Page lenguaje ="c#" autoeventwireUp ="true" codeHind ="yourpage.aspx.cs" hereSs ="YourProject.YourPage" %>

Imagen de SqlDataSource

ConnectionString ="<%$ ConnectionStrings:YourConnectionString %>"

SelectCommand ="Seleccione iMageData, ImageId de YourImagetable Where ImageID =@ImageId">


`` `` ``

3. Código-behind (.aspx.cs):

`` `csharp

usando el sistema;

usando System.Data;

usando System.io;

espacio de nombres tu proyecto

{

Clase pública parcial YourPage:System.web.ui.page

{

protegido void page_load (remitente de objeto, EventArgs e)

{

if (! ispostback)

{

intentar

{

if (request.querystring ["ImageID"]! =NULL)

{

int ImageID =int.Parse (request.queryString ["imageId"]);

DataTable dt =sqlDataSource1.select (dataSourceSelectarGuments.Empty) como DataTable;

if (dt! =null &&dt.rows.count> 0)

{

byte [] imageBytes =(byte []) dt.rows [0] ["imagedata"];

if (imageBytes! =null &&imageBytes.length> 0)

{

Usando (MemoryStream MS =New MemoryStream (ImageBytes))

{

Image1.ImageUrl ="Data:Image/JPeg; Base64," + Convert.Tobase64String (ImageBytes); // ajustar 'imagen/jpeg' si es necesario

}

}

}

demás

{

lblerror.Text ="Imagen no encontrado";

}

}

demás

{

lblerror.text ="ID de imagen no proporcionado";

}

}

Catch (excepción ex)

{

lblerror.text ="Error de carga de imagen:" + ex.message;

}

}

}

}

}

`` `` ``

Explicación:

* `sqlDataSource`: Esto obtiene los datos de la imagen de la base de datos en función del `ImageID` aprobado en la cadena de consulta. Reemplace `" YourConnectionString "` con su nombre de cadena de conexión real de su `web.config`. Reemplace `" YourImagetable "` con el nombre de su tabla. Ajuste el `selectCommand` si la estructura de su tabla es diferente.

* `ASP:Image`: Este control muestra la imagen.

* Code-Behind: El código recupera los datos de la imagen del `sqlDataSource`, los convierte en una cadena Base64 y los establece como el` ImageUrl` del control `ASP:Image`. Se incluye el manejo de errores. Los `datos:imagen/jpeg; base64,` parte es crucial; Le dice al navegador que los datos son una imagen JPEG codificada por Base64. Cambie `Image/JPEG` al tipo de MIME apropiado si sus imágenes están en un formato diferente (por ejemplo,` Image/PNG`, `Image/GIF`).

* Manejo de errores: El bloque `try-Catch` maneja las posibles excepciones durante el acceso a la base de datos o el procesamiento de imágenes. Los mensajes de error se muestran en la etiqueta `lblerror`.

* Cadena de consulta: El código espera que se pase un `ImageID` en la cadena de consulta de la URL (por ejemplo,` YourPage.aspx? ImageId =1`).

Recuerde reemplazar a los marcadores de posición como `" YourConnectionString "` y `" YourImagetable "` con sus valores reales. Este ejemplo completo aborda el manejo de errores y proporciona una solución más robusta. Además, considere agregar manejo de errores más sofisticado y validación de entrada en un entorno de producción.

Software de base de datos
Pruebas de aplicaciones de base de datos
¿Cuáles son los objetivos de DBMS?
Cómo no confirmar una transacción de Transact -SQL
Cómo hacer un seguimiento en el Programa Concurrente Personalizado Llamar a un SQL
¿Cuál es un ejemplo de cómo se puede consultar una base de datos?
¿Cómo es Wikipedia una base de datos?
Cómo controlar un Calendario 2007 Acceso
Cómo generar informes en Access
Conocimiento de la computadora © http://www.ordenador.online