我想在用户登录系统时从访问数据库中检索图片。 首先,用户将键入他/她的员工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
答案 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))
无论如何,如果您有任何错误,您应该提供一些错误详情......