我无法从访问数据库中检索图片

时间:2014-04-05 16:41:12

标签: vb.net ms-access

我想在用户登录系统时从访问数据库中检索图片。 首先,用户将键入他/她的员工ID和密码进行登录。 其次,如果用户被授权登录系统,它将显示另一个表单。 第三,另一个表单将显示用户的名字和姓氏。 此外,我想展示保存在Access数据库中的图片。任何大四能帮助我吗?

这是我的代码:

Private Sub ShowStaffData(ByVal CurrentRow)
    txtFirstName.Text = DTS.Tables("Staff").Rows(CurrentRow)("User's_First_Name")
    txtLastName.Text = DTS.Tables("Staff").Rows(CurrentRow)("User's_Last_Name")
End Sub
Private Sub RetrieveStaffInformation()
    Dim StaffID As String
    Dim i, j As Integer
    Dim Command As New OleDbCommand("SELECT Picture FROM Staff WHERE Staff_ID ='" & txtStaff_ID.Text & "'", Connection)
    Command.Parameters.AddWithValue("@Staff_ID", txtStaff_ID.Text)
    Connection.Open()
    Dim PictureData As Byte() = DirectCast(Command.ExecuteScalar(), Byte())
    Connection.Close()
    Command.Dispose()
    Dim Stream As New IO.MemoryStream(PictureData)
    picStaff.Image = Image.FromStream(Stream)
    txtStaff_ID.Text = Login.txtStaff_ID.Text
    Stream.Dispose()

    StaffID = txtStaff_ID.Text
    j = DTS.Tables("Staff").Rows.Count - 1
    i = 0
    While i <> j + 1
        If StaffID = DTS.Tables("Staff").Rows(i)("Staff_ID") Then
            ShowStaffData(i)
        End If
        i += 1
    End While
End Sub

1 个答案:

答案 0 :(得分:1)

检查OleDbCommand。也许你的select语句不是findind the Staff_ID,因为你的where子句将Staff_ID与一个字符串进行比较,在大多数情况下,这个ID是一个存储为整数的数值。

Dim Command As New OleDbCommand("SELECT Picture FROM Staff WHERE Staff_ID = ?", Connection)
Command.Parameters.AddWithValue("@Staff_ID", CInt(txtStaff_ID.Text))

无论如何,如果您有任何错误,您应该提供一些错误详情......