簡體   English   中英

從mysql檢索blob並在asp.net c#和linq數據源中使用轉發器顯示

[英]retrieve blob from mysql and display using repeater in asp.net c# and linq datasource

我已經在mysql數據庫的類別表中的Longblob數據類型的categoryImage字段中手動存儲了圖像。 我添加了一個devart linq-mysql模型來從數據庫檢索數據。

我已將linq數據源添加到轉發器控件,並希望直接從數據庫中檢索blob數據類型圖像。 當我寫這段代碼時
<%# Eval("CategoryImage" %>

我得到一個System.Byte []作為輸出。 有人給我一個建議,我應該使用該方法將字節數組轉換為圖像

    public System.Drawing.Image byteArrayToImage (System.Byte[] ByteInArray)
    {
        MemoryStream ms = new MemoryStream(ByteInArray);
        System.Drawing.Image returnimage = System.Drawing.Image.FromStream(ms);
        return returnimage;

    }              

當我寫這段代碼<%# byteArrayToImage(Eval("CategoryImage") %> ,我遇到一個錯誤,即byteArrayToImage(btye[])有一些無效的參數。有人可以幫助我解決這個問題。

提前致謝..

首先,您的標簽似乎格式不正確:

<%# byteArrayToImage(Eval("CategoryImage") %>

應該:

<%# byteArrayToImage(Eval("CategoryImage")) %>

同樣, Eval方法返回objectbyteArrayToImage方法參數的類型為System.Byte[] ,因此您必須將其byteArrayToImage轉換為正確的類型。

此外,最好弄清楚要應用byteArrayToImage方法返回值的元素。 它可能不適用於System.Drawing.Image的實例。

如果您試圖基於System.Drawing.Image創建<asp:Image>控件,則該控件將僅能通過URL加載圖像,因此將無法正常工作

替代方法是為圖像創建自定義HTTP處理程序,或創建包含圖像內容的文件,然后將URL提供給<asp:Image>控件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM