C# 图片或PDF保存到SQL Server数据库

C# 图片或PDF保存到SQL Server数据库

数据库字段如下:图片保存要用image数据类型

在这里插入图片描述

保存到数据库的两种方式:

 // 打开文件,获取图片路径OpenFileDialog openFileDialog = new OpenFileDialog();if (openFileDialog.ShowDialog() == DialogResult.Cancel){return;}//pictureBox1.Image = Image.FromFile(openFileDialog.FileName);FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);//通过BinaryReader类对象的ReadBytes()方法将FileStream类对象转化为二进制数组BinaryReader br = new BinaryReader(fs);byte[] img = br.ReadBytes(Convert.ToInt32(fs.Length));// 方法一:通过参数的形式直接用Sql语句保存string insert = "insert into T_Img(ID,Img) values(@ID,@Img)";SqlParameter[] parameter = new SqlParameter[]{new SqlParameter("@ID", Convert.ToInt32(textBox1.Text)),new SqlParameter("@Img", img)};db.ExcuteBySqlParmeter(insert, parameter);// 方法二:使用SqlBulkCopystring sql = "select top 0 * from T_Img";DataSet ds = db.LoadDataSetBySql(sql);DataTable dtImg = ds.Tables[0];DataRow dr = dtImg.NewRow();dr["ID"] = Convert.ToInt32(textBox1.Text);dr["Img"] = img;dtImg.Rows.Add(dr);db.SaveImg(dtImg, "T_Img");

上面的ExcuteBySqlParmeter()和SaveImg()方法的详细代码如下:

public int ExcuteBySqlParmeter(string sql, SqlParameter[] sqlParmeter)
{int ir = 0;try{// GetConn():获取一个SqlConnection对象SqlCommand comm = new SqlCommand(sql, GetConn());comm.Parameters.AddRange(sqlParmeter);ir = comm.ExecuteNonQuery();CloseConn();}catch{ir = 0;}return ir;
}public int SaveImg(DataTable dataTable, string TableName)
{int ir;try{SqlBulkCopy bulkCopy = new SqlBulkCopy(GetConn());  bulkCopy.DestinationTableName = TableName;//设置目标表的名称bulkCopy.WriteToServer(dataTable);  //保存ir = 1;}catch{ir = 0;}return ir;
}

从数据库读取图片并显示

private void GetImg()
{string sql = $"select top 1 * from T_Img where ID = {textBox1.Text}";DataSet ds = db.LoadDataSetBySql(sql);DataRow dr = ds.Tables[0].Rows[0];byte[] bytes = (byte[])dr["Img"];MemoryStream ms = new MemoryStream(bytes);this.pictureBox2.Image = Image.FromStream(ms);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/438264.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

红外热成像仪定制_热成像仪/红外夜视仪开发方案

红外热成像技术是一种利用红外热成像仪将物体发出的不可见红外辐射能量转换成可见的温度场图像的技术,通过不同颜色来表示不同温度。这项技术的应用领域非常广泛,从电路维修到暖通检测再到汽车故障排查等各个领域都有着重要的作用。 红外热成像仪的解决方…

C++ —— 智能指针

C —— 智能指针 文章目录 C —— 智能指针一、为什么需要使用智能指针?二、内存泄漏什么是内存泄漏?内存泄漏的危害?内存泄漏分类 三、智能指针的使用及原理1. RAII2. 智能指针的原理 三、智能指针的缺陷及其发展3.1 std::auto_ptr3.2 std::…

如何使用Docker部署火狐浏览器并实现无公网ip远程访问

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…

shell脚本登录dlut-lingshui并设置开机连网和断网重连

本文提供了一个用于无图形界面linux系统自动连接dlut-lingshui校园网的shell脚本,并提供了设置开机联网以及断网重连的详细操作步骤。本文的操作在ubuntu 22.04系统上验证有效,在其他版本的linux系统上操作时遇到问题可以自行百度。 1. 获取校园网认证界…

前端回显分类 回显有时显示键值(判断条件:看是否有值传入)

<div v-if"form.caseType 1"><p class"title-submit" style"margin-top: 0">案源提供人信息</p><el-row v-for"(item, index) in form.superviseList" :key"index"><el-col :span"8"…

拼接url - 华为OD统一考试

OD统一考试 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 给定一个 url 前缀和 url 后缀, 通过 “,” 分割&#xff0c; 需要将其连接为一个完整的 url 。 如果前缀结尾和后缀开头都没有 /&#xff0c;需要自动补上 / 连接符&#xff1b; 如果前缀结…

大型电商系统商城源码_架构_订单系统_OctShop

中国的电商差不多发展到今天已经有20多年的历史啦&#xff0c;特别是过去的10年里其发展速度与竞争是相当的激烈&#xff0c;发展出了各种各样的模式如&#xff1a;B2B、B2C、B2B2C、O2O、社交电商等等。对于广大的企业或商家来说&#xff0c;电商是一个不可或缺的销售渠道&…

二分查找|详细讲解|两种写法

二分查找 目录 1 介绍2 例题引入3 “左闭右闭”写法4 “左闭右开”写法 1 介绍 二分查找适用于从一个递增或递减的有序数列中查找某一个值 因此&#xff0c;使用二分查找的条件是&#xff1a; 用于查找的内容从逻辑上来看是有序的查找的数量只能是一个而不是多个 在二分查…

【每日一题】5.LeetCode——环形链表

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢迎各位大佬指点&…

c语言实战之贪吃蛇

文章目录 前言效果展示游戏用到的图片游戏思路一览游戏前准备一、贪吃蛇、食物、障碍物节点坐标的结构体二、枚举游戏状态、和贪吃蛇的方向三、维护运行的结构体 游戏开始前的初始化一、学习图形库相关知识二、设置背景三、欢迎界面四、初始化贪吃蛇五、生成障碍物六、生成食物…

【JaveWeb教程】(35)SpringBootWeb案例之《智能学习辅助系统》登录功能的详细实现步骤与代码示例(8)

目录 案例-登录和认证1. 登录功能1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 测试 案例-登录和认证 在前面的课程中&#xff0c;我们已经实现了部门管理、员工管理的基本功能&#xff0c;但是大家会发现&#xff0c;我们并没有登录&#xff0c;就直接访问到了Tlias智能…

CMake 完整入门教程(一)

1 前言 每一次学习新东西都是很有乐趣的&#xff0c;虽然刚开始会花费时间用来学习&#xff0c;但是实践证明&#xff0c;虽然学习新东西可能会花费一些时间&#xff0c;但是它们带来的好处会远远超过这些花费的时间。学习新东西是值得的&#xff0c;也是很有乐趣的。 网络上…