博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DbHelper
阅读量:1822 次
发布时间:2019-04-25

本文共 3112 字,大约阅读时间需要 10 分钟。

using System.Collections.Generic;

using System.Data;
using System.Data.Common;

namespace ConsoleApp1

{
    public class DbHelper
    {
        #region 私有成员

        /// <summary>

        /// 数据库类型
        /// </summary>
        private static string ProviderName;

        /// <summary>

        /// 连接字符串
        /// </summary>
        private static string ConnectionString;

        #endregion

        #region 外部接口

        /// <summary>

        /// 通过数据库连接字符串和Sql语句查询返回DataTable
        /// </summary>
        /// <param name="sql">Sql语句</param>
        /// <returns></returns>
        public static DataTable GetDataTableWithSql(string sql)
        {
            DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(ProviderName);
            using (DbConnection conn = dbProviderFactory.CreateConnection())
            {
                conn.ConnectionString = ConnectionString;
                conn.Open();

                using (DbCommand cmd = conn.CreateCommand())

                {
                    cmd.Connection = conn;
                    cmd.CommandText = sql;

                    DbDataAdapter adapter = dbProviderFactory.CreateDataAdapter();

                    adapter.SelectCommand = cmd;
                    DataSet table = new DataSet();
                    adapter.Fill(table);
                    cmd.Parameters.Clear();
                    return table.Tables[0];
                }
            }
        }

        /// <summary>

        /// 通过数据库连接字符串和Sql语句查询返回DataTable,参数化查询
        /// </summary>
        /// <param name="sql">Sql语句</param>
        /// <param name="parameters">参数</param>
        /// <returns></returns>
        public static DataTable GetDataTableWithSql(string sql, List<DbParameter> parameters)
        {
            DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(ProviderName);
            using (DbConnection conn = dbProviderFactory.CreateConnection())
            {
                conn.ConnectionString = ConnectionString;
                conn.Open();

                using (DbCommand cmd = conn.CreateCommand())

                {

                    cmd.Connection = conn;

                    cmd.CommandText = sql;
                    if (parameters != null && parameters.Count > 0)
                    {
                        foreach (var item in parameters)
                        {
                            cmd.Parameters.Add(item);
                        }
                    }
                    DbDataAdapter adapter = dbProviderFactory.CreateDataAdapter();
                    adapter.SelectCommand = cmd;
                    DataSet table = new DataSet();
                    adapter.Fill(table);
                    cmd.Parameters.Clear();

                    return table.Tables[0];

                }
            }
        }

        /// <summary>

        /// 执行无返回值的Sql语句
        /// </summary>
        /// <param name="sql">Sql语句</param>
        public static int ExecuteSql(string sql)
        {
            int count = 0;
            DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(ProviderName);
            using (DbConnection conn = dbProviderFactory.CreateConnection())
            {
                conn.ConnectionString = ConnectionString;
                conn.Open();
                using (DbCommand cmd = dbProviderFactory.CreateCommand())
                {
                    cmd.Connection = conn;
                    cmd.CommandText = sql;
                    count = cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                    return count;
                }
            }
        }

        /// <summary>

        /// 执行无返回值的Sql语句
        /// </summary>
        /// <param name="sql">Sql语句</param>
        /// <param name="spList">查询参数</param>
        public static int ExecuteSql(string sql, List<DbParameter> paramters)
        {
            int count = 0;
            DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(ProviderName);
            using (DbConnection conn = dbProviderFactory.CreateConnection())
            {
                conn.ConnectionString = ConnectionString;
                conn.Open();
                using (DbCommand cmd = dbProviderFactory.CreateCommand())
                {
                    cmd.Connection = conn;
                    cmd.CommandText = sql;

                    if (paramters != null && paramters.Count > 0)

                    {
                        foreach (var item in paramters)
                        {
                            cmd.Parameters.Add(item);
                        }
                    }
                    count = cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                    return count;
                }
            }
        }

        #endregion

    }
}
 

转载地址:http://jjbkf.baihongyu.com/

你可能感兴趣的文章
Goland-golang:could not launch process: decoding dwarf section info at offset 0x0: too short
查看>>
个人第一个go样例,gin+gorm
查看>>
go-redis,最简单的增删改查还有json
查看>>
gorm的坑很多,无限填坑中error pq: got 6 parameters but the statement requires 5
查看>>
go get失败解决方案,推荐解决方案
查看>>
Mac上UltraEdit v18.00.0.22 分享
查看>>
go转换json,并且打印报文
查看>>
go中gorm和pg的common数据库配置
查看>>
go中gin框架支持的简单上传下载读取csv等文件
查看>>
go 闭包
查看>>
go 捕获处理error
查看>>
goland 点不出类或方法.
查看>>
go原生库简单合成一张图
查看>>
10 行 Python 代码,批量压缩图片 500 张,简直太强大了
查看>>
不到70行Python代码,轻松玩转RFM用户分析模型
查看>>
看完知乎轮子哥的编程之路,我只想说,收下我的膝盖...
查看>>
发现 2 个恶意 Python 第三方库,大家小心别中招!
查看>>
秒开 100GB 数据!甩了 Pandas 几条街啊
查看>>
Python 内存分配时的小秘密
查看>>
Oh My God!Python 还能帮你理财?!
查看>>