zoukankan      html  css  js  c++  java
  • DBHelper

    using System;
    using System.Data;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI.WebControls;
    using System.Data.SqlClient;
    
    /// <summary>
    /// 操作数据库 的摘要说明
    /// </summary>
    public class DataBase
    {
        //连接字符串
        public static string Strconnection = "server=.;database=Test;uid=sa;pwd=123456";
    
        ////创建连接
        //public static SqlConnection ConDataBase = new SqlConnection(Strconnection);
        public static string strPasswordKey = "f?~ 1_?}";
        public DataBase()
        {
    
            //
            // TODO: 在此处添加构造函数逻辑
            //
    
        }
    
        /// <summary>
        /// 执行查询并将查询结果填充到DataSet
        /// </summary>
        /// <param name="CmdType">命令类型 分sql查询语句或存储过程</param>
        /// <param name="StrCmdText">命令字符串</param>
        /// <param name="BolIfPage">是否翻页,true是,false否</param>
        /// <param name="InPageSize">每页显示的记录数,无翻页则为0</param>
        /// <param name="InPageCount">总页数,无翻页则为0</param>
        /// <param name="ParmObj">参数</param>
        /// <returns>返回结果集DataSet</returns>
        public static DataSet ExecuteDataSet(CommandType CmdType, string StrCmdText, bool BolIfPage, int InPageSize, int InPageCount, params SqlParameter[] ParmObj)
        {
            return ExecuteDataSet(Strconnection, CmdType, StrCmdText, BolIfPage, InPageSize, InPageCount, ParmObj);
        }
    
        /// <summary>
        /// 执行查询并将查询结果填充到DataSet
        /// </summary>
        /// <param name="CmdType">命令类型 分sql查询语句或存储过程</param>
        /// <param name="StrCmdText">命令字符串</param>
        /// <param name="ParmObj">参数</param>
        /// <returns>返回结果集DataSet</returns>
        public static DataSet ExecuteDataSet(CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            return ExecuteDataSet(Strconnection, CmdType, StrCmdText, false, 0, 0, ParmObj);
        }
    
        /// <summary>
        /// 执行查询并将查询结果填充到DataSet
        /// </summary>
        /// <param name="StrCon">连接字符串</param>
        /// <param name="CmdType">命令类型</param>
        /// <param name="StrCmdText">命令语句</param>
        /// <param name="ParmObj">参数</param>
        /// <param name="BolIfPage">是否翻页,true是,false否</param>
        /// <param name="InPageSize">每页显示的记录数,无翻页则为0</param>
        /// <param name="InPageCount">总页数,无翻页则为0</param>
        /// <returns>返回结果集DataSet</returns>
        public static DataSet ExecuteDataSet(string StrCon, CommandType CmdType, string StrCmdText, bool BolIfPage, int InPageSize, int InPageCount, params SqlParameter[] ParmObj)
        {
            //StrCon = ConnDb.conn.Decrypt("jxhdjxxjsyxgs", StrCon);
            SqlCommand CmbObj = new SqlCommand();
            using (SqlConnection ConObj = new SqlConnection(StrCon))
            {
                PrepareCommand(CmbObj, ConObj, CmdType, StrCmdText, ParmObj);
                SqlDataAdapter DadObj = new SqlDataAdapter();
                DadObj.SelectCommand = CmbObj;
                DataSet DstObj = new DataSet();
                if (BolIfPage)
                {
                    DadObj.Fill(DstObj, InPageCount, InPageSize, "menu");
                }
                else
                {
                    DadObj.Fill(DstObj);
                }
                CmbObj.Parameters.Clear();
                DadObj.Dispose();
                return DstObj;
            }
        }
    
    
        /// <summary>
        /// 执行SQL操作如:插入,删除或存储过程;操作成功返回受影响数;否则返回0
        /// </summary>
        /// <param name="CmdType">命令类型</param>
        /// <param name="StrCmdText">命令语句</param>
        /// <param name="ParmObj">参数</param>
        /// <returns>操作成功返回受影响数;否则返回0</returns>
        public static int ExecuteNonQuerys(CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            return ExecuteNonQuerys(Strconnection, CmdType, StrCmdText, ParmObj);
        }
    
    
        /// <summary>
        ///  执行SQL操作如:插入,删除或存储过程;操作成功返回受影响数;否则返回0
        /// </summary>
        /// <param name="CmdType">命令类型</param>
        /// <param name="StrCmdText">命令语句</param>
        /// <param name="ParmObj">参数</param>
        /// <returns>操作成功返回受影响数;否则返回0</returns>
        public static int ExecuteNonQuerys(string StrCon, CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            //StrCon = ConnDb.conn.Decrypt("jxhdjxxjsyxgs", StrCon);
            SqlCommand CmbObj = new SqlCommand();
            CmbObj.CommandTimeout = 60;
            using (SqlConnection ConObj = new SqlConnection(StrCon))
            {
                PrepareCommand(CmbObj, ConObj, CmdType, StrCmdText, ParmObj);
                try
                {
                    int i = CmbObj.ExecuteNonQuery();
                    CmbObj.Parameters.Clear();
                    return i;
                }
                catch
                {
                    return 0;
                }
            }
        }
    
        /// <summary>
        /// 执行SQL操作如:插入,删除或存储过程;操作成功返回1;否则返回0
        /// </summary>
        /// <param name="CmdType">命令类型</param>
        /// <param name="StrCmdText">命令语句</param>
        /// <param name="ParmObj">参数</param>
        /// <returns>操作成功返回1;否则返回0</returns>
        public static int ExecuteNonQuery(CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            return ExecuteNonQuery(Strconnection, CmdType, StrCmdText, ParmObj);
        }
    
        /// <summary>
        ///  执行SQL操作如:插入,删除或存储过程;操作成功返回1;否则返回0
        /// </summary>
        /// <param name="CmdType">命令类型</param>
        /// <param name="StrCmdText">命令语句</param>
        /// <param name="ParmObj">参数</param>
        /// <returns>操作成功返回1;否则返回0</returns>
        public static int ExecuteNonQuery(string StrCon, CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            //StrCon = ConnDb.conn.Decrypt("jxhdjxxjsyxgs", StrCon);
            SqlCommand CmbObj = new SqlCommand();
            CmbObj.CommandTimeout = 60;
            using (SqlConnection ConObj = new SqlConnection(StrCon))
            {
                PrepareCommand(CmbObj, ConObj, CmdType, StrCmdText, ParmObj);
                try
                {
                    CmbObj.ExecuteNonQuery();
                    CmbObj.Parameters.Clear();
                    return 1;
                }
                catch
                {
                    return 0;
                }
            }
        }
    
        /// <summary>
        /// 操作存储过程
        /// </summary>
        /// <param name="strSql">存储过程名或SQL命令</param>
        /// <param name="ParmObj">参数,无参为null</param>
        /// <returns>操作成功返回true;否则返回false</returns>
        public static bool ExecuteProc(string strSql, params SqlParameter[] ParmObj)
        {
            return (ExecuteNonQuery(CommandType.StoredProcedure, strSql, ParmObj) > 0);
        }
    
        /// <summary>
        /// 操作存储过程
        /// </summary>
        /// <param name="strSql">存储过程名或SQL命令</param>
        /// <returns>操作成功返回true;否则返回false</returns>
        public static bool ExecuteProc(string strSql)
        {
            return (ExecuteNonQuery(CommandType.StoredProcedure, strSql, null) > 0);
        }
    
        /// <summary>
        /// 执行查询并将查询,返回SqlDataReader
        /// </summary>
        /// <param name="CmdType">执行类型</param>
        /// <param name="StrCmdText">存储过程名或SQL命令</param>
        /// <param name="ParmObj">参数,无参数为null</param>
        /// <returns>返回SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            return ExecuteReader(Strconnection, CmdType, StrCmdText, ParmObj);
        }
    
        /// <summary>
        /// 执行查询并将查询,返回SqlDataReader
        /// </summary>
        /// <param name="StrCon">连接字符串</param>
        /// <param name="CmdType">执行类型</param>
        /// <param name="StrCmdText">存储过程名或SQL命令</param>
        /// <param name="ParmObj">参数,无参数为null</param>
        /// <returns>返回SqlDataReader</returns>
        public static SqlDataReader ExecuteReader(string StrCon, CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            //StrCon = ConnDb.conn.Decrypt("jxhdjxxjsyxgs", StrCon);
            SqlDataReader DtrObj;
            SqlCommand CmdObj = new SqlCommand();
            SqlConnection ConObj = new SqlConnection(StrCon);
            try
            {
                PrepareCommand(CmdObj, ConObj, CmdType, StrCmdText, ParmObj);
                SqlDataReader reader = CmdObj.ExecuteReader(CommandBehavior.CloseConnection);
                CmdObj.Parameters.Clear();
                DtrObj = reader;
            }
            catch
            {
                throw;
            }
            return DtrObj;
        }
    
        /// <summary>
        /// PrepareCommand
        /// </summary>
        /// <param name="CmdObj">SqlCommand</param>
        /// <param name="ConObj">SqlConnection</param>
        /// <param name="CmdType">执行类型</param>
        /// <param name="StrCmdText">存储过程名或SQL命令</param>
        /// <param name="ParmObj">参数,无参数为null</param>
        private static void PrepareCommand(SqlCommand CmdObj, SqlConnection ConObj, CommandType CmdType, string StrCmdText, SqlParameter[] ParmObj)
        {
            if (ConObj.State != ConnectionState.Open)
            {
                ConObj.Open();
            }
            CmdObj.Connection = ConObj;
            CmdObj.CommandText = StrCmdText;
            CmdObj.CommandTimeout = 1000;
            CmdObj.CommandType = CmdType;
            if (ParmObj != null)
            {
                foreach (SqlParameter parameter in ParmObj)
                {
                    CmdObj.Parameters.Add(parameter);
                }
            }
        }
    
        /// <summary>
        /// 操作存储过程或SQL返回结果集的第一行第一列
        /// </summary>
        /// <param name="CmdType">执行类型</param>
        /// <param name="StrCmdText">存储过程名或SQL命令</param>
        /// <param name="ParmObj">参数,无参数为null</param>
        /// <returns>返回结果集</returns>
        public static object ExecuteScalar(CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            return ExecuteScalar(Strconnection, CmdType, StrCmdText, ParmObj);
        }
    
        /// <summary>
        /// 操作存储过程或SQL返回结果集的第一行第一列
        /// </summary>
        /// <param name="CmdType">执行类型</param>
        /// <param name="StrCmdText">存储过程名或SQL命令</param>
        /// <param name="ParmObj">参数,无参数为null</param>
        /// <returns>返回结果集object</returns>
        public static object ExecuteScalar(SqlConnection ConObj, CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            SqlCommand CmdObj = new SqlCommand();
            PrepareCommand(CmdObj, ConObj, CmdType, StrCmdText, ParmObj);
            object obj2 = CmdObj.ExecuteScalar();
            CmdObj.Parameters.Clear();
            return obj2;
        }
    
        /// <summary>
        /// 操作存储过程或SQL返回结果集的第一行第一列
        /// </summary>
        /// <param name="StrCon">连接字符串</param>
        /// <param name="CmdType">执行类型</param>
        /// <param name="StrCmdText">存储过程名或SQL命令</param>
        /// <param name="ParmObj">参数,无参数为null</param>
        /// <returns>返回结果集object</returns>
        public static object ExecuteScalar(string StrCon, CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            //StrCon = ConnDb.conn.Decrypt("jxhdjxxjsyxgs", StrCon);
            SqlCommand CmdObj = new SqlCommand();
            using (SqlConnection ConObj = new SqlConnection(StrCon))
            {
                PrepareCommand(CmdObj, ConObj, CmdType, StrCmdText, ParmObj);
                object obj2 = CmdObj.ExecuteScalar();
                CmdObj.Parameters.Clear();
                return obj2;
            }
        }
    
        /// <summary>
        /// 操作存储过程或SQL返回结果集DataTable
        /// </summary>
        /// <param name="CmdType">执行类型</param>
        /// <param name="StrCmdText">存储过程名或SQL命令</param>
        /// <param name="ParmObj">参数,无参数为null</param>
        /// <returns>返回结果集DataTable</returns>
        public static DataTable ExecuteTable(CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            return ExecuteTable(Strconnection, CmdType, StrCmdText, ParmObj);
        }
    
        /// <summary>
        /// 操作存储过程或SQL返回结果集DataTable
        /// </summary>
        /// <param name="ConObj">SqlConnection</param>
        /// <param name="CmdType">执行类型</param>
        /// <param name="StrCmdText">存储过程名或SQL命令</param>
        /// <param name="ParmObj">参数,无参数为null</param>
        /// <returns>返回结果集DataTable</returns>
        public static DataTable ExecuteTable(SqlConnection ConObj, CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            SqlCommand CmdObj = new SqlCommand();
            PrepareCommand(CmdObj, ConObj, CmdType, StrCmdText, ParmObj);
            SqlDataAdapter DadObj = new SqlDataAdapter();
            DadObj.SelectCommand = CmdObj;
            DataSet DstObj = new DataSet();
            DadObj.Fill(DstObj, "Result");
            CmdObj.Parameters.Clear();
            return DstObj.Tables["Result"];
        }
    
        /// <summary>
        /// 操作存储过程或SQL返回结果集DataTable
        /// </summary>
        /// <param name="StrCon">连接字符串</param>
        /// <param name="CmdType">执行类型</param>
        /// <param name="StrCmdText">存储过程名或SQL命令</param>
        /// <param name="parm">参数,无参数为null</param>
        /// <returns>返回结果集DataTable</returns>
        public static DataTable ExecuteTable(string StrCon, CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            //StrCon = ConnDb.conn.Decrypt("jxhdjxxjsyxgs", StrCon);
            SqlCommand CmdObj = new SqlCommand();
            using (SqlConnection ConObj = new SqlConnection(StrCon))
            {
                PrepareCommand(CmdObj, ConObj, CmdType, StrCmdText, ParmObj);
                SqlDataAdapter DadObj = new SqlDataAdapter();
                DadObj.SelectCommand = CmdObj;
                DataSet DstObj = new DataSet();
                DadObj.Fill(DstObj, "Result");
                CmdObj.Parameters.Clear();
                if (DstObj.Tables.Count > 0)
                {
                    return DstObj.Tables["Result"];
                }
                return null;
            }
        }
    
        /// <summary>
        /// 查询记录是否存在//相同记录
        /// </summary>
        /// <param name="CmdType">执行类型</param>
        /// <param name="StrCmdText">SQL语句或存储过程</param>
        /// <param name="ParmObj">查询参数</param>
        /// <returns>存在返回true 否则false</returns>
        public static bool Exists(CommandType CmdType, string StrCmdText, params SqlParameter[] ParmObj)
        {
            bool Bolfolg = true;
    
            if ((ObjectToInt32(ExecuteScalar(CmdType, StrCmdText, ParmObj)) > 0))
            {
                Bolfolg = true;
            }
            else
            {
                Bolfolg = false;
            }
            return Bolfolg;
        }
    
        /// <summary>
        /// 查询记录是否存在//相同记录
        /// </summary>
        /// <param name="strSql">查询sql语句</param>
        /// <returns>存在返回true 否则false</returns>
        public static bool ExistsSql(string strSql)
        {
            return Exists(CommandType.Text, strSql, null);
        }
    
        /// <summary>
        /// 获取表里某字段的最大值
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="fieldName">字段名</param>
        /// <returns>该字段在表里的最大值</returns>
        public static int GetMaxId(string tableName, string fieldName)
        {
            string query = "select max(" + fieldName + ") from " + tableName;
            return ObjectToInt32(ExecuteScalar(CommandType.Text, query, null));
        }
    
        /// <summary>
        /// 将数据对象转换成整形
        /// </summary>
        /// <param name="obj"></param>
        /// <returns>返回-1表示转换失败</returns>
        public static int ObjectToInt32(object obj)
        {
            int result = 0;
            try
            {
                if (!(object.Equals(obj, null) || object.Equals(obj, DBNull.Value)))
                {
                    int.TryParse(obj.ToString(), out result);
                }
                return result;
            }
            catch
            {
                return -1;
            }
        }
    
        /// <summary>
        /// 读取sql server数据库结构 输出表名
        /// </summary>
        /// <param name="sType">结构类型 Table表 Views视图</param>
        /// <returns></returns>
        public static DataTable GetSchemaTable()
        {
            DataTable DtblObj;
            using (SqlConnection ConObj = new SqlConnection(Strconnection))
            {
                if (ConObj.State != ConnectionState.Open)
                {
                    ConObj.Open();
                }
                try
                {
                    DtblObj = ConObj.GetSchema("TABLES");
                }
                catch
                {
                    DtblObj = null;
                }
                finally
                {
                    ConObj.Close();
                }
            }
            return DtblObj;
        }
    
        /// <summary>
        /// MD5,SHA1加密
        /// </summary>
        /// <param name="StrPassword">要加密的密码</param>
        /// <returns>返回加密后的字符串</returns>
        public static string Encrypt(string StrPassword)
        {
            string str = "";
            FormsAuthenticationTicket ticket = new System.Web.Security.FormsAuthenticationTicket(StrPassword, true, 2);
            str = FormsAuthentication.Encrypt(ticket).ToString();
            return str;
        }
    
        /// <summary>
        /// MD5,SHA1加密
        /// </summary>
        /// <param name="StrPassword">要加密的密码</param>
        /// <param name="InFormat">0 为 SHA1,1 为 MD5</param>
        /// <returns>返回加密后的字符串</returns>
        public static string Encrypt(string StrPassword, int InFormat)
        {
            string str = "";
            switch (InFormat)
            {
                case 0:
                    str = FormsAuthentication.HashPasswordForStoringInConfigFile(StrPassword, "SHA1");
                    break;
                case 1:
                    str = FormsAuthentication.HashPasswordForStoringInConfigFile(StrPassword, "MD5");
                    break;
            }
            return str;
        }
    
        /// <summary>
        /// 绑定DropDownList控件,取得选中值
        /// </summary>
        /// <param name="str_Value">数据库表示Value值字段</param>
        /// <param name="str_Text">数据库表示Text值字段</param>
        /// <param name="str_Value_Field"></param>
        /// <param name="str_Sql"></param>
        /// <param name="myDropDownList"></param>
        public static void SelectBindDropDownListValue(string str_Value, string str_Text, string str_Value_Field, string str_Sql, DropDownList myDropDownList)
        {
            BindDropDownList(str_Value, str_Text, str_Sql, myDropDownList);// 绑定myDropDownList控件
            if (myDropDownList.Items.Count > 0)
            {
                myDropDownList.Items[0].Selected = false;
                for (int i = 0; i < myDropDownList.Items.Count; i++)
                {
                    if (str_Value_Field == myDropDownList.Items[i].Value)
                    {
                        myDropDownList.Items[i].Selected = true;
                        break;
                    }
                }
            }
        }
    
        /// <summary>
        /// 绑定CheckBoxList控件并显示数据,CheckBoxList控件Value,Text值将分别等于等于str_Value,str_Text值
        /// </summary>
        /// <param name="str_Value">绑定DropDownList控件Value值相对应数据库表字段名</param>
        /// <param name="str_Text">绑定DropDownList控件Text值相对应数据库表字段名</param>
        /// <param name="sql">Select-SQL语句</param>
        /// <param name="myDropDownList">DropDownList控件id值</param>
        public static void BindCheckBoxList(string str_Value, string str_Text, string sql, CheckBoxList myCheckBoxList)
        {
            myCheckBoxList.DataSource = ExecuteDataSet(CommandType.Text, sql, null);
            myCheckBoxList.DataValueField = str_Value;
            myCheckBoxList.DataTextField = str_Text;
            myCheckBoxList.DataBind();
        }
    
        /// <summary>
        /// 绑定DropDownList控件并显示数据,DropDownList控件Value,Text值将分别等于等于str_Value,str_Text值
        /// </summary>
        /// <param name="str_Value">绑定DropDownList控件Value值相对应数据库表字段名</param>
        /// <param name="str_Text">绑定DropDownList控件Text值相对应数据库表字段名</param>
        /// <param name="sql">Select-SQL语句</param>
        /// <param name="myDropDownList">DropDownList控件id值</param>
        public static void BindDropDownList(string str_Value, string str_Text, string sql, DropDownList myDropDownList)
        {
            myDropDownList.DataSource = ExecuteDataSet(CommandType.Text, sql, null);
            myDropDownList.DataValueField = str_Value;
            myDropDownList.DataTextField = str_Text;
            myDropDownList.DataBind();
        }
    
    
        /// <summary>
        /// 查询记录指定值
        /// </summary>
        /// <param name="Strsql">SQL语句</param>
        /// <returns>返回查询的值</returns>
        public static string SelectObject(string Strsql)
        {
            using (SqlConnection ConObj = new SqlConnection( Strconnection))
            {
                ConObj.Open();
                SqlCommand ComObj = new SqlCommand(Strsql, ConObj);
                object obj = ComObj.ExecuteScalar();
                return (obj == null) ? "" : obj.ToString();
            }
        }
    
        /// <summary>
        /// 执行SQL,返回查询结果
        /// </summary>
        /// <param name="sql">Select-SQL语句</param>
        public static string Exec(string sql)
        {
            string show = "";
            using (SqlConnection con = new SqlConnection( Strconnection))
            {
                try
                {
                    con.Open();
                    SqlCommand Com = new SqlCommand(sql, con);
                    show = Com.ExecuteScalar().ToString();
    
                }
                catch
                {
                    show = "";
                }
                return show.ToString();
            }
        }
        /// <summary>
        /// 执行SQL,返回查询结果
        /// </summary>
        /// <param name="sql">Select-SQL语句</param>
        public static string Exec(string sql, params SqlParameter[] ParmObj)
        {
            string show = "";
            using (SqlConnection con = new SqlConnection( Strconnection))
            {
                try
                {
                    con.Open();
                    SqlCommand Com = new SqlCommand(sql, con);
                    if (ParmObj != null)
                    {
                        foreach (SqlParameter parameter in ParmObj)
                        {
                            Com.Parameters.Add(parameter);
                        }
                    }
                    show = Com.ExecuteScalar().ToString();
    
                }
                catch
                {
                    show = "";
                }
                return show.ToString();
            }
        }
        /// <summary>
        /// 执行SQL,返回查询结果
        /// </summary>
        /// <param name="sql">Select-SQL语句</param>
        public static string Exec(string strConnection, string sql)
        {
            string show = "";
            using (SqlConnection con = new SqlConnection( strConnection))
            {
                try
                {
                    con.Open();
                    SqlCommand Com = new SqlCommand(sql, con);
                    show = Com.ExecuteScalar().ToString();
    
                }
                catch
                {
                    show = "";
                }
                return show.ToString();
            }
        }
        /// <summary>
        /// 事务提交多条SQL语句
        /// </summary>
        /// <param name="sqls">SQL语句</param>
        /// <returns></returns>   
        public static bool Transaction(params string[] sqls)
        {
            using (SqlConnection ConObj = new SqlConnection( Strconnection))
            {
                SqlCommand CmbObj = new SqlCommand();
                CmbObj.CommandTimeout = 60;
                CmbObj.Connection = ConObj;
                ConObj.Open();
                bool isok = true;
                CmbObj.Transaction = ConObj.BeginTransaction();
                try
                {
                    foreach (string sql in sqls)
                    {
                        if (sql.Length == 0) { continue; }
                        //PrepareCommand(CmbObj, ConObj, CommandType.Text, sql, null);
                        if (ConObj.State != ConnectionState.Open)
                        {
                            ConObj.Open();
                        }
                        CmbObj.CommandTimeout = 1000;
                        CmbObj.CommandText = sql;
                        CmbObj.CommandType = CommandType.Text;
                        CmbObj.ExecuteNonQuery();
                        CmbObj.Parameters.Clear();
                    }
                    CmbObj.Transaction.Commit();
                    isok = true;
                }
                catch
                {
                    CmbObj.Transaction.Rollback();
                    isok = false;
                }
                finally
                {
                    CmbObj.Dispose();
                    ConObj.Close();
                }
                return isok;
            }
        }
        /// <summary>
        /// 事务提交多条SQL语句
        /// </summary>
        /// <param name="sqls">SQL语句</param>
        /// <returns></returns>   
        public static bool TransactionOther(string strConnection, params string[] sqls)
        {
            using (SqlConnection ConObj = new SqlConnection( strConnection))
            {
                SqlCommand CmbObj = new SqlCommand();
                CmbObj.CommandTimeout = 60;
                CmbObj.Connection = ConObj;
                ConObj.Open();
                bool isok = true;
                CmbObj.Transaction = ConObj.BeginTransaction();
                try
                {
                    foreach (string sql in sqls)
                    {
                        if (sql.Length == 0) { continue; }
                        //PrepareCommand(CmbObj, ConObj, CommandType.Text, sql, null);
                        if (ConObj.State != ConnectionState.Open)
                        {
                            ConObj.Open();
                        }
                        CmbObj.CommandTimeout = 1000;
                        CmbObj.CommandText = sql;
                        CmbObj.CommandType = CommandType.Text;
                        CmbObj.ExecuteNonQuery();
                        CmbObj.Parameters.Clear();
                    }
                    CmbObj.Transaction.Commit();
                    isok = true;
                }
                catch
                {
                    CmbObj.Transaction.Rollback();
                    isok = false;
                }
                finally
                {
                    CmbObj.Dispose();
                    ConObj.Close();
                }
                return isok;
            }
        }
        /// <summary>
        /// 提交一条SQL语句的事务
        /// </summary>
        /// <param name="sqls"></param>
        /// <returns></returns>
    
        public static bool Transaction(ref string strSQL)
        {
            SqlConnection ConObj = new SqlConnection( Strconnection);
            SqlCommand CmbObj = new SqlCommand();
            CmbObj.CommandTimeout = 60;
            CmbObj.Connection = ConObj;
            ConObj.Open();
            bool isok = true;
            CmbObj.Transaction = ConObj.BeginTransaction();
            try
            {
                CmbObj.CommandText = strSQL;
                CmbObj.CommandType = CommandType.Text;
                CmbObj.ExecuteNonQuery();
                CmbObj.Parameters.Clear();
                CmbObj.Transaction.Commit();
                isok = true;
            }
            catch
            {
                CmbObj.Transaction.Rollback();
                isok = false;
            }
            finally
            {
                CmbObj.Dispose();
                ConObj.Close();
            }
            return isok;
        }
        /// <summary>
        /// 返回一个DataTable
        /// </summary>
        /// <param name="StrCmdText"></param>
        /// <returns></returns>
        /// 
    
        public static DataTable ExecuteTable(ref string StrCmdText)
        {
            SqlConnection ConObj = new SqlConnection( Strconnection);
            ConObj.Open();
            SqlCommand cmd = new SqlCommand(StrCmdText, ConObj);
            cmd.CommandTimeout = 1800;
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            sda.Dispose();
            ConObj.Dispose();
            return dt;
        }
        /// <summary>
        /// 返回一个单元格数据
        /// </summary>
        /// <param name="StrCmdText"></param>
        /// <returns></returns>
        public static object ExecuteScalar(ref string StrCmdText)
        {
            SqlConnection ConObj = new SqlConnection( Strconnection);
            ConObj.Open();
            SqlCommand cmd = new SqlCommand(StrCmdText, ConObj);
            object o = cmd.ExecuteScalar();
            ConObj.Dispose();
            return o;
        }
        /// <summary>
        /// 返回受影响行数
        /// </summary>
        /// <param name="StrCmdText"></param>
        /// <returns></returns>
        public static int ExecuteNonQuery(ref string StrCmdText)
        {
            SqlConnection ConObj = new SqlConnection(Strconnection);
            ConObj.Open();
            SqlCommand cmd = new SqlCommand(StrCmdText, ConObj);
            int i = cmd.ExecuteNonQuery();
            ConObj.Dispose();
            return i;
        }
        /// <summary>
        /// 大批量插入数据到数据库
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static int SqlBulkCopy(DataTable table)
        {
            string connStr = Strconnection;
            SqlBulkCopy bulkCopy = new SqlBulkCopy(connStr, SqlBulkCopyOptions.CheckConstraints | SqlBulkCopyOptions.FireTriggers);
            bulkCopy.BulkCopyTimeout = 3600;
            bulkCopy.DestinationTableName = table.TableName;//设置数据库中对象的表名 
    
            string lei = "";
            //设置数据表table和数据库中表的列对应关系 
            foreach (DataColumn col in table.Columns)
            {
                bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
                lei += col.ColumnName+",";
            }
            //将数据集合和目标服务器库表中的字段对应 
    
            bulkCopy.WriteToServer(table);//将数据表table复制到数据库中
            return 1;
    
        }
        public static int SqlBulkCopy(DataTable table,string tablename)
        {
            string connStr = Strconnection;
            SqlBulkCopy bulkCopy = new SqlBulkCopy(connStr, SqlBulkCopyOptions.CheckConstraints | SqlBulkCopyOptions.FireTriggers);
            bulkCopy.BulkCopyTimeout = 3600;
            bulkCopy.DestinationTableName = tablename;//设置数据库中对象的表名 
    
            string lei = "";
            //设置数据表table和数据库中表的列对应关系 
            foreach (DataColumn col in table.Columns)
            {
                bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
                lei += col.ColumnName + ",";
            }
            //将数据集合和目标服务器库表中的字段对应 
    
            bulkCopy.WriteToServer(table);//将数据表table复制到数据库中
            return 1;
    
        }
    }
    

      

  • 相关阅读:
    js-禁止微信H5页面点击右上角菜单时出现“复制链接”,且分享仅支持微信分享
    js-获取用户移动端网络类型:wifi、4g、3g、2g...
    小程序-云开发部署流程(步骤二)
    小程序-(报错)请使用 2.2.3 或以上的基础库以使用云能力(步骤一)
    解决iOS10的Safari下Meta设置user-scalable=no无效的方法
    领域驱动, 事件驱动,测试驱动
    spring web项目中整合netty, akka
    why rpc
    nginx配置https证书
    org.apache.http.NoHttpResponseException
  • 原文地址:https://www.cnblogs.com/zoumin123/p/7346692.html
Copyright © 2011-2022 走看看