使用SqlCommand的最佳实践

min*_*nda 1 c# sql-server .net-4.0 visual-studio-2010 sql-server-2008

我想确保在使用SqlCommand时我使用的是最佳实践,特别是在安全方面.

我不确定的注意事项:

  1. 可以通过附加手动构建字符串吗?如果没有,我该怎么办?
  2. 我应该使用哪些类来代替?

Jon*_*eet 5

如果你的第一个问题是在谈论通过包括建立SQL 值直接,这几乎肯定不会好.它可以让您了解SQL注入攻击以及转换问题(例如,必须获得正确的日期/时间格式).

相反,您应该使用参数化查询,并在参数中设置值.有关SqlCommand.Parameters示例,请参阅文档.

出于兴趣,您是否有特殊原因直接使用SQL而不是使用众多ORM中的一个?(LLBL,实体框架,NHibernate,LINQ to SQL,SubSonic,Massive,SimpleData,Dapper ...)

  • @Icarus:没有正当理由的建议是毫无意义的IMO.这有什么好处? (2认同)