c# - 如何从数据集中获取图像

标签 c# winforms windows-mobile

我有包含图像的数据集。

我需要将这张图片保存到文件中。

我试试这个:

SQL = ItemCode,PIC from ROW;
dsView = new DataSet();
adp = new SqlCeDataAdapter(SQL, Conn);
adp.Fill(dsView, "ROW");
adp.Dispose();
foreach (DataRow R in dsROW.Tables[0].Rows)
{
 ItemCode = R["ItemCode"].ToString().Trim() ;
 TEMP = R["PIC"].ToString().Trim();  
 Image image = R["PIC"] as Image;
 if(image != null)
 {
   MemoryStream ms = new MemoryStream();
   image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
   byte[] imagedata = ms.ToArray();
  }

但图像总是null

在 TEMP 中我看到 System.Byte[]

需要一些帮助,谢谢

最佳答案

您的 R["PIC"] 是数组或字节。

首先,您尝试将 ToString() 应用于它,您只需得到 System.Byte[]
然后,您尝试将其转换为 ImageByte[] 应该如何转换Image

您需要从您的Byte 数组创建一个Image:

dsView = new DataSet();
adp = new SqlCeDataAdapter(SQL, Conn);
adp.Fill(dsView, "ROW");
adp.Dispose();
foreach (DataRow R in dsROW.Tables[0].Rows)
{
    ItemCode = R["ItemCode"].ToString().Trim();

    using (var ms = new MemoryStream(R["PIC"]))
    {
        Image image = Image.FromStream(ms);
        image.Save($"C:\\Output\\YourCustomPath\\{ItemCode}.jpeg", ImageFormat.Jpeg); 
    }
}

关于c# - 如何从数据集中获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33628958/

相关文章:

windows - Visual Studio 编译但 exe 不存在

c# - 并行类不提供任何加速

c# - Skype API 消息输出

c# - 何时使用 Task.Run().GetAwaiter().GetResult() 和 ().GetAwaiter.GetResult()?

c# - 向窗口窗体添加水平滚动条

c# - 如何通过代码滚动面板?

windows-mobile - Windows Mobile 内存泄漏问题

windows-phone-7 - 'System.IO.IsolatedStorage.IsolatedStorageException' 的原因是什么?

c# - MySQL 和 C#.NET DataGridView、更新、插入和删除

c# - 为什么我的事件属性代码会导致堆栈溢出异常?