zoukankan      html  css  js  c++  java
  • 相关数据库操作类

      public class DBAccess:IDisposable
        {
    
           // private string DefaultDbString = string.Format(ConfigurationManager.ConnectionStrings["DefaultDbString"].ConnectionString,Config.Password);
            private string DefaultDbString = string.Format(ConfigurationManager.ConnectionStrings["DefaultDbString"].ConnectionString, "Citi2013");
    
            #region public methods
    
            public int ExecuteNonQuery(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
            {
                using (SqlConnection cnn = new SqlConnection(DefaultDbString))
                {
                    cnn.Open();
                    SqlCommand cmd = new SqlCommand();
                    PrepareCommand(cmd, cnn, (SqlTransaction)null, commandType, commandText, commandParameters);
    
                    int retval = cmd.ExecuteNonQuery();
                    return retval;
    
                }
    
            }
    
            public int ExecuteNonQuery(CommandType commandType, string commandText, out SqlParameter[] outputs, out object returnValue, params SqlParameter[] commandParameters)
            {
                returnValue = null;
                using (SqlConnection cnn = new SqlConnection(DefaultDbString))
                {
                    cnn.Open();
                    SqlCommand cmd = new SqlCommand();
                    PrepareCommand(cmd, cnn, (SqlTransaction)null, commandType, commandText, commandParameters);
                    int retval = cmd.ExecuteNonQuery();
    
                    List<SqlParameter> outlists = new List<SqlParameter>();
                    foreach (SqlParameter param in cmd.Parameters)
                    {
                        if (param.Direction == ParameterDirection.Output)
                            outlists.Add(param);
                        if (param.Direction == ParameterDirection.ReturnValue)
                            returnValue = param.Value;
                    }
    
                    if (outlists != null && outlists.Count > 0)
                        outputs = outlists.ToArray();
                    else
                        outputs = null;
    
                    return retval;
                }
            }
    
            public int ExecuteNonQuery(CommandType commandType, string commandText, out SqlParameter[] outputs, params SqlParameter[] commandParameters)
            {
                using (SqlConnection cnn = new SqlConnection(DefaultDbString))
                {
                    cnn.Open();
                    SqlCommand cmd = new SqlCommand();
                    PrepareCommand(cmd, cnn, (SqlTransaction)null, commandType, commandText, commandParameters);
                    int retval = cmd.ExecuteNonQuery();
    
                    List<SqlParameter> outlists = new List<SqlParameter>();
                    foreach (SqlParameter param in cmd.Parameters)
                    {
                        if (param.Direction == ParameterDirection.Output)
                            outlists.Add(param);
                    }
    
                    if (outlists != null && outlists.Count > 0)
                        outputs = outlists.ToArray();
                    else
                        outputs = null;
    
                    return retval;
    
                }
            }
    
            public DataSet ExecuteDataset(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
            {
                using (SqlConnection cnn = new SqlConnection(DefaultDbString))
                {
                    cnn.Open();
                    SqlCommand cmd = new SqlCommand();
                    PrepareCommand(cmd, cnn, (SqlTransaction)null, commandType, commandText, commandParameters);
    
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    da.Fill(ds);
                    return ds;
                }
            }
    
            public object ExecFunction(CommandType commandType, string fnName, params SqlParameter[] parameterValues)
            {
                using (SqlConnection cnn = new SqlConnection(DefaultDbString))
                {
                    cnn.Open();
                    SqlCommand cmd = new SqlCommand();
                    PrepareCommand(cmd, cnn, (SqlTransaction)null, commandType, fnName, parameterValues);
    
                    cmd.ExecuteNonQuery();
    
                    return cmd.Parameters[0].Value;
                }
            }
    
            public bool ExcuteDataTableBulkCopy(DataTable sourceDatatable, string destinationTableName, string columns)
            {
                bool re = false;
                string sqlText = "SELECT TOP 1" + columns + "FROM" + destinationTableName;
                try
                {
                    using (SqlConnection cnn = new SqlConnection(DefaultDbString))
                    {
                        cnn.Open();
                        DataTable destinationTable = ExecuteDataset(cnn, CommandType.Text, sqlText).Tables[0];
                        if (destinationTable.Columns.Count == sourceDatatable.Columns.Count)
                        {
                            using (SqlBulkCopy bulkCopy = new SqlBulkCopy(cnn))
                            {
                                bulkCopy.DestinationTableName = destinationTableName;
                                SqlBulkCopyColumnMapping[] mapArray = new SqlBulkCopyColumnMapping[sourceDatatable.Columns.Count];
                                for (int i = 0; i < sourceDatatable.Columns.Count; i++)
                                {
                                    mapArray[i] = new SqlBulkCopyColumnMapping(sourceDatatable.Columns[i].ColumnName, destinationTable.Columns[i].ColumnName);
                                    bulkCopy.ColumnMappings.Add(mapArray[i]);
                                }
                                bulkCopy.WriteToServer(sourceDatatable);
                                re = true;
                            }
                        }
                    }
                }
                catch
                {
                    throw;
                }
                return re;
    
            }
            public object ExecuteScalar(CommandType commandType, string commandText, params SqlParameter[] commandParameters)
            {
                try
                {
                    using (SqlConnection cnn = new SqlConnection(DefaultDbString))
                    {
                        cnn.Open();
                        SqlCommand cmd = new SqlCommand();
                        PrepareCommand(cmd, cnn, (SqlTransaction)null, commandType, commandText, commandParameters);
    
                        return cmd.ExecuteScalar();
                    }
                }
                catch
                {
                    throw;
                }
            }
            #endregion
    
            #region private method
    
            private void PrepareCommand(SqlCommand command, SqlConnection connection, SqlTransaction transaction, CommandType commandType, string commandText, SqlParameter[] commandParameters)
            {
                if (connection.State != ConnectionState.Open)
                {
                    connection.Open();
                }
                command.Connection = connection;
                command.CommandTimeout = 90000;
                command.CommandText = commandText;
                if (transaction != null)
                {
                    command.Transaction = transaction;
                }
                command.CommandType = commandType;
    
                if (commandParameters != null)
                {
                    AttachParameter(command, commandParameters);
    
                }
            }
    
            private void AttachParameter(SqlCommand command, SqlParameter[] commandParameters)
            {
                foreach (SqlParameter p in commandParameters)
                {
                    if (p.Direction == ParameterDirection.InputOutput && p.Value == null)
                    {
                        p.Value = DBNull.Value;
                    }
                    command.Parameters.Add(p);
                }
    
            }
    
            private DataSet ExecuteDataset(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
            {
                SqlCommand cmd = new SqlCommand();
                PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters);
    
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                da.Fill(ds);
    
                return ds;
            }
    
            private int ExecuteNonQuery(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
            {
                SqlCommand cmd = new SqlCommand();
                PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters);
    
                int retval = cmd.ExecuteNonQuery();
                return retval;
            }
    
            private void AssignParameterValues(SqlParameter[] commandParameters, object[] parameterValues)
            {
                if ((commandParameters == null) || (parameterValues == null))
                {
                    return;
                }
                if (commandParameters.Length != parameterValues.Length)
                {
                    throw new ArgumentException("Parameter count does not match Parameter Value count.");
                }
                for (int i = 0; i < commandParameters.Length; i++)
                {
                    commandParameters[i].Value = parameterValues[i];
                }
            }
            #endregion
    
            #region IDisposable Members
            public void Dispose()
            {
                throw new NotImplementedException();
            }
            #endregion
    
            #region IDisposable Members
            void IDisposable.Dispose()
            {
                throw new NotImplementedException();
            }
            #endregion
        }
    View Code
        public class SqlHelper
        {
            private DBAccess _DBAccess;
            private DBAccess DBAccess
            {
                get
                {
                    if (_DBAccess == null)
                        _DBAccess = new DBAccess();
                    return _DBAccess;
                }
            }
    
            public int ExecuteNonQueryStoreProcedure(string strSpName, params SqlParameter[] parameterValues)
            {
                try
                {
                    return DBAccess.ExecuteNonQuery(CommandType.StoredProcedure, strSpName, parameterValues);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
    
            public int ExecuteNonQueryStoreProcedure(string strSpName, out SqlParameter[] outputs, out object returnValue, params SqlParameter[] parameterValues)
            {
                try
                {
                    return DBAccess.ExecuteNonQuery(CommandType.StoredProcedure, strSpName, out outputs, out returnValue, parameterValues);
                }
                catch (Exception ex)
                {
                    //log.Error(ex.Message);
                    outputs = null;
                    returnValue = null;
                    return -2;
                    throw ex;
                }
            }
    
            public int ExecuteNonQueryStoreProcedure(string strSpName, out SqlParameter[] outputs, params SqlParameter[] parameterValues)
            {
                try
                {
                    return DBAccess.ExecuteNonQuery(CommandType.StoredProcedure, strSpName, out outputs, parameterValues);
                }
                catch (Exception ex)
                {
                    //log.Error(ex.Message);
                    outputs = null;
                    return -2;
                    throw ex;
                }
            }
    
            public DataSet ExecuteStoreProcedureDataSet(string strSpName, params SqlParameter[] parameterValues)
            {
                try
                {
                    DataSet ds = DBAccess.ExecuteDataset(CommandType.StoredProcedure, strSpName, parameterValues);
                    return ds;
                }
                catch (Exception ex)
                {
                    // log.Error(ex.Message);
                    return null;
                    throw ex;
                }
            }
    
            public DataSet ExecuteStoreProcedureDataSet_check(string strSpName, params SqlParameter[] parameterValues)
            {
                try
                {
                    DataSet ds = DBAccess.ExecuteDataset(CommandType.StoredProcedure, strSpName, parameterValues);
                    return ds;
                }
                catch (Exception ex)
                {
                    //log.Error(ex.Message);
    
                    throw ex;
                }
            }
    
            public object ExecFunction(string fnName, params SqlParameter[] parameterValues)
            {
                try
                {
                    return DBAccess.ExecFunction(CommandType.StoredProcedure, fnName, parameterValues);
                }
                catch (Exception ex)
                {
                    //log.Error(ex.Message);
                    return null;
                    throw ex;
                }
            }
            public bool BulkCopy(DataTable dt, string tableName, string columns)
            {
                try
                {
                    return DBAccess.ExcuteDataTableBulkCopy(dt, tableName, columns);
                }
                catch (Exception ex)
                {
                    //log.Error(ex.Message);
                    return false;
                }
            }
            public object ExecuteDataScalar(string commandText, params SqlParameter[] parameterValues)
            {
                try
                {
                    return DBAccess.ExecuteScalar(CommandType.StoredProcedure, commandText, parameterValues);
                }
                catch (Exception ex)
                {
                    // log.Error(ex.Message);
                    return null;
                }
            }
        }
    View Code
       public class BaseBusiness
        {
            private SqlHelper _SqlHelper;
            public SqlHelper SqlHelper
            {
                get
                {
                    if (_SqlHelper == null)
                        _SqlHelper = new SqlHelper();
                    return _SqlHelper;
                }
            }
    
        }
    View Code
  • 相关阅读:
    数据库操作
    jquery 第一章
    算法很美 第一章
    python 学习第四天
    python学习第三天
    python学习第二天
    学习python的第一天
    C#-线程
    C#-流、存储
    C#-集合
  • 原文地址:https://www.cnblogs.com/Jenny90/p/3613905.html
Copyright © 2011-2022 走看看