C#从数据库读取图片并保存的两种方法

 更新时间:2021年01月16日 10:22:08   作者:风云SH变幻  
这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下

方式一:

数据库用的是SQL 2008,数据表中存放的是图片的二进制数据,现在把图片以一种图片格式(如.jpg)导出,然后存放于指定的文件夹中,实现方式如下:

byte[] bytImg = (byte[])myDAL.DbHelperSQL.Query("SELECT F_Photo FROM myTable WHERE ID=1").Tables[0].Rows[0][0];
if (bytImg != null)
{
 MemoryStream ms = new MemoryStream(bytImg);
 Image img = Image.FromStream(ms);
 img.Save("D:\\me.jpg");
}

方式二:

是windowform程序,数据库已经建好,图像以二进制形式存放在数据库的image表中,我想把符合查询条件的图像(大量)从数据库中读出,显示在form窗体上的一个控件(listview或imagelist还是picturebox?这个不知道那个合适),并保存到选择(或新建)的一个文件夹中

SqlDataAdapter da = new SqlDataAdapter("select * from newpicture", conn);//数据库连接,修改一下数据库的操作。
DataSet ds = new DataSet();
da.Fill(ds, "pic");//将符合条件的选项保存在数据集的pic表里
  
string picdotname;
string picfilename;
int piclength;
int i;
//添加新列
DataColumn newcolumn = ds.Tables["pic"].Columns.Add("pic_url", typeof(string));//给pic表添加新的一列pic_url,保存你的新写出的图片路径
for (i = 0; i < Convert.ToInt16(ds.Tables["pic"].Rows.Count); i++)
{
 picdotname = ds.Tables["pic"].Rows[i]["pic_dot"].ToString();//图片的拓展名,你数据库要有这一列,如jpg
 piclength = Convert.ToInt32(ds.Tables["pic"].Rows[i]["pic_length"]);//数据流的长度
 picfilename = Server.MapPath("新建的文件夹名/") + "添加图片名"+ "." + picdotname;
 FileStream fs = new FileStream(picfilename, FileMode.Create, FileAccess.Write);
 byte[] piccontent = new byte[piclength];
 piccontent = (byte[])ds.Tables["pic"].Rows[i]["pic_content"];
 fs.Write(piccontent, 0, piclength);
 fs.Close();//读出数据流写成图片
 //最后把表绑定到控件上。
 ds.Tables["pic"].Rows[i]["pic_url"] = "temp/temp" + i.ToString() + "." + picdotname;//意思给表pic的第i行,pic_url列里添加文件的路径值。
}
//数据源 = ds.Tables["pic"];//数据绑定

大体是这样吧,里面表名列名很多细节你按你的表修改吧!

以上就是C#从数据库读取图片并保存的两种方法的详细内容,更多关于c# 读取图片并保存的资料请关注脚本之家其它相关文章!

相关文章

  • C#中实现输入汉字获取其拼音(汉字转拼音)的2种方法

    C#中实现输入汉字获取其拼音(汉字转拼音)的2种方法

    这篇文章主要介绍了C#中实现输入汉字获取其拼音(汉字转拼音)的2种方法,本文分别给出了使用微软语言包、手动编码实现两种实现方式,需要的朋友可以参考下
    2015-01-01
  • C# 中杨辉三角的实现

    C# 中杨辉三角的实现

    这篇文章主要介绍了C# 中杨辉三角的实现的相关资料,希望通过本文大家能掌握这部分内容,需要的朋友可以参考下
    2017-09-09
  • C#开发Windows UWP系列之3D变换

    C#开发Windows UWP系列之3D变换

    这篇文章介绍了C#开发Windows UWP系列之3D变换,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#利用WebClient实现两种方式下载文件

    C#利用WebClient实现两种方式下载文件

    本篇文章主要介绍了C#利用WebClient 两种方式下载文件,详细的介绍了两种方式,非常具有实用价值,需要的朋友可以参考下。
    2017-02-02
  • C# 多线程处理List数据的示例代码

    C# 多线程处理List数据的示例代码

    这篇文章主要介绍了C# 多线程处理List数据的示例代码,帮助大家更好的理解和使用c#编程语言,感兴趣的朋友可以了解下
    2020-12-12
  • C#获取真实IP地址(IP转为长整形、判断是否内网IP的方法)

    C#获取真实IP地址(IP转为长整形、判断是否内网IP的方法)

    这篇文章主要介绍了C#获取真实IP地址的实现代码,包含把IP转为长整形、判断是否是私网、内网IP的方法,需要的朋友可以参考下
    2014-08-08
  • C# 批处理调用方法

    C# 批处理调用方法

    当批处理和aspx不在同一目录中时,最好用WorkingDirectory设置启动的进程的初始目录为批处理所在目录,否则如上例中批处理新建的目录就应在aspx所在目录中而不是批处理所在目录了!
    2008-12-12
  • Unity UGUI的HorizontalLayoutGroup水平布局组件介绍使用

    Unity UGUI的HorizontalLayoutGroup水平布局组件介绍使用

    这篇文章主要为大家介绍了Unity UGUI的HorizontalLayoutGroup水平布局组件介绍使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • C#如何从byte[]中直接读取Structure实例详解

    C#如何从byte[]中直接读取Structure实例详解

    这篇文章主要给大家介绍了关于利用C#如何从byte[]里直接读取Structure的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • C#静态代码织入AOP组件之Rougamo的使用详解

    C#静态代码织入AOP组件之Rougamo的使用详解

    Rougamo是一个静态代码织入的AOP组件,同为AOP组件较为常用的有Castle、Autofac、AspectCore等,下面就跟随小编一起来学习一下它的具体使用吧
    2024-01-01

最新评论