using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;using System.Data.SqlClient;namespace GFAMS{ class DBHelper { //数据库连接字符串 private static string connStr = 'Data Source=.;Initial Catalog=数据库名;Integrated Security=True'; /// /// 内部数据连接对象 /// private static SqlConnection Conn = null; /// /// 内部实例对象 /// private static DBHelper Instance = null; private DBHelper() { } /// /// 静态方法,获取数据库连接实例 /// /// 数据库连接实例 public static DBHelper GetInstance() { if (DBHelper.Instance == null) { DBHelper.Instance = new DBHelper(); } return DBHelper.Instance; } /// /// 初始化数据库连接 /// public void InitConnection() { //如果连接对象不存在,则创建连接 if (Conn == null) Conn = new SqlConnection(connStr); //如果连接对象关闭,则打开连接 if (Conn.State.Equals(ConnectionState.Closed)) Conn.Open(); //如果连接中断,则重启连接 if (Conn.State.Equals(ConnectionState.Broken)) { Conn.Close(); Conn.Open(); } } /// /// 查询、获取 DataReader /// /// Sql语句 /// SqlDataReader 数据集 public SqlDataReader GetDataReader(string sqlStr) { InitConnection(); SqlCommand cmd = new SqlCommand(sqlStr, Conn); //CommandBehavior.CloseConnection 命令行为:当 DataReader 对象被关闭时,自动关闭占用的连接对象 return cmd.ExecuteReader(CommandBehavior.CloseConnection); } /// /// 查询、获取 DataTable /// /// Sql语句 /// DataTable 数据表 public DataSet GetDataSet(string sqlStr) { InitConnection(); DataSet ds = new DataSet(); SqlDataAdapter dap = new SqlDataAdapter(sqlStr, Conn); dap.Fill(ds); Conn.Close(); return ds; } /// /// 执行增删改 /// /// Sql语句 /// 受影响行数 public int ExecuteNonQuery(string sqlStr) { InitConnection(); SqlCommand cmd = new SqlCommand(sqlStr, Conn); int rows = cmd.ExecuteNonQuery(); Conn.Close(); return rows; } /// /// 执行聚合函数 /// /// Sql语句 /// Object对象 public object ExecuteScalar(string sqlStr) { InitConnection(); SqlCommand cmd = new SqlCommand(sqlStr, Conn); object result = cmd.ExecuteScalar(); Conn.Close(); return result; } }}
|