无法将带逗号的数字插入数据库
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 语句。永远不要重复使用一个连接。
我在将带逗号的数字插入数据库时遇到问题。它只接受点,但我有只适用于逗号的功能,所以有什么想法可以解决这个问题,比如将小数分隔从点转换为逗号
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 语句。永远不要重复使用一个连接。