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是一个全面的胜利