【转载】C#将图片以二进制流的方式存入数据库
程序员文章站
2022-03-20 10:19:02
在C#开发应用程序的过程中,图片一般会存放在文件系统中,当然图片也可以二进制的方式存放到数据库中,不过一般不建议存放在数据库中,因为图片占用的空间还是挺大的,特殊情况下可以考虑将图片存在数据。此文将介绍如何将图片存放在Sqlserver数据库中,并从数据库中读取出图片信息。 在将图片存储到数据库之前 ......
在c#开发应用程序的过程中,图片一般会存放在文件系统中,当然图片也可以二进制的方式存放到数据库中,不过一般不建议存放在数据库中,因为图片占用的空间还是挺大的,特殊情况下可以考虑将图片存在数据。此文将介绍如何将图片存放在sqlserver数据库中,并从数据库中读取出图片信息。
在将图片存储到数据库之前,需要先设计数据库表,建议使用sqlserver的数据类型image类型存储数据,当然也有人使用二进制binary类型存储。
一、将图片写入数据库中的方法
在此方法中使用到filestream类,该类在此的作用是将图片读取到文件流中。具体实现方法如下:
public void writeimgtodb() { sqlconnection conn=new sqlconnection("server=.;database=pubs;trusted_connection=yes"); conn.open(); sqlcommand scmd = null; string path = application.startuppath + "//imgren"; //为获取文件的根目录 int j = 0; filestream fs=null; for (int i = 1; i <= 13; i++) //利用循环添加一次添加图片 { string sql = "insert into tb_image values(@a,@b)"; //利用参数实现图片添加 scmd = new sqlcommand(sql, scon); scmd.parameters.add("@a", sqldbtype.int); scmd.parameters["@a"].value = i; //记住该方法,将值存入参数内 byte[] bt = new byte[10240]; //初始化图片大小 //创建图片写入流 fs = new filestream(path + "//" + i + ".bmp", filemode.openorcreate, fileaccess.read); fs.read(bt, 0, bt.length); //读取图片的字节数 scmd.parameters.add("@b", sqldbtype.image, (int)fs.length); scmd.parameters["@b"].value = bt; //将图片的字节数存入参数内 j = scmd.executenonquery(); } if (j > 0) messagebox.show("将图片写入数据库成功!!!", "友好提示"); else messagebox.show("将图片写入数据库失败!!!", "友好提示"); fs.close(); //关闭释放流资源 }
二、将从数据库中读取图片到picturebox控件中(winform窗体控件)。
此方法使用了memorystream类即内存流对象,同时使用了image类,image类是.net framework内部提供的图片相关类。从sqlserver数据库中读取图片数据具体实现方法如下:
public void readdbimage() { sqlconnection conn=new sqlconnection("server=.;database=pubs;trusted_connection=yes"); conn.open(); sqlcommand scmd = null; string sql = "select i_image from tb_image where i_id=" +int.parse(textbox1.text.trim()) + ""; scmd = new sqlcommand(sql, scon); sqldatareader red = scmd.executereader(); if (red.read()) { //创建支持存储区的内存流 memorystream ms = new memorystream((byte[])red[0]); image img = image.fromstream(ms, true); //该方法: fromstream()为验证图像的流 this.picturebox1.image = img; } red.close(); //关闭资源 }
扩展阅读:c#工具类:使用sharpziplib进行压缩、解压文件、微软官方提供的sqlserver数据库操作帮助类sqlhelper类。
备注:原文转载自c#将图片以二进制流的方式存入数据库_it技术小趣屋。
上一篇: 大型食品公司涉足微商凑热闹还是新渠道
下一篇: first one
推荐阅读
-
php下将图片以二进制存入mysql数据库中并显示的实现代码
-
【转载】C#将图片以二进制流的方式存入数据库
-
php下将图片以二进制存入mysql数据库中并显示的实现代码
-
免费mysql数据库 php下将图片以二进制存入mysql数据库中并显示的实现代码
-
免费mysql数据库 php下将图片以二进制存入mysql数据库中并显示的实现代码
-
php下将图片以二进制存入mysql数据库中并显示的实现代码_PHP教程
-
php下将图片以二进制存入mysql数据库中并显示的实现代码_php技巧
-
【转载】C#将图片以二进制流的方式存入数据库
-
php下将图片以二进制存入mysql数据库中并显示的实现代码_php技巧