Bild från SQLDatAsource
`` `
3. Kod-bakom (.aspx.cs):
`` `csharp
använda system;
med hjälp av System.Data;
använder System.io;
namnområde ditt projekt
{
Public Partial Class Yourpage:System.Web.ui.Page
{
skyddad void page_load (objekt avsändare, eventArgs e)
{
if (! ispostback)
{
försök
{
if (Request.QueryString ["ImageId"]! =NULL)
{
int imageId =int.parse (request.queryString ["imageId"]);
DataTable DT =SQLDATASOURCE1.SELECT (DataSourceSELECTARGUMMES.EMPTY) Som DataTable;
if (dt! =null &&dt.rows.Count> 0)
{
byte [] ImageBytes =(byte []) dt.rows [0] ["imagedata"];
if (ImageBytes! =null &&ImageBytes.Length> 0)
{
Använda (MemoryStream MS =new MemoryStream (ImageBytes)))
{
Bild1.imageUrl ="data:image/jpeg; base64," + convert.tobase64string (ImageBytes); // Justera 'bild/jpeg' vid behov
}
}
}
annan
{
lblerror.text ="Bild inte hittad.";
}
}
annan
{
lblerror.text ="Bild -ID är inte tillhandahållen.";
}
}
Catch (undantag ex)
{
lblerror.text ="felbelastning bild:" + ex.message;
}
}
}
}
}
`` `
Förklaring:
* `sqlDatasource`: Detta hämtar bilddata från databasen baserat på "ImageId" som passeras i frågesträngen. Byt ut `" YourConnectionString "" med ditt faktiska anslutningssträngsnamn från din `web.config`. Byt ut `" YourMaGetable "" med ditt tabellnamn. Justera "SelectCommand" om din tabellstruktur är annorlunda.
* `Asp:Image`: Denna kontroll visar bilden.
* Code-Behind: Koden hämtar bilddata från "SqlDatasource", konverterar den till en bas64 -sträng och ställer in dem som "ImageUrl" i "ASP:Image" -kontrollen. Felhantering ingår. `Data:Image/JPEG; BASE64,` -delen är avgörande; Den berättar för webbläsaren att data är en BASE64-kodad JPEG-bild. Ändra `Bild/jpeg` till lämplig MIME -typ om dina bilder är i ett annat format (t.ex.` bild/png`, `bild/gif ').
* Felhantering: Blocket "Try-Catch" hanterar potentiella undantag under databasåtkomst eller bildbehandling. Felmeddelanden visas i etiketten "Lblerror".
* Query String: Koden förväntar sig att en "ImageId" skickas i frågesträngen för URL (t.ex. `YourPage.aspx? ImageId =1`).
Kom ihåg att ersätta platshållare som `" YourConnectionString "" och "" YourMagetable "" med dina faktiska värden. Detta omfattande exempel behandlar felhantering och ger en mer robust lösning. Överväg också att lägga till mer sofistikerad felhantering och inmatningsvalidering i en produktionsmiljö.