C# 操作Access的Ole对象[转]
OLE对象数据类型
(1)OLE 对象用于使用 OLE 协议在其他程序中创建的 OLE 对象,如 Microsoft Word 文档、
Microsoft Excel 电子表格、图片、声音或其他二进制数据。 (2)Access中的Ole对象对应到C#中的数据类型是二进制的byte数组,对应到OleDbType.Binary类型。
使用方式和其他类型的字段使用方式是一样的,如使用参数化方式:
OleDbParameter param = new OleDbParameter("@Picture", OleDbType.Binary);
(3)所以,我们可以把图像、声音等文件以二进制形式存储到Access中去。
插入OLE对象: FileStream fileStream = new FileStream(filename, FileMode.Open); byte[] bFile = new byte[fileStream.Length];//分配数组大小 fileStream .Read(bFile, 0, (int)fileStream .Length);//将文件内容读进数组 fileStream .Close();//关闭文件对象
OleDbConnection conn = new OleDbConnection(connStr);//建立连接 conn.Open();//打开连接
OleDbCommand com = conn.CreateCommand();
//其中picture字段是OLE对象数据类型 com.CommandText = "Insert into Test(id, picture) Values(@id, @picture)"; com.Parameters.AddWithValue("@id", 0); com.Parameters.AddWithValue("@picture", bFile);
com.ExecuteNonQuery();
读取OLE对象: OleDbConnection conn = new OleDbConnection(connStr); conn.Open();
OleDbCommand com = conn.CreateCommand(); com.CommandText = "Select picture From Test where id=0";
byte[] bFile = (byte[])com.ExecuteScalar();//读取之后转换成二进制字节数组
//处理二进制字节数组
MemoryStream stream = new MemoryStream(bFile); Image img = Image.FromStream(stream);//将二进制字节数组还原成原本的图像
C# 操作Access的Ole对象[转]的更多相关文章
- Access OLE对象和附件的区别
OLE 对象 来自 Office 和基于 Windows 的程序的图像.文档.图形和其他对象 最多可存储 2GB 数据(此大小限制适用于所有 Access 数据库).请记住,添加 2GB 数据会导致数 ...
- MFC通过ADO操作Access数据库
我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读.写Excel表格文件”和“直接通过DAO读.写Access文件”,先后给大家介绍了ODBC和DAO两 ...
- 直接通过ADO操作Access数据库
我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读.写Excel表格文件”和“直接通过DAO读.写Access文件”,先后给大家介绍了ODBC和DAO两 ...
- C#操作access和SQL server数据库代码实例
在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...
- C#操作Access的一些小结
C#操作Access的一些小结 好久没有写blog,感觉今年一年都没怎么真正开心过,整天有一些事围绕在身边,使心情难以平静下来,真正写点有意义的东西.博客园是天天看的,看得多,写的少,偶尔也是Copy ...
- C#操作Access
C#操作Access数据库的基础知识浅析 C#操作Access数据库的基础知识都有什么呢? C#操作Access数据库的基础知识1. 通过ADO.NET的OleDb相关类来操作Access 主要知识点 ...
- C#操作Access的查询、添加、删除、修改源程序
C#操作Access的查询.添加.删除.修改源程序 using System; using System.Collections.Generic; using System.ComponentMode ...
- Java 添加OLE对象到Excel文档
本文介绍通过Java程序添加OLE对象到Excel文档.OLE分为两种形式,一种通过嵌入(Embed),方式,一种通过链接(Link)方式.前者是将对象嵌入到文档中,外部对该对象的更改不影响嵌入操作时 ...
- 基于 RTF specification v1.7 的 RTF 文件解析及 OLE 对象提取(使用 Python 开发)
0x01 Office RTF 文件介绍 RTF 文件也称富文本格式(Rich Text Format, 一般简称为 RTF),意为多文本格式是由微软公司开发的跨平台文档格式.大多数的文字处理软件都能 ...
随机推荐
- 【OpenGL】Shader实例分析(七)- 雪花飘落效果
转发请保持地址:http://blog.csdn.net/stalendp/article/details/40624603 研究了一个雪花飘落效果.感觉挺不错的.分享给大家,效果例如以下: 代码例如 ...
- Wi-Fi无线网络(WPA2加密)快速破解 ——某公司无线设备安全隐患报告
Wi-Fi无线网络(WPA2加密)快速破解 --某公司无线设备安全隐患报告 评估人:阿牛 2013年12月12日 文件夹 一. 导言 2 二. 背景 2 三. 无线产品应当採取的安全策略 3 四. 存 ...
- oracle随机数
1.从表中随机取记录 select * from (select * from staff order by dbms_random.random) where rownum < 4 表示从ST ...
- List<Guid?> a = new List<Guid?>();
正常写法 泛型 类型 为 Guid? List<Guid?> a = new List<Guid?>(); Guid? b = null; Nullable<Guid&g ...
- Swift学习笔记十四:构造(Initialization)
类和结构体在实例创建时,必须为全部存储型属性设置合适的初始值. 存储型属性的值不能处于一个未知的状态. 你能够在构造器中为存储型属性赋初值,也能够在定义属性时为其设置默认值.下面章节 ...
- HDU1087 Super Jumping! Jumping! Jumping! —— DP
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1087 Super Jumping! Jumping! Jumping! Time Limi ...
- openxml in sql server
OPENXML (Transact-SQL) OPENXML provides a rowset view over an XML document. Because OPENXML is a row ...
- regular expression 在线检测的网站
http://regexone.com/ 学习网站 http://regexone.com/lesson/optional_characters? http://regexone.com/less ...
- Redis in python, how do you close the connection?
down voteaccepted Just use redis.Redis. It uses a connection pool under the hood, so you don't have ...
- 如何编写linux下nand flash驱动-4
2. 软件方面 如果想要在Linux下编写Nand Flash驱动,那么就先要搞清楚Linux下,关于此部分的整个框架.弄明白,系统是如何管理你的nand flash的,以及,系统都帮你做 ...