Vb.net 从数据库列错误在rcihtextbox上显示多个数据

Vb.net 从数据库列错误在rcihtextbox上显示多个数据,vb.net,richtextbox,sqlyog,Vb.net,Richtextbox,Sqlyog,我的代码怎么了?错误发生在“更新块”上 如果reader1.Read()则 rtbURThirdMolar.Text=reader1.Item(“上右第三摩尔”)“从类型“DBNull”到类型“String”的转换无效 Private Sub txtURThirdMolar_KeyDown(sender As Object, e As KeyEventArgs) Handles txtURThirdMolar.KeyDown MySqlConn.open()

我的代码怎么了?错误发生在“更新块”上 如果reader1.Read()则 rtbURThirdMolar.Text=reader1.Item(“上右第三摩尔”)“从类型“DBNull”到类型“String”的转换无效

  Private Sub txtURThirdMolar_KeyDown(sender As Object, e As KeyEventArgs) Handles txtURThirdMolar.KeyDown
            MySqlConn.open()
            If e.KeyCode = Keys.Enter Then

                query1 = "SELECT * FROM teethhistory WHERE Patient_ID_Number ='" & lblID.Text & "'"
                cmd1 = New MySqlCommand(query1, MySqlConn)
                reader = cmd1.ExecuteReader

                If reader.HasRows Then
                    Dim i As Integer
                    With cmd
                        .Connection = MySqlConn
                        .CommandText = "UPDATE teethhistory SET Up_Right_3rd_Molar = concat('" & txtURThirdMolar.Text & Environment.NewLine & "',Up_Right_3rd_Molar) WHERE Patient_ID_Number = " & lblID.Text
                        reader.Close()
                        i = .ExecuteNonQuery
                    End With

                    If i > 0 Then
                        MsgBox("Updated!", MsgBoxStyle.Information, "Success")

                        txtURThirdMolar.Text = ""
                        Dim query2 As String
                        Dim reader1 As MySqlDataReader
                        Dim cmd2 As MySqlCommand
                        query2 = "SELECT * FROM teethhistory WHERE Patient_ID_Number ='" & lblID.Text & "'"
                        cmd2 = New MySqlCommand(query2, MySqlConn)

                        reader1 = cmd2.ExecuteReader

                        If reader1.Read() Then
                    rtbURThirdMolar.Text = reader1.Item("Up_Right_3rd_Molar") 'THIS IS WHERE THE ERROR OCCURS

                        End If


                    Else
                        MsgBox("Failed", MsgBoxStyle.Information, "Failed")
                    End If


                Else
                    Dim cmd As MySqlCommand = MySqlConn.CreateCommand
                    cmd.CommandText = String.Format("INSERT INTO teethhistory (Patient_ID_Number, Fullname, Up_Right_3rd_Molar )" &
                                                "VALUES ('{0}' ,'{1}' ,'{2}')",
                                                lblID.Text,
                                                lblFullname.Text,
                                                txtURThirdMolar.Text)
                    reader.Close()
                    Dim affectedrows As Integer = cmd.ExecuteNonQuery()
                    If affectedrows > 0 Then
                        MsgBox("Saved!", MsgBoxStyle.Information, "Success")
                        txtURThirdMolar.Text = ""
                        Dim query2 As String
                        Dim reader2 As MySqlDataReader
                        Dim cmd2 As MySqlCommand
                        query2 = "SELECT * FROM teethhistory WHERE Patient_ID_Number ='" & lblID.Text & "'"
                        cmd2 = New MySqlCommand(query2, MySqlConn)

                        reader2 = cmd2.ExecuteReader

                        If reader2.Read() Then

                            rtbURThirdMolar.Text = reader2.Item("Up_Right_3rd_Molar")

                        End If
                    Else
                        MsgBox("Saving failed.", MsgBoxStyle.Critical, "Failed")

                    End If
                End If

            End If
            MySqlConn.close()
        End Sub
使用

这是因为您引用的项目为空。

请使用


这是因为您正在引用的项目为空。

我尝试了此操作,但richtextbox上没有显示任何内容:(只是空白我的程序有32个文本框,32个richtextbox,如果输入到文本框的数据在保存后会显示在richtextbox中,但我注意到,在32个文本框中只有1个可以正常工作,31个richtextboes给我空白结果是的..读卡器有一个空值,那么会显示什么值?我尝试了这个,但没有在richtextbox上显示以下内容:(只是空白我的程序有32个文本框,32个richtextbox,如果输入到文本框的数据在保存后会显示在richtextbox中,但有一点我注意到,它在32个文本框中只有1个可以正常工作,31个richtextboes给我空白结果Yes..reader有一个空值,那么会显示什么值?
rtbURThirdMolar.Text = reader1.Item("Up_Right_3rd_Molar").ToString