数据库操作封装类 DBHelper.cs

摘要:
使用系统;使用System.Collections。通用的使用系统。Linq;使用系统。网状物使用系统。配置使用System.Data。常见的使用系统。数据NamespaceModel{///<summary>///DBHelper的摘要描述///</summary>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Data.Common;
using System.Data;

namespace Model
{
    /// <summary>
    ///DBHelper 的摘要说明
    /// </summary>
    public class DBHelper
    {
        //数据库链接字符串
        private static readonly string strConn = "Data Source=.;Initial Catalog=Graduation_Dedign;Integrated Security=True";
        //数据提供程序
        private static string dbPro = "System.Data.SqlClient";

        //数据工厂
        private static DbProviderFactory db = DbProviderFactories.GetFactory(dbPro);
        private static DbConnection conn;
        private static DataSet dt;
        private static DbDataAdapter da;


        //创建并打开连接
        public static DbConnection Conn
        {
            get
            {
                if (conn == null)
                {
                    conn = db.CreateConnection();
                    conn.ConnectionString = strConn;
                }
                switch (conn.State)
                {
                    case ConnectionState.Broken:
                        conn.Close();
                        conn.Open();
                        break;
                    case ConnectionState.Closed:
                        conn.Open();
                        break;
                }

                return conn;
            }
        }

        /// <summary>
        /// 创建命令
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="commandType"></param>
        /// <param name="sqlParams"></param>
        /// <returns></returns>
        public static DbCommand CreateCommand(string sql, CommandType commandType, params DbParameter[] sqlParams)
        {
            DbCommand comm = db.CreateCommand();
            comm.Connection = Conn;
            comm.CommandType = commandType;
            comm.CommandText = sql;

            if (sqlParams != null)
            {
                comm.Parameters.Clear();
                comm.Parameters.AddRange(sqlParams);


            }

            return comm;
        }

        /// <summary>
        /// 返回受影响行数
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="commandType"></param>
        /// <param name="sqlParams"></param>
        /// <returns></returns>
        public static int ExecuteNonQuery(string sql, CommandType commandType, params DbParameter[] sqlParams)
        {
            DbCommand comm = CreateCommand(sql, commandType, sqlParams);
            int num = comm.ExecuteNonQuery();
            comm.Connection.Close();
            return num;
        }

        /// <summary>
        /// 执行多条SQL语句,实现数据库事务。
        /// </summary>
        /// <param name="SQLStringList">多条SQL语句</param>       
        /// <returns>影响的记录数</returns>
        public static int ExecuteSqlTran(List<String> SQLStringList)
        {
            DbCommand comm = db.CreateCommand();
            comm.Connection = Conn;
            DbTransaction tx = Conn.BeginTransaction();
            comm.Transaction = tx;
            try
            {
                int count = 0;
                for (int n = 0; n < SQLStringList.Count; n++)
                {
                    string strsql = SQLStringList[n];
                    if (strsql.Trim().Length > 1)
                    {
                        comm.CommandText = strsql;
                        count += comm.ExecuteNonQuery();
                    }
                }
                tx.Commit();
                return count;
            }
            catch
            {
                tx.Rollback();
                return 0;
            }

        }

        /// <summary>
        /// 返回第一行第一列
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="sql"></param>
        /// <param name="commandType"></param>
        /// <param name="sqlParams"></param>
        /// <returns></returns>
        public static T ExecuteScalar<T>(string sql, CommandType commandType, params DbParameter[] sqlParams)
        {
            DbCommand comm = CreateCommand(sql, commandType, sqlParams);
            T t = (T)comm.ExecuteScalar();
            comm.Connection.Close();
            return t;
        }

        /// <summary>
        /// 返回DataReader
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="commandType"></param>
        /// <param name="sqlParams"></param>
        /// <returns></returns>
        public static DbDataReader ExecuteReader(string sql, CommandType commandType, params DbParameter[] sqlParams)
        {
            DbCommand comm = CreateCommand(sql, commandType, sqlParams);
            return comm.ExecuteReader(CommandBehavior.CloseConnection);
        }

        /// <summary>
        /// 返回数据集
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="commandType"></param>
        /// <param name="sqlParams"></param>
        /// <returns></returns>
        public static DataTable GetDataTable(string sql, CommandType commandType, params DbParameter[] sqlParams)
        {
            DbCommand comm = CreateCommand(sql, commandType, sqlParams);
            da = db.CreateDataAdapter();
            da.SelectCommand = comm;
            dt = new DataSet();
            da.Fill(dt);

            return dt.Tables[0];
        }


    }
}

免责声明:文章转载自《数据库操作封装类 DBHelper.cs》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇splay模板 指针版&amp;amp;splay被卡祭C#基础知识下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句'' ""作用

//方法一,可以验证登录,但方法不实用。packagecom.swift; importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.ResultSet; importjava.sql.SQLException; importjava.sql.Statement...

Oracle OWI 等待事件历史视图及相关视图

Oracle提供的等待事件视图使得我们可以获取指定session以及实例级别等待事件的详细信息,这些视图分别是v$session_wait,v$session_event,以及v$system_event。然而这几个视图对于历史等待事件无能为力。对此,Oracle也提供了历史等待事件视图v$session_wait_history,同时视图v$sessio...

Mdb文件工具类,UCanAccess使用,Access数据库操作

================================ ©Copyright 蕃薯耀 2020-01-09 https://www.cnblogs.com/fanshuyao/ 使用Ocbc连接是区分电脑是32位还是64位的,需要安装相应的驱动文件,不方便,所以采用第三方的Jar包(UCanAccess) UCanAccess-4.0.4-bin...

sql语句创建文件夹、判断文件夹、创建数据库、表、

代码 USEmaster;GOifexists(select*fromsys.databaseswherename='TestDB')dropdatabaseTestDB--创建文件夹EXECsp_configure'showadvancedoptions',1GORECONFIGUREGOEXECsp_configure'xp_cmdshell',1R...

SQL select 语法(转)

  SQL 里面最常用的命令是 SELECT 语句,用于检索数据。语法是: SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ AS output_name ] [, ...] [ INTO [ TEMPORARY | TEMP ] [ TABL...

纯C++ 连接SQL Server2005 数据库读写操作的小例子

一个测试c++链接 sql server 数据库的例子// 数据库说明// 数据库用户为 sa , 密码为 空// 数据库为 MyDB// 表为 UserInfo// 表字段为 Name 、 PassWd 、ID // TestSQL.cpp : Defines the entry point for the console application.//...