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);
}
숫자 입력에 대해서만 수량 텍스트 상자에 매개 변수를 설정하려고합니다. 나는 나중에 그렇게 할 것이다. 이것은 탐구 할 또 다른 일이 될 것입니다. 이에 대한 조언도 환영하고 감사합니다.
당신에게 디버깅 방법을 배울 필요가 있으므로 행을 찾아 예외를 throw하고 잘못된 점을 이해할 수 있습니다. 내 생각에'txtQuantity' 또는'txtPrice'는 공백이고'Convert' 함수는 실패합니다. 당신은 단순히 무엇을하기 전에 그것들을 검사 할 수 있습니다 ('string.IsNullOrEmpty()'사용). – Sinatr
'int.TryParse'와'decimal.TryParse'를 사용하여 데이터가 데이터 유형과 호환되는지 확인해야합니다. – LarsTech