我在将十进制值插入我的 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条经验 获得超7个赞
很奇怪,但我不需要使用 Convert.ToDecimal ...就像
cmd.Parameters.AddWithValue("@SalesTax", txtSalesTax.Text); Without converting and working fine in database ..;)
- 2 回答
- 0 关注
- 235 浏览
添加回答
举报
0/150
提交
取消