C# 在代码中进行SQL查询的正确方法?
我正在Visual Studio中使用SQL Server。我正在制作一个web应用程序 我已经创建了一个包含表和关系的数据库 我需要用C#编写能够进行选择、更新、删除、查询等操作的函数。是否有人了解一种正确的方法来保持事情的干净和安全 我的意思是,我应该如何建立连接,如何返回数据,如何处理故障,等等C# 在代码中进行SQL查询的正确方法?,c#,.net,sql,sql-server,C#,.net,Sql,Sql Server,我正在Visual Studio中使用SQL Server。我正在制作一个web应用程序 我已经创建了一个包含表和关系的数据库 我需要用C#编写能够进行选择、更新、删除、查询等操作的函数。是否有人了解一种正确的方法来保持事情的干净和安全 我的意思是,我应该如何建立连接,如何返回数据,如何处理故障,等等 我发现的大多数教程似乎都没有使用最佳实践。您不使用的原因是什么,仅举几个例子。除非您正在执行一些非常复杂的SQL语句,否则ORM每次都是合乎逻辑的选择。它将处理连接,提供某种程度的安全性(即采取措
我发现的大多数教程似乎都没有使用最佳实践。您不使用的原因是什么,仅举几个例子。除非您正在执行一些非常复杂的SQL语句,否则ORM每次都是合乎逻辑的选择。它将处理连接,提供某种程度的安全性(即采取措施避免SQL注入),并使代码更易于阅读和维护。Microsoft的最佳实践“du jour”是实体框架。否则,像NHibernate这样的ORM也是一个不错的选择。在我看来,使用表和关系最干净的方法是使用ObjectDataSource,然后将数据绑定到控件,并将所有查询放入SPs 第二种是使用实体框架和LINQtoSQL 将连接字符串放入web.config文件,并使用Singleton类获取连接对象 有几个选项:
编辑:最佳实践不是使用内联SQL查询,我错误地说它们为SQL注入打开了漏洞,但如果你做得对,你可以安全地这样做。我应该说的是,如果您正在尝试最佳实践,请不要使用它们。主要是因为在这一过程中,其他一些程序员可能正在处理您的代码,因为您使用了内联SQL,如果他们不知道SQL注入,他们可能会进行一些更改,从而允许出现漏洞。通过完全避免使用内联SQL,不仅可以避免在安全方面犯错误,而且在某种程度上,这是一种防御性编程技术,从这个意义上讲,如果您一开始不使用内联SQL,未来的程序员就不太可能使用它。希望不要混淆:)如果它是一个相对较小/简单的应用程序,也许您不需要像NHibernate或Entity Framework这样成熟的ORM 你可以用微型ORM代替。这些库比较简单,不提供EF和NH所能提供的所有功能,但它们都能够将查询映射到对象列表。
如果你的应用程序不是超级复杂,也许这对你来说就足够了 最著名的.NET微型ORM有:
- (由Stack Overflow的员工制作和使用)