数据库操作代码大封装(不断更新)

简介:
数据库操作有很多繁琐的细节,在这儿我把
它们封装在一起,形成一个DBManager,再把它做成一个组件,今后用起来就特别方便了。欢迎指教。
 
//作者:v1.2.0.2
/创建/时间:2007.11.17
//作者:参天树
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace DB
{
    public class DBManager
    {
        private static SqlConnection con = null;
        private static SqlCommand cmd = new SqlCommand();
  
        //打开并返回一个连接
        public static SqlConnection GetCon()
        {
            con = new SqlConnection(ConfigurationManager.ConnectionStrings["conStr"].ConnectionString);
            con.Open();
            return con;
        }
        public static void Clear()
        {
            if (con.State == ConnectionState.Open)
                con.Close();
        }
        //1.执行sql语句,不返回结果(可用于添加,删除操作,)
        public static void Exec(string strSql)
        {
            cmd.Connection = GetCon();
            cmd.CommandText = strSql;
            int count = cmd.ExecuteNonQuery();
            Clear();
            
        }
        //2.根据传入的sql语句,执行并返回相关记录的条数(一般是应用于用户登陆的身份验证)
        public static int ExecAndGetCount(string strSql)//strSql 是传入的sql命令语句
        {
            //得到数据库的连接,并且这个连接是打开的
            //建立一个命令对象
            cmd.Connection = GetCon();
            cmd.CommandText = strSql;
            string result = cmd.ExecuteScalar().ToString();//执行查询,并返回结果的第一行的第一列
            int count = Convert.ToInt32(result);
            Clear();
            return count;
        }
        //3.根据传入的sql语句,执行并返回DataReader对象
        public static SqlDataReader ExecAndGetSdr(string strSql)
        {
            cmd.Connection = GetCon();
            cmd.CommandText = strSql;
            SqlDataReader sdr = cmd.ExecuteReader();
            return sdr;
        }
        //4.根据传入的sql语句,执行并返回DataReader对象
        public static DataSet ExecAndGetDs(string strSql, string tableName)
        {
            SqlDataAdapter sda = new SqlDataAdapter(strSql, GetCon());
            DataSet ds = new DataSet();
            sda.Fill(ds, tableName);
            Clear();
            return ds;
        }
        //5.定义一个应用事务机制批量处理多条sql语句的方法
        public static bool ExecInTransation(string[] strSql)
        {
            bool flag = false;
            con = GetCon();
            cmd.Connection = con;
            SqlTransaction myTransation;
            myTransation = con.BeginTransaction();
            try
            {
                for (int i = 0; i < strSql.Length; i++)
                {
                    cmd.Transaction = myTransation;
                    cmd.CommandText = strSql[i];
                    cmd.ExecuteNonQuery();
                }
                myTransation.Commit();
                flag = true;
            }
            catch (Exception e)
            {
                myTransation.Rollback();
                flag = false;
            }
            finally
            {
                Clear();
            }
            return flag;
        }
    }
}









本文转自 参天树 51CTO博客,原文链接:http://blog.51cto.com/119244/50885,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
数据采集 Java 关系型数据库
Java代码高效连接数据库
Java代码高效连接数据库
19 2
|
1月前
|
存储 数据库 Python
用Python代码表示数据库
用Python代码表示数据库
14 0
|
4月前
|
Oracle Java 数据库连接
使用Mybatis generator自动生成代码,仅限Oracle数据库
使用Mybatis generator自动生成代码,仅限Oracle数据库
|
6月前
|
SQL Java 关系型数据库
Java的JDBC编程<-----用Java代码操作数据库(MySQL数据库)
Java的JDBC编程<-----用Java代码操作数据库(MySQL数据库)
24 0
|
1月前
|
SQL Oracle 关系型数据库
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
11 0
|
1月前
|
存储 前端开发 安全
酒店客房管理系统设计与实现(代码+数据库+文档)
酒店客房管理系统设计与实现(代码+数据库+文档)
|
1月前
|
存储 JavaScript 前端开发
基于SpringBoot的医护人员排班系统(代码+数据库+文档)
基于SpringBoot的医护人员排班系统(代码+数据库+文档)
|
1月前
|
前端开发 Java 数据库连接
基于SpringBoot宠物领养系统的设计与实现(代码+数据库+文档)
基于SpringBoot宠物领养系统的设计与实现(代码+数据库+文档)
|
1月前
|
存储 前端开发 Java
基于springboot的图书管理系统(代码+数据库+文档)
基于springboot的图书管理系统(代码+数据库+文档)
|
2月前
|
SQL 安全 Devops
一个简单的代码拼写错误导致17个生产数据库被删!微软Azure DevOps宕机10小时始末
一个简单的代码拼写错误导致17个生产数据库被删!微软Azure DevOps宕机10小时始末
21 0

热门文章

最新文章