[英]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.