我有一个用逗号将数字插入数据库的问题。它仅接受点,但我具有仅适用于逗号的功能,所以有什么办法解决此问题,例如将小数点分隔从点转换为逗号
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");
答案 0 :(得分:2)
您非常需要学习如何参数化查询。您还有其他一些问题要解决。这是此查询外观的简化版本。当然,我更希望完全使用存储过程从查询中删除代码。
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语句。而且永远不要重复使用连接。
答案 1 :(得分:1)
要扩展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创建过程中使用一下,但上面没有显示。