C# 读写ACCESS的OLE对象,演示图片与长文件的读写
网络上的读写OLE对象的代码是多,不过多是转载的,大部分人从来都没实际测试过,只是COPY来COPY去。我重来没看到一个真正可以运行的东东。
没办法,只有自力更生,花了一点时间出了点研究成果,写到这里做个记录。
关键代码如下:
******* void button1_Click(object sender, EventArgs e) //写入图片
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "All Files|*.*";
if (dlg.ShowDialog() == DialogResult.OK)
{
string fileName = dlg.FileName;
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
//pictureBox1.Image = Image.FromFile(fileName);
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\db1.mdb" + ";Persist Security Info=True");
cn.Open();
OleDbCommand cmd = new OleDbCommand("INSERT INTO list1(pic) VALUES(@img)", cn);
((OleDbParameter)cmd.Parameters.Add("@img", OleDbType.Binary)).Value = buffer;
cmd.ExecuteNonQuery();
}
}
******* void button2_Click(object sender, EventArgs e) //读取图片
{
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\db1.mdb" + ";Persist Security Info=True");
cn.Open();
OleDbDataAdapter oda = new OleDbDataAdapter("select pic from list1 where 编号=10", cn);
DataTable dt = new DataTable();
oda.Fill(dt);
cn.Close();
byte[] buffer = dt.Rows[0][0] as byte[];
MemoryStream ms = new MemoryStream(buffer);
pictureBox1.Image = Image.FromStream(ms);
}
******* void button3_Click(object sender, EventArgs e) //写入长文本
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "TXT Files|*.txt";
if (dlg.ShowDialog() == DialogResult.OK)
{
string fileName = dlg.FileName;
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
//pictureBox1.Image = Image.FromFile(fileName);
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\db1.mdb" + ";Persist Security Info=True");
cn.Open();
OleDbCommand cmd = new OleDbCommand("INSERT INTO list1(pic) VALUES(@img)", cn);
((OleDbParameter)cmd.Parameters.Add("@img", OleDbType.Binary)).Value = buffer;
cmd.ExecuteNonQuery();
}
}
******* void button4_Click(object sender, EventArgs e) //载入长文本
{
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\db1.mdb" + ";Persist Security Info=True");
cn.Open();
OleDbDataAdapter oda = new OleDbDataAdapter("select pic from list1 where 编号=12", cn);
DataTable dt = new DataTable();
oda.Fill(dt);
cn.Close();
byte[] buffer = dt.Rows[0][0] as byte[];
//MemoryStream ms = new MemoryStream(buffer);
richTextBox1.Text =System.Text.Encoding.Default.GetString(buffer);
}
转载于:https://www.cnblogs.com/hackpig/archive/2010/02/15/1668441.html
C# 读写ACCESS的OLE对象,演示图片与长文件的读写相关推荐
- C# 操作Access的Ole对象
C# 操作Access的Ole对象 OLE对象数据类型 (1)OLE 对象用于使用 OLE 协议在其他程序中创建的 OLE 对象,如 Microsoft Word 文档. Microsoft Exce ...
- access的ole对象换成mysql_C# 操作Access的Ole对象[转]
OLE对象数据类型 (1)OLE 对象用于使用 OLE 协议在其他程序中创建的 OLE 对象,如 Microsoft Word 文档. Microsoft Excel 电子表格.图片.声音或其他二进制 ...
- C# Access中OLE对象的操作
有时候需要大数据的存取时,如图片,需要用到ole对象的操作. 首先,在默认文件中,添加两个名空间 using System.Data.OleDb; using System.IO; 一个用于数据库操作 ...
- ACCESS的Ole对象读取
Ole对象在Access中存储为二进制文件,读取的时候需要注意转换出的文件的编码格式 1OleDbConnection OleConn = new OleDbConnection(); 2OleC ...
- access的ole对象换成mysql_ACCESS的Ole对象读取写入
Ole对象在Access中存储为二进制文件,读取的时候需要注意转换出的文件的编码格式 1 OleDbConnection OleConn=newOleDbConnection();2OleConn.C ...
- access的ole对象换成mysql_Access OLE对象和附件的区别
OLE 对象 来自 Office 和基于 Windows 的程序的图像.文档.图形和其他对象 最多可存储 2GB 数据(此大小限制适用于所有 Access 数据库).请记住,添加 2GB 数据会导致数 ...
- php access ole相片,[求助]怎样读取ACCESS数据库中的OLE对象的图片啊???
使用流对象保存和显示图片 打开vb6,新建工程. 添加两个按钮,一个image控件 '** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本 '2 ...
- access ole 读取 java_从Access中读取OLE对象的bitmap,参数无效!
在Access数据库中存放了OLE对象的图片,如下所示,现在需要把它读取出来,存放到本地磁盘中,代码采用C#语言,但是一直提示参数无效,buffer中是有数据的,想问一下这个问题该怎么解决? priv ...
- MFC富文本编辑框richedit插入图片ole对象问题
MFC富文本编辑框richedit插入图片ole对象问题 学习了三四天的一点成果,如果有不对的地方还请指出. 目前发现有两种方法来向richedit中插入ole对象: 1.直接粘贴,然后使用回调函数来 ...
最新文章
- java自定义对话框_Flutter AlertDialog自定义对话框实现示例(确认或取消)
- 【洛谷 - P3376 】【模板】网络最大流
- python deepcopy_轻轻吐槽下python的deepcopy居然一点不deep
- 计算机二级access上机题,2017历年全国计算机二级access上机试题及答案
- final、finally 和 finalize的区别
- 微信公众号推文封面图设置
- 用word这么多年,90%的人居然不知道这12个小技巧
- Youtube视频码率,帧率,分辨率那些事
- html制作图片幻灯片效果代码,【JS+CSS3】实现带预览图幻灯片效果的示例代码
- js中Date函数获取今天星期几的方法
- android 长按复制,【转】TextView长按复制实现方法小结
- 传统6大茶类都有哪些
- 搞了三天终于成功跑起来GitHub上的vue-element-admin最新解决办法!(mac系统亲测有效)
- Multi-Faceted Distillation of Base-Novel Commonality for Few-shot Object Detection
- HTMLCSS实现经典登录注册页面
- 双目相机标定以及立体测距原理及OpenCV实现
- 使用python讲二进制转换为音频文件_Python使用ffmpy将amr格式的音频转化为mp3格式的例子...
- 智能家居项目开发(一):简单工厂设计模式引入
- 深度汉化GCompris-qt,免费的幼儿识字软件
- 前端复制粘贴navigator.clipboard失效的问题