Δείτε πώς θα το κάνατε στο ASP.NET Web Forms χρησιμοποιώντας ένα `ASP:Image` Control και ένα SQLDATASOURCE:
1. Ρύθμιση βάσης δεδομένων:
Βεβαιωθείτε ότι η βάση δεδομένων SQL διαθέτει έναν πίνακα με μια στήλη που αποθηκεύει τα δεδομένα εικόνας (συνήθως ως `varbinary (max)`). Θα χρειαστείτε επίσης στήλες για να προσδιορίσετε την εικόνα (π.χ. ένα αναγνωριστικό).
2. ASP.NET Web Forms Page (.aspx):
`` aspx
<%@ Page language ="c#" autoEventWireup ="true" codeBehind ="yourpage.aspx.cs" κληρονομούν ="yourproject.yourpage" %>
σώμα>
`` `
3. Κωδικός-συμπεριφορά (.aspx.cs):
`` `csharp
χρησιμοποιώντας το σύστημα.
χρησιμοποιώντας το System.data;
χρησιμοποιώντας το System.io;
Ονομασία χώρου σας
{
Δημόσια μερική τάξη Your Page:System.web.ui.page
{
Προστατευμένο άκυρο Page_Load (αποστολέας αντικειμένων, eventArgs e)
{
αν (! isPostback)
{
δοκιμή
{
αν (request.QueryString ["ImageId"]! =null)
{
int imageID =int.parse (request.QueryString ["ImageId"]);
DataTable dt =sqlDatasource1.Select (dataSourcesElectArguments.Empty) ως datatable;
αν (dt! =null &&dt.rows.count> 0)
{
byte [] ImageBytes =(byte []) dt.rows [0] ["imageData"];
αν (ImageBytes! =null &&imagebytes.length> 0)
{
Χρήση (MemoryStream MS =New MemoryStream (ImageBytes))
{
Image1.ImageUrl ="Δεδομένα:εικόνα/jpeg, base64," + convert.tobase64string (imageBytes); // ρύθμιση της «εικόνας/jpeg» αν χρειαστεί
}
}
}
αλλού
{
lblerror.text ="Η εικόνα δεν βρέθηκε.";
}
}
αλλού
{
LBLERROR.TEXT ="Το αναγνωριστικό εικόνας δεν παρέχεται.";
}
}
Catch (Εξαίρεση Ex)
{
lblerror.text ="Εικόνα φόρτωσης σφάλματος:" + ex.message;
}
}
}
}
}
`` `
Επεξήγηση:
* `sqldatasource`: Αυτό λαμβάνει τα δεδομένα εικόνας από τη βάση δεδομένων με βάση το `imageId` που πέρασε στη συμβολοσειρά ερωτήματος. Αντικαταστήστε το `" YourConnectionString "` με το πραγματικό όνομα συμβολοσειράς σύνδεσης από το `web.config`. Αντικαταστήστε το `" Yourimagetable "με το όνομα του πίνακα σας. Ρυθμίστε το `selectCommand` εάν η δομή του πίνακα σας είναι διαφορετική.
* `asp:image`: Αυτός ο έλεγχος εμφανίζει την εικόνα.
* Code-Behind: Ο κώδικας ανακτά τα δεδομένα της εικόνας από το `sqldatasource ', το μετατρέπει σε μια συμβολοσειρά base64 και το θέτει ως το quimeurl` του ελέγχου` ASP:Image`. Ο χειρισμός σφαλμάτων περιλαμβάνεται. Τα δεδομένα:image/jpeg; base64, `Το μέρος είναι κρίσιμο. Λέει στο πρόγραμμα περιήγησης ότι τα δεδομένα είναι μια εικόνα JPEG που έχει κωδικοποιηθεί με βάση64. Αλλαγή `image/jpeg` στον κατάλληλο τύπο mime εάν οι εικόνες σας είναι σε διαφορετική μορφή (π.χ.` image/png`, `image/gif`).
* Χειρισμός σφαλμάτων: Το μπλοκ `try-catch` χειρίζεται πιθανές εξαιρέσεις κατά τη διάρκεια της πρόσβασης βάσης δεδομένων ή της επεξεργασίας εικόνας. Τα μηνύματα σφάλματος εμφανίζονται στην ετικέτα `lblerror`.
* Σειρά ερωτήματος: Ο κώδικας αναμένει να περάσει ένα `imageId` στη σειρά ερωτήματος της διεύθυνσης URL (π.χ.` yourpage.aspx? ImageId =1`).
Θυμηθείτε να αντικαταστήσετε τους κράτους, όπως το "YourconnectionString" και το "Yourimagetable" με τις πραγματικές σας τιμές. Αυτό το ολοκληρωμένο παράδειγμα αντιμετωπίζει το χειρισμό σφαλμάτων και παρέχει μια πιο ισχυρή λύση. Επίσης, εξετάστε το ενδεχόμενο να προσθέσετε πιο εξελιγμένο χειρισμό σφαλμάτων και επικύρωση εισόδου σε περιβάλλον παραγωγής.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα