Sql 获取错误将varchar数据类型转换为datetime数据类型导致值超出范围。声明已被终止

Sql 获取错误将varchar数据类型转换为datetime数据类型导致值超出范围。声明已被终止,sql,.net,Sql,.net,这是我的密码 sqlcommand=new sqlcommand("inset into table values('"+home.name'"+,'"+home.DOJ'")",con); 您正在使用从DateTime(我假定)到字符串的本地默认字符串转换,然后希望这对SQL有效 此外,您的代码还有一个 这两个问题都可以解决,并且可以使用参数化SQL提高代码的可读性: using (var command = new SqlCommand( "INSERT INTO Foo (Nam

这是我的密码

sqlcommand=new sqlcommand("inset into table values('"+home.name'"+,'"+home.DOJ'")",con);

您正在使用从
DateTime
(我假定)到字符串的本地默认字符串转换,然后希望这对SQL有效

此外,您的代码还有一个

这两个问题都可以解决,并且可以使用参数化SQL提高代码的可读性:

using (var command = new SqlCommand(
    "INSERT INTO Foo (Name, DOJ) Values (@Name, @DOJ)", connection))
{
    command.Parameters.Add("@Name", SqlDbType.VarChar).Value = home.name;
    command.Parameters.Add("@DOJ", SqlDbType.DateTime).Value = home.DOJ;
    ...
}
(相应地调整类型,例如使用
SqlDbType.NVarChar
SqlDbType.DateTime2

不要像以前那样将值直接放入SQL。使用参数化SQL是一个全面的胜利