我在Visual Studio中使用SQL Server。我正在制作一个网络应用程序。
我创建了一个包含表和关系的数据库。
我需要在C#中编写能够进行选择,更新,删除,查询等功能。有没有人能够正确理解这一点,以保证事情的清洁和安全?
我的意思是,我应该如何建立连接,如何返回数据,处理故障等?
我发现的大多数教程似乎都没有使用最佳实践。
答案 0 :(得分:6)
你有没有充分的理由不使用ORM? Entity Framework,Linq to SQL,NHibernate,仅举几例。除非你正在做一些非常复杂的SQL语句,否则ORM每次都是合乎逻辑的选择。它将处理连接,提供一定程度的安全性(即采取措施避免SQL注入),以及使代码更容易阅读和维护。
答案 1 :(得分:1)
微软最佳实践“du jour”是实体框架。否则,像NHibernate这样的ORM也是一个很好的选择。
答案 2 :(得分:1)
一些选择:
编辑:最佳做法是不使用内联SQL查询,我错误地说它们为SQL注入打开了漏洞,但如果你做得对,你可以安全地这样做。我应该说的是,如果你想要最好的练习,不要使用它们。主要是因为下线,一些其他程序员可能正在处理你的代码,看看你做了内联SQL,如果他们不了解SQL注入,他们可能会做出允许漏洞的更改。通过完全避免内联SQL,您不仅可以避免出于安全性方面的错误,而且它在某种程度上是一种防御性编程技术,因为未来的程序员如果不使用内联SQL则不太可能使用内联SQL首先。希望不要混淆:)
答案 3 :(得分:1)
如果它是一个相对较小/简单的应用程序,也许你不需要像NHibernate或Entity Framework这样的完整ORM。
您可以改用Micro ORM。这些更简单的库不提供EF和NH可以执行的所有操作,但它们都能够将查询映射到对象列表。
如果您的应用程序不是非常复杂,也许这对您来说足够了。
最着名的.NET微型ORM是:
答案 4 :(得分:0)
在我看来,使用表和关系的最简洁方法是使用ObjectDataSource,然后使用Databind控制并将所有查询放入SP。
其次是使用Entity Framework和Linq-to-SQL
将连接字符串放入web.config文件中,并使用Singleton类获取Connection对象。