2011-03-28 10 views
0

현재 VS2008, VB.NET, SQL을 사용합니다.레이블에서 정수로 정수로 변환

SQL 데이터베이스에서 십진수로 저장된 일부 필드를 가져 오는 데이터 원본의 FormView가 있습니다.

나는 등의 FormView에서 필드를 잡는 오전 :

Dim AvgTicketL As Label = CType(frmMerchantProfile.FindControl("F10Label"), Label) 

내가이 값을, 그리고 정수로 변환 한 다음 API를 함께 보낼 필요가있다. API 호출이 완료되고 테스트 및 작동하지만이 값을 가져올 때 API가 "정수 여야 함"오류를 반환 할 때 오류가 발생합니다. 내가 지금까지 시도 무엇

는 :

Dim AvgTicketL As Label = CType(frmMerchantProfile.FindControl("F10Label"), Label) 
Dim AvgTicket1 As Integer  
AvgTicket1 = Double.Parse(AvgTicket.Text) 
Do something with AvgTicket1 

은 또한 다음 값을 반올림 변환하고 전화를 시도되지 않은 - 운.

AvgTicket1의 값을 확인 (레이블 또는 Response.Write에 출력)하면 데이터베이스 값이 100.00 인 "100"이 표시됩니다. 그러나 API는 여전히 100.00을 얻고 있습니다. 내가 시도한 다른 변환 방법은 Label을 Integer로 변환 할 수 없다는 오류가 있음을 나타냅니다.

이 값을 레이블에서 정수로 성공적으로 변환 할 수있는 방법은 무엇입니까?

답변

0

을 나는이 작업을 얻기 위해 할 수 있었다 무엇인가 (코드 예정)

나는 다윗이 한 말의 일부를했다, 그리고 단순한했다 조정 - 왜 내가 전에 생각하지 않았는지 모르겠다!
Dim AvgTicketL As Label = CType(frmMerchantProfile.FindControl("F10Label"), Label) 
Dim AvgTicketI As Integer = "-1" 

내가 거기에서 다음

AvgTicketI = CInt(AvgTicketL.Text) 

, int로 두 번째 변수를 흐리게, 난 그냥 API에 전달할 변수로 AvgTicketI을했다. 일했다!

감사합니다. David, 안내입니다!

2

질문의 제목과 질문의 텍스트가 서로 다른 두 가지를 가리 킵니다. 안전하게 아마도 AvgTicketL의 값이 데이터베이스에서 검색 진수 값을 변환하는 방법을 알고 싶은 가정

, 당신의 API를 호출하기 전에 당신이해야 할 다음

이 데이터 형 정수의 변수를 만들고 System.Int32.TryParse()을 사용하여 안전하게 10 진수를 정수로 변환하십시오. 그런 다음 해당 변수를 전달하십시오. ...이 주변에 약간의 장난 후

Dim testInt as Integer = -1 

If System.Int32.TryParse(AvgTicketL.Text, testInt) Then 
     ' Do something with testInt - call the API using the value 
Else 
    ' code to execute if the parse fails. 
    ' This could be whatever you need the code to do if the value of AvgTicketL.Text can't be properly parsed into an Int value. 
End If 
+0

감사합니다. David! 이것은 If Else 문 밖에서 작동할까요? 예를 들어 API를 호출하기 전에 어셈블 할 데이터가 훨씬 많으므로이 변환 된 값을 무언가에 "보관"한 다음 나중에 호출해야합니다. 또한 - 왜 변수를 선언 할 때 (-1) 값을? – RogueSpear00

+0

솔루션을 배치 한 방법을 시도 할 때 0 값이 반환됩니다. 따라서 Parse가 실패했다고 가정합니다. – RogueSpear00

관련 문제