数据库访问类(直接执行数据库操作)

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

//引入数据库的命名空间
using System.Data.SqlClient;

/// <summary>
/// DB 数据的服务类
/// </summary>
public class DB
{
    SqlConnection con = null;//定义一个类属性,类型为SQL连接
    SqlCommand cmd = new SqlCommand();//针对 数据库操作的命令对象
	
    //利用构造函数初始化 SQL连接
    public DB()
	{
        con = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=123;");
	}

    public SqlConnection getCon()
    {
        if(con.State == ConnectionState.Closed)
            con.Open();//打开连接
        return con;
    }
    //关闭连接
    public void clear()
    {
        if (con.State == ConnectionState.Open)
            con.Close();
    }
    //根据传入的SQL语句,执行
    public int executeNonQuery(string strSql)
    {
        cmd.Connection = getCon();
        cmd.CommandText = strSql;
        int i = cmd.ExecuteNonQuery();
        clear();
        return i;
    }

    //根据传入的SQL语句 执行 并返回结果
    public string executeGetReturn(string strSql)//strSql 是传入SQL命令语句
    {
        //得到数据的连接 并且这个连接是打开
       // getCon();

        //建立一个 命令对象
        cmd.Connection = getCon(); //命令对象是需要基于 一个已经打开了的连接
        cmd.CommandText = strSql;   //指定数据库命令对象的 执行语句

        string result = cmd.ExecuteScalar().ToString(); //执行命令语句,并将其以字符串的形式返回
        clear();
        return result;
    }

    //得到一个数据集
    public DataSet getDs(string strSql,string tableName)
    {
        SqlDataAdapter sda = new SqlDataAdapter(strSql, getCon());
        DataSet ds = new DataSet();
        sda.Fill(ds, tableName);
        clear();
        return ds;
    }

    //根据传入的SQL语句,执行并返回一个只向前的数据流DataReader
    public SqlDataReader getSdr(string strSql)
    {
        cmd.Connection = getCon();
        cmd.CommandText = strSql;
        SqlDataReader sdr = cmd.ExecuteReader();
        return sdr;
    }
    
    //定义批量执行多条SQL语句的方法
    public bool executeTransaction(string[] strSql) 
    {
        bool flag = false;
        con = getCon();//得到连接
        cmd.Connection = con;//命令对象
        SqlTransaction myTransaction; //声明一个SQL事物类型
        myTransaction = con.BeginTransaction();//基于一个连接初始化事物
        try
        {          
            foreach (string sql in strSql)//遍历
            {
                cmd.Transaction = myTransaction;//指定SQL命令语句 的事物
                cmd.CommandText = sql;//给定命令语句
                cmd.ExecuteNonQuery();//执行SQL语句
            }
            myTransaction.Commit();
            flag = true;
        }
        catch (Exception e)
        {
            myTransaction.Rollback();
            flag = false;
        }
        finally
        {
            clear();
        }     
        return flag;
    }
}

你可能感兴趣的:(sql,数据库,exception,String,server,dataset)