如何在datagridview中保存图像流

时间:2014-02-18 12:29:27

标签: c# visual-studio datagridview

注意:这是windows app,sql server as database,ado.net。

我暂时在datagridview中插入图像,然后遍历它们并保存数据库中的每一行。 enter image description here 我知道如何从图片框插入流

    MemoryStream stream = new MemoryStream();
pictureBox1.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] pic = stream.ToArray();
SqlCommand cmda = new SqlCommand("INSERT INTO KeyWord (ItemName, DateEntry,image, imageindex) VALUES (N'" + listBoxI.ToString() + "', GETDATE(), @image, 1)", cn);
cmda.Parameters.AddWithValue("@Pic", pic);
try
{
    cn.Open();
    cmda.ExecuteNonQuery();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
finally
{
    cn.Close();
}

我想将pictureBox1替换为dataGridView1.Rows[x].Cells[1].Value

我的问题是如何从datagridview保存图像?

1 个答案:

答案 0 :(得分:1)

你可以这样:

Image myImg = (dataGridView1.Rows[x].Cells[1].Value as Image);
myImg.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);

或者在不使用变量的一行中:

(dataGridView1.Rows[x].Cells[1].Value as Image).Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);

您知道DataGridViewImageColumn的值为Image,因此转换是安全的。