簡體   English   中英

如何將具有 base64 的數據類型長文本轉換為從數據庫到特定列上的 gridview 的圖像?

[英]How to convert data type longtext with base64 to image from data base to gridview on specific column?

我調用數據庫以獲取數據類型為longtext的列中的數據,其中包含我使用base64從圖像編碼的字符串

 string insertQuery = "SELECT product_id, picture FROM product WHERE aksi != 'Deleted' ";
 etc...
 dataGridView1.DataSource = dtblProduct;

數據類型為longtext的列是picture

我想用base64 轉換列圖片中的 longtext longtext數據,並將其與product id一起顯示在 gridview

我試過了,但錯誤提示“輸入不是有效的 Base-64 字符串,因為它包含非 base 64 字符、兩個以上的填充字符或填充字符中的非法字符。 '

string showpic = dataGridView1.Columns[1].ToString();
byte[] imageBytes = Convert.FromBase64String(showpic);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
ms.Write(imageBytes, 0, imageBytes.Length);
Image myimage = Image.FromStream(ms, true);

DataGridViewImageColumn imageColumn = new DataGridViewImageColumn();
imageColumn.Image = myimage;

根據你的描述,你想在datagridview的一列中顯示一張圖片。

我建議在設計表單的時候,在datagridview中添加兩列,分別是product_id,picture。

圖片列的數據類型為DataGridViewImageColumn。

您可以嘗試以下代碼來解決此問題。

public void Table()
        {

            dataGridView1.Rows.Clear();
            MySqlConnection conn = new MySqlConnection("…");           
            conn.Open();
            MySqlCommand cmd = new MySqlCommand("select product_id,picture from product WHERE aksi != 'Deleted'", conn);
            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                string id, base64;
                id = reader["product_id"].ToString();
                base64 = reader["picture"].ToString();
                byte[] bytes = Convert.FromBase64String(base64);
                MemoryStream memStream = new MemoryStream(bytes);
                BinaryFormatter binFormatter = new BinaryFormatter();
                Image img = (Image)binFormatter.Deserialize(memStream);                            
                dataGridView1.Rows.Add(new object[] { id,img});
            }
            reader.Close();
        }
private void Form1_Load(object sender, EventArgs e)
        {
            Table();
      }

結果: 在此處輸入圖像描述

暫無
暫無

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

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