小鲁迅@

不在沉默中爆发,就在沉默中灭亡......

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

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;
using System.Data.Sql;
using System.Collections;
using System.Web.Configuration;
/// <summary>
/// DataBaseOperator 的摘要说明
/// </summary>
public class DataBaseOperator
{
 public DataBaseOperator()
 {
  //
  // TODO: 在此处添加构造函数逻辑
  //
 }
    
    private static readonly string connectionStr =WebConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
   
   /// <summary>
   /// 返回一个dataSet
   /// </summary>
   /// <param name="sql"></param>
   /// <returns></returns>
    public static DataSet GetDataSet(string sql)
    {
            DataSet ds = new DataSet();
           using(SqlConnection con=new SqlConnection(connectionStr))
           {
            try
            {
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }
                SqlDataAdapter adapter = new SqlDataAdapter(sql,con);
                adapter.Fill(ds);
            }
            catch (SqlException ex)
            {
                if (con.State != ConnectionState.Closed)
                {
                    con.Close();
                    con.Dispose();
                }
                ds = null;
                throw ex;
            }
            finally
            {
                if (con.State != ConnectionState.Closed)
                {
                    con.Close();
                    con.Dispose();
                }
            }
            return ds;
           }
    }
    /// <summary>
    /// 返回一个dataTable
    /// </summary>
    /// <param name="sql"></param>
    /// <returns></returns>
    public static DataTable GetDataTable(string sql)
    {
        using(SqlConnection con= new SqlConnection(connectionStr))
        {
            DataTable dt = new DataTable();
            try
            {
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }
            SqlDataAdapter adapter = new SqlDataAdapter(sql,con);
                adapter.Fill(dt);
            }
            catch (SqlException ex)
            {
                if (con.State != ConnectionState.Closed)
                {
                    con.Close();
                    con.Dispose();
                }
                dt = null;
                throw ex;
            }
            finally
            {
                if (con.State != ConnectionState.Closed)
                {
                    con.Close();
                    con.Dispose();
                }
            }
            return dt;   
    }
    }
    /// <summary>
    /// 返回一个datatable,需传递参数
    /// </summary>
    /// <param name="sql"></param>
    /// <param name="cmdParms"></param>
    /// <returns></returns>
    public static DataTable GetDataTable(string sql, params SqlParameter[] cmdParms)
    {
        using( SqlConnection con=new SqlConnection(connectionStr))
        {
            DataTable dt = new DataTable();
            try
            {
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }
                SqlDataAdapter adpter = new SqlDataAdapter();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandText = sql;
                if (cmdParms != null)
                {
                    foreach (SqlParameter para in cmdParms)
                    {
                        cmd.Parameters.Add(para);
                    }
                }
                adpter.SelectCommand = cmd;
                adpter.Fill(dt);
                return dt;
            }
            catch (SqlException e)
            {
                throw e;
            }
            finally
            {
                if (con.State != ConnectionState.Closed)
                {
                    con.Close();
                    con.Dispose();
                }
            }
        }
   
    }

    /// <summary>
    /// 返回DataReader
    /// </summary>
    /// <param name="sql"></param>
    /// <returns></returns>
    public static SqlDataReader GetDataReader(string sql)
    {
        SqlConnection con=new SqlConnection(connectionStr);
       
        SqlCommand cmd = new SqlCommand();
        SqlDataReader reader = null;
        try
        {
            if (con.State == ConnectionState.Closed)
            {
                con.Open();
            }
            cmd.CommandText = sql;
            cmd.Connection = con;
            reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            return reader;
        }
        catch (SqlException ex)
        {
            if (con.State != ConnectionState.Closed)
            {
                con.Close();
                con.Dispose();
            }
            reader = null;
            throw ex;
        }
       
    }

    private static void PrepareCommand( SqlConnection con, SqlCommand cmd, SqlTransaction trans, string cmdText, SqlParameter[] parameters)
    {
        cmd.Connection = con;
        cmd.CommandText = cmdText;
        if (trans != null)
        { cmd.Transaction = trans; }
        if (parameters != null)
        {
            foreach (SqlParameter parm in parameters)
            {
                cmd.Parameters.Add(parm);
            }
        }
    }
    /// <summary>
    /// 返回DataReader,需传递参数
    /// </summary>
    /// <param name="sql"></param>
    /// <param name="cmdParms"></param>
    /// <returns></returns>
    public static SqlDataReader GetDataReader(string sql, params SqlParameter[] cmdParms)
    {
          SqlConnection con = new SqlConnection(connectionStr);
            SqlDataReader reader = null;
            try
            {
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandText = sql;
                if (cmdParms != null)
                {
                    foreach (SqlParameter para in cmdParms)
                    {
                        cmd.Parameters.Add(para);
                    }
                }
                reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                return reader;
            }
            catch (SqlException e)
            {
                throw e;
            }
    }
    /// <summary>
    ///  返回操作是否成功
    /// </summary>
    /// <param name="SQLString"></param>
    /// <param name="cmdParms"></param>
    /// <returns></returns>
    public static bool ExecuteSql(string SQLString, params SqlParameter[] cmdParms)
    {
        using (SqlConnection con = new SqlConnection(connectionStr))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                try
                {
                    con.Open();
                    PrepareCommand(con, cmd, null, SQLString, cmdParms);
                    cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                    cmd.Dispose();
                    con.Close();
                    con.Dispose();
                    return true;
                }
                catch (SqlException e)
                {
                    if (con.State != ConnectionState.Closed)
                    {
                        con.Close();
                        con.Dispose();
                    }
                    throw new Exception(e.ToString() + SQLString.ToString());
                }
            }
        }
    }
    public static bool GetExecute(string sql, params SqlParameter[] cmdParms)
    {
        bool flag = false;
        using (SqlConnection con = new SqlConnection(connectionStr))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                try
                {
                    if (con.State == ConnectionState.Closed)
                    {
                        con.Open();
                    }
                    cmd.Connection = con;
                    cmd.CommandText = sql;
                    if (cmdParms != null)
                    {
                        foreach (SqlParameter parm in cmdParms)
                        {
                            cmd.Parameters.Add(parm);
                        }
                    }

                    cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                    flag = true;

                }
                catch (SqlException e)
                {
                    throw e;
                }
                finally
                {
                    con.Close();
                    con.Dispose();
                }

            }
        }
        return flag;
    }

    public static bool ExecuteSqlFlag(string SQLString)
    {
        bool flag = false;
        using (SqlConnection con = new SqlConnection(connectionStr))
        {
            using (SqlCommand cmd = new SqlCommand(SQLString, con))
            {
                try
                {
                    if (con.State == ConnectionState.Closed)
                    {
                        con.Open();
                    }
                    int rows = cmd.ExecuteNonQuery();
                    flag = true;
                }
                catch (SqlException e)
                {
                    if (con.State != ConnectionState.Closed)
                    {
                        con.Close();
                        con.Dispose();
                    }

                    flag = false;
                    throw e;
                }
                finally
                {
                    if (con.State != ConnectionState.Closed)
                    {
                        con.Close();
                        con.Dispose();
                    }
                }

            }
        }
        return flag;
    }

    /// <summary>
    ///  批量删除,传递一个数组
    /// </summary>
    /// <param name="SQLStringList"></param>
    /// <returns></returns>
    public static bool ExecuteSqlTranFlag(ArrayList SQLStringList)
    {
        using (SqlConnection con = new SqlConnection(connectionStr))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.Connection = con;
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }
                SqlTransaction trans = con.BeginTransaction();
                cmd.Transaction = trans;
                try
                {
                    for (int i = 0; i < SQLStringList.Count; i++)
                    {
                        string sql = SQLStringList[i].ToString();
                        if (sql.Trim().Length > 1)
                        {
                            cmd.CommandText = sql;
                            cmd.ExecuteNonQuery();
                        }
                    }
                    trans.Commit();
                    return true;
                }
                catch (SqlException e)
                {
                    trans.Rollback();
                    throw e;
                }
                finally
                {
                    if (con.State != ConnectionState.Closed)
                    {
                        con.Close();
                        con.Dispose();
                    }
                }

            }
        }
    }

    /**/
    /// <summary>
    /// 将只返回一条记录的sql语句执行并且返回结果
    /// </summary>
    /// <param name="defaultValue">如果没有记录的话的默认值</param>
    /// <returns>返回结果为string</returns>

    public string GetOneResult(string sqlStr,string defaultValue)
    {
        string rr = "";
        SqlConnection con = new SqlConnection(connectionStr);    
        SqlDataReader dr=null;
        try
        {
            if (con.State == ConnectionState.Closed)
            {
                con.Open();
            }
            SqlCommand cmd = new SqlCommand(sqlStr,con);
            dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            if (dr.HasRows)
            {
                dr.Read();
                rr = dr[0].ToString();
                dr.Close();
                con.Close();
                con.Dispose();
            }
        }
        catch
        {
            rr = "";
        }
        finally
        {
            if (con.State != ConnectionState.Closed)
            {
                con.Close();
                con.Dispose();
            }
        }
        if (rr == "")
            rr = defaultValue;
        return rr;
    }

    /// <summary>
    /// 执行返回bool的存储过程
    /// </summary>
    /// sqlStr 存储过程名
    /// <returns>是否执行成功</returns>
    public static bool ExecuteProcedure(string sqlStr)
    {
        using (SqlConnection con = new SqlConnection(connectionStr))
        {
            using (SqlCommand cmd = new SqlCommand(sqlStr,con))
            {
                try
                {
              
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }
                 cmd.CommandType = CommandType.StoredProcedure;
                 cmd.ExecuteNonQuery();
                 con.Close();
                 con.Dispose();
                 return true;
                }
                catch (SqlException e)
                {
                    throw e;
                    return false;
                }
                finally
                {
                    con.Close();
                    con.Dispose();
                }
            }
        }

    }
    /// <summary>
    ///  返回查询结果的第一行第一列
    /// </summary>
    /// <param name="SQLString"></param>
    /// <param name="cmdParms"></param>
    /// <returns></returns>
    public static object ExecuteScalar(string SQLString, params SqlParameter[] cmdParms)
    {
        object str;
        using (SqlConnection con = new SqlConnection(connectionStr))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                try
                {
                    if (con.State == ConnectionState.Closed)
                    {
                        con.Open();
                    }
                    cmd.Connection = con;
                    cmd.CommandText = SQLString;
                    if (cmdParms != null)
                    {
                        foreach (SqlParameter parm in cmdParms)
                        {
                            cmd.Parameters.Add(parm);
                        }
                    }
                   str= cmd.ExecuteScalar();
                   cmd.Parameters.Clear();
                }
                catch (SqlException e)
                {
                    throw e;
                }
                finally
                {
                    con.Close();
                    con.Dispose();
                }
            }
            return str;
        }
    }
}

 

posted on 2008-03-14 11:55  小鲁迅@  阅读(713)  评论(0)    收藏  举报