数据访问层:DataSet转List<T>与SQL连接管理

需积分: 9 0 下载量 180 浏览量 更新于2024-09-11 收藏 6KB TXT 举报
数据访问层是软件架构中的关键组件,它负责与数据库进行交互,执行数据操作并返回结果。在C#编程环境中,这个功能通常通过特定类如`DBHelper`来实现。`DBHelper`类在这个上下文中扮演着数据访问中间件的角色,它封装了对数据库连接、SQL命令执行以及错误处理的逻辑。 首先,让我们关注数据访问层的初始化部分。`DBHelper`类包含一个静态字符串变量`MyCSharpconnString`,用于存储数据库连接字符串。这个字符串包含了数据库的源(DataSource)、初始数据库名称(InitialCatalog)、安全信息持久化设置(PersistSecurityInfo)、用户名(UserID)和密码(Password)。值得注意的是,连接字符串也可以通过`ConfigurationManager.ConnectionStrings["MyCShapDB"]`动态获取,这使得配置管理更加灵活。 `DBConntion`属性是公开的,它允许在需要的时候设置或获取数据库连接字符串,这有助于将数据库连接的创建和管理解耦,提高代码的可重用性和维护性。 核心的数据库操作方法包括`ExecuteScalar`和`ExecuteNonQuery`。`ExecuteScalar`方法用于执行返回单个值的SQL命令,如查询一个字段的值。它接受一个SQL命令文本、命令类型(如` CommandType.Text`或` CommandType.StoredProcedure`)以及参数数组。方法内部会创建一个新的`SqlCommand`对象,设置其数据库连接、命令类型、文本和参数,然后执行查询并尝试将查询结果转换为整数。如果执行过程中出现异常,会关闭连接并重新抛出异常。 相比之下,`ExecuteNonQuery`方法用于执行不返回值的SQL命令,比如插入、更新或删除操作。它的用法类似,也是通过`SqlCommand`对象执行命令,但不会尝试将结果转换,而是返回受影响的行数。这种方法确保了对于不同类型的SQL语句,代码处理方式的一致性。 数据访问层在应用程序中扮演着至关重要的角色,它隐藏了底层数据库的具体实现细节,提供了一致的接口供业务逻辑层调用,从而实现了数据库操作的模块化和可测试性。通过`DBHelper`这样的类,开发人员可以专注于业务逻辑,而不必过多关注底层数据操作的复杂性。