Недопустимо преобразование строки «Label9» в тип ‘Double’

#vb.net

#vb.net

Вопрос:

Я выполнил запрос tableadapter, который отображает результат для label9.text, но мне нужно создать инструкцию ifelse, где, если label9.text <= 0, то отобразится окно сообщения.

     Dim red = Me.SlpdetailsTableAdapter.ScalarQuery2(Label7.Text)
    Dim pay = Label9.Text

    If pay <= 0 Then
        MessageBox.Show("This Loan is already fully paid", "Paid")
    Else

        Label9.Text = red
        Label10.Text = Val(Label9.Text) - Val(Label8.Text)
        Me.SlpsummaryTableAdapter.UpdateQuery2(Label10.Text, Label7.Text)
        Me.SlpdetailsTableAdapter.InsertQuery(Label7.Text, Label6.Text, DateTimePicker1.Value.Date, Label8.Text, Label10.Text, remtxt.Text)
        Try
            remtxt.Text = ""
            DateTimePicker1.Text = ""
        Catch ex As System.Exception
            System.Windows.Forms.MessageBox.Show(ex.Message)
        End Try
        MessageBox.Show("Loan Payment is added", "Added")
        Me.Close()
        SLPDetail.SlpdetailsTableAdapter.FillBy(SlpdbDataSet.slpdetails, Label7.Text)

    End If
  

Комментарии:

1. Я не вижу никакой ошибки в опубликованном вами коде (кроме некоторых вредных привычек в коде). Вы должны предоставить некоторый дополнительный контекст для вашего вопроса. Вы отладили код? VS обязательно сообщит вам, в какой именно строке произошла ошибка. Зная, что это так, это будет легко исправить.

Ответ №1:

Если вы уверены, что label9.text получает значение .. тогда попробуйте разобрать его на double, как показано ниже, и попробуйте

  Try
            Dim pay As Double = Double.Parse(Label9.Text)

            If pay <= 0 Then
                MessageBox.Show("This Loan is already fully paid", "Paid")
            Else
                ''Do what ever you want
            End If
        Catch e As Exception

            ''error means label9 text is not valid numeric value
             MessageBox.Show("Wrong value", "Not Valid Pay value")

        End Try