Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在datagridview中保存图像流_C#_Visual Studio_Datagridview - Fatal编程技术网

C# 如何在datagridview中保存图像流

C# 如何在datagridview中保存图像流,c#,visual-studio,datagridview,C#,Visual Studio,Datagridview,注意:这是windows应用程序,sql server作为数据库,ado.net 我在datagridview中临时插入图像,然后循环遍历它们并将每一行保存在数据库中。 我知道如何像这样从picturebox插入流 MemoryStream stream = new MemoryStream(); pictureBox1.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] pic = stream.ToA

注意:这是windows应用程序,sql server作为数据库,ado.net

我在datagridview中临时插入图像,然后循环遍历它们并将每一行保存在数据库中。 我知道如何像这样从picturebox插入流

    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保存图像?

您可以这样做:

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
,因此转换是安全的。

单元格[1]
DataGridViewImageColumn