我尝试运行此程序,但始终出现错误:
从字符串“ 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
答案 0 :(得分:2)
在代码行上注意
Local CA
“文本”属性的类型为“字符串”,您必须先将文本转换为整数类型,然后才能使用“> =”。
答案 1 :(得分:0)
首先,我声明一个变量以在文本框中保存整数值。如果Integer.TryParse
可以将文本框中的字符串转换为整数,则将返回true。还将用数字填充变量intTB1
。
我假设LBLBuku
是一个标签,因此.Text
属性是通过代码设置的。我们可以依靠这个数字,所以我们要做的就是用CInt()
进行转换。我们可以使用从.TryParse
中的Or CInt(LBLBuku.Text) + intTB1 > 5
获得的变量,而不必再次引用文本框。
我们不需要检查TextBox1
是否为空,因为它.TryParse
不会通过。
最后,至少在大多数情况下,您不需要Call
关键字。
您确实意识到您已经两次向新的DataRow中添加了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