Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Vb.net中从SQL Server检索图像_Vb.net_Sql Server 2008 - Fatal编程技术网

无法在Vb.net中从SQL Server检索图像

无法在Vb.net中从SQL Server检索图像,vb.net,sql-server-2008,Vb.net,Sql Server 2008,我有一个数据库,它的字段名如下,并且在同一个表中,它还有一个字段名“photo”,数据类型为Varbinary(max) 我在存储图像方面没有问题,但是当我试图从数据库显示图像文件时,它没有显示任何内容,并且我得到一个错误“无法将'System.String'类型的对象强制转换为'System.Byte[]” 您尝试使用提取图像数据,但此方法返回第一行的第一列,并且在查询中,此数据是字段Last\u Name的内容。这就是错误的原因 那么,我想你应该把你的逻辑应用到现场图片的内容上 Sub fi

我有一个数据库,它的字段名如下,并且在同一个表中,它还有一个字段名“photo”,数据类型为Varbinary(max)

我在存储图像方面没有问题,但是当我试图从数据库显示图像文件时,它没有显示任何内容,并且我得到一个错误“无法将'System.String'类型的对象强制转换为'System.Byte[]”


您尝试使用提取图像数据,但此方法返回第一行的第一列,并且在查询中,此数据是字段
Last\u Name
的内容。这就是错误的原因

那么,我想你应该把你的逻辑应用到现场图片的内容上

Sub fillDataFields()
    Dim mid As String
    Dim last As String
    Dim first As String

    con.Open()
    comm.CommandText = "Select last_name,middle_name,first_name,course, section, address, " & _
                       "birthday, picture from Users where user_id like @uid"
    comm.Connection = con
    comm.Parameters.AddWithValue("@uid", "%" & frmUsers.ListView1.SelectedItems(0).Text & "%")
    dr = comm.ExecuteReader
    While (dr.Read())
        last = (dr("last_name"))
        mid = (dr("middle_name"))
        first = (dr("first_name"))
        txtCourse.Text = (dr("course"))
        txtSection.Text = (dr("section"))
        richtxtAddress.Text = (dr("address"))
        txtBirthday.Text = (dr("birthday"))
        txtName.Text = last + ", " + first + " " + mid

        Dim imageData As Byte() = DirectCast(dr("picture"), Byte())
        If Not imageData Is Nothing Then
            Using ms As New MemoryStream(imageData, 0, imageData.Length)
               ms.Write(imageData, 0, imageData.Length)
               PictureBox1.BackgroundImage = Image.FromStream(ms, True)
           End Using
        End If
    End While
    con.Close()
    dr.Close()
    comm.Dispose()
End Sub

请注意,我还删除了字符串连接,因为它是一个安全性rìsk(Sql注入)。您还应该修改此代码,以便为尝试使用的

提取图像数据应用所需的逻辑,但此方法返回第一行的第一列,并且在您的查询中,此数据是字段
姓氏
的内容。这就是错误的原因

那么,我想你应该把你的逻辑应用到现场图片的内容上

Sub fillDataFields()
    Dim mid As String
    Dim last As String
    Dim first As String

    con.Open()
    comm.CommandText = "Select last_name,middle_name,first_name,course, section, address, " & _
                       "birthday, picture from Users where user_id like @uid"
    comm.Connection = con
    comm.Parameters.AddWithValue("@uid", "%" & frmUsers.ListView1.SelectedItems(0).Text & "%")
    dr = comm.ExecuteReader
    While (dr.Read())
        last = (dr("last_name"))
        mid = (dr("middle_name"))
        first = (dr("first_name"))
        txtCourse.Text = (dr("course"))
        txtSection.Text = (dr("section"))
        richtxtAddress.Text = (dr("address"))
        txtBirthday.Text = (dr("birthday"))
        txtName.Text = last + ", " + first + " " + mid

        Dim imageData As Byte() = DirectCast(dr("picture"), Byte())
        If Not imageData Is Nothing Then
            Using ms As New MemoryStream(imageData, 0, imageData.Length)
               ms.Write(imageData, 0, imageData.Length)
               PictureBox1.BackgroundImage = Image.FromStream(ms, True)
           End Using
        End If
    End While
    con.Close()
    dr.Close()
    comm.Dispose()
End Sub

请注意,我还删除了字符串连接,因为它是一个安全性rìsk(Sql注入)。您还应该修改此代码,以便为尝试使用的

提取图像数据应用所需的逻辑,但此方法返回第一行的第一列,并且在您的查询中,此数据是字段
姓氏
的内容。这就是错误的原因

那么,我想你应该把你的逻辑应用到现场图片的内容上

Sub fillDataFields()
    Dim mid As String
    Dim last As String
    Dim first As String

    con.Open()
    comm.CommandText = "Select last_name,middle_name,first_name,course, section, address, " & _
                       "birthday, picture from Users where user_id like @uid"
    comm.Connection = con
    comm.Parameters.AddWithValue("@uid", "%" & frmUsers.ListView1.SelectedItems(0).Text & "%")
    dr = comm.ExecuteReader
    While (dr.Read())
        last = (dr("last_name"))
        mid = (dr("middle_name"))
        first = (dr("first_name"))
        txtCourse.Text = (dr("course"))
        txtSection.Text = (dr("section"))
        richtxtAddress.Text = (dr("address"))
        txtBirthday.Text = (dr("birthday"))
        txtName.Text = last + ", " + first + " " + mid

        Dim imageData As Byte() = DirectCast(dr("picture"), Byte())
        If Not imageData Is Nothing Then
            Using ms As New MemoryStream(imageData, 0, imageData.Length)
               ms.Write(imageData, 0, imageData.Length)
               PictureBox1.BackgroundImage = Image.FromStream(ms, True)
           End Using
        End If
    End While
    con.Close()
    dr.Close()
    comm.Dispose()
End Sub

请注意,我还删除了字符串连接,因为它是一个安全性rìsk(Sql注入)。您还应该修改此代码,以便为尝试使用的

提取图像数据应用所需的逻辑,但此方法返回第一行的第一列,并且在您的查询中,此数据是字段
姓氏
的内容。这就是错误的原因

那么,我想你应该把你的逻辑应用到现场图片的内容上

Sub fillDataFields()
    Dim mid As String
    Dim last As String
    Dim first As String

    con.Open()
    comm.CommandText = "Select last_name,middle_name,first_name,course, section, address, " & _
                       "birthday, picture from Users where user_id like @uid"
    comm.Connection = con
    comm.Parameters.AddWithValue("@uid", "%" & frmUsers.ListView1.SelectedItems(0).Text & "%")
    dr = comm.ExecuteReader
    While (dr.Read())
        last = (dr("last_name"))
        mid = (dr("middle_name"))
        first = (dr("first_name"))
        txtCourse.Text = (dr("course"))
        txtSection.Text = (dr("section"))
        richtxtAddress.Text = (dr("address"))
        txtBirthday.Text = (dr("birthday"))
        txtName.Text = last + ", " + first + " " + mid

        Dim imageData As Byte() = DirectCast(dr("picture"), Byte())
        If Not imageData Is Nothing Then
            Using ms As New MemoryStream(imageData, 0, imageData.Length)
               ms.Write(imageData, 0, imageData.Length)
               PictureBox1.BackgroundImage = Image.FromStream(ms, True)
           End Using
        End If
    End While
    con.Close()
    dr.Close()
    comm.Dispose()
End Sub


请注意,我还删除了字符串连接,因为它是一个安全性rìsk(Sql注入)。您还应该修改此代码,以便为

快速注释应用所需的逻辑,内联SQL不好。它非常容易受到SQL注入攻击。考虑使用参数化的SQL.Quote,内联SQL是坏的。它非常容易受到SQL注入攻击。考虑使用参数化的SQL.Quote,内联SQL是坏的。它非常容易受到SQL注入攻击。考虑使用参数化的SQL.Quote,内联SQL是坏的。它非常容易受到SQL注入攻击。考虑使用参数化SQL。我应用了代码,但现在我得到一个错误。“内存不足”从这里很难说,imageData的值是多少。长度?你能试着换一张不同的图片吗?我不知道imageData的值是多少。我想我现在知道我的错误是什么了?我认为文件格式太大,内存无法处理。。我以RAW格式保存图像,如jpeg格式。。你知道我该如何把它转换成更小的格式吗?对不起,我的错。。我尝试使用不同的文件格式。。但仍然是说它的内存不足..我应用了你的代码,但现在我得到一个错误,说。。“内存不足”从这里很难说,imageData的值是多少。长度?你能试着换一张不同的图片吗?我不知道imageData的值是多少。我想我现在知道我的错误是什么了?我认为文件格式太大,内存无法处理。。我以RAW格式保存图像,如jpeg格式。。你知道我该如何把它转换成更小的格式吗?对不起,我的错。。我尝试使用不同的文件格式。。但仍然是说它的内存不足..我应用了你的代码,但现在我得到一个错误,说。。“内存不足”从这里很难说,imageData的值是多少。长度?你能试着换一张不同的图片吗?我不知道imageData的值是多少。我想我现在知道我的错误是什么了?我认为文件格式太大,内存无法处理。。我以RAW格式保存图像,如jpeg格式。。你知道我该如何把它转换成更小的格式吗?对不起,我的错。。我尝试使用不同的文件格式。。但仍然是说它的内存不足..我应用了你的代码,但现在我得到一个错误,说。。“内存不足”从这里很难说,imageData的值是多少。长度?你能试着换一张不同的图片吗?我不知道imageData的值是多少。我想我现在知道我的错误是什么了?我认为文件格式太大,内存无法处理。。我以RAW格式保存图像,如jpeg格式。。你知道我该如何把它转换成更小的格式吗?对不起,我的错。。我尝试使用不同的文件格式。。但仍然是说,它的记忆。。