从Csharp窗体中将int插入数据库

时间:2015-05-21 19:00:32

标签: c# winforms ms-access

我有一个正在处理库存和销售的程序。

我的添加库存表单采用描述价格和销售价格并添加到数据库

我的问题是,当将价格插入数据库时​​,它们会被舍入并错过小数点后的数字。

我到目前为止所写的代码就在这里,

    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)

干杯

1 个答案:

答案 0 :(得分:0)

我通过做两件事解决了这个问题。

一,将数据库中的数据类型从Number更改为Decimal。

二,改变我将数字定义为小数的int的方式。

事情就像我现在想要的那样。感谢您的评论。