gpt4 book ai didi

c# - 在C#中将日期值插入sql数据库

转载 作者:行者123 更新时间:2023-11-29 11:19:58 25 4
gpt4 key购买 nike

尝试将“datetimepicker”的值插入“date”类型的列时遇到问题

cmd = new SqlCommand("insert into PIECE_D_IDENDITE VALUES('" + textBox4.Text + "','" + dateTimePicker2.Value + "','" + textBox7.Text + "','" + comboBox1.SelectedValue + "');insert into PERSONNE (ID_CARTE,PRENOM_PERSONNE,NOM_PERSONNE,PROFESSION_PERSONNE,TEL_PERSONNE,ADRESSE_PERSONNE,DATE_NAIS_PERSONNE)values('" + textBox4.Text + "','" + textBox1.Text + "','" + textBox2.Text + "','" + textBox8.Text + "','" + textBox10.Text + "','" + textBox9.Text + "','" + dateTimePicker1.Value + "')", cn);
cn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("success!");

所以问题是,当我选择大于 12 的日期数字(例如 13/10/2016)时,会出现此错误 =>“从字符串转换日期和/或时间时转换失败。”

最佳答案

您必须始终使用参数化 SQL,并且不要转换为字符串,尤其是 Date\DateTimes。

SqlCommand cmd = new SqlCommand(@"insert into PIECE_D_IDENDITE VALUES 
(@v1, @v2, @v3, @v4);
insert into PERSONNE
(ID_CARTE,PRENOM_PERSONNE,NOM_PERSONNE,
PROFESSION_PERSONNE,TEL_PERSONNE,
ADRESSE_PERSONNE,DATE_NAIS_PERSONNE)
values
(@ID_CARTE,@PRENOM_PERSONNE,@NOM_PERSONNE,
@PROFESSION_PERSONNE,@TEL_PERSONNE,
@ADRESSE_PERSONNE,@DATE_NAIS_PERSONNE);", cn);


cmd.Parameters.AddWithValue("@v1", textBox4.Text);
cmd.Parameters.AddWithValue("@v2", dateTimePicker2.Value);
cmd.Parameters.AddWithValue("@v3", textBox7.Text);
cmd.Parameters.AddWithValue("@v4", comboBox1.SelectedValue);

cmd.Parameters.AddWithValue("@ID_CARTE", textBox4.Text);
cmd.Parameters.AddWithValue("@PRENOM_PERSONNE", textBox1.Text);
cmd.Parameters.AddWithValue("@NOM_PERSONNE", textBox2.Text);
cmd.Parameters.AddWithValue("@PROFESSION_PERSONNE", textBox8.Text);
cmd.Parameters.AddWithValue("@TEL_PERSONNE", textBox10.Text);
cmd.Parameters.AddWithValue("@ADRESSE_PERSONNE", textBox9.Text);
cmd.Parameters.AddWithValue("@DATE_NAIS_PERSONNE", dateTimePicker1.Value);

cn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("success!");

在第一个插入中,您没有指定字段名称。这可行,但取决于字段的顺序和危险的恕我直言(我假设除日期之外的所有字段都是字符串类型,如果不是,请将它们转换为相应的类型)。

关于c# - 在C#中将日期值插入sql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39077732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com