Не удается привести объект типа 'System.система значение dbnull' в тип '.байт[]
Я молодой программист vb, я хочу получить данные из базы данных sql, она работает нормально, но когда я пытаюсь получить данные, которые были сохранены без изображения, это дает мне такую ошибку: невозможно привести объект типа 'System.DBNull 'to type' система.Байт[]
Это мой код:
Dim cmd As New SqlCommand("SELECT EmpID,Fname,Oname,Lname,Date_hired,Branch,Department,Grade,Pictures FROM Staff_Information WHERE EmpID = '" & txtempID.Text & "'", con) con.Open() Dim sdr As SqlDataReader = cmd.ExecuteReader() If sdr.HasRows Then While sdr.Read() txtfname.Text = sdr.Item("Fname").ToString txtothername.Text = sdr.Item("Oname").ToString txtlname.Text = sdr.Item("Lname").ToString dtpempl.Value = sdr.Item("Date_hired").ToString txtbranch.Text = sdr.Item("Branch").ToString txtdepartment.Text = sdr.Item("Department").ToString txtgrade.Text = sdr.Item("Grade").ToString Dim data As Byte() = DirectCast(sdr("Pictures"), Byte()) Dim ms As New MemoryStream(data) PictureBox.Image = Image.FromStream(ms) End While sdr.Close() btnsearch.Enabled = False txtempID.ReadOnly = True btnclear.Enabled = True Else MsgBox("Staff ID: " & txtempID.Text & " " & "not found.") txtempID.Clear() txtempID.ReadOnly = False btnsearch.Enabled = False btnclear.Enabled = False End If con.Close()
Что я уже пробовал:
попробовал этот код:
If sdr("Pictures") IsNot System.DBNull Then Dim data As Byte() = DirectCast(sdr("Pictures"), Byte()) Dim ms As New MemoryStream(data) PictureBox.Image = Image.FromStream(ms) End If
но, система.DBNull подчеркнут красным и дает следующее сообщение:DBNull является классом и не может использоваться в качестве выражения