vb2010(vb.net)貌似已經(jīng)沒有OLE控件
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了睢縣免費建站歡迎大家使用!
下面的代碼是用PictureBox控件顯示CAD的DWG文件
Private?Structure?BITMAPFILEHEADER
Dim?bfType?As?Short
Dim?bfSize?As?Integer
Dim?bfReserved1?As?Short
Dim?bfReserved2?As?Short
Dim?bfOffBits?As?Integer
End?Structure
Public?Function?GetDwgImage(ByVal?FileName?As?String)?As?Image
If?Not?File.Exists(FileName)?Then?Exit?Function
Dim?DwgF?As?FileStream????'文件流
Dim?PosSentinel?As?Integer??'文件描述塊的位置
Dim?br?As?BinaryReader??'讀取二進制文件
Dim?TypePreview?As?Integer?'縮略圖格式
Dim?PosBMP?As?Integer?'縮略圖位置
Dim?LenBMP?As?Integer?'縮略圖大小
Dim?biBitCount?As?Short?'縮略圖比特深度
Dim?biH?As?BITMAPFILEHEADER?'BMP文件頭,DWG文件中不包含位圖文件頭,要自行加上去
Dim?BMPInfo()?As?Byte??'包含在DWG文件中的BMP文件體
Dim?BMPF?As?New?MemoryStream??'保存位圖的內(nèi)存文件流
Dim?bmpr?As?New?BinaryWriter(BMPF)?'寫二進制文件類
Dim?myImg?As?Image
Try
DwgF?=?New?FileStream(FileName,?FileMode.Open,?FileAccess.Read)????'文件流
br?=?New?BinaryReader(DwgF)
DwgF.Seek(13,?SeekOrigin.Begin)?'從第十三字節(jié)開始讀取
PosSentinel?=?br.ReadInt32?'第13到17字節(jié)指示縮略圖描述塊的位置
DwgF.Seek(PosSentinel?+?30,?SeekOrigin.Begin)?'將指針移到縮略圖描述塊的第31字節(jié)
TypePreview?=?br.ReadByte?'第31字節(jié)為縮略圖格式信息,2?為BMP格式,3為WMF格式
Select?Case?TypePreview
Case?1
Case?2,?3
PosBMP?=?br.ReadInt32?'DWG文件保存的位圖所在位置
LenBMP?=?br.ReadInt32?'位圖的大小
DwgF.Seek(PosBMP?+?14,?SeekOrigin.Begin)?'移動指針到位圖塊
biBitCount?=?br.ReadInt16?'讀取比特深度
DwgF.Seek(PosBMP,?SeekOrigin.Begin)?'從位圖塊開始處讀取全部位圖內(nèi)容備用
BMPInfo?=?br.ReadBytes(LenBMP)??'不包含文件頭的位圖信息
br.Close()
DwgF.Close()
With?biH??'建立位圖文件頭
.bfType?=?H4D42
If?biBitCount??9?Then?.bfSize?=?54?+?4?*?(2?^?biBitCount)?+?LenBMP?Else?.bfSize?=?54?+?LenBMP
.bfReserved1?=?0?'保留字節(jié)
.bfReserved2?=?0?'保留字節(jié)
.bfOffBits?=?14?+?H28?+?1024?'圖像數(shù)據(jù)偏移
End?With
'以下開始寫入位圖文件頭
bmpr.Write(biH.bfType)?'文件類型
bmpr.Write(biH.bfSize)?'文件大小
bmpr.Write(biH.bfReserved1)?'0
bmpr.Write(biH.bfReserved2)?'0
bmpr.Write(biH.bfOffBits)?'圖像數(shù)據(jù)偏移
bmpr.Write(BMPInfo)?'寫入位圖
BMPF.Seek(0,?SeekOrigin.Begin)?'指針移到文件開始處
myImg?=?Image.FromStream(BMPF)?'創(chuàng)建位圖文件對象
Return?myImg
bmpr.Close()
BMPF.Close()
End?Select
Catch?ex?As?Exception
Return?Nothing
End?Try
End?Function
在access數(shù)據(jù)庫里將字段的類型設(shè)置為ole對象
Public img As Byte() '圖片處理用的字節(jié)數(shù)組
img=My.Computer.FileSystem.ReadAllBytes(filePath)'filePath是你圖片文件的路徑
剩下的就是數(shù)據(jù)庫插入操作了
Dim?cn?As?New?OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data?Source=Data.mdb")
Dim?comm?As?OleDb.OleDbCommand
comm?=?New?OleDb.OleDbCommand(?_
"INSERT?INTO?Photo(BuFan_F,PhotoNo,Photo)?Values('"??Me.CobBuFan.Text.Trim??"','"??Me.txtNo.Text.Trim??"',@image)",?cn)
'向數(shù)據(jù)庫添加存儲了圖片數(shù)據(jù)的二進制數(shù)組
comm.Parameters.Add("@image",?_
OleDb.OleDbType.Binary,?img.Length).Value?=?img
If?cn.State?=?ConnectionState.Closed?Then?cn.Open()?'打開數(shù)據(jù)庫連接
comm.ExecuteNonQuery()?'執(zhí)行數(shù)據(jù)庫命令
If?cn.State?=?ConnectionState.Open?Then?cn.Close()?'關(guān)閉數(shù)據(jù)庫連接
MessageBox.Show("圖片成功保存到數(shù)據(jù)庫",?"完成",?MessageBoxButtons.OK,?MessageBoxIcon.Information)
使用 ADO 連接到 Excel
ADO 使用 MDAC 中以下兩個 OLE DB 提供程序中的任何一個都可以連接到 Excel 數(shù)據(jù)文件。
Microsoft Jet OLE DB Provider — 或 —Microsoft OLE DB Provider for ODBC Drivers
使用 Microsoft Jet OLE DB Provider
Jet 提供程序只需要兩條信息就可以連接到 Excel 數(shù)據(jù)源:路徑(包括文件名),和 Excel 文件版本。
Jet 提供程序使用連接字符串
Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=C:\MyFolder\MyWorkbook.xls;" _
"Extended Properties=Excel 8.0;"
.Open
End With
提供程序版本:必須使用 Jet 4.0 提供程序;Jet 3.51 提供程序不支持 Jet ISAM 驅(qū)動程序。如果指定了 Jet 3.51 提供程序,在運行時會出現(xiàn)以下錯誤信息:
Couldn't find installable ISAM.
Excel 版本:對于 Excel 95 工作簿(Excel 版本 7.0),應(yīng)指定 Excel 5.0;對于 Excel 97、Excel 2000 或 Excel 2002 (XP) 工作簿(Excel 版本 8.0、9.0 和 10.0),應(yīng)指定 Excel 8.0 版本。
使用“數(shù)據(jù)鏈接屬性”對話框的 Jet 提供程序
如果在應(yīng)用程序中使用“ADO 數(shù)據(jù)控件”或“數(shù)據(jù)環(huán)境”,就會出現(xiàn)數(shù)據(jù)鏈接屬性對話框來收集必要的連接設(shè)置。
在提供程序選項卡上,選擇 Jet 4.0 提供程序;Jet 3.51 提供程序不支持 Jet ISAM 驅(qū)動程序。如果指定了 Jet 3.51 提供程序,在運行時會出現(xiàn)以下錯誤信息:
Couldn't find installable ISAM.
在連接選項卡上,瀏覽到工作簿文件。忽略“用戶 ID”和“密碼”項,因為這些不適用于 Excel 連接。(無法打開受密碼保護的 Excel 文件作為數(shù)據(jù)源。)
在所有選項卡上,從列表中選擇擴展屬性,然后單擊編輯值。輸入 Excel 8.0;,用分號 (;) 將其與任何其他已有的項分隔。如果忽略此步驟,測試連接時將出現(xiàn)一條錯誤信息。這是因為如果不另行指定,Jet 提供程序期望 Microsoft Access 數(shù)據(jù)庫。返回到連接選項卡,并單擊測試連接。將出現(xiàn)一個消息框,通知測試已成功完成即可。
本文名稱:vb.net中ole,vb和net
轉(zhuǎn)載來于:http://www.chinadenli.net/article44/dseoeee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站設(shè)計、App設(shè)計、、網(wǎng)站建設(shè)、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)