C# 访问Access存取图片
图片存入ole字段,看有的代码是获取图片的字节数组转换为base64字符串,存入数据库;显示图片是把base64字符串转换为字节数组再显示;直接存字节数组可能还好一点;
插入的时候用带参数的sql写法比较好;用拼接sql一般会出错;
测试表有三个字段,加载一个图片然后插入记录;

插入以后如下;第5、6条是对的,3、4没插对;如果要png、jpeg、gif等格式都支持,写为 image1.Save(ms, image1.RawFormat);
读取并显示如下;
插入记录的代码,
Image image1;MemoryStream ms = new MemoryStream();byte[] arr1 = null; ;if (pictureBox1.Image != null){image1.Save(ms, image1.RawFormat);arr1 = new byte[ms.Length];ms.Position = 0;ms.Read(arr1, 0, (int)ms.Length);//pic1 = Convert.ToBase64String(arr1);}ms.Close();if (button1.Text == "添加"){if (textBox1.Text == ""){MessageBox.Show("名字不能为空!", "添加信息");return;}else{string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + Environment.CurrentDirectory + "\\mytest.mdb'";string query = "INSERT INTO testpic (a1, a2, ppp) VALUES (?,?,?)";using (OleDbConnection conn = new OleDbConnection(connectionString)){using (OleDbCommand cmd = new OleDbCommand(query, conn)){// 这里设置参数值,注意索引对应你SQL语句中参数的位置cmd.Parameters.AddWithValue("?", textBox1.Text);cmd.Parameters.AddWithValue("?", textBox2.Text);cmd.Parameters.AddWithValue("?", arr1);conn.Open();int rowsAffected = cmd.ExecuteNonQuery();conn.Close();}}textBox1.Text = "";textBox2.Text = "";}}
读取显示图片的代码,
private void button2_Click(object sender, EventArgs e){string sql1 = "select * from testpic where id = " + 6;byte[] buff = null;buff = achelp.GetBufferFromDB(sql1, "ppp");System.IO.MemoryStream picbuf = new System.IO.MemoryStream(buff);Image image = Image.FromStream(picbuf, true);picbuf.Close();pictureBox1.Image = image;}......//返回图片byte[]public byte[] GetBufferFromDB(string strSql, string fieldname){byte[] buff = null;if (conn_str == null){return null;}try{ole_connection.Open();//打开连接if (ole_connection.State == ConnectionState.Closed){return null;}ole_command.CommandText = strSql;ole_command.Connection = ole_connection;ole_reader = ole_command.ExecuteReader(CommandBehavior.Default);if (ole_reader.Read()){buff = (byte[])ole_reader[fieldname];}ole_reader.Close();ole_reader.Dispose();}catch (System.Exception e){//Console.WriteLine(e.ToString());MessageBox.Show(e.Message);}finally{if (ole_connection.State != ConnectionState.Closed){ole_connection.Close();}}return buff;}
要先执行ole_reader.Read(),然后才能取ole_reader[fieldname];
相关文章:
C# 访问Access存取图片
图片存入ole字段,看有的代码是获取图片的字节数组转换为base64字符串,存入数据库;显示图片是把base64字符串转换为字节数组再显示;直接存字节数组可能还好一点; 插入的时候用带参数的sql写法比较好;用拼接…...
正则表达式中常见字符的用法介绍
正则表达式(Regular Expression,简称Regex)是一种文本模式描述的方法,包括普通字符(如a到z之间的字母)和特殊字符(称为“元字符”)。正则表达式使用单个字符串来描述、匹配一系列符合…...
Vue3.0组合式API:依赖注入provide和inject实现跨层组件的通信
Vue3.0组合式API系列文章: 《Vue3.0组合式API:setup()函数》 《Vue3.0组合式API:使用reactive()、ref()创建响应式代理对象》 《Vue3.0组合式API:computed计算属性、watch监听器、watchEffect高级监听器》 《Vue3.0组合式API&…...
VSCode中配置C/C++环境
在Visual Studio Code(VSCode)中配置C/C环境是一个相对直接且功能强大的过程,它能让开发者利用VSCode的诸多便利功能来编写、编译和调试C/C代码。以下是一个详细的步骤指南,涵盖了从安装必要的软件到配置编译器、调试器以及VSCode…...
vue实现鼠标滚轮控制页面横向滑动
先看效果 20240919_095531 1.首先创建一个xScroll.vue组件 <template><div class"main" v-size-ob"mainSize"><div class"v-scroll"><div class"content"><slot></slot></div></div>…...
【Git使用】删除Github仓库中的指定文件/文件夹
前言: 上篇文章带大家上传了第一个项目至github,那要是想删除仓库中的指定文件夹怎么办?在Github中 仓库是无法通过鼠标操作直接删除文件和文件夹的,那只能通过 git 命令来执行删除操作。接下来就带大家进行操作。 详细步骤: 一…...
Iptables命令常用命令
前言:下是一些非常实用的 iptables 命令合集,涵盖网络攻击防护和日常网络安全防护 1. 查看当前规则 iptables -L -v -n查看现有的所有规则,-v 显示详细信息,-n 禁止解析IP地址和端口以加快显示速度。 2. 清空所有规则 iptables -F清除所有已…...
前端开发之原型模式
介绍 原型模式本质就是借用一个已有的实例做原型,在这原型基础上快速复制出一个和原型一样的一个对象。 class CloneDemo {name clone democlone(): CloneDemo {return new CloneDemo()} } 原型原型链 函数(class)都有显示原型 prototyp…...
分布式缓存服务Redis版解析与配置方式
一、Redis分布式缓存服务概述 Redis是一款高性能的键值对(Key-Value)存储系统,通常用作分布式缓存服务。它基于内存运行,支持丰富的数据类型,并具备高并发、低延迟的特点,非常适合用于缓存需要频繁访问的数…...
WordPress建站钩子函数及使用
目录 前言: 使用场景: 一、常用的wordpress钩子(动作钩子、过滤器钩子) 1、动作钩子(Action Hooks) 2、过滤器钩子(Filter Hooks) 二、常用钩子示例 1、添加自定义 CSS 和 JS…...
Qt 模型视图(二):模型类QAbstractItemModel
文章目录 Qt 模型视图(二):模型类QAbstractItemModel1.基本概念1.1.模型的基本结构1.2.模型索引1.3.行号和列号1.4.父项1.5.项的角色1.6.总结 Qt 模型视图(二):模型类QAbstractItemModel 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模…...
算法打卡 Day41(动态规划)-理论基础 + 斐波那契数 + 爬楼梯 + 使用最小花费爬楼梯
文章目录 理论基础Leetcode 509-斐波那契数题目描述解题思路 Leetcode 70-爬楼梯题目描述解题思路 Leetcode 746-用最小花费爬楼梯题目描述解题思路 理论基础 动态规划,简称 DP,其中的每一个状态一定是由上一个状态推导出来的,而贪心算法没有…...
鸿蒙环境服务端签名直传文件到OSS
本文介绍如何在鸿蒙环境下将文件上传到OSS。 背景信息 鸿蒙环境是当下比较流行的操作环境,与服务端签名直传的原理类似,鸿蒙环境上传文件到OSS是利用OSS提供的PutObject接口来实现文件上传到OSS。关于PutObject的详细介绍,请参见PutObject。…...
计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
首先安装需要的python库, 安装完之后利用navicat导入数据库文件bili100.sql到mysql中, 再在pycharm编译器中连接mysql数据库,并在设置文件中将密码修改成你的数据库密码。最后运行app.py,打开链接,即可运行。 B站爬虫数…...
solidwork剪裁实体
之前是这样: 效果如下:...
Junit与Spring Test简单使用
Junit与Spring Test简单使用 Junit5简介Junit5 注解Junit5与Spring结合 差异概览MockingMockBeanSpyBeanDemo 注意事项 又要写测试代码了,总结记录一下。 Junit5简介 与单一模块设计的Junit4不同,Junit5引入了模块化架构,由三个主要子项目组成: JUnit Pl…...
Vxe UI vue vxe-table 实现自适应列宽,根据内容自适应列的宽度
Vxe UI vue vxe-table 实现自适应列宽,根据内容自适应列的宽度 之前老版本是通过计算字符数量,然后给动态给每一列设置宽度,不仅麻烦,还不好复用。 看了 API 发现 v4.7 和 v3.9 版本已经直接就能支持了,只需加上 widt…...
document.visibilityState 监听浏览器最小化
1.document.hidden: 表示页面是否隐藏的布尔值。页面隐藏包括 页面在后台标签页中 或者 浏览器最小化 (注意,页面被其他软件遮盖并不算隐藏,比如打开的 sublime 遮住了浏览器)。 2.document.visibilityStateÿ…...
前端框架对比和选择
大家好,我是程序员小羊! 前言: 前端框架选择是前端开发中的关键决策,因为它影响项目的开发效率、维护成本和可扩展性。当前,最流行的前端框架主要包括 React、Vue 和 Angular。它们各有优劣,适用于不同…...
Linux 进程2
环境变量 再Linux操作系统中一切皆文件,这个环境变量自然也是一个文件,它的作用是辅助我们使用操作系统还可以辨识我们是什么用户(一般用户,root用户)。 env是读取完整环境变量的指令,里面记录了许多我登录操作系统所用的用户的信…...
高效办公隐私保护工具:Boss-Key老板键一键隐藏窗口解决方案
高效办公隐私保护工具:Boss-Key老板键一键隐藏窗口解决方案 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在现代办公环境中&…...
OpenClaw人人养虾:macOS 开发环境设置
本指南介绍从源代码构建和运行 OpenClaw macOS 应用所需的步骤。 前置条件 在构建应用之前,请确保已安装以下工具: Xcode 26.2:Swift 开发所需。Node.js 22 和 pnpm:gateway、CLI 和打包脚本所需。 1. 安装依赖 安装项目级依…...
cannot import name ‘__version__‘ from ‘tensorflow.keras‘ 的解决方案
进到你的keras默认目录,维度在这里“C:\Users\HP\miniconda3\envs\brain\Lib\site-packages\rl”进入文件夹 ,要修改callbacks.py找到并用记事本(或代码编辑器)打开 callbacks.py 文件。找到 第 8 行 左右的代码:pytho…...
STM32定时器编码器模式实战:5分钟搞定电机转速与转向测量(附常见波形问题排查)
STM32定时器编码器模式实战:5分钟搞定电机转速与转向测量(附常见波形问题排查) 在机器人控制和自动化项目中,电机转速和转向的精确测量往往是系统闭环控制的基础。传统软件计数方式不仅占用CPU资源,还容易因中断延迟导…...
Stillcolor:革新性屏幕闪烁消除方案——解决Mac用户护眼痛点
Stillcolor:革新性屏幕闪烁消除方案——解决Mac用户护眼痛点 【免费下载链接】Stillcolor Disable temporal dithering on your Mac with this lightweight menu bar app. Designed for Apple silicon Macs. 项目地址: https://gitcode.com/gh_mirrors/st/Stillco…...
Python小白也能搞定:用PCSE和WOFOST进行作物模型敏感性分析的保姆级教程
Python零基础实战:用PCSE/WOFOST实现作物模型敏感性分析全流程指南 引言:为什么选择PythonPCSE进行农业模型研究? 在精准农业和气候变化研究领域,作物生长模型正成为不可或缺的分析工具。作为联合国粮农组织推荐的经典模型&#x…...
TradingAgents-CN终极指南:3步搭建你的AI量化投资分析系统
TradingAgents-CN终极指南:3步搭建你的AI量化投资分析系统 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 还在为复杂的金融量化系统…...
零基础鸿蒙应用开发第二十八节:商品排序体系之工厂与策略模式
【学习目标】 掌握策略模式核心思想,基于IGoodsComparator接口封装排序规则,实现排序逻辑的灵活扩展与解耦;理解工厂模式的应用场景,开发排序工厂类统一管理比较器实例,屏蔽底层实现细节;整合单例管控策略模…...
Cursor Free VIP:三步解锁AI编程助手完整功能的终极指南
Cursor Free VIP:三步解锁AI编程助手完整功能的终极指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your t…...
Google Cloud Vision API:为什么你的应用需要“看懂”图片的超能力?
Google Cloud Vision API:为什么你的应用需要“看懂”图片的超能力? 【免费下载链接】cloud-vision Sample code for Google Cloud Vision 项目地址: https://gitcode.com/gh_mirrors/cl/cloud-vision 你是否曾想过,如果应用能像人类一…...
