2009-03-05 65 views
1

我是一位以前的经典ASP程序员,有时也是编写我的第一个ASP.NET应用程序的PHP程序员。我非常喜欢改进的ADO.NET函数,但我感觉需要编写一个数据库类。部分我想整合实际与数据库交互的代码,部分我想减少重复的感觉。如何编写支持参数化查询的数据库类

一个简单的数据库类并不难,但我使用参数化查询作为我的安全措施之一。我正在努力如何将它融入课堂。我编写了一个函数,通过传入表名和列名来返回数据库中列的数据类型,但我无法想到从SQL查询中获取表和列名的可靠方法。

我的这个类的设计是有一个用于选择的Query()函数和一个用于插入/更新/删除的Execute()函数。 (不反对拥有更多的公共职能,但不希望超越自己。)这两个函数都为参数提供了一个SQL字符串和一个SortedList。通过查找SQL字符串中的参数名称并在等号前面查看,可以获取列名称。同样,查询插入,更新或删除时获取表名的操作应该非常简单,因为您一次只能处理一个表。最大的担忧是选择,因为可能有一个或多个连接,内部选择等。

我是否在错误的方向?任何我没有想到的事情会让我的生活变得更轻松或更难?有人用任何可以提供建议的语言为此写了一个类。

回答

1

第二个电话会找到一个适合你的久经考验的车轮,特别是如果这是你第一次进入aspnet的话......还有很多事情可以让你忙碌起来。

会给SubSonic增加一个建议,这个建议可能比nHibernate要轻一些,但这取决于你项目的性质,它们都是很棒的工具,并且在过去的几年里为我节省了数月的时间。

0

这听起来像我的“简单的数据库类”是隐藏太多的细节,需要使用它的类。

我写过一些包含SqlCeEngine的类,并且暴露了诸如“LookupDescription(String Code)”之类的方法......我认为这种设计是你应该关注的东西。并且,考虑查看LINQ。它有很多提供。

1

我认为,因为这是您在ASP.NET中的第一次体验,所以建议您查看Linq to SQL。请试试some tutorials,以便在尝试编写任何Linq查询之前了解其工作原理。

我可以想到在你的情况下不使用Linq to SQL的唯一原因是,如果你不使用SQL Server(或者现在或将来需要支持其他数据库),或者你不能使用.NET 3.5出于某种原因运行时。

祝你好运