一 存储到数据库

1、建立数据表UserPhoto

userID为varchar(50)    设置为标识列unique不能重复   alter table UserPhoto add  unique(UserID)

photo为image

2、写一个类,主要有三个方法

(1)连接数据库的类ConnectionOpen()

(2)判断图片类型转换byte[]数组ImageToBytes(Image image)

(3)操作数据库将转换的二进制写进数据库

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace importImage
{class Class1{private SqlConnection ConnectionOpen(){string connectionString = "Server = 192.168.31.214; Database =Attendance; User ID = sa ; Password = dengrui2018;";SqlConnection conn = new SqlConnection(connectionString);conn.Open();return conn;}public static byte[] ImageToBytes(Image image){if (image == null){return null;}ImageFormat format = image.RawFormat;using (MemoryStream ms = new MemoryStream()){if (format.Equals(ImageFormat.Jpeg)){image.Save(ms, ImageFormat.Jpeg);}else if (format.Equals(ImageFormat.Png)){image.Save(ms, ImageFormat.Png);}else if (format.Equals(ImageFormat.Bmp)){image.Save(ms, ImageFormat.Bmp);}else if (format.Equals(ImageFormat.Gif)){image.Save(ms, ImageFormat.Gif);}else if (format.Equals(ImageFormat.Icon)){image.Save(ms, ImageFormat.Icon);}byte[] buffer = new byte[ms.Length];//Image.Save()会改变MemoryStream的Position,需要重新Seek到Beginms.Seek(0, SeekOrigin.Begin);ms.Read(buffer, 0, buffer.Length);return buffer;}}public bool InsertPerImage(string rowAutoID, Image perImage){SqlConnection conn = ConnectionOpen();int i = 0;if (perImage == null){SqlCommand com = new SqlCommand("insert into UserPhoto(UserID) values('100020')", conn);com.Parameters.Add("UserID", SqlDbType.VarChar);//数据库里userID是varchar,这里转换为varcharcom.Parameters["UserID"].Value = rowAutoID;i = com.ExecuteNonQuery();}else{SqlCommand com = new SqlCommand("insert into UserPhoto(UserID,photo) values(@UserID,@photo)", conn);com.Parameters.Add("UserID", SqlDbType.VarChar);com.Parameters["UserID"].Value = rowAutoID;com.Parameters.Add("photo", SqlDbType.Image);com.Parameters["photo"].Value = ImageToBytes(perImage);//调用方法将图片转换为二进制i = com.ExecuteNonQuery();//返回受影响的函数}if (i > 0){conn.Close();return true;}else{conn.Close();return false;}}}
}

3、调用方法

private void button5_Click(object sender, EventArgs e){Class1 c1 = new Class1();string id = "10002";//调用方法  传递两个参数  编号,图片的路径bool aa = c1.InsertPerImage(id, Image.FromFile(@"E:\ssdVS\项目\importImage\importImage\image\bananer.jpg"));MessageBox.Show(aa.ToString());   //如果返回为true 则添加成功}

二 从数据库获取二进制转换为图片

有空完善.....

SQLserver C#将图片以二进制方式存储到数据库,再从数据库读出图片相关推荐

  1. ORACLE使用copy方式存储迁移,详细讲解Oracle数据库的数据迁移方法

    添加所需的表空间和用户到目标数据库中:安装所需的SQL*Net2或者Net8软件,并配置用于连接数据库的别名. 在DOS命令提示符下设置oracle_sid=Oracle7_sid. 以Interna ...

  2. python 图片和二进制转换的三种方式

    PIL格式转二进制 先读取为PIL格式,再转为二进制 import io import base64 from PIL import Imagedef image2byte(image):'''图片转 ...

  3. 通过SharedPreferences方式存储复杂数据

    我们可以通过SharedPreferences方式存储一些复杂的数据,如图片或类的存储,(当然,建议不要用这种方式存储)下面我们通过代码来学习: @Override public void onCre ...

  4. 将图片的二进制字节字符串在HTML页面以图片形式输出

    具体实现代码如下: 1.新建一个一般处理程序: Image.ashx 1 using System; 2 using System.Collections.Generic; 3 using Syste ...

  5. mysql 图片转为二进制_如何把图片转换成二进制存入数据库

    public static byte[] imgBytesIn;//用来存储图片的二进制 Stream ms; byte[] picbyte; //在创建数据库链接,测试链接成功后,在高级里可自动生成 ...

  6. python3图片转代码_python3图片转换二进制存入mysql示例代码

    python3图片转换二进制存入mysql示例代码 发布于 2014-09-29 18:00:01 | 198 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面 ...

  7. python 图片与二进制之间的转换

    一:PIL格式图片转成二进制 先读取为PIL格式,再转为二进制 import io import base64 from PIL import Imagedef image2byte(image):' ...

  8. GridView控件 Image控件 与图片的二进制数据库存储和显示

    1.将图片以二进制存入数据库 2.读取二进制图片在页面显示 3.设置Image控件显示从数据库中读出的二进制图片 4.GridView中ImageField以URL方式显示图片 5.GridView显 ...

  9. BinaryReader 、BinaryWriter是方便用二进制方式读写int,double,string之类的数据

    BinaryWriter类:MSDN以二进制形式将基元类型写入流,并支持用特定的编码写入字符串. 这个MSDN的解释,是不是说BinaryWriter类是将数据以二进制的形式写入文件,在文件中显示的是 ...

  10. web项目图片/文件保存方式

    web项目图片/文件保存方式 其实文件和图片都是二进制流文件 以下统称图片 1直接把图片存到数据库字段中 2图片存项目/public/img目录,文件名存数据库字段 3规范的使用阿里云oss/腾讯云c ...

最新文章

  1. List Control Utility
  2. python threading condition使用_Python threading模块condition原理及运行流程详解
  3. UVa11292 - Dragon of Loowater(贪心)
  4. linux on android分区,linux分区笔记
  5. TF之CNN:利用sklearn(自带手写数字图片识别数据集)使用dropout解决学习中overfitting的问题+Tensorboard显示变化曲线
  6. 我从Team Leader变成了CTO,有些不适应,不过我要调整
  7. 序列化技术的选型-技术层面
  8. mysql geometry 附近的人_mysql中geometry类型的简单使用(搜索附近的人)
  9. GIT 自动转换行符的案例
  10. VRRP,HSRP介绍及配置
  11. EPPlus 读写 Excel 资料收集
  12. Go并发模式:管道与取消
  13. uni-app 开发微信小程序,网络断开,无网络情况,刷新检查,重新加载
  14. xp无法访问win7计算机,xp系统访问win7共享文件夹提示无权限如何解决
  15. (附源码)node.js基于vue框架潮牌官网设计与实现 毕业设计 010955
  16. top 和 window.top, iframe 默认高度
  17. 被遗忘的数学家!曾提出最接地气的数学定理,可以计算男朋友真不真心的那种......
  18. 在WPS表格里制作连接到openGauss的实时刷新报表
  19. 第四章 采购与供应链管理中的利益相关者
  20. (原创)添加QQ好友日期爬虫01——总体思路

热门文章

  1. 水印相机定位不准确怎么办_选好镜头 选好3D四轮定位仪
  2. 【数据分享】历次人口普查数据(一普到七普)
  3. 回文字符串,回文链表
  4. scala implicit隐式转化与隐式参数
  5. XSS_伪协议与编码绕过
  6. html怎么读取2进制视频,IE 中如何读取二进制文件的内容?
  7. 杭州师范大学计算机考研难度,杭州师范大学网络空间安全考研难吗
  8. php stacktrace,Laravel:如何在PhpUnit上启用stacktrace错误
  9. mod_rewrite模块的使用
  10. 插个队 leetcode 142. 环形链表 II