我有一个正在处理库存和销售的程序。
我的添加库存表单采用描述价格和销售价格并添加到数据库
我的问题是,当将价格插入数据库时,它们会被舍入并错过小数点后的数字。
我到目前为止所写的代码就在这里,
private void AddStockButton_Click(object sender, EventArgs e)
{
for (int i = 0; i < QtyNumber.Value; )
{
try
{
if (ItemDescription.Text == "") // check if textbox is empty
{
MessageBox.Show("You havent given the item a description"); // if the text box is empty show a message box
throw new Exception();
}
if (ItemGroupList.SelectedIndex == -1)
{
MessageBox.Show("A Group must be selected");
throw new Exception();
}
if (PurchasePriceBox.Value == 0)
{
MessageBox.Show("Purchase Price cannot be 0");
throw new Exception();
}
if (SalePriceBox.Value == 0)
{
MessageBox.Show("Sale Price cannot be 0");
throw new Exception();
}
if (PurchasePriceBox.Value >= SalePriceBox.Value)
{
MessageBox.Show("Cannot sell for less that purchase price");
throw new Exception();
}
OleDbCommand com = new OleDbCommand("INSERT INTO Stocked_Items ([Item Description], [Purchase Price], [Purchase Date], [Group], [Sale Price]) VALUES (?, ?, ?, ?, ?)", Program.DB_CONNECTION); // add the information into the database
com.Parameters.Add(new OleDbParameter("", ItemDescription.Text));
com.Parameters.Add(new OleDbParameter("", PurchasePriceBox.Value));
com.Parameters.Add(new OleDbParameter("", DateTime.Today.Date));
com.Parameters.Add(new OleDbParameter("", group[ItemGroupList.SelectedIndex].ID));
com.Parameters.Add(new OleDbParameter("", SalePriceBox.Value));
com.ExecuteNonQuery();
}
catch
{
}
i++;
}
任何人都可以帮我插入全部价格,包括十进制数字(1.99例子将currentley插入为2,id就像它一样1.99)
干杯
答案 0 :(得分:0)
我通过做两件事解决了这个问题。
一,将数据库中的数据类型从Number更改为Decimal。
二,改变我将数字定义为小数的int的方式。
事情就像我现在想要的那样。感谢您的评论。