使用 01/01/1900 00:00:00 插入的小日期时间字段 DB
本文关键字:字段 时间 DB 日期 插入 1900 使用 | 更新日期: 2023-09-27 18:32:04
我想用 c# 插入一个小日期时间 (DB) 字段值,我使用了这段代码
dataAdapter.InsertCommand = new SqlCommand("INSERT INTO journal_jour (id_emp, date, montant_acompte, heur_travaille, Absence) VALUES (" + comboBox1.SelectedValue + "," + dateTimePicker1.Value.Date.ToShortDateString() + "," + textBox2.Text.Trim() + "," + textBox1.Text.Trim() + "," + ch + ")"
, con);
但是数据库中的字段总是用默认值填充:01/01/1900 00:00:00,当我使用 breackpoint 检查其值时,它做得很好,例如今天它的值是'22/04/2012'并提前感谢您。
假设您的字段在数据库中属于日期时间类型,您可以执行以下操作。它只是为了在表中插入日期,您应该始终在SQL中使用参数。
SqlCommand cmd = new SqlCommand("INSERT INTO <table> (<column>) VALUES (@value)", connection);
cmd.Parameters.AddWithValue("@value", DateTime.Parse(dateTimePicker1.Value.Date.ToShortDateString()));
cmd.ExecuteNonQuery();
使用 SqlParameters。你会得到两个结果。
- 防止SQL注入攻击
- 无需担心每种数据类型的分隔符
string queryText = "INSERT INTO journal_jour " +
"(id_emp, date, montant_acompte, heur_travaille, Absence) " +
"VALUES (@id_emp, @dtValue, @montant, @heur,@absence)";
dataAdapter.InsertCommand = new SqlCommand(queryText, con);
dataAdapter.InsertCommand.Parameters.AddWithValue("@id_emp",comboBox1.SelectedValue);
dataAdapter.InsertCommand.Parameters.AddWithValue("@dtValue",dateTimePicker1.Value.Date);
dataAdapter.InsertCommand.Parameters.AddWithValue("@montant",textBox2.Text.Trim());
dataAdapter.InsertCommand.Parameters.AddWithValue("@heur",textBox1.Text.Trim());
dataAdapter.InsertCommand.Parameters.AddWithValue("@absence",ch);