-
大小: 41KB文件類型: .rar金幣: 2下載: 1 次發布日期: 2021-06-12
- 語言: C#
- 標簽: access2007??ole對象??圖片??c#??
資源簡介
手工添加的access ole對象批量導出問題
困擾了我很久
現在已經解決了 希望能夠幫助到大家!
附有用鏈接
http://dotnet.aspx.cc/file/Removing-OLE-Header-from-images-stored-in-MS-Access-DB-as-OLE-Object.aspx

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Text;
using?System.Windows.Forms;
using?System.Data.OleDb;
using?System.IO;
namespace?WindowsFormsApplication1
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
????????private?void?Form1_Load(object?sender?EventArgs?e)
????????{
????????}
????????//以下是從手工添加了ole對象的access2007數據庫中導出二進制圖片到本地的方法?具體使用情況請根據實際進行修改
????????//注意?手工添加ole對象與程序寫入ole對象相比?會多出來一個文件頭?所以在從數據庫取出二進制圖片后?需要進行去
????????//文件頭的步驟
????????//該問題困擾了我很久?故上傳?希望能幫助到大家
????????//如果你有足夠的能耐?請聯系mail@misxiu.com??新創業公司?期待您的加盟!一起書寫商業傳奇!
????????//2011年7月10日凌晨于杭州
????????private?void?button1_Click(object?sender?EventArgs?e)
????????{
????????????string?conStr?=?“Provider=Microsoft.ACE.OLEDB.12.0;Data?Source=E:\\123.accdb“;
????????????string?accessAtr?=?“Select?編號回單掃描圖片?From?調度單?where?回單掃描圖片?is?not?null?“;
????????????OleDbConnection?oleDbCon?=?new?OleDbConnection(conStr);
????????????oleDbCon.Open();
????????????OleDbCommand?oleDbCom?=?oleDbCon.CreateCommand();
????????????//oleDbCom.CommandType?=?CommandType.Text;
????????????oleDbCom.CommandText?=?accessAtr;
????????????OleDbDataReader?oleDbDR?=?oleDbCom.ExecuteReader();
????????????try
????????????{
????????????????while?(oleDbDR.Read())
????????????????{?
????????????????????byte[]?bfile?=?(byte[])?oleDbDR.GetValue(1);
????????????????????bfile?=?GetImageBytesFromOLEField(bfile);//如果是手工添加的ole對象?必須執行此步驟
???????????????????
???????????????????using?(MemoryStream?ms?=?new?MemoryStream(bfile))
????????????????????{
????????????????????????try
????????????????????????{
????????????????????????????using?(Image?bigPhoto?=?Image.FromStream(ms))
????????????????????????????{
????????????????????????????????bigPhoto.Save(“E://photo/“?+?oleDbDR.GetValue(0)?+?“.jpg“);
????????????????????????????}
????????????????????????}
????????????????????????catch
????????????????????????{
????????????????????????}
????????????????????}
????????????????}
????????????}
????????????finally
????????????{
????????????????oleDbDR.Close();
????????????????oleDbCon.Close();
????????????}
????????}
????????//手工添加ole對象?去文件頭方法
????????private?byte[]?GetImageBytesFromOLEField(byte[]?oleFieldBytes)
????????{
????????????
????????????const?string?BITMAP_ID_BLOCK?=?“BM“;
????????????const?string?JPG_ID_BLOCK?=?“\u00FF\u00D8\u00FF“;
????????????const?string?PNG_ID_BLOCK?=?“\u0089PNG\r\n\u001a\n“;
????????????const?string?GIF_ID_BLOCK?=?“GIF8“;
????????????const?string?TIFF_ID_BLOCK?=?“II*\u0000“;
????????????byte[]?imageBytes;
????????????//?Get?a?UTF7?Encoded?string?version
????????????Encoding?u8?=?Encoding.UTF7;
????????????string?strTemp?=?u8.GetString(oleFieldBytes);
????????????//?Get?the?first?300?characters?from?the?string
?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????10240??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe
?????文件??????22016??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.pdb
?????文件??????11600??2011-07-09?23:46??WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.vshost.exe
?????文件???????4782??2011-07-10?04:06??WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs
?????文件???????2037??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\Form1.Designer.cs
?????文件???????5817??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\Form1.resx
?????文件???????4440??2011-07-09?23:45??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????6256??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件????????296??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86\Debug\GenerateResource.read.1.tlog
?????文件????????758??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86\Debug\GenerateResource.write.1.tlog
?????文件????????907??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.csproj.FileListAbsolute.txt
?????文件??????10240??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.exe
?????文件????????180??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.Form1.resources
?????文件??????22016??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.pdb
?????文件????????180??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86\Debug\WindowsFormsApplication1.Properties.Resources.resources
?????文件????????505??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\Program.cs
?????文件???????1380??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\Properties\AssemblyInfo.cs
?????文件???????2896??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\Properties\Resources.Designer.cs
?????文件???????5612??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\Properties\Resources.resx
?????文件???????1107??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\Properties\Settings.Designer.cs
?????文件????????249??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\Properties\Settings.settings
?????文件???????3707??2011-07-09?19:52??WindowsFormsApplication1\WindowsFormsApplication1\WindowsFormsApplication1.csproj
?????文件????????914??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1.sln
????..A..H.?????18432??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1.suo
?????目錄??????????0??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86\Debug\TempPE
?????目錄??????????0??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86\Debug
?????目錄??????????0??2011-07-09?23:55??WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug
?????目錄??????????0??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\obj\x86
?????目錄??????????0??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\bin
?????目錄??????????0??2011-07-09?19:50??WindowsFormsApplication1\WindowsFormsApplication1\obj
............此處省略6個文件信息
- 上一篇:C#做注冊界面 驗證
- 下一篇:IEEE754浮點數轉換器C#實現
評論
共有 條評論