![](/img/trans.png)
[英]Convert Image data type into Base64 and Base64 into Image data type
[英]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.