我们定义数据库为image类型,然后读取图片为字符流,再保存到数据库中,首先我们定义一个读取图片的公共类,此公共类以后会用到,所以可以建立相应的帮助类

 public static byte[] ReadFile(string sPath)
{
//Initialize byte array with a null value initially.
byte[] data = null; //Use FileInfo object to get file size.
FileInfo fInfo = new FileInfo(sPath);
long numBytes = fInfo.Length; //Open FileStream to read file
FileStream fStream = new FileStream(sPath, FileMode.Open, FileAccess.Read); //Use BinaryReader to read file stream into byte array.
BinaryReader br = new BinaryReader(fStream); //When you use BinaryReader, you need to supply number of bytes to read from file.
//In this case we want to read entire file. So supplying total number of bytes.
data = br.ReadBytes((int)numBytes);
return data;
}

  再定义一下插入图片的语句类

    /// <summary>
/// 保存图片数据库语句
/// WZW
/// 2018-10-09 17:11
/// </summary>
/// <param name="ImageData"></param>
/// <param name="BUitrasoundID"></param>
/// <param name="currentid"></param>
/// <param name="parameter"></param>
/// <returns></returns>
private StringBuilder SaveImg(byte[] ImageData, string BUitrasoundID,int currentid,out SqlParameter parameter)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into imagetabel(");
strSql.Append("ImageData,Time,Type,ImageType,ReferenceID)");
strSql.Append(" values (");
strSql.Append("@ImageData"+currentid+",'" + System.DateTime.Now + "',1,0,@BSID) ");
parameter = new SqlParameter("@ImageData" + currentid, ImageData);
return strSql; }

  主体代码如下

StringBuilder strSql = new StringBuilder();
Random random=new Random();
SqlCommand command = new SqlCommand();
SqlParameter[] parameters = new SqlParameter[3];
strSql.Append("set XACT_ABORT ON ");
strSql.Append(" begin tran t1 ");
StringBuilder strSql2 = new StringBuilder();
strSql.Append(" declare @BSID int ");
strSql2.Append("insert into table(");
strSql2.Append("ID,CheckResult,TestTime,Result,Picture,Type)");
strSql2.Append(" values (");
strSql2.Append("'" + ID + "','" +CheckResult + "','" + TestTime + "','" + FeaturesResult + "','" +BUltrasoundPicture + "','" + BUitrasoundType + "') ");
strSql2.Append(";select @BSID=@@IDENTITY ");
strSql.Append(strSql2);
if (ImageData != null)
{
SqlParameter parameter = null;
strSql.Append(SaveImg(ImageData," ",1, out parameter));
parameters[0] = parameter;
}
if (ImageData2 != null)
{
SqlParameter parameter = null;
strSql.Append(SaveImg(ImageData2, " ",2, out parameter));
parameters[1] = parameter;
}
if (ImageData3 != null)
{
SqlParameter parameter = null;
strSql.Append(SaveImg(ImageData3," ",3, out parameter));
parameters[2] = parameter;
}
strSql.Append("commit tran t1");
return Convert.ToInt32(SqlHelper.ExecuteNonQuery(SqlHelper.connectionString, CommandType.Text, strSql.ToString(),parameters));

  其中图片表的关联id关联主表插入后的id,由语句select @BSID=@@IDENTITY得到,当主键自增时此语句才生效。

最新文章

  1. 简单的学习心得:网易云课堂Android开发第四章服务、广播与酷特性
  2. jdbc java数据库连接 6)类路径读取——JdbcUtil的配置文件
  3. MVC的多表单
  4. 使用AjaxPro实现无刷新更新数据
  5. 第三方Girdview中文件下载的方法,以及js显示图片
  6. SSE and Websocket
  7. 常用iOS第三方库以及XCode插件介绍
  8. 002_kafka_相关术语详细解析
  9. HDU 3401 Trade dp+单调队列优化
  10. codevs 1202 求和
  11. 无法识别的属性“targetFramework”。请注意属性名称区分大小写。错误分析以及解决方案
  12. 多线程 NSThread GCD
  13. Advanced Replication同步复制实验(基于Trigger&amp;基于Materialized View)
  14. 【转载】VC++中的图像类型转换--使用开源CxImage类库
  15. GDAL C# 开发环境配置
  16. hdu 6047 Maximum Sequence(贪心)
  17. 网络编程之套接字(tcp)
  18. DNS生产系统架构
  19. #191 sea(动态规划)
  20. C#对Windows文件/文件夹/目录的一些操作总结

热门文章

  1. 类选择器和所作用的标签一起写为什么不起作用? - CSDN博客
  2. 关于XML异步
  3. Delphi 10.2 非官方补丁合集
  4. C++的标准库函数默认都是操作字节,而不是字符,非常痛苦,所以引入了u16string和u32string(Linux上的wchar_t是32位的原因,utf16对unicode的支持是有缺陷的)good
  5. 阿里云CDN+OSS完成图片加速
  6. webstrom sass 关于arguments 和 Output paths to refresh 设置
  7. Elasticsearch的使用
  8. Ubuntu 配置docker镜像加速器
  9. 【python3两小时根本不够】入门笔记04:线程+Lock安全同步
  10. 转载 make版MYsql 5.5.13