繁体   English   中英

错误:从字符串转换日期和/或时间时转换失败

[英]Error : Conversion failed when converting date and/or time from character string

在SQL表中Date_Of_BirthDate_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)可能会随着时间的推移而改变(例如婚姻等) )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM