ช่วยแก้ Error ให้หน่อยค่ะ มันขึ้น Error ว่า Conversion from string "" to type 'Double' is not valid.
Code (VB.NET)
'สาเหตุ: เพราะค่าใน textbox = empty ทำให้ function convert ทำงานผิดพลาด
'วิธีแก้ไข
'1.ตรวจสอบค่าใน textbox ถ้าเป็น empty ให้แทนด้วย 0
'จาก
Total = CDbl(lblPrice.Text) * CInt(txtAmount.Text)
'เป็น
Dim StrPrice As String = lblPrice.Text.Trim()
Dim StrAmount As String = txtAmount.Text.Trim()
Total = CDbl( (StrPrice.Length=0)?"0":StrPrice ) * CInt((StrAmount.Length=0)?"0":StrAmount )
'แต่อาจจะแก้ไขได้ไม่หมดในกรณีที่ค่าใน lblPrice มีอย่างอื่นที่ไม่ใช่ตัวเลขมาด้วยเช่น "23A3" ก็จะยัง Error
'แต่ถ้าใช้ RangeValidator หรือ RegEx มาช่วยจะแน่นอนกว่าแต่ code จะยาวเกินไปสำหรับการ convert data ค่ะ
'2. ใช้ method TryParse ค่ะ
'จาก
Total = CDbl(lblPrice.Text) * CInt(txtAmount.Text)
'เป็น
Dim tempPrice As Double = 0 'Set default value
Dim tempAmount As Double = 0
Double.TryParse(lblPrice.Text.Trim() ,tempPrice )
Double.TryParse(txtAmount.Text.Trim() ,tempAmount )
Total = tempPrice * tempAmount
Date :
2010-04-02 12:24:44
By :
blurEyes
แล้วแก้ตรงไหนค่ะ เขียนโค้ด vb2008
Date :
2010-04-02 12:30:59
By :
pakakrong
Dim dc As Single = 0.0
dc = CSng(Total * (CInt(txtDc.Text) / 100)) "มัน Error ตรงนี้"
มันขึ้น Error ว่า Conversion from string "" to type 'Integer' is not valid.
Date :
2010-04-02 13:07:19
By :
pakakrong
Conversion from string "" to type 'Integer' is not valid.
การแปลงค่า string เป็น integer ไม่ถูกต้องหรือทำไม่ได้...
สาเหตุ? ลองคิดครับ
CInt(txtDc.Text)
txtDc.Text มีค่าเป็นอะไร ถึงแปลงไม่ได้ ?
null, "", "abc","1.2abc" ฯลฯ
วิธีแก้ ?
1. txtDc.Text ทำอย่างไรให้ค่ามันไม่เป็น string ที่ผิดๆ (if...else)
2. txtDc.Text ถ้ามันผิดแล้ว จะทำอย่างไรให้โปรแกรมมันรู้แล้ว แจ้งเราได้ (try...catch)
"code error ยังรู้ว่า error แต่ คน error ทำยังไงก็ไม่รู้"
Date :
2010-04-02 13:52:51
By :
numenoy
ขอบคุณ Stupid.gurl.th มากๆเลยคร้า
Date :
2012-02-09 16:20:49
By :
cabbage
Load balance : Server 00