我在將十進制值插入我的 Access 數據庫版本 (2007 - 2010) 時遇到問題。假設我的文本框中有以下值:txtTotalAmount.Text = 3,5txtSalesTax.Text = 3,6txtTotalToPay.Text = 3,7但是,數據庫值顯示:TotalAmount as 35SalesTax as 36TotalToPay as 37我的數據庫設置如圖所示。這是我的代碼:private void button1_Click(object sender, EventArgs e){try { string connstring = ConfigurationManager.ConnectionStrings["Db"].ConnectionString; using (OleDbConnection conn = new OleDbConnection(connstring)) { conn.Open(); using (OleDbCommand cmd = new OleDbCommand("INSERT INTO [OrderItem](TotalAmount, SalesTax, TotalToPay) VALUES(@TotalAmount, @SalesTax, @TotalToPay)", conn)) { cmd.Parameters.AddWithValue("@TotalAmount", Convert.ToDecimal(txtTotalAmount.Text)); cmd.Parameters.AddWithValue("@SalesTax", Convert.ToDecimal(txtSalesTax.Text)); cmd.Parameters.AddWithValue("@TotalToPay", Convert.ToDecimal(txtTotalToPay.Text)); cmd.ExecuteNonQuery(); } } } catch (Exception ex) { MessageBox.Show(ex.Message); }}我什至試過這樣;cmd.Parameters.AddWithValue("@TotalToPay", decimal.Parse(txtToPay.Text));和cmd.Parameters.AddWithValue("@SalesTax", OleDbType.Decimal).Value = Convert.ToDecimal(txtTest.Text);但是遇到同樣的問題。請幫忙。
2 回答

MMMHUHU
TA貢獻1834條經驗 獲得超8個贊
根據 張貼的說法,我認為問題在于,.NET 期望您為 Decimal 提供點而不是逗號,這是由于如何。因此,我建議使用類型 OleDbType.VarChar 而不是 OleDbType.Decimal 作為該參數...
cm.Parameters.Add("@decimalcolum", OleDbType.VarChar);
cm.Parameters["@decimalcolum"].Value=decimalvalue;
cm.ExecuteNonQuery();
它在越南語、法語(法國)、英語(美國)地區和語言上進行了測試。我希望這個問題解決了!

慕田峪9158850
TA貢獻1794條經驗 獲得超8個贊
很奇怪,但我不需要使用 Convert.ToDecimal ...就像
cmd.Parameters.AddWithValue("@SalesTax", txtSalesTax.Text); Without converting and working fine in database ..;)
- 2 回答
- 0 關注
- 334 瀏覽
添加回答
舉報
0/150
提交
取消