2014-04-22 29 views
1

我正在WF上開發一個小銷售發票應用程序。我有一張客戶表和一張產品表。然後,我通過銷售表單上的組合框填充客戶名稱和產品名稱。一旦用戶從ProductName組合框中選擇一個項目,其他文本框(如Price和ProductID)將自數據庫的Product Table中的數據自動填充。我還有一個名爲txtQuantity的文本框,可以輸入Quantity for product order。一旦爲數量,小計,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

你需要學習如何調試,所以你將能夠找到該行,從而引發異常,並瞭解自己發生了什麼問題。我的猜測是'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

感謝您的示例代碼。我已經根據你的代碼計算出來了。現在工作正常。現在,我將探索更多如何根據表中的數量計算文本框中的數量。我在產品表中有數量。來自文本框的數量將檢查產品表中的數量,以查看是否有足夠的庫存來銷售。如果是這樣,包括其他項目的數量將被保存在銷售表中。我還沒有編碼。我仍然需要對此進行研究。請對此事進行任何指導。 – kkcoder

+0

不確定你的要求,如果你有兩個數量,你應該能夠檢查它們是否相等,或者如果一個小於或大於另一個 – Pseudonym

相關問題