这是我的代码
sqlcommand=new sqlcommand("inset into table values('"+home.name'"+,'"+home.DOJ'")",con);
答案 0 :(得分:1)
您正在使用从DateTime
(我假设)到字符串的本地默认字符串转换,然后希望它对SQL有效。
此外,您的代码有SQL injection attack vulnerability。
这两个都可以修复 - 并且您的代码可读性 - 可以使用参数化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是一个全面的胜利。