Что-то не так с моим кодированием? Я еще новичок - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь запустить эту программу, но всегда появляется ошибка:

Преобразование из строки "LBLBuku" в тип 'Double' недопустимо.

If LBLBuku.Text >= 5 Or Val(LBLBuku.Text) + Val(TextBox1.Text) > 5 Then
    MsgBox("Peminjaman Melebihi")
Else
    If lbljudul.Text = "" Or TextBox1.Text = "" Then
        MsgBox("Silahkan isi Kode Buku")
    Else
        DataGridView1.Rows.Add(New String() {TextBox2.Text, lbljudul.Text, LBLPengarang.Text, LBLTahun.Text, TextBox2.Text})
        TextBox1.Text = ""
        TextBox2.Text = ""
        lbljudul.Text = ""
        TextBox2.Text = ""
        LBLPengarang.Text = ""
        LBLTahun.Text = ""
        Call rumustotalbuku()
    End If
End If

Ответы [ 2 ]

2 голосов
/ 11 ноября 2019

Обратите внимание, что в вашем коде есть строка

LBLBuku.Text >= 5

Свойство Text имеет тип String, вам придется сначала преобразовать текст в целочисленный тип, прежде чем использовать "> =".

0 голосов
/ 11 ноября 2019

Сначала я объявляю переменную для хранения целочисленного значения в текстовом поле. Integer.TryParse вернет true, если сможет преобразовать строку в текстовом поле в целое число. Также переменная intTB1 будет заполнена числом.

Я предполагаю, что LBLBuku является меткой, поэтому свойство .Text было установлено из кода. Мы можем зависеть от того, что это число, поэтому все, что нам нужно сделать, - это преобразование с CInt(). Мы можем использовать переменную, которую мы получили из .TryParse в Or CInt(LBLBuku.Text) + intTB1 > 5, вместо того, чтобы снова ссылаться на текстовое поле.

Нам не нужно проверять, является ли TextBox1 пустым, потому что он не будетпрошли .TryParse, если это было.

Последнее и, вероятно, наименее, вам не нужно ключевое слово Call в большинстве ситуаций.

Вы понимаете, что добавили TextBox2 дважды в новую строку данных.

Private Sub OPCode()
    Dim intTB1 As Integer
    If Not Integer.TryParse(TextBox1.Text, intTB1) Then
        MessageBox.Show("Please enter a number in TextBox1.")
        Return
    End If

    If CInt(LBLBuku.Text) >= 5 Or CInt(LBLBuku.Text) + intTB1 > 5 Then
        MsgBox("Peminjaman Melebihi Maksimal")
    Else
        If lbljudul.Text = "" Then
            MsgBox("Silahkan isi Kode Buku")
        Else
            DataGridView1.Rows.Add(New String() {TextBox2.Text, lbljudul.Text, LBLPengarang.Text, LBLTahun.Text, TextBox2.Text})
            TextBox1.Text = ""
            TextBox2.Text = ""
            bljudul.Text = ""
            TextBox2.Text = ""
            LBLPengarang.Text = ""
            LBLTahun.Text = ""
            rumustotalbuku()
        End If
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...