VB.NET对图片读取操作

VB.NET对图片的操作,SQL数据库中存取字段类型Image,下面对图片读取代码:

界面如下:

       









 1、 上传按钮代码  

   Dim L_Err As String = ""
        Dim opd As OpenFileDialog = New OpenFileDialog()
        opd.CheckFileExists = True
        opd.CheckPathExists = True
        opd.RestoreDirectory = True
        opd.DefaultExt = "*.*"
        opd.Filter = "图像文件 (*.bmp;*.gif;*.jpg;*.jpeg;*.png)|*.bmp;*.gif;*.jpg;*.jpeg;*.png"
        opd.ShowDialog()
        If opd.FileName <> "" Then
            Me.PicBox.Image = Image.FromFile(opd.FileName)
            Me.PicBox.ImageLocation = opd.FileName
        End If
2、确定按钮代码

     If ToStr(Me.PicBox.ImageLocation).Trim() <> "" Then
            Try
                Dim sSql1 As String = ""
               'sSql1 = "insert into U_CallInfoSet(backImage) values(@fs)"  //插入或者更新语句
                sSql1 = "update U_CallInfoSet set backImage=@fs"
                SqlHelper.ExecuteSqlWithImg(sSql1, My.Computer.FileSystem.ReadAllBytes(Me.PicBox.ImageLocation))
             
            Catch ex As Exception
                MessageBox.Show(ex.ToString())
            End Try
        End If
    Public Function ToStr(ByVal obj As Object) As String
        If IsDBNull(obj) Then
            Return ""
        Else
            If obj Is Nothing Then
                Return ""
            Else
                Return obj.ToString().Trim()
            End If
        End If
    End Function


3、界面加载事件显示

   '取得数据库字段 dt.Rows(0)("Pic")

     If  dt.Rows(0)("Pic") Is DBNull.Value Then
        Me.PicBox.Image = Nothing
     Else
        Me.PicBox.Image = GetImage(dt.Rows(0)("Pic"))
     End If
4、需要用到的方法

 

    ''' <summary>
    ''' 字节数组转换为Image类型
    ''' </summary>
    ''' <param name="bData"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function GetImage(ByVal bData As Byte()) As Image
        Try
            Using fStream As Stream = New MemoryStream(bData.Length)
                Dim bWriter As New BinaryWriter(fStream)
                bWriter.Write(DirectCast(bData, Byte()))
                bWriter.Flush()
                Dim bitMap As New System.Drawing.Bitmap(fStream)
                bWriter.Close()
                fStream.Close()
                Dim iImage As Image = System.Drawing.Image.FromHbitmap(bitMap.GetHbitmap())
                Return iImage
            End Using
        Catch e As System.IO.IOException
            Throw New Exception(e.Message & "Read image data error!")
        End Try
    End Function

    ''' <summary>
    ''' 处理SQL中操作Image类型
    ''' </summary>
    ''' <param name="strSQL">SQL语句</param>
    ''' <param name="fs">图像字节,数据库的字段类型为image的情况</param>
    ''' <returns>影响的记录数</returns>
    Public Shared Function ExecuteSqlWithImg(ByVal strSQL As String, ByVal fs As Byte()) As Integer
        Dim strCon As String = "Data Source=xxx;Initial Catalog=temp;User ID=sa;Password=123"
        Using connection As New SqlConnection(strCon)
            Dim cmd As New SqlCommand(strSQL, connection)
            Dim myParameter As New System.Data.SqlClient.SqlParameter("@fs", SqlDbType.Image)
            myParameter.Value = fs
            cmd.Parameters.Add(myParameter)
            Try
                connection.Open()
                Dim rows As Integer = cmd.ExecuteNonQuery()
                Return rows
            Catch e As System.Data.SqlClient.SqlException
                Throw e
            Finally
                cmd.Dispose()
                connection.Close()
            End Try
        End Using
    End Function
  OK!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值