从sql中image类型字段中导出图片

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Data.SqlClient;
using System.Data;
using System.Drawing.Imaging;
using System.Drawing;

namespace 获取名字
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"C:\Users\Chinaese\Desktop\_FabricImg";
            string x = Path.GetFileName(Path.GetDirectoryName(path));

            DirectoryInfo root = new DirectoryInfo(path);
            // DirectoryInfo[] childDirs = root.GetDirectories();
            FileInfo[] files = root.GetFiles();
            List<string> filename = new List<string>();
            foreach (FileInfo item in files)
            {
                filename.Add(Path.GetFileNameWithoutExtension(item.FullName));
            }

           string [email protected]"Data Source = 192.168.0.180; Initial Catalog = pms; User Id = sa; Password = hualong2012;";
            using (SqlConnection connection =
             new SqlConnection(connectionString))
            {
             SqlCommand command =
             new SqlCommand("SELECT FlowerCode,PicImg FROM FlowerPics where flowerid  IN ( SELECT     MAX(flowerid) AS Expr1 FROM         FlowerPics GROUP BY FlowerCode )", connection);
             connection.Open(); 

             SqlDataReader reader = command.ExecuteReader(); 

             // 判断数据是否读到尾.
             while (reader.Read())
             {
                 //声明数组,用于保存数据库的二进制数据
                 byte[] mybyte = null;
                 //读取数据保存到数组中
                 try
                 {
                     if (filename.Contains(reader[0]))
                     {
                         continue;
                     }
                     mybyte = (byte[])reader["PicImg"];
                     Image image;
                     //读取数组数据成为文件流
                     MemoryStream mymemorystream = new MemoryStream(mybyte);
                     //转换成为图片格式。
                     image = Image.FromStream(mymemorystream, true);

                     //image.Save(mymemorystream, ImageFormat.Jpeg);
                     image.Save(@"C:\Users\Chinaese\Desktop\SAMP\" + reader[0].ToString() + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
                     mymemorystream.Close();  //关闭流
                     filename.Add(reader[0].ToString());

                 }
                 catch (Exception)
                 {

                     //break;
                 }
                 finally
                 {

                 }

                 //Console.WriteLine(String.Format("{0}, {1}",      reader[0], reader[1]));
             } 

             // 一定要关闭 reader 对象.
             reader.Close();
            }

            Console.ReadKey();

        }
    }
}

  

时间: 2024-10-08 17:52:58

从sql中image类型字段中导出图片的相关文章

Sql Server 2005 去掉字段中的空格

SELECT replace(ltrim(rtrim(Realname)),' ','') AS Realname FROM UserInfo WHERE replace(ltrim(rtrim(Realname)),' ','') ='张飞' Sql Server 2005 去掉字段中的空格,布布扣,bubuko.com

(转载)VB 查询Oracle中blob类型字段,并且把blob中的图片以流的方式显示在Image上

原文摘自:http://heisetoufa.iteye.com/blog/504068 '模块代码 Private Declare Function CreateStreamOnHGlobal Lib "ole32" (ByVal hGlobal As Long, ByVal fDeleteOnRelease As Long, ppstm As Any) As Long Private Declare Function OleLoadPicture Lib "olepro3

解决Entity Framework中DateTime类型字段异常

今天把一个使用了Entity Framework的程序从MySql迁移到SqlServer时,发现运行时报了一个异常: System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值. 在网上查找了一下,具体的错误原因是:C#中的DateTime类型比SqlServer中的datetime范围大.SqlServer的datetime有效范围是1753年1月1日到9999年12月31日,如果超出这个范

C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法

原文:C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法 本人新手,在.Net中写WebAPI的时候,当接口返回的json数据含有日期时间类型的字段时,总是在日期和时间中夹着一个字母T:微软这么设置可能有其内在的初衷,但是对于我来说,这样的格式不是很方便,前端同学展示出来的时候也总是要记得处理一下显示格式.曾经问过部门内一位老鸟,老鸟的反应告诉我这在微软的框架下做json转换是不可避免的:当初一度放弃了这个问题.后来突然冷静分析了一下,微软不可能做

一个表中的某字段中所有的数据,复制到另一个表中

项目要求,织梦被黑了,又不太会修复织梦的漏洞.决定换一个自己开发的后台吧!问题来了,织梦中的文章数据要全部拿出来,导入到新的后台中. 因为,现有后台的数据表跟织梦的表的结构完全不一样,再加上织梦用于保存文章是用了,dede_addonarticle,dede_archives,这两个表.现在是要将两个表中有用的字段的数据 复制到一个新的表中的一个字段内. 第一步,同步他们的主键,dede_addonarticle的主键是aid,dede_archives的主键是id 1,一张写好了结构的,没有数

SQL Server中TEXT类型字段值在数据库中追加字符串方法

在数据上我们往往会遇到ntext大文本类型,这种类型如果和 nvarchar类型相加会出现问题,所以有一中方法可以解决这种问题. 使用的sql   函数: TEXTPTR:返回要更新的 text.ntext 或 image 数据的文本指针的值. UPDATETEXT :在适当的位置更改 text.ntext 或 image 列的一部分 WRITETEXT: 来更新和替换整个 text.ntext 或 image 字段 举例: CREATE TABLE [dbo].[aa]( [ID] [int]

SQL Server 中BIT类型字段增删查改那点事

话说BIT类型字段之前,先看“诡异”的一幕,执行Update成功,但是查询出来的结果依然是1,而不是Update的2 当别人问起我来的时候,本人当时也是处于懵逼状态的,后面联想具体的业务突然想起来这个字段是bit类型的 如果把这个现象跟BIT类型字段连续起来就不觉得奇怪了. 废话不多,直接上代码看结果就好了. 先建一个测试表 CREATE TABLE TestBIT ( Id INT IDENTITY(1,1), BitColumn BIT ) 按照常规来说,bit类型字段只能存0或者1,所以直

往MySQL数据库datetime类型字段中插入当前时间

代码: StringBuilder sb = new StringBuilder(); sb.append(" insert into uosdetailfile ("); sb.append(" filename, "); sb.append(" content,"); sb.append(" addtime "); sb.append(" ) values ("); sb.append(" '

Sql Server xml 类型字段的增删改查

1.定义表结构 在MSSM中新建数据库表CommunicateItem,定义其中一个字段ItemContentXml 为xml类型 2.编辑表数据,新增一行,发现xml类型不能通过设计器录入数据. 需要写sql更新或插入. DECLARE @xml XML SET @xml=' <MyHobby> <MyCode>1</MyCode> <MyName>爬山</MyName> </MyHobby> <MyHobby> <