2014-04-22 1 views
1

WF에서 소액 인보이스 신청을하고 있습니다. 고객 표와 제품 표가 있습니다. 그런 다음 판매 양식의 콤보 박스를 통해 고객 이름과 제품 이름을 채 웁니다. 사용자가 ProductName 콤보 상자에서 항목을 선택하면 Price 및 ProductID와 같은 다른 텍스트 상자에 데이터베이스의 Product Table에있는 데이터가 자동으로 채워집니다. 제품 주문을 위해 Quantity에 입력 할 수있는 txtQuantity라는 텍스트 상자가 있습니다. 수량에 대해 숫자를 입력하면 소계, GST (싱가포르에서 세금) 및 합계가 자동으로 계산되고 해당 값은 소계, GST 및 합계의 텍스트 상자에 나타납니다. 사용자가 수량을 업데이트/변경하면 "형식 예외가 처리되지 않았습니다. 입력 문자열이 올바른 형식이 아닙니다"라는 오류가 표시됩니다. 이 오류로 인해 사용자가 수량을 삭제하거나 새 값으로 변경하려고 할 때 응용 프로그램의 작동이 중지되는 것을 방지하고 싶습니다. 내가 여기서 잃어 버렸기 때문에 나는 어떻게 그것에 대해 가야 하느냐. 아래는 제 코드입니다.오류를 표시하지 않고 txtbox에서 데이터를 업데이트/변경/비우는 방법

private void txtQuantity_TextChanged(object sender, EventArgs e) 
{ 
    int iQuantity = Convert.ToInt32(txtQuantity.Text); 

    decimal dPrice = Convert.ToDecimal(txtPrice.Text); 

    decimal dSubtotal = dPrice * iQuantity; 
    decimal dGST = dSubtotal * 7/100; 
    decimal dTotal = dSubtotal + dGST; 

    txtSubTotal.Text = Convert.ToString(dSubtotal); 
    txtGST.Text = Convert.ToString(dGST); 
    txtTotal.Text = Convert.ToString(dTotal); 

} 

숫자 입력에 대해서만 수량 텍스트 상자에 매개 변수를 설정하려고합니다. 나는 나중에 그렇게 할 것이다. 이것은 탐구 할 또 다른 일이 될 것입니다. 이에 대한 조언도 환영하고 감사합니다.

+0

당신에게 디버깅 방법을 배울 필요가 있으므로 행을 찾아 예외를 throw하고 잘못된 점을 이해할 수 있습니다. 내 생각에'txtQuantity' 또는'txtPrice'는 공백이고'Convert' 함수는 실패합니다. 당신은 단순히 무엇을하기 전에 그것들을 검사 할 수 있습니다 ('string.IsNullOrEmpty()'사용). – Sinatr

+2

'int.TryParse'와'decimal.TryParse'를 사용하여 데이터가 데이터 유형과 호환되는지 확인해야합니다. – LarsTech

답변

0

정수 변수에 할당하려고 시도하기 전에 모든 문자열 입력을 다음 (또는 비슷한)을 통해 실행합니다. 특히 직접 입력을 처리 할 때 더욱 그렇습니다.

string myVar1; 

//Something that assigns a value to myVar1 

if(String.IsNullOrEmpty(myVar1)) 
{ 
myVar1 = "0"; 
} 
else 
{ 
    int number; 
    bool result = Int32.TryParse(myVar1, out number); 
    if (result) 
    { 
    //you have a valid input and valid parse, do whatever you need with number  variable  
    } 
    else 
    { 
    //bad input, reset to blank and show error message 
    } 

}

참고 위의 코드는 예이며, 당신의 응용 프로그램에/붙여 넣기를 복사하기 전에 당신은 아마 원하는 것과 비슷한 반면, 당신은 그것을 수정해야합니다

+0

샘플 코드를 보내 주셔서 감사합니다. 나는 당신의 코드를 기반으로 그것을 알아 냈다. 지금은 잘 작동하고 있습니다. 이제, 표의 수량에 대해 텍스트 상자에서 수량 계산하는 방법에 대해 더 알아 보겠습니다. 제품 테이블에 수량이 있습니다. 텍스트 상자의 수량은 제품 테이블의 Quantity와 비교하여 판매 할 재고가 충분한 지 확인합니다. 그렇다면 다른 품목을 포함한 수량이 판매 테이블에 저장됩니다. 나는 아직 코딩하지 않았다. 나는 아직도 연구를해야한다.이 문제에 관해선 아무 것도 없다. – kkcoder

+0

당신이 물어 보는 것이 확실하지 않은 경우 두 가지 양을 모두 가지고 있다면 그들이 동등한 지 또는 다른 것이 더 적거나 같은지를 확인할 수 있어야합니다 – Pseudonym

관련 문제