access的ole对象换成mysql_ACCESS的Ole对象读取写入

Ole对象在Access中存储为二进制文件,读取的时候需要注意转换出的文件的编码格式

1

731655954c7be9d8835ece551b5385f8.pngOleDbConnection OleConn=newOleDbConnection();2731655954c7be9d8835ece551b5385f8.pngOleConn.ConnectionString=@"Provider=Microsoft.Jet.OleDb.4.0;data source=D:\WorkStation\Dialy_Sol\Dialy\Dialy.mdb";3731655954c7be9d8835ece551b5385f8.pngOleDbCommand OleCmd=newOleDbCommand();4731655954c7be9d8835ece551b5385f8.pngOleCmd.Connection=OleConn;5731655954c7be9d8835ece551b5385f8.pngOleCmd.CommandType=CommandType.Text;6731655954c7be9d8835ece551b5385f8.pngOleCmd.CommandText="SELECT Dialy_Content FROM Dialy_Info WHERE Dialy_Date='2008-5-2'";7731655954c7be9d8835ece551b5385f8.pngif(OleConn.State==ConnectionState.Closed)824a924a57ba6b3f2b51fc9edb7ea4186.png

9310e85a14af99de4811ff4c77f1f911.png222530190136c9c4cfd237cc0d5cff99.png{91408c5260b2f05e450dee929db9be5f7.pngOleConn.Open();10f466905a3bcb5dcef110eab799825254.png}11731655954c7be9d8835ece551b5385f8.pngstringDialyContent="";12731655954c7be9d8835ece551b5385f8.pngbyte[] Buff=newbyte[1000];13731655954c7be9d8835ece551b5385f8.pngOleDbDataReader OleReader=OleCmd.ExecuteReader();14731655954c7be9d8835ece551b5385f8.pngwhile(OleReader.Read())1524a924a57ba6b3f2b51fc9edb7ea4186.png

9310e85a14af99de4811ff4c77f1f911.png222530190136c9c4cfd237cc0d5cff99.png{161408c5260b2f05e450dee929db9be5f7.pngOleReader.GetBytes(0,0, Buff,0,1000);171408c5260b2f05e450dee929db9be5f7.pngDialyContent+=Encoding.Unicode.GetString(Buff);18f466905a3bcb5dcef110eab799825254.png}< /span>19< span style="color: #000000;">

731655954c7be9d8835ece551b5385f8.png//DialyContent就是读取出来后的中文

---------------------------下面是读取写入的示例---------------------------------

******* OleDbConnection conn;

public Form1()

{

InitializeComponent();

conn = new OleDbConnection();

conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\Database1.mdb";

conn.Open();

}

//it is for storing a file into database

******* void button1_Click(object sender, EventArgs e)

{

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

FileStream fs = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);

Byte[] buff = new Byte[fs.Length];

BinaryReader rd = new BinaryReader(fs);

rd.Read(buff, 0, Convert.ToInt32(fs.Length));

OleDbCommand command = new OleDbCommand("INSERT INTO 表1 ([object], path) VALUES(@object, @path)", conn);

command.Parameters.Add("@object", OleDbType.Binary, buff.Length).Value = buff;

command.Parameters.Add("@path", OleDbType.Char, 255).Value = openFileDialog1.FileName;

command.ExecuteNonQuery();

rd.Close();

fs.Close();

}

}

******* void Form1_FormClosed(object sender, FormClosedEventArgs e)

{

conn.Close();

}

//it is for reading the data from the database and store it to a file

******* void button2_Click(object sender, EventArgs e)

{

OleDbCommand command = new OleDbCommand("SELECT [object], path FROM 表1", conn);

OleDbDataReader dr = command.ExecuteReader();

FileStream fs;

BinaryWriter writer;

int bufferSize = 100;

byte[] outByte = new byte[bufferSize];

while(dr.Read())

{

string filename = dr.GetString(1);

fs = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write);

writer = new BinaryWriter(fs);

int startIndex = 0;

long retval = dr.GetBytes(0, startIndex, outByte, 0, bufferSize);

while (retval == bufferSize)

{

writer.Write(outByte);

writer.Flush();

startIndex += bufferSize;

retval = dr.GetBytes(0, startIndex, outByte, 0, bufferSize);

}

writer.Write(outByte, 0, (int)retval - 1);

writer.Flush();

writer.Close();

fs.Close();

}

dr.Close();

}

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

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

相关文章

C++之delete常见错误总结

1、动态分配内存后释放了一次,再次释放 1)直接删除2次 int main() {int *a = new int(50);cout<<*a<<endl;delete a;delete a;return 0; } 2)另外一个指针指向分配的内存,然后把这个2个指针都删除 int* p1 = new int(50); int* p2 = p1; //p2和p1 现在指向同一…

ABP vNext微服务架构详细教程——分布式权限框架(上)

1简介ABP vNext框架本身提供了一套权限框架&#xff0c;其功能非常丰富&#xff0c;具体可参考官方文档&#xff1a;https://docs.abp.io/en/abp/latest/Authorization但是我们使用时会发现&#xff0c;对于正常的单体应用&#xff0c;ABP vNext框架提供的权限系统没有问题&…

前端每隔几秒发送一个请求

2019独角兽企业重金招聘Python工程师标准>>> <html><head><SCRIPT LANGUAGE"JavaScript"> var timer;//声明一个定时器 var count 0; function test() { //每隔500毫秒执行一次add()方法 timer window.setInterval("add()"…

Android之走手机流量让电脑能上网几种方法

1、通过“USB共享网络"来使电脑上网 1)我是vivo手机&#xff0c;把手机插上电脑,打开usb调试&#xff0c;然后正常连接电脑 2&#xff09;在“设置”里面打开“个人热点”里面的“通过usb共享网络”开关 3&#xff09;切换网络连接&#xff0c;对比之前的没插上手机之前没…

element 表单回显验证_关于vue el-form表单报错的问题

在写el-form表单的时候&#xff0c;遇到了蛮多问题&#xff0c;在这里记录一下。1.表单验证报错[Element Warn][Form]model is required for validate to work!初始代码如下&#xff1a;<!-- 表单部分 --> <el-formref"inputForm"size"mini"inlin…

Objective-C NSSetNSMutableSet以及CountedSet

NSSet说实话,对这个类的应用,还不知道到底什么时候会用到,先过一遍脑子吧,以后有需要用到的时候,不至于陌生! #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { autoreleasepool { //创建4个NSNumber对象 NSNumber *obj1 [NSNumber number…

IOZONE测试工具使用方法(转载)

IOZONE主要用来测试操作系统文件系统性能的测试工具&#xff0c;该工具所测试的范围主要有&#xff0c;write , Re-write, Read, Re-Read, Random Read, Random Write, Random Mix, Backwards Read, Record Rewrite, Strided Read, Fwrite, Frewrite, Fread, Freread, Mmap, As…

如何通过 C# 判断某个 IP 所属的地区?

咨询区 RC1140如何通过 C# 判断某个 IP 所属的地区&#xff1f;这样我就可以方便统计。回答区 Jaimes可以借助第三方API接口&#xff0c;参考网址&#xff1a;https://ipapi.co/8.8.8.8/country/ &#xff0c; C# 代码如下&#xff1a;using System; using System.Net; using S…

4月12日 webform基本控件

服务器基本控件&#xff1a; button: text属性 linkbutton:text属性&#xff0c;它是一个超链接模样的普通button hyperlink: navigateurl:链接地址&#xff0c;相当于<a>标签 imagebutton:imageurl:指定图片路径&#xff0c;这也是一个按钮&#xff0c;执行click事件 im…

C/C++之函数返回值为指针或者是引用时常见错误总结

1、说明 函数如果是指针或则引用的返回,一般全局变量、局部静态变量、局部动态分配内存的变量可以使用作为函数的返回值,局部变量不行,因为局部变量函数调用完会自动销毁内存,这个时候返回的指针或则引用就有问题了。 2、展示代码 #include <iostream> #include <…

我做了一个 Istio Workshop,这是第一讲介绍

我是 Jimmy Song[1]&#xff0c;Tetrate 布道师&#xff0c;云原生社区创始人。你可以能想到为什么在这个时候创建一个 Istio 教程&#xff0c;因为市面上已经林林总总有不少关于 Istio 的书籍和教程了&#xff0c;但是我们都知道 Istio 是一个新兴技术&#xff0c;发展十分迅速…

Swoole入门指南:PHP7安装Swoole详细教程(一)

好久未更新了&#xff0c;不是懒呃&#xff0c;是太忙啦&#xff01;终于偷得浮生几日闲。这一段时间准备为大家带来swoole的入门教程&#xff0c;感受一下php的nodeJs强悍之处。 所有的示例代码均放在了github上&#xff1a;learn-swoole 环境 这里不在使用apache做为web serv…

mysql如何快速插入一千万条数据_如何快速安全的插入千万条数据?

最近有个需求解析一个订单文件&#xff0c;并且说明文件可达到千万条数据&#xff0c;每条数据大概在20个字段左右&#xff0c;每个字段使用逗号分隔&#xff0c;需要尽量在半小时内入库。思路1.估算文件大小因为告诉文件有千万条&#xff0c;同时每条记录大概在20个字段左右&a…

解决 同时安装 python3,python2环境时,用pip安装 python3 包

应用场景 默认mac上已经安装了 python2; 而我又安装了 python3&#xff0c;并使用 python3; 安装了 pip 默认&#xff0c;pip安装的包安装在了 python2上了&#xff1b; 但是我想用 pip把安装的包安装在 python3上 &#xff0c;所以如下解决方式&#xff1b; 1&#xff1a;在ma…

C/C++之#ifdef、#if、#if defined的区别

1、看代码 2、运行结果 3、分析 #fi&#xff1a;后面接的表达式&#xff0c;如果为1就编译包含里面的内容 #ifdef&#xff1a;后面接的是一个宏&#xff0c;只要定义这个宏就行 #if defined(x)&#xff1a;和#ifdef效果一样 #if !defined(x)&#xff1a;和#ifndef效果一样

如何下载EP的各个版本?

到teamCity上面去下载 http://adc00cbv.us.oracle.com:8090/ 这里面刚进去是什么都没有的&#xff0c;要点击 Configure visible projects 配置一下才会显示 EP的各个版本是在V6.1.1.X中去下载的&#xff0c;也即EP和prodika是在一起出release 版本的。 转载于:https://www.cnb…

mysql丢失链接_MySQL远程连接丢失问题解决方法

最近远程连接mysql总是提示Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0很明显这是连接初始化阶段就丢失了连接的错误其实问题很简单&#xff0c;都是MySQL的配置文件默认没有为远程连接配置好&#xff0c;只需要更改下MySQ…

.Net Core 读取文件时中文乱码问题的解决方法

背景今天在使用core web api上传txt文档的时候本来很顺利的&#xff0c;但是一测试发现读取的中文内容是乱码的&#xff0c;很是纳闷。出于经验&#xff0c;立马把代码的Encoding.Default改成 Encoding.uft8, 发现还是不行。后面索性把上传的文件另存为下&#xff0c;特地选择带…

mysql表空间被占用,同名表无法创建或导入

删除mysql表&#xff08;用的是innodb&#xff09;时没有用drop table命令&#xff0c;只是简单删除表目录&#xff0c;这导致表空间还存在&#xff0c;这样就不可以加同名表进去。当要重新导入新的同名表或者创建新的同名表时&#xff0c;会提示错误Error : Tablespace for ta…

C++编译代码的时候提示‘getInstance’ is not a member of ‘A’ A a = A::getInstance();解决办法

今天搞C类模板的时候&#xff0c;写个实例&#xff0c;发现提示下面的错误 ‘getInstance’ is not a member of ‘A’A& a A::getInstance();代码&#xff1a; class A {public:static T& Getinstance() {//}};//调用的时候写成了A::getinstance(); 解决办法&#…