SqlServer DbHelper

    /// <Summary> 
    /// database general procedure class 
    /// </ Summary> 
    public abstract class the DbHelper 
    { 
        #region "connect string" 
        // connection string 
        // public static string ConnString = ConfigurationManager.ConnectionStrings [ "CommonSqlConnectionString "] .ConnectionString; 
        public static String DefaultConnString = string.Empty; 
        public int const = 180 [defaultCommandTimeout; 
        public int const = defaultdbconfig. 1; 

        #endregion 

        #region" GetSqlCommand " 

        /// <Summary> 
        /// Get Command object initialization good 
        /// </ Summary> 
        /// <param name = "Conn">Connection object </ param>
        /// <param name = "cmdText" > text command </ param> 
        /// <param name = "cmdType"> command type </ param> 
        /// <param name = "Parameters"> Parameter List </ param > 
        /// <Returns> Command object initialization good </ Returns> 
        Private GetSqlCommand the SqlCommand static (the SqlConnection Conn, cmdText The String, the CommandType cmdType, the SqlParameter [] Parameters) 
        { 
            the SqlCommand the SqlCommand cmd = new new (cmdText The, Conn); 
            cmd.CommandType cmdType =; 
            cmd.CommandTimeout = defaultCommandTimeout; 
            IF (! Parameters = null) 
            { 
                cmd.Parameters.AddRange (Parameters); 
            } 

            return cmd;
        }

        #endregion

        #region " ExecSqlDataSet "

        public static DataTable ExecSqlDataSet(string strSQL)
        {
            return ExecSqlDataSet(strSQL, null);
        }

        public static DataTable ExecSqlDataSet(string strSQL, SqlParameter[] parameters)
        {
            return ExecSqlDataSet(strSQL, parameters, DefaultConnString);
        }

        public static DataTable ExecSqlDataSet(string strSQL, SqlParameter[] parameters, string connStr)
        {
            if (string.IsNullOrWhiteSpace(connStr))
            {
                return new DataTable();
            }
            using (SqlConnection conn = new SqlConnection(connStr))
            { 
                Conn.Open (); 
                the SqlCommand cmd = GetSqlCommand (Conn, strSQL, CommandType.Text, Parameters); 
                the SqlDataAdapter new new DA = the SqlDataAdapter (cmd); 
                the DataSet the DataSet new new DS = (); 
                da.Fill (DS); 
                cmd.Dispose (); 
                da.Dispose (); 
                return ds.Tables [0]; 
            } 
        } 



        #endregion 

        #region "ExecSqlNonQuerry" 

        /// <Summary> 
        /// execute the SQL query non 
        /// </ Summary> 
        /// <param name = "strSQL"> SQL statements to be executed </ param> 
        /// <returns a> the number of rows affected </returns>
        static int ExecSqlNonQuerry public (String strSQL)
        {
            ExecSqlNonQuerry return (strSQL, null); 
        } 

        /// <Summary> 
        /// performed with non-parametric queries the SQL statement 
        /// </ Summary> 
        /// <param name = "strSQL"> SQL statement to be executed < / param> 
        /// <Returns> number of rows affected </ Returns> 
        public static int ExecSqlNonQuerry (String strSQL, the SqlParameter [] Parameters) 
        { 
            return ExecSqlNonQuerry (strSQL, Parameters, DefaultConnString); 
        } 



        public static int ExecSqlNonQuerry (String strSQL , the SqlParameter [] Parameters, String connStr) 
        { 
            the using (Conn the SqlConnection the SqlConnection new new = (connStr))
            {  
                conn.Open ();
                The SqlCommand cmd = GetSqlCommand (Conn, strSQL, CommandType.Text, Parameters); 
                cmd.CommandTimeout = 0; 
                int the cmd.ExecuteNonQuery Result = (); 
                cmd.Dispose (); 
                return Result; 
            } 
        } 

        #endregion 

        #region "ExecSqlScalar" 

        /// <the Summary> 
        /// perform statistical inquiry 
        /// </ the Summary> 
        /// <param name = "strSQL"> SQL statements to be executed </ param> 
        /// <returns a> the results of the first row the value of a </ returns>
        public static object ExecSqlScalar(string strSQL)
        {
            return ExecSqlScalar(strSQL, null);
        } 
 
        /// <Summary>
        Statistical query execution with parameters ///
        /// </ Summary> 
        /// <param name = "strSQL"> SQL statement to be executed </ param> 
        /// <param name = "Parameters"> parameter array </ param> 
        /// <Returns> the first row value </ returns> a first execution result of 
        public static Object ExecSqlScalar (String strSQL, the SqlParameter [] Parameters) 
        { 
            return ExecSqlScalar (strSQL, Parameters, DefaultConnString); 
        } 

        /// <Summary> 
        /// performed statistical queries with parameters 
        /// </ the Summary> 
        /// <param name = "strSQL"> be </ param> execute SQL statements 
        /// <param name = "parameters" > parameter array </ param> 
        // / <returns> value of the execution result of the first row of the first column </returns>
        Object ExecSqlScalar static public (String strSQL, the SqlParameter [] Parameters, String connStr) 
        /// <param name = "procName" > stored procedure to be performed </ param>SqlParameter[] parameters, string connStr)
        {
            the using (Conn the SqlConnection the SqlConnection new new = (connStr)) 
            { 
                conn.Open (); 
                the SqlCommand cmd = GetSqlCommand (Conn, strSQL, CommandType.Text, Parameters); 
                Object cmd.ExecuteScalar Result = (); 
                cmd.Dispose (); 
                return result; 
            } 
        } 

        #endregion 

        #region "ExecProcDataSet" 

        /// <Summary> 
        /// executes a stored procedure to return an execution result 
        /// </ Summary> 
        /// <returns> results </ returns> 
        public static ExecProcDataSet the DataSet (String procName) 
        { 
            return ExecProcDataSet (procName, null); 
        } 
        /// <Summary> 
        /// performed with parameters stored procedure to return an execution result 
        / // </ Summary> 
        /// <param name = "procName"> stored procedure to be performed </ param> 
        /// <param name = "parameters"> parameter array </ param> 
        /// <Returns> results </ Returns> 
        public static ExecProcDataSet the DataSet (String procName, the SqlParameter [] Parameters) 
        { 
            return ExecProcDataSet (procName, Parameters, DefaultConnString); 
        } 

        /// <Summary>
        /// performed with parameters stored procedure to return an execution result 
        /// </ Summary> 
        /// <param name = "procName"> stored procedure to be performed </ param> 
        /// <param name = "parameters"> parameter array </ param>
        /// <returns>查询结果</returns>
        public static DataSet ExecProcDataSet(string procName, SqlParameter[] parameters, string connStr)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                SqlCommand cmd = GetSqlCommand(conn, procName, CommandType.StoredProcedure, parameters);
                cmd.CommandTimeout = 0;
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                da.Fill(ds);
                cmd.Dispose();
                return ds;
            }
        }


        #endregion 
        /// <returns> results </ returns>

        #region "ExecProcDataTable" 

        /// <Summary> 
        /// executes a stored procedure to return an execution result 
        /// </ Summary> 
        /// <param name = "procName"> stored procedure to be performed </ param> 
        /// <returns> results </ returns> 
        public static ExecProcDataTable the DataTable (String procName) 
        { 
            return ExecProcDataSet (procName) .Tables [0]; 
        } 
        /// <Summary> 
        /// performed with parameters stored procedure to return an execution result 
        / // </ Summary> 
        /// <param name = "procName"> stored procedure to be performed </ param> 
        /// <param name = "parameters"> parameter array </ param>
        {
        the DataTable ExecProcDataTable static public (String procName, the SqlParameter [] Parameters)
        public static int ExecProcNonQuerry(string procName)
            ExecProcDataSet return (procName, Parameters) .Tables [0]; 
        } 

        public static ExecProcDataTable the DataTable (String procName, the SqlParameter [] Parameters, String connStr) 
        { 
            return ExecProcDataSet (procName, Parameters, connStr) .Tables [0]; 
        } 


        #endregion 

        # Region "ExecProcNonQuerry" 

        /// <Summary> 
        /// query stored procedure to perform non 
        /// </ Summary> 
        /// <param name = "procName"> stored procedure to be performed </ param> 
        /// <Returns> the number of rows affected </ Returns> 
        /// <Summary>
        /// execute queries with parameters of non-stored procedures
        { 
            Return ExecProcNonQuerry (procName); 
        } 

        /// </ Summary> 
        /// <param name = "procName"> stored procedure to be performed </ param> 
        /// <Returns> number of rows affected </ Returns> 
        public int ExecProcNonQuerry static (String procName, the SqlParameter [] parameters) 
        { 
            return ExecProcNonQuerry (procName, parameters, DefaultConnString); 
        } 


        /// <Summary> 
        /// performed with non-parametric queries stored procedure 
        /// </ Summary> 
        / // <param name = "procName" > stored procedure to be performed </ param> 
        /// <Returns> number of rows affected </ Returns> 
        public static int ExecProcNonQuerry (String procName,SqlParameter[] parameters, string connStr)
        { 
            The using (Conn the SqlConnection the SqlConnection new new = (connStr))  
            { 
                conn.Open ();
                the SqlCommand cmd = GetSqlCommand (Conn, procName, CommandType.StoredProcedure, Parameters); 
                int the cmd.ExecuteNonQuery Result = (); 
                cmd.Dispose (); 
                return Result; 
            } 
        } 



        #endregion 

        #region "ExecSqlDataReader" 

        /// <Summary> 
        /// execute SQL statements, the execution result returned 
        /// </ Summary> 
        /// <param name = "strSQL"> SQL statement to be executed </ param> 
        /// <returns> results </ returns>
        public static SqlDataReader ExecSqlDataReader(string strSQL)
        {
            ExecSqlDataReader return (strSQL, null); 
        }

        /// <summary>
        /// performed with parameters SQL statement that returns an execution result 
        /// </ Summary> 
        /// <param name = "strSQL"> SQL statement to be executed </ param> 
        /// <param name = "parameters"> parameter array </ param> 
        /// <Returns> results </ Returns> 
        public static ExecSqlDataReader the SqlDataReader (String strSQL, the SqlParameter [] parameters) 
        { 
            return ExecSqlDataReader (strSQL, parameters, DefaultConnString); 
        } 

        /// <Summary> 
        /// SQL statement execution parameters, returns the execution result 
        /// </ Summary> 
        /// <param name = "strSQL"> be </ param> execute SQL statements 
        /// < param name = "parameters "> parameter array </ param> 
        /// <Returns> Results </ returns>
        public static SqlDataReader ExecSqlDataReader(string strSQL, SqlParameter[] parameters, string connStr)
        {
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                SqlCommand cmd = GetSqlCommand(conn, strSQL, CommandType.Text, parameters);
                SqlDataReader result = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                cmd.Dispose();
                return result;
            }
        }


        #endregion

        #region " ExecProcDataReader "

        /// <summary>
        /// 执行存储过程,返回执行结果
        /// </summary>
        /// <param name = "procName" > stored procedure to be performed </ param> 
        /// <Returns> Results </ Returns> 
        public static ExecProcDataReader the SqlDataReader (String procName) 
        { 
            return ExecProcDataReader (procName, null); 
        } 

        / // <Summary> 
        /// performed with parameters stored procedure to return an execution result 
        /// </ Summary> 
        /// <param name = "procName"> stored procedure to be performed </ param> 
        /// <param name = "parameters"> parameter array </ param> 
        /// <Returns> results </ Returns> 
        public static ExecProcDataReader the SqlDataReader (String procName,SqlParameter[] parameters)
        {
            return ExecProcDataReader(procName, parameters, DefaultConnString);
        }

        /// <Summary> 
        /// performed with parameters stored procedure to return an execution result 
        /// </ Summary> 
        /// <param name = "procName"> stored procedure to be performed </ param> 
        /// <param name = "parameters"> parameter array </ param> 
        /// <Returns> results </ Returns> 
        public static ExecProcDataReader the SqlDataReader (String procName, the SqlParameter [] parameters, String connStr) 
        { 
            the using (Conn the SqlConnection the SqlConnection new new = (connStr )) 
            { 
                conn.Open (); 

                the SqlCommand cmd = GetSqlCommand (Conn, procName, CommandType.StoredProcedure, Parameters); 
                the SqlDataReader cmd.ExecuteReader Result = (the CommandBehavior.CloseConnection);
                cmd.Dispose();
                Result return; 
            } 
        } 



        #endregion 

        #region "DtToSqlServer" 

        /// <Summary> 
        /// The bulk import DataTable SqlServer 
        /// </ Summary> 
        /// <param name = "dtExcel"> Data Table </ param> 
        /// <param name = "tableName" > target table name </ param> 
        /// <param name = "dtColName"> data sets corresponding column </ param> 
        public static void DtToSqlServer (dtExcel the DataTable, String tableName, dtColName the DataTable) 
        { 
            DtToSqlServer (dtExcel, tableName, dtColName, DefaultConnString); 
        } 

        /// <Summary>
        /// The bulk import DataTable SqlServer 
        /// </ Summary>
        /// <param name = "dtExcel" > Data Table </ param> 
        /// <param name = "tableName"> target table name </ param> 
        /// <param name = "dtColName"> corresponding column datasets </ param> 
        public static void DtToSqlServer (dtExcel the DataTable, String tableName, the DataTable dtColName, String connStr) 
        { 
            the using (Conn the SqlConnection the SqlConnection new new = (connStr)) 
            { 
                conn.Open (); 

                the using (the SqlBulkCopy bulkcopy the SqlBulkCopy new new = ( Conn)) 
                { 
                    the try 
                    { 
                        bulkCopy.DestinationTableName = tableName; // table to insert a table name 
                        for (int i = 0;i < dtColName.Rows.Count; i++) 
                        {
                            bulkCopy.ColumnMappings.Add(dtColName.Rows[i][0].ToString().Trim(), dtColName.Rows[i][1].ToString().Trim());

                        }

                        bulkCopy.WriteToServer(dtExcel);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }
        }

        #endregion

        #region
        /// <summary>
        /// 
        /// </summary>
        /// <param name="dbconfig">目标连接字符</param>
        /// <param name="tablename">Destination table </ param>
        /// <param name="dt">源数据</param>
        public static string SqlBulkCopyByDatatable(string tablename, DataTable table, string connStr, SqlConnection m_clsSqlConn)
        {
            string dataBaseStr = "";
            if (tablename.Contains("."))
            {
                dataBaseStr = tablename.Substring(0, tablename.LastIndexOf(".") + 1);
                tablename = tablename.Substring(tablename.LastIndexOf(".") + 1);
            }

            try
            {
                string result = "";
                SqlBulkCopy sqlBulkCopy = null;
                if (m_clsSqlConn != null)
                {
                    sqlBulkCopy = new SqlBulkCopy(m_clsSqlConn);
                    if (m_clsSqlConn.State == ConnectionState.Closed)
                    {
                        m_clsSqlConn.Open();
                    }
                }
                else
                {
                    sqlBulkCopy = new SqlBulkCopy(connStr);
                }

                

                sqlBulkCopy.DestinationTableName = dataBaseStr + ((tablename.IndexOf("[") > -1 && tablename.IndexOf("]") > -1) ? tablename : "[" + tablename + "]");
                sqlBulkCopy.BulkCopyTimeout = 500;
                //sqlBulkCopy.BatchSize = 800;

                for (int i = 0; i < table.Columns.Count; i++)
                {
                    sqlBulkCopy.ColumnMappings.Add(table.Columns[i].ColumnName, table.Columns[i].ColumnName);
                }

                if (table.Rows.Count > 0)
                {
                    sqlBulkCopy.WriteToServer(table);
                }
                else
                {
                    result = "表为空";
                }

                sqlBulkCopy.Close();
                return result;
            }
            catch (Exception e)
            {
                return e.Message;
            }
            finally
            {
                try
                {
                    if (m_clsSqlConn != null)
                    {

                        try
                        {
                            if (m_clsSqlConn.State == ConnectionState.Open)
                            {
                                m_clsSqlConn.Close();
                            }
                        }
                        catch (Exception)
                        {

                        }
                    }
                }
                catch (Exception)
                {

                }
            }
        }

        public static string SqlBulkCopyByDatatable(string tablename, DataTable table, SqlConnection m_clsSqlConn)
        {
            return SqlBulkCopyByDatatable(tablename, table, string.Empty, m_clsSqlConn);

        }
        public static string SqlBulkCopyByDatatable(string tablename, DataTable table, string connStr)
        {
            return SqlBulkCopyByDatatable(tablename, table, connStr, null);
        }

        public static string SqlBulkCopyByDatatable(string tablename, DataTable table)
        {
            return SqlBulkCopyByDatatable(tablename, table, DefaultConnString, null);
        }

        public static string CreateTempTable(string tablename, DataTable table, string connStr)
        {
            return CreateTempTable(tablename, table, new SqlConnection(connStr));
        }
        public static string CreateTempTable(string tablename, DataTable table, SqlConnection connStr)
        {
            try
            {

                string sqlstr = "CREATE TABLE [" + tablename + "](";
                for (int i = 0; i < table.Columns.Count; i++)
                {
                    switch (table.Columns[i].DataType.FullName)
                    {
                        case "System.String":
                            {
                                sqlstr += "[" + table.Columns[i].ColumnName + "] [nvarchar](4000) NULL,";
                            }
                            break;
                        case "System.Int32":
                            {
                                sqlstr += "[" + table.Columns[i].ColumnName + "] [int] NULL,";
                            }
                            break;
                        case "System.Double":
                            {
                                sqlstr += "[" + table.Columns[i].ColumnName + "] [numeric](24,2) NULL,";
                            }
                            break;
                        case "System.DateTime":
                            {
                                sqlstr += "[" + table.Columns[i].ColumnName + "] [datetime] NULL,";
                            }
                            break;
                        default:
                            {
                                sqlstr += "[" + table.Columns[i].ColumnName + "] [nvarchar](4000) NULL,";
                            }
                            break;
                    }
                }
                sqlstr = sqlstr.Substring(0, sqlstr.Length - 1) + ")";

                if (connStr.State != ConnectionState.Open)
                {
                    connStr.Open();
                }

                SqlCommand cmd = GetSqlCommand(connStr, sqlstr, CommandType.Text, null);
                int result = cmd.ExecuteNonQuery();
                cmd.Dispose();
                return "";
            }
            catch (Exception e)
            {
                return e.ToString();
            }
        }

        #endregion 


    }

  

Guess you like

Origin www.cnblogs.com/xiao-sheng/p/11521616.html