c# - 使用 SqlCommand 的最佳实践

标签 c# sql-server visual-studio-2010 sql-server-2008 .net-4.0

我想确保在使用 SqlCommand 时我正在使用最佳实践,尤其是在安全方面。

我不确定的考虑因素:

  • 可以通过追加手动构建字符串吗?如果没有,我该怎么做?
  • 我应该改用哪些类?
  • 最佳答案

    如果您的第一个问题是谈论通过直接包含值来构建 SQL,那几乎肯定是不行的。它使您面临 SQL 注入(inject)攻击以及转换问题(例如,必须获得正确的日期/时间格式)。

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

    出于兴趣,您是否有特殊原因直接使用 SQL 而不是使用周围的众多 ORM 之一? (LLBL、 Entity Framework 、NHibernate、LINQ to SQL、SubSonic、Massive、SimpleData、Dapper...)

    关于c# - 使用 SqlCommand 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6863286/

    相关文章:

    c# - 使用 UWP 从 C# 运行 EXE

    c# - 如果我的导航属性是单个项目,我如何在 linq 语句中使用 Expression<Func<T>>?

    sql-server - 如果作业中的任何步骤失败,则通知运算符(operator)

    unit-testing - MSTest 部署项是否仅在项目测试设置文件中存在时才起作用?

    C# lambda 表达式反向 <=

    c# - 在下拉列表中显示不同的日期时间列

    sql-server - 如何使用 SSIS 将查询结果集作为电子邮件附件发送?

    sql-server - 从字符串转换日期和/或时间时转换失败 - SQL Server 错误

    c# - 在GridView/DetailsView中显示外键数据

    c++ - VS2010 RC - 调试器中只有 100 个 std::map 元素