/// <summary>
        /// 获取一个表
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="pars"></param>
        /// <returns></returns>
        public DataTable GetTable(string sql, params SqlParameter[] pars)
        {
            // using (var con = new SqlConnection(hisConstr))

using (var con = new SqlConnection(ConnectionString))
            {
                try
                {
                    var cmd = new SqlCommand();
                    cmd.Connection = con;
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(pars);
                    con.Open();
                    var dr = cmd.ExecuteReader();
                    var dt = new DataTable();
                    dt.Load(dr);
                    dr.Close();
                    return dt;
                }
                catch (Exception exc)
                {
                    throw exc;
                }
                finally
                {
                    con.Close();
                }

}
        }
        /// <summary>
        /// 查询数据返回list
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="pars"></param>
        /// <returns></returns>
        public List<Dictionary<string, dynamic>> GetList(string sql,params SqlParameter[] pars)
        {
            using (var con = new SqlConnection(ConnectionString))
            {
                var cmd =new SqlCommand();
                cmd.Connection = con;
                cmd.CommandText = sql;
                cmd.Parameters.AddRange(pars);
                con.Open();
                var dr = cmd.ExecuteReader();
                var list = new List<Dictionary<string,dynamic>>();
                while (dr.Read())
                {
                    var newdic = new Dictionary<string,dynamic>();
                    foreach (var item in Enumerable.Range(0,dr.FieldCount).ToDictionary(dr.GetName,dr.GetValue))
                    {
                        newdic.Add(item.Key,item.Value==DBNull.Value?"":item.Value);

}
                    list.Add(newdic);
                }
            return list;
            }
        }
        /// <summary>
        /// 查询数据,返回单个值
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="pars">参数</param>
        /// <returns></returns>
        public object GetValue(string sql, params SqlParameter[] pars)
        {
            using (var con = new SqlConnection(ConnectionString))
            {
                var cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandText = sql;
                cmd.Parameters.AddRange(pars);
                con.Open();
                var value = cmd.ExecuteScalar();
                return value;
            }
        }
        /// <summary>
        /// 增删改数据
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="pars">参数</param>
        /// <returns></returns>
        public int SavaData(string sql, params SqlParameter[] pars)
        {
            using (var con = new SqlConnection(ConnectionString))
            {
                var cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandText = sql;
                cmd.Parameters.AddRange(pars);
                con.Open();
                return cmd.ExecuteNonQuery();
            }
        }
        /// <summary>
        /// 执行事务的SQL语句
        /// </summary>
        /// <param name="childSqls">SQL语句集合</param>
        /// <param name="childParametersList">参数列表集合</param>
        /// <returns></returns>
        public bool ChageDataWithTransaction(List<string> sqls, List<List<SqlParameter>> parametersList)
        {

using (var con = new SqlConnection(ConnectionString))
            {
                con.Open();
                var tran = con.BeginTransaction();
                try
                {
                    var cmd = new SqlCommand();
                    cmd.Connection = con;
                    cmd.Transaction = tran;

for (int i = 0; i < sqls.Count; i++)
                    {
                        cmd.Parameters.Clear();
                        cmd.CommandText = sqls[i];

cmd.Parameters.AddRange(parametersList[i].ToArray());

cmd.ExecuteNonQuery();
                    }
                    tran.Commit();
                    return true;
                }
                catch (Exception exc)
                {
                    tran.Rollback();

throw exc;
                }
                finally
                {
                    con.Close();
                }

}
        }

ADO.NET链接数据库封装方法的更多相关文章

  1. Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  2. ADO 动态链接数据库

    ADO(ActiveX Data Objects)是基于组件的数据库编程接口,它是一个和编程语言无关的COM组件系统. 下面内容转载自:http://www.vckbase.com/document/ ...

  3. [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]

    [Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...

  4. PHP 链接多种数据库 的方法

    数据库中  单词之间的空格(一个语句前面和后面做字符串拼接的时候最好留空格 )  可以随便加   其他地方  禁止随便加空格!!(加了 就报错)! =====================总结=== ...

  5. 使用Spring.net中对Ado.net的抽象封装来访问数据库

    使用Spring.net中对Ado.net的抽象封装来访问数据库     Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序.它提供了很多方面的功能,比如依赖注入 ...

  6. Python 3.4 链接mysql5.7 数据库使用方法

    最近笔者在研究Python3.4链接MySQL5.7版本,笔者意图在网上找到一个比较好的链接方式,网上介绍的大致有 mysqldb或者pymssql这两种方法来链接,mysqldb下载地址http:/ ...

  7. 封装JDBC操作数据库的方法

    自己动手封装java操作数据库的方法: 一:目录结构 二:所需依赖的第三方jar包 这里只需引入mysql-connector-java-5.1.8-bin.jar,mysql数据库驱动jar包 三: ...

  8. 用ADO操作数据库的方法步骤(ZT)

    http://www.cppblog.com/changshoumeng/articles/113437.html 学习ADO时总结的一些经验 用ADO操作数据库的方法步骤 ADO接口简介 ADO库包 ...

  9. 摘:用ADO操作数据库的方法步骤

    用ADO操作数据库的方法步骤 ADO接口简介 ADO库包含三个基本接口:_ConnectionPtr接口._CommandPtr接口和_RecordsetPtr接口. _ConnectionPtr接口 ...

随机推荐

  1. mysql装完计算机管理里面没mysql服务怎么解决(转)

    mysql装完计算机管理里面没mysql服务怎么解决 2017年07月04日 09:32:51 XC_Echizen 阅读数:7335 标签: mysql计算机mysql服务找不到mysql服务 更多 ...

  2. 创建学生类 有姓名 学校 和年龄 覆盖toString() 1放到集合ArrayList 然后 2在第2个位置插入1个学生信息 3判断 刘德华这个学生是否存在 存在就打出来, 4输出全部学生信息 直接打印对象

    学生类 package com.lanxi.demo1; public class Student { //创建属性 姓名,学校,年龄 private String name; private Str ...

  3. Oracle数据库表解锁语句

    --表解锁select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_m ...

  4. 《JavaScript Dom 编程艺术》读书笔记-第8章

    充实文档的内容,包括几个方面: 一个为文档创建“缩略图列表”的函数: 一个为文档创建“文献来源链接”的函数: 一个为文档创建“快捷键清单”的函数. <abbr>在HTML5 中以取代< ...

  5. angular2在ts中使用transform转换时间格式

    摘要:在angular1中我们可以在控制器中像下面那样使用filter: $filter('date')(myDate, 'yyyy-MM-dd'); 但是如何在angular2中在ts中使用自定义p ...

  6. bat中errorlevel与%errorlevel%的区别

    bat中errorlevel与%errorlevel%的区别? 他们都是判断上个命令的返回值.当使用if errorlevel 值 cmmand 句式时,它的含义是:如果返回的错误码值大于或等于值 的 ...

  7. C#添加文字水印

    使用的是iTextSharp添加PDF水印,由于是接口动态生成PDF,所以采用的是全部是内存流的形式,而且水印是平铺是.iTextSharp版本是5.5 /// <summary> /// ...

  8. 问题 Duplicate entry '0' for key 'PRIMARY'

    今天使用了触发器,在一个表中执行增删改操作,然后在另一个表中执行相应的记录时,出现了这个问题 其实这个问题应该算是细节问题,有两种情况: 1.就是在插入数据的时候将id设置为not nul但是在插入数 ...

  9. 认识:人工智能AI 机器学习 ML 深度学习DL

    人工智能 人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学. 人工智能是对人的意识. ...

  10. Python全栈之路----常用模块----datetime模块详解

    相比于time模块,datetime模块的接口则更直观,更容易调用. datetime模块定义了下面这几个类: datetime.date:表示日期的类,常用的属性有year,month,day: d ...