错误:从字符串转换日期和/或时间时转换失败
本文关键字:转换 时间 失败 日期 字符串 错误 | 更新日期: 2023-09-27 17:59:38
在SQL表Date_Of_Birth
和Date_Of_Joining
中,数据类型为date
。我需要执行update
。
我有这个代码,它显示了一个错误-Conversion failed when converting date and/or time from character string.
请帮忙。
string sql = "UPDATE Employees SET Designation = '" +textBox_BEUpdtD.Text +
"', Employee_Subgroup = '" +comboBox_BEupdt.Text +
"', Date_Of_Birth = " + dateTimePicker_DOBUpdt.Text +
", Date_Of_Joining = " + dateTimePicker_DojUpdt.Text +
" Where Employee_Name ='"+comboBox_EmpNm.Text+"' ";
SqlCommand cmd7 = new SqlCommand(, con7);
con7.Open();
int o = cmd7.ExecuteNonQuery();
MessageBox.Show(o +" : Record has been updated"); '
除了将用户变量直接发送到数据库的SQL注入问题外,我建议使用参数化查询来简化您的操作。
SqlCommand cmd7 = new SqlCommand("UPDATE Employees SET Designation = @designation, Employee_Subgroup = @subgroup, Date_Of_Birth = @dateofbirth, Date_Of_Joining = @dateofjoining Where Employee_Name = @employeename", con7);
cmd7.Parameters.AddWithValue("designation", textBox_BEUpdtD.Text);
cmd7.Parameters.AddWithValue("subgroup", comboBox_BEupdt.Text);
cmd7.Parameters.AddWithValue("dateofbirth", dateTimePicker_DOBUpdt.Value.Date);
cmd7.Parameters.AddWithValue("dateofjoining", dateTimePicker_DojUpdt.Value.Date);
cmd7.Parameters.AddWithValue("employeename",comboBox_EmpNm.Text);
con7.Open();
int o = cmd7.ExecuteNonQuery();
MessageBox.Show(o +" : Record has been updated")
也就是说,您的数据库模式存在一些问题。我强烈建议您不要键入员工姓名,因为:A) 它不一定是独一无二的,B) 在这种形式中可能会被打错,因为它只是一个纯文本框,C) 可能会随着时间的推移而变化(例如婚姻等)