无法将带逗号的数字插入数据库

Trouble inserting number with commas into database

我在将带逗号的数字插入数据库时​​遇到问题。它只接受点,但我有只适用于逗号的功能,所以有什么想法可以解决这个问题,比如将小数分隔从点转换为逗号

if (radioButton1.Checked)
        {
            Avance = 200;
        }
        else if (radioButton2.Checked)
        {
            Avance = 0;
        }
        cnx.Open();
        SqlCommand cmd = cnx.CreateCommand();
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "insert into Employeur values('" + this.txt_ID.Text + "','" + this.txt_Nom.Text + "','" + this.txt_QUA.Text + "','" + this.txt_Salaire.Text + "','" + this.txt_NBRJ.Text + "','" + this.txt_HSUP.Text + "','" + this.txt_SalireHeur.Text + "','" + this.txt_Somme.Text + "','" + this.txt_Dette.Text + "','" + this.Avance + "','" + this.txt_Credit.Text + "','" + this.txt_Montant.Text + "','" + this.txt_Paye.Text + "','" + this.txt_Reste.Text + "')";
        cmd.ExecuteNonQuery();
        cnx.Close();
        MessageBox.Show("Se payement est enregistrer");

为了扩展 Sean 的评论,您至少需要这样的东西:

    cnx.Open();
    using(SqlCommand cmd = cnx.CreateCommand()) {
        cmd.CommandType = CommandType.Text;
        // I've cut this down a bit to save my typing fingers - you need all your cols and values
        cmd.CommandText = "insert into Employeur (Salaire) values(@Salaire)";
        cmd.Parameters.Add(new SqlParameter("@Salaire", decimal.Parse(txtSalaire.Text));
        cmd.ExecuteNonQuery();
    }
    cnx.Close();

在你创建cnx的时候你应该也有一个using,但是你没有在上面展示它。

您迫切需要学习如何参数化您的查询。您还有其他几个问题正在发生。以下是此查询的简化版本。当然,我更愿意完全使用存储过程从我的代码中获取查询。

cmd.CommandText = "insert into Employeur (ID, Nom) values(@txt_ID, @txt_Nom)";
cmd.Parameters.Add("@txt_ID", SqlDbType.VarChar, 30).Value = this.txt_ID.Text;
cmd.Parameters.Add("@txt_Nom", SqlDbType.VarChar, 30).value = this.txt_Nom.Text;

您需要为表设置适当的数据类型和大小。

此外,请查看 USING 语句。永远不要重复使用一个连接。