简单的管理器类






1.40/5 (6投票s)
2007年11月12日
2分钟阅读

48594

450
使用 vb.net 访问数据库的一种简单方法
引言
在开发许多应用程序和网站之后,我一直觉得需要创建一个能够让我用尽可能少的代码进行编程的类。
考虑到这一点,我对微软的数据库访问类感到非常沮丧。 这些类被宣传为“最佳实践”,但它们未能遵守我们在编程 101 中学到的所有编码最佳实践。
如果这些辅助类如此“有用”,为什么我仍然需要在每次 sp 调用之前定义参数?
db.AddInParameter(dbCommand, "CategoryID", DbType.Int32, 7)
如果你像我一样,你一定厌倦了一遍又一遍地这样做。 比任何事情都更让我讨厌的是每次需要调用数据库时都必须定义所有参数类型。更糟糕的是,微软的数据访问类会调用
SqlCommandBuilder.DeriveParameters(cmd)
哈哈.. 你一定是开玩笑吧? 不是的! 代码会进行此调用,但仍然需要你定义所有存储过程参数的数据类型。 如果你有应用程序块的源代码,可以自己查看。 在该调用之后,微软的代码会克隆所有参数并将它们塞入一个糟糕的数组中。 谈论过度复杂化一切和浪费内存。 显然,这段代码是不可接受的,应该从你的应用程序中删除。
考虑到这些问题,我开始创建一个按照我的方式做事的新类。 :)
这里发布的代码基本上就是一个理想的数据库访问类应该是什么样的示例。
使用代码
我上传的代码是一个名为 DataManager 的简单类。 此类必须被继承。 它允许派生类仅用三行代码进行数据库调用。 它将处理你的所有连接、事务、回滚以及数据集/数据读取器调用。
Public Class ExampleDAL Inherits DataManager Public Sub ExampleSet(ByVal param1 As String, ByVal param2 As String, ByVal param3 As String) Me.Begin() Me.Exec("example1_set", param1, param2) Me.Exec("example2_set", param3) Me.Commit() End Sub Public Function ExampleList() As Data.DataSet Me.Begin() Dim ds As Data.DataSet = Me.Exec("example1_list") Me.Commit() Return ds End Function End Class
关注点
通常,你希望为你的应用程序的每个构造创建类。 例如,你可能希望创建一个名为 Accounts 的类,该类继承自 DataManager。 此类将包含你所有的 get、set 和 list 方法。
请注意,这只是一个示例,说明如何创建一个简单的 DataManager 类。 你需要添加更多方法来执行数据读取器、日志记录功能以及处理实际应用程序中的其他情况。
该类仅允许你执行存储过程。 这始终是你应该做的。
我包含了一些内联调试代码,可以帮助你在调试窗口中查看对数据库进行的调用。 我发现这非常有帮助,因为在某些情况下,你可能没有权限在数据库上使用 SQL Profiler。