C# 在数据库c中保存一个十进制值#

C# 在数据库c中保存一个十进制值#,c#,sql,visual-studio-2012,C#,Sql,Visual Studio 2012,我正在尝试将文本框中的值保存到sql数据库中。我的错误如图所示。我的代码如下: public void datastore() { string Blerje, Shitje, Data; Blerje = usdollar_buy.Text; Shitje = usdollar_sell.Text; Data = dateTimePicker.Text;

我正在尝试将文本框中的值保存到sql数据库中。我的错误如图所示。我的代码如下:

    public void datastore()
        {
            string Blerje, Shitje, Data;
            Blerje = usdollar_buy.Text;
            Shitje = usdollar_sell.Text;
            Data = dateTimePicker.Text;

            try
            {
                string constring = "Data Source=DELL;Initial Catalog=login_register;Integrated Security=True";

                /* Declaring Connection Variable */
                SqlConnection con = new SqlConnection(constring);
                String sql = "INSERT into [login_register].[dbo].[BlerjeShitje] values ('" + Blerje + "','" + Shitje + "','" + Data + "')";

                /* Checking Connection is Opend or not If its not open the Opens */
                if (con.State != ConnectionState.Open)
                    con.Open();

                SqlCommand cmd = new SqlCommand(sql, con);

                /* Executing Stored Procedure */
                cmd.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("Te dhenat u ruajten ne databaze");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

1。表中的列可能比查询中提到的值(3)多。 因此,最好在查询中指定要为哪些列插入值的列名

试试这个:

INSERT INTO [TableName](COL1,COl2,COL3)
Values(Value1,Value2,Value3);
2。正如您所提到的,列n是小数,您通过将值括在单引号内将其作为字符串插入

不应将十进制值括在单引号内

建议:您的查询容易受到SQL注入攻击。 我建议您使用参数化查询来避免它们。

将数据类型更改为(18,6)左右,以适合您的为准

decimal数据类型的第二部分显示“点”后需要多少位数字。在您的例子中,它是“0”,所以db将它四舍五入到最接近的整数


来源:

您的
insert
语句中缺少字段

数据库将尝试确定正确的列及其顺序,但如果您没有以适当的顺序传递所有字段,则查询将失败

简言之:

  • 以正确的顺序交付所有字段
  • 或者:在插入中添加要填写的字段
  • 样本:

    String sql = "INSERT into [login_register].[dbo].[BlerjeShitje] (Blerje, Shitje, Data) values ('" + Blerje + "','" + Shitje + "','" + Data + "')";
    

    你忘记上传图像了。但我看到了一个问题:在查询中连接字符串允许SQL注入。忽略这一点,插入的列是什么类型的?列是十进制的