80分求救:VB.Net怎么样读取数据库中OLE对象?

wsrxm 2003-12-02 12:41:18
VB.Net怎么样读取数据库中OLE对象?在VB6中有OLE控件,在.Net该怎么用呢?
...全文
152 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
DragonPro 2003-12-15
  • 打赏
  • 举报
回复
Dim mystr As MemoryStream
Dim i As Byte()
i = temset.Tables(0).Rows(0).Item("content") '这个字段是ole对象,产生异常???
mystr.Read(i, 0, i.Length)
RTB.LoadFile(mystr, RichTextBoxStreamType.RichText)

产生异常,指定转换无效,我也不知怎样转换,唉
DragonPro 2003-12-14
  • 打赏
  • 举报
回复
upupupup,我也需要个东东,大家多多讨论啊
wsrxm 2003-12-03
  • 打赏
  • 举报
回复
读图象并且显示出来可能没有问题,但是有很多类型的文件都放进去了,那该怎么办呢?
kuailexq2000 元老 2003-12-02
  • 打赏
  • 举报
回复
oracle 中OLE对象连接数据库
Public cntForOleDb As New OleDb.OleDbConnection()
...

Public Function WiseDatabaseConnectForADONet(ByVal strWiseOraTNS As String, ByVal strWiseUserName As String, ByVal strWiseUserPassword As String) As Boolean
Dim booReturnValue As Boolean
booReturnValue = False
If cntForOleDb.State <> ConnectionState.Open Then
Try
cntForOleDb.ConnectionString = "Provider=MSDAORA.1;Password=" & strWiseUserPassword & ";User ID=" & strWiseUserName & ";Data Source=" & strWiseOraTNS
cntForOleDb.Open()
booReturnValue = True
Catch myException As System.Exception
Call WiseErrorDeal("WiseDatabaseConnectForADONet", Err)
End Try
End If
Return booReturnValue
End Function
-----------------------------------------------------------------------------
建议你找本书.:)
youngby 2003-12-02
  • 打赏
  • 举报
回复
建议看看《ADO.NET技术内幕》
youngby 2003-12-02
  • 打赏
  • 举报
回复
在早期的,ADO是通过应用程序访问OLEDB的方法,OLEDB是MS的进行通用数据访问的访问方法,而不管数据是否留在关系数据库,文件系统,电子邮件服务器中。
在.net中使用的是SYSTEM.DATA命名空间。即使ADO.NET技术。
ADO.NET提供了两中访问数据的基本方法:通过DATAREADER和DATASET。
DATAREADER是只向前读的数据流的,仅仅用于对数据进行快度有效的访问,也是与原本的RECORDSET最接近的方法。
menuvb 2003-12-02
  • 打赏
  • 举报
回复
将图像保存到ole中
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim mystr As New System.IO.FileStream(bmpstr, IO.FileMode.Open)
Dim data As Byte()
ReDim data(mystr.Length - 1)
mystr.Read(data, 0, mystr.Length)
mystr.Close()
Dim sql As String
sql = "select * from bmp "
adocmd = New OleDbDataAdapter(sql, "provider=microsoft.jet.oledb.4.0;data source=E:\Vb.net\图像保存到数据库中\db1.mdb")
adocmd.Fill(ds, "bmp")
mytable = ds.Tables.Item(0)
Dim newmyrow As DataRow
newmyrow = mytable.NewRow
newmyrow.Item(0) = data
mytable.Rows.Add(newmyrow)
'adocmd.Update(mytable.GetChanges)
mytable.GetChanges()
cmd = New OleDbCommandBuilder(adocmd)
adocmd.Update(ds, "bmp")
MsgBox("添加图像成功)")
End Sub
menuvb 2003-12-02
  • 打赏
  • 举报
回复
读取ole中的图像
Dim data As Byte()
Dim sql As String
sql = "select * from bmp "
adocmd = New OleDbDataAdapter(sql, "provider=microsoft.jet.oledb.4.0;data source=E:\Vb.net\图像保存到数据库中\db1.mdb")
adocmd.Fill(ds, "bmp")
mytable = ds.Tables.Item(0)
data = ds.Tables(0).Rows(0).Item(0)
' Dim app As String = Application.StartupPath
Dim myfilestream As New System.IO.FileStream(Application.StartupPath & "\monkey.bmp", IO.FileMode.Create)
myfilestream.Write(data, 0, data.Length)
myfilestream.Close()
PictureBox1.Image = New Bitmap(Application.StartupPath & "\monkey.bmp")
aidy 2003-12-02
  • 打赏
  • 举报
回复
不知道是否可以先将OLE字段读入一个临时文件中,再对这个临时文件进行处理
wsrxm 2003-12-02
  • 打赏
  • 举报
回复
up
wsrxm 2003-12-02
  • 打赏
  • 举报
回复
难道没有人碰到过?
wsrxm 2003-12-02
  • 打赏
  • 举报
回复
想法是好,可是不实用

因为OLE有那么多种格式,并不是仅仅放的是图片,可能是Word文件呀

rock29 2003-12-02
  • 打赏
  • 举报
回复
注意,是我想的,没试过:))
rock29 2003-12-02
  • 打赏
  • 举报
回复
1 放一个picture控件
2 Imports System.IO
Private Sub ShowImage(ByVal s As String)
cn = New SqlClient.SqlConnection(SqlConnection1.ConnectionString)
cn.Open()
Dim str As String = "SELECT photo FROM Photos WHERE name='" & s & "'"
Dim cmd As New SqlClient.SqlCommand(str, cn)
TextBox1.Text = s
Dim b() As Byte
b = cmd.ExecuteScalar()
If (b.Length > 0) Then
Dim stream As New MemoryStream(b, True)
stream.Write(b, 0, b.Length)
DrawToScale(New Bitmap(stream))
stream.Close()
End If
cn.Close()
End Sub
3 Private Sub DrawToScale(ByVal bmp As Image)
PictureBox1.Image = New Bitmap(bmp)
End Sub
4 'Insert image into database,you can copy this codes in a button
Dim st As New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read)
Dim s As String = TextBox1.Text
Dim mbr As BinaryReader = New BinaryReader(st)
Dim buffer(st.Length) As Byte
mbr.Read(buffer, 0, CInt(st.Length))
st.Close()
InsertImage(buffer, s)
5 Public Function InsertImage(ByRef buffer, ByVal str)
cn = New SqlClient.SqlConnection(SqlConnection1.ConnectionString)
cn.Open()
Dim cmd As New SqlClient.SqlCommand("sp_InsertPhoto", cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = TextBox1.Text
cmd.Parameters.Add("@image", SqlDbType.Image).Value = buffer
cmd.ExecuteNonQuery()
MsgBox("Image inserted")
cn.Close()
End Function

wsrxm 2003-12-02
  • 打赏
  • 举报
回复
等待中.............
wsrxm 2003-12-02
  • 打赏
  • 举报
回复
这只是仅仅读取亚,最重要的是表现出来,就象VB6中OLE控件来表现,VB.NET用什么来表现呢?

16,720

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧