簡體   English   中英

從SQL用C#在DataGridView中顯示圖像

[英]Display an image in DataGridView in C# from SQL

我想從SQL Server數據庫的Windows Forms應用程序的DataGridView中顯示圖像。

在數據庫中,圖像以byte[]形式存儲,因此我想將其放在數據表中並在DataGridView顯示:

SqlCommand com = new SqlCommand("select PKID,Names,Position,picture  from Delegation where PKID='" + id + "'", con);
DataTable dt = new DataTable();
SqlDataAdapter dr = new SqlDataAdapter(com);

dr.Fill(dt);
datagrideview1.datasource = dt;

因此,在DataGridView它顯示ID,name,position但未顯示圖片,那么該怎么辦?

這是有關使用DataGridViewImageColumn的MSDN文章

http://msdn.microsoft.com/zh-CN/library/system.windows.forms.datagridviewimagecolumn(v=vs.110).aspx

代碼示例非常龐大,因此我避免將其完整發布,在此我認為是一個很好的代表性示例:

 private void CreateColumns()
    {
        DataGridViewImageColumn imageColumn;
        int columnCount = 0;
        do
        {
            Bitmap unMarked = blank;
            imageColumn = new DataGridViewImageColumn();

            //Add twice the padding for the left and  
            //right sides of the cell.
            imageColumn.Width = x.Width + 2 * bitmapPadding + 1;

            imageColumn.Image = unMarked;
            dataGridView1.Columns.Add(imageColumn);
            columnCount = columnCount + 1;
        }
        while (columnCount < 3);
    }

本質上,您創建一個圖像列,然后將適當的數據綁定到該列。 在這種情況下,它將是位圖。

從數據庫獲取數據非常簡單。 這里真正的挑戰是設置datagridview以便它可以顯示圖像。

您將必須添加一列以顯示圖像。 看看這個答案 這將幫助您獲得所需的輸出。

DataGridView有一個image列類型, DataGridViewImageColumn ,它具有圖像屬性,您可以將位圖傳遞給該圖像屬性。

我發現答案可能是數據Gride View未顯示圖像,因為我的數據庫有問題,所以我清除了所有列,並且可以正常工作,並且秘密地​​在數據網格視圖中查看任何圖像首先將圖像轉換為byte []並將其插入之后從數據庫中的數據庫中調用byte []的數據庫,它就可以工作

暫無
暫無

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

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