Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

V ASPNET, ako pripojiť obrázok v ImageBox od SQLDATASource?

Neexistuje žiadny priamy spôsob, ako zviazať obrázok z SQLDATASource k obrázkovej schránke v ASP.NET. ImageBoxes (za predpokladu, že máte na mysli „System.Windows.Forms.PictureBox` Control, ktoré je určené pre aplikácie WinForms, nie pre webové formuláre ASP.NET) sa používajú v aplikáciách Windows, nie v webových aplikáciách. V webových formulároch ASP.NET by ste použili ovládací prvok ASP:Image`.

Tu je návod, ako by ste to urobili vo webových formulároch ASP.NET pomocou ovládacieho prvku `ASP:Image` a SqldataSource:

1. Nastavenie databázy:

Uistite sa, že vaša databáza SQL má tabuľku s stĺpcom ukladaním obrazových údajov (zvyčajne ako „varbinary (max)`). Na identifikáciu obrázka (napr. ID) budete tiež potrebovať stĺpce.

2. Webové formuláre ASP.Net (.aspx):

`` aspx

<%@ Stránka jazyk ="C#" autoeventWireUp ="true" codeBehind ="yourpage.aspx.cs" inherits ="yourproject.yourPage" %>

Obrázok od SQLDATASource

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

VyberteCommand ="Vyberte imagedata, imageID z YouRamagetable, kde imageID =@ImageID">


`` `

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

`` csharp

použitie systému;

Použitie System.data;

pomocou System.io;

menný priestor pre projekt

{

Verejná čiastočná trieda Pyšníka:System.web.ui.Page

{

Chránené void page_load (odosielateľ objektov, EventArgs e)

{

if (! ispostback)

{

vyskúšať

{

if (request.QueryString ["imageID"]! =null)

{

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

DataTable dt =sqlDAtaSource1.Select (DataSourcessElectarguments.empty) ako DataTable;

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

{

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

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

{

Použitie (MemoryStream ms =new MemoryStream (imageBytes))

{

Image1.ImageUrl ="dáta:image/jpeg; base64," + convert.tobase64String (imageBytes); // v prípade potreby upravte 'image/jpeg'

}

}

}

inak

{

lblerror.text ="image nenájde.";

}

}

inak

{

lblerror.Text ="Image ID nie je poskytnuté.";

}

}

úlovok (výnimka ex)

{

lbLerror.Text ="Chyba načítanie obrázka:" + ex.message;

}

}

}

}

}

`` `

Vysvetlenie:

* `sqldatasource`: Týmto sa načíta obrazové údaje z databázy na základe `imageID` odovzdaného do reťazca dotazu. Nahraďte `" YourConnectionString "` pomocou vášho skutočného názvu stringu pripojenia z vášho `web.config`. Nahraďte „YourImagetable“ `s názvom tabuľky. Ak je vaša štruktúra tabuľky iná, upravte `selectCommand`.

* `ASP:Image`: Tento ovládací prvok zobrazuje obrázok.

* kód-behind: Kód načíta obrazové údaje z `sqldataSource`, prevádza ich na reťazec Base64 a nastaví ich ako` imageUrl` ovládacieho prvku `ASP:Image`. Zahrnutá je manipulácia s chybami. `Data:image/jpeg; base64,„ časť je rozhodujúca; Hovorí prehliadaču, že údaje sú základným obrazom JPEG kódom Base64. Zmeňte `image/jpeg` na príslušný typ MIME, ak sú vaše obrázky v inom formáte (napr.` Image/png`, `image/gif`).

* Manipulácia s chybami: Blok `Try-Catch` rieši potenciálne výnimky počas prístupu k databáze alebo spracovaní obrázkov. Chybové správy sa zobrazujú v štítku `lblerror`.

* dotazový reťazec: Kód očakáva, že v dotazovom reťazci URL sa odovzdá `imageID` (napr.

Nezabudnite nahradiť zástupné symboly, ako je „„ vašeconnectionstring “` a „yourimagetable“ `s vašimi skutočnými hodnotami. Tento komplexný príklad sa zaoberá spracovaním chýb a poskytuje robustnejšie riešenie. Zvážte tiež pridanie sofistikovanejšieho manipulácie s chybami a validáciou vstupov do výrobného prostredia.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené