我在 Visual Studio 中使用 SQL Server。我正在制作一个网络应用程序。
我创建了一个包含表和关系的数据库。
我将需要在 C# 中编写能够进行选择、更新、删除、查询等功能的函数。有没有人对正确的方法来保持清洁和安全有任何见解?
我的意思是,我应该如何建立连接,我应该如何返回数据,处理故障等?
我发现的大多数教程似乎都没有使用最佳实践。
我在 Visual Studio 中使用 SQL Server。我正在制作一个网络应用程序。
我创建了一个包含表和关系的数据库。
我将需要在 C# 中编写能够进行选择、更新、删除、查询等功能的函数。有没有人对正确的方法来保持清洁和安全有任何见解?
我的意思是,我应该如何建立连接,我应该如何返回数据,处理故障等?
我发现的大多数教程似乎都没有使用最佳实践。
您不使用ORM有充分的理由吗?实体框架、Linq to SQL、NHibernate等等。除非您正在执行一些非常复杂的 SQL 语句,否则 ORM 每次都是合乎逻辑的选择。它将处理连接,提供一定程度的安全性(即采取措施避免 SQL 注入),以及使您的代码更易于阅读和维护。
Microsoft 的最佳实践“du jour”是实体框架。否则,像 NHibernate 这样的 ORM 也是一个不错的选择。
几个选项:
编辑: 最佳做法是不要使用内联 SQL 查询,我错误地说它们会为 SQL 注入打开漏洞,但如果你做对了,你可以安全地这样做。我应该说的是,如果您正在尝试最佳实践,请不要使用它们。主要是因为下线,其他一些程序员可能正在处理您的代码,看到您执行了内联 SQL,如果他们不知道 SQL 注入,他们可能会做出允许漏洞的更改。通过完全避免内联 SQL,您不仅可以避免在安全方面犯错,而且它在某种程度上是一种防御性编程技术,因为如果您不使用内联 SQL,未来的程序员不太可能使用它。第一名。希望那不会令人困惑:)
在我看来,使用表和关系最简洁的方法是使用 ObjectDataSource,然后使用 Databind 来控制并将所有查询放入 SP。
二是使用Entity Framework和Linq-to-SQL
将连接字符串放入 web.config 文件,并使用 Singleton 类获取 Connection 对象。