您的位置:首页 > 财经 > 产业 > C#实现基于ADO.NET框架的DBHelper工具类

C#实现基于ADO.NET框架的DBHelper工具类

2024/10/6 2:23:10 来源:https://blog.csdn.net/x1234w4321/article/details/141556023  浏览:    关键词:C#实现基于ADO.NET框架的DBHelper工具类

在C#中,基于ADO.NET框架实现一个DBHelper工具类是一种常见的做法,用于简化数据库操作的代码。以下是一个简单的DBHelper类示例,它使用SqlConnection来连接SQL Server数据库,并提供了执行SQL命令、查询数据等基本功能。请注意,为了示例的简洁性,这里不包括错误处理和连接字符串的加密或安全存储。

首先,确保项目中已经引用了System.Data和System.Data.SqlClient(对于.NET Core或.NET 5/6/7等较新版本,可能需要安装NuGet包Microsoft.Data.SqlClient)。

using System;  
using System.Collections.Generic;  
using System.Data;  
using System.Data.SqlClient; // 或 Microsoft.Data.SqlClient  public class DBHelper  
{  // 连接字符串,请根据实际情况修改  private readonly string _connectionString = "Server=your_server;Database=your_database;User Id=your_username;Password=your_password;";  // 私有构造函数,防止外部实例化  private DBHelper() { }  // 获取数据库连接  private SqlConnection GetConnection()  {  return new SqlConnection(_connectionString);  }  // 执行非查询SQL语句(如INSERT、UPDATE、DELETE)  public int ExecuteNonQuery(string sql, params SqlParameter[] parameters)  {  using (SqlConnection conn = GetConnection())  {  using (SqlCommand cmd = new SqlCommand(sql, conn))  {  if (parameters != null)  {  cmd.Parameters.AddRange(parameters);  }  conn.Open();  return cmd.ExecuteNonQuery();  }  }  }  // 执行查询SQL语句,并返回DataTable  public DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)  {  DataTable dt = new DataTable();  using (SqlConnection conn = GetConnection())  {  using (SqlCommand cmd = new SqlCommand(sql, conn))  {  if (parameters != null)  {  cmd.Parameters.AddRange(parameters);  }  using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))  {  conn.Open();  adapter.Fill(dt);  }  }  }  return dt;  }  // 执行查询SQL语句,并返回第一行第一列的结果(常用于查询单个值)  public object ExecuteScalar(string sql, params SqlParameter[] parameters)  {  using (SqlConnection conn = GetConnection())  {  using (SqlCommand cmd = new SqlCommand(sql, conn))  {  if (parameters != null)  {  cmd.Parameters.AddRange(parameters);  }  conn.Open();  return cmd.ExecuteScalar();  }  }  }  // 更多方法可以根据需要添加,如执行存储过程等  
}  // 使用示例  
class Program  
{  static void Main(string[] args)  {  DBHelper dbHelper = new DBHelper(); // 注意:由于构造函数是私有的,这里应该通过静态方法或单例模式获取实例  // 示例:插入数据  string insertSql = "INSERT INTO YourTable (Column1, Column2) VALUES (@Param1, @Param2)";  int affectedRows = dbHelper.ExecuteNonQuery(insertSql, new SqlParameter("@Param1", "Value1"), new SqlParameter("@Param2", "Value2"));  // 示例:查询数据  DataTable dataTable = dbHelper.ExecuteDataTable("SELECT * FROM YourTable");  // 示例:查询单个值  object singleValue = dbHelper.ExecuteScalar("SELECT COUNT(*) FROM YourTable");  // 输出结果(仅为示例)  Console.WriteLine($"Inserted rows: {affectedRows}");  // 遍历DataTable或处理singleValue...  }  
}  // 注意:由于DBHelper类构造函数是私有的,上述Main方法中的实例化是示意性的。  
// 实践中,可能需要通过静态方法或单例模式来获取DBHelper的实例。

请注意,上面的DBHelper类使用了私有构造函数来防止外部直接实例化,这在实际应用中是一个好习惯,因为它允许控制类的实例化方式(例如,通过静态方法或单例模式)。然而,在Main方法中实例化DBHelper的示例是示意性的,因为构造函数是私有的。在实际应用中,应该通过静态方法来获取DBHelper的实例。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com