Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> software >> Software Database >> .

In aspnet come allegare l'immagine in ImageBox da SQLDataSource?

Non esiste un modo diretto per legare un'immagine da un sqldataSource a unabox Image in asp.net. ImageBoxes (supponendo che tu intenda il controllo `System.Windows.Forms.PictureBox, che è per le applicazioni WinForms, non i moduli Web ASP.NET) sono utilizzati nelle applicazioni Windows, non nelle applicazioni Web. Nei moduli Web ASP.NET, useresti un controllo `ASP:Image`.

Ecco come lo faresti in ASP.NET Web Forms usando un controllo `ASP:Image` e un SQLDataSource:

1. Impostazione del database:

Assicurati che il tuo database SQL abbia una tabella con una colonna che memorizza i dati dell'immagine (di solito come `varbinary (max)`). Avrai anche bisogno di colonne per identificare l'immagine (ad es. Un ID).

2. Pagina Web ASP.NET Web (.Aspx):

`` `aspx

<%@ Page lingua ="c#" autoeventWireUp ="true" codeBehind ="yourpage.aspx.cs" inherits ="yourproject.yourpage" %>

Immagine da sqldataSource

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

SelectCommand ="Seleziona iMageData, ImageID da YouMageTable Where ImageID =@ImageId">


`` `

3. Code-Behind (.aspx.cs):

`` `csharp

usando il sistema;

Utilizzo di System.Data;

Utilizzo di System.io;

spazio dei nomi YourProject

{

Classe parziale pubblica Your -Page:System.Web.ui.Page

{

Protected void Page_load (mittente oggetto, eventArgs E)

{

if (! ispostback)

{

Tentativo

{

if (request.querystring ["imageId"]! =null)

{

int imageID =int.parse (request.querystring ["imageID"]);

DataTable dt =sqldataSource1.select (DataSourceSelectarGuments.empty) come dati datatu;

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

{

byte [] ImageBytes =(byte []) dt.Rows [0] ["IMagedata"];

if (ImageBytes! =Null &&ImageBytes.Length> 0)

{

Utilizzo (MemoryStream MS =new MemoryStream (ImageBites))

{

Image1.ImageUrl ="Data:Image/Jpeg; Base64," + Convert.Tobase64String (ImageBytes); // Regola 'immagine/jpeg' se necessario

}

}

}

altro

{

lblerror.text ="Immagine non trovata.";

}

}

altro

{

lblerror.text ="ID ID non fornito.";

}

}

cattura (eccezione ex)

{

lblerror.text ="Errore di caricamento dell'immagine:" + ex.Message;

}

}

}

}

}

`` `

Spiegazione:

* `sqldataSource`: Questo recupera i dati dell'immagine dal database in base all'effetto `ImageID` passato nella stringa di query. Sostituisci `" yourconnectionstring "` con il nome della stringa di connessione effettiva dal tuo `web.config`. Sostituisci `" yourimagetable "` con il nome della tabella. Regola `SelectCommand` se la struttura della tabella è diversa.

* `Asp:Image`: Questo controllo visualizza l'immagine.

* Code-Behind: Il codice recupera i dati dell'immagine da `sqldataSource`, li converte in una stringa di base64 e lo imposta come` ImageUrl` del controllo `ASP:Image`. La gestione degli errori è inclusa. I dati `:immagine/jpeg; base64,` parte è cruciale; Dice al browser che i dati è un'immagine JPEG codificata da Base64. Cambia `immagine/jpeg` nel tipo mime appropriato se le immagini sono in un formato diverso (ad esempio,` immagine/png`, `immagine/gif`).

* Gestione degli errori: Il blocco "Try-Catch" gestisce potenziali eccezioni durante l'accesso al database o l'elaborazione delle immagini. I messaggi di errore vengono visualizzati nell'etichetta `lblerror`.

* Stringa di query: Il codice si aspetta che un `ImageID` venga passato nella stringa di query dell'URL (ad esempio,` yourpage.aspx? ImageId =1`).

Ricorda di sostituire segnaposto come `" yourconnectionstring "` e `" yourimagetable "` con i tuoi valori effettivi. Questo esempio completo affronta la gestione degli errori e fornisce una soluzione più robusta. Inoltre, prendi in considerazione l'aggiunta di una gestione degli errori più sofisticati e una convalida dell'input in un ambiente di produzione.

 

software © www.354353.com