网络上的读写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对象,演示图片与长文件的读写相关推荐

  1. C# 操作Access的Ole对象

    C# 操作Access的Ole对象 OLE对象数据类型 (1)OLE 对象用于使用 OLE 协议在其他程序中创建的 OLE 对象,如 Microsoft Word 文档. Microsoft Exce ...

  2. access的ole对象换成mysql_C# 操作Access的Ole对象[转]

    OLE对象数据类型 (1)OLE 对象用于使用 OLE 协议在其他程序中创建的 OLE 对象,如 Microsoft Word 文档. Microsoft Excel 电子表格.图片.声音或其他二进制 ...

  3. C# Access中OLE对象的操作

    有时候需要大数据的存取时,如图片,需要用到ole对象的操作. 首先,在默认文件中,添加两个名空间 using System.Data.OleDb; using System.IO; 一个用于数据库操作 ...

  4. ACCESS的Ole对象读取

    Ole对象在Access中存储为二进制文件,读取的时候需要注意转换出的文件的编码格式  1OleDbConnection OleConn = new OleDbConnection();  2OleC ...

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

    Ole对象在Access中存储为二进制文件,读取的时候需要注意转换出的文件的编码格式 1 OleDbConnection OleConn=newOleDbConnection();2OleConn.C ...

  6. access的ole对象换成mysql_Access OLE对象和附件的区别

    OLE 对象 来自 Office 和基于 Windows 的程序的图像.文档.图形和其他对象 最多可存储 2GB 数据(此大小限制适用于所有 Access 数据库).请记住,添加 2GB 数据会导致数 ...

  7. php access ole相片,[求助]怎样读取ACCESS数据库中的OLE对象的图片啊???

    使用流对象保存和显示图片 打开vb6,新建工程. 添加两个按钮,一个image控件 '** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本 '2 ...

  8. access ole 读取 java_从Access中读取OLE对象的bitmap,参数无效!

    在Access数据库中存放了OLE对象的图片,如下所示,现在需要把它读取出来,存放到本地磁盘中,代码采用C#语言,但是一直提示参数无效,buffer中是有数据的,想问一下这个问题该怎么解决? priv ...

  9. MFC富文本编辑框richedit插入图片ole对象问题

    MFC富文本编辑框richedit插入图片ole对象问题 学习了三四天的一点成果,如果有不对的地方还请指出. 目前发现有两种方法来向richedit中插入ole对象: 1.直接粘贴,然后使用回调函数来 ...

最新文章

  1. java自定义对话框_Flutter AlertDialog自定义对话框实现示例(确认或取消)
  2. 【洛谷 - P3376 】【模板】网络最大流
  3. python deepcopy_轻轻吐槽下python的deepcopy居然一点不deep
  4. 计算机二级access上机题,2017历年全国计算机二级access上机试题及答案
  5. final、finally 和 finalize的区别
  6. 微信公众号推文封面图设置
  7. 用word这么多年,90%的人居然不知道这12个小技巧
  8. Youtube视频码率,帧率,分辨率那些事
  9. html制作图片幻灯片效果代码,【JS+CSS3】实现带预览图幻灯片效果的示例代码
  10. js中Date函数获取今天星期几的方法
  11. android 长按复制,【转】TextView长按复制实现方法小结
  12. 传统6大茶类都有哪些
  13. 搞了三天终于成功跑起来GitHub上的vue-element-admin最新解决办法!(mac系统亲测有效)
  14. Multi-Faceted Distillation of Base-Novel Commonality for Few-shot Object Detection
  15. HTMLCSS实现经典登录注册页面
  16. 双目相机标定以及立体测距原理及OpenCV实现
  17. 使用python讲二进制转换为音频文件_Python使用ffmpy将amr格式的音频转化为mp3格式的例子...
  18. 智能家居项目开发(一):简单工厂设计模式引入
  19. 深度汉化GCompris-qt,免费的幼儿识字软件
  20. 前端复制粘贴navigator.clipboard失效的问题

热门文章

  1. 详解MQ消息队列及四大主流MQ的优缺点
  2. Integer 值判断相等
  3. python基础 dict和set
  4. saej1929_(1929年-2020年)
  5. Node.js 可以和 Web 实现 HTTP 请求的跨平台兼容了!
  6. axios怎么封装,才能提升效率?
  7. Github上最受欢迎的Python轻量级框架Flask入门
  8. java类中,成员变量赋值第一个进行,其次是静态构造函数,再次是构造函数
  9. 数组实现矩阵逐层向内层加1
  10. paper 17 : 机器学习算法思想简单梳理