下面是简单试例,使用.NET For Oracle Data Provider
Imports System.Data.OracleClient
UpdateDeptLOGO方法是将图片更新到数据库。
ShowDeptLOGO方法是将图片取出来放到PictureBox上。
至于输出到Asp.net页面上也类似,只不过目标变为Response了
可以用Response.BinaryWrite方法,将图片的Byte()输出。
Public Sub UpdateDeptLOGO(ByVal intDeptNO As Integer, ByVal bytsLogo As Byte())
Dim strSql As String = "UPDATE DEPT_LOGO SET LOGO=:PI_LOGO WHERE DEPTNO=:PI_DEPTNO"
Try
objConn = New OracleConnection(strConn)
objComm = New OracleCommand(strSql, objConn)
objComm.Parameters.Add("PI_LOGO", OracleType.Blob).Value = bytsLogo
objComm.Parameters.Add("PI_DEPTNO", OracleType.Number).Value = intDeptNO
objConn.Open()
objComm.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Not objConn Is Nothing Then
objConn.Close()
End If
End Try
End Sub
Public Sub ShowDeptLOGO(ByVal intDeptNO As Integer)
Dim strSql As String = "SELECT LOGO FROM DEPT_LOGO WHERE DEPTNO=:PI_DEPTNO"
Dim objDataReader As OracleDataReader
Dim bytsLogo() As Byte
Dim ms As MemoryStream
Try
objConn = New OracleConnection(strConn)
objComm = New OracleCommand(strSql, objConn)
objComm.Parameters.Add("PI_DEPTNO", OracleType.Number).Value = intDeptNO
objConn.Open()
objDataReader = objComm.ExecuteReader(CommandBehavior.SequentialAccess)
If objDataReader.Read() Then
ms = New MemoryStream(CType(objDataReader.GetValue(0), Byte()))
Me.PictureBox1.Image = New Bitmap(ms)
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Not objConn Is Nothing Then
objConn.Close()
End If
End Try
End Sub
Public Shared Function GetPicture(ByVal filePath As String) As Byte()
Dim fs As FileStream = New FileStream(filePath, FileMode.Open, FileAccess.Read)
Dim br As BinaryReader = New BinaryReader(fs)