Errer แบบนี้แก้ไขอย่างไรครับ ขอโค๊ดแก้ไขหน่อยครับ
Date :
2020-05-28 14:46:54
By :
D
str1 เป็น String ถ้าจะเปรียบเทียบทางคณิตศาสตร์แปลงหรือ cast integer ก่อน
Code (VB.NET)
If CInt(str1) > 3 Then
หรือ
Code (VB.NET)
If Convert.toInt32(str1) > 3 Then
หรือ จะทำก่อนการเงื่อนไขก็ได้ (บรรทัดบน)
ประวัติการแก้ไข 2020-05-28 14:49:03
Date :
2020-05-28 14:47:25
By :
PhrayaDev
ถ้าหากกลัวมัน Error อาจจะเพิ่ม "0" ข้างหน้า เช่น
str1 = "0" & str1
Date :
2020-05-28 14:52:03
By :
lamaka.tor
ดูค่า str1 ใน debug หรือ MessageBox ว่ามันมีตัวเลขหรือไม่
ปัญหาส่วนใหญ่เกิดจาก ตัวแปรมีอักขระอื่นที่ไม่ใช่ตัวเลขปนอยู่
Date :
2020-05-28 15:47:51
By :
PhrayaDev
อันนั้นเป็นแหล่งข้อมูลของ dgvBillend
ภาพที่แนบมาไม่ใช่ตารางตอน ติ๊ก checkbox
ข้อมูลที่ต้องการในการวินิจฉัยตอนนี้คือ ต้องรู้ค่า str1 เมื่อติ๊กก่อน
เพื่อพิสูจน์ว่าได้ข้อมูลมาเป็นตัวเลข
Code (VB.NET)
str1 = dgvBillend.Rows(i).Cells(7).Value.ToString
MessageBox.Show(str1) ' ดูค่า str1 ใช่ตัวเลขหรือไม่
หรือ set breakpoint เพื่อดูค่า str1 ใน Locals Window
Date :
2020-05-28 16:59:09
By :
PhrayaDev
ลองแบบนี้ดูครับ
Code (VB.NET)
Dim str1 As Integer
'...
str1 = Convert.ToInt32(dgvBillend.Rows(i).Cells(7).Value)
If str1 > 3 Then
ถ้ายังไม่ได้ แสดงว่ามี row จาก database ที่มีข้อมูลเป็นอย่างอื่นนอกจาก Integer เช่น Date, Decimal, Double, String, Object...
ประวัติการแก้ไข 2020-05-28 17:31:15 2020-05-28 17:34:13 2020-05-28 17:37:27
Date :
2020-05-28 17:30:14
By :
PhrayaDev
หรือ กำจัดช่องว่างออกจาก String ก่อน
Code (VB.NET)
Dim i As Integer
Dim str1 As String
For i = 0 To dgvBillend.Rows.Count - 1
str1 = dgvBillend.Rows(i).Cells(7).Value.ToString
str1 = str1.Replace(" ", String.Empty)
If Convert.toInt32(str1) > 3 Then
dgvBillend(7, i).Style.ForeColor = Color.Red
dgvBillend(7, i).Style.Font = New Font("Arial", 13.0F, FontStyle.Bold, GraphicsUnit.Pixel)
End If
Next i
Date :
2020-05-28 17:45:33
By :
PhrayaDev
Date :
2020-05-28 18:35:43
By :
PhrayaDev
Load balance : Server 03