Esempio n. 1
0
        /// <summary>
        /// 执行SQL语句,并返加影响的行数
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="cmdParms">参数</param>
        /// <returns></returns>
        public static DataResult ExecuteNonQuery(string sql, params IDbDataParameter[] cmdParms)
        {
            sql = DataBaseFactory.GetSQL(sql);
            DataResult result = new DataResult();

            result.Sql = sql + ";";
            result.IDbDataParameter = cmdParms;
            using (IDbConn = DataBaseFactory.GetIDbConnection())
            {
                IDbConn.Open();
                using (IDbComm = DataBaseFactory.GetIDbCommand())
                {
                    try
                    {
                        PrepareCommand(IDbComm, IDbConn, null, CommandType.Text, sql, cmdParms);
                        int rows = IDbComm.ExecuteNonQuery();
                        IDbConn.Close();
                        IDbComm.Parameters.Clear();
                        result.RecordCount = rows;
                        return(result);
                    }
                    catch (Exception E)
                    {
                        IDbConn.Close();
                        result.RecordCount = 0;
                        result.Error       = E.Message;
                        return(result);
                    }
                    finally
                    {
                        IDbConn.Close();
                    }
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 执行SQL语句返回结果集IDataReader
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns></returns>
        public IDataReader GetDataReader(string sql)
        {
            IDataReader ireader = null;

            try
            {
                if (IDbConn == null || IDbConn.State == ConnectionState.Closed)
                {
                    IDbConn = DataBaseFactory.GetIDbConnection();
                    IDbConn.Open();
                    IDbComm = DataBaseFactory.GetIDbCommand(sql);
                    //IDbComm.CommandText = sql;
                    //IDbComm.CommandType = CommandType.Text;
                    // = IDbcmd.ExecuteReader();
                    ireader = IDbComm.ExecuteReader((CommandBehavior)((int)CommandBehavior.CloseConnection));
                }
                return(ireader);
            }
            catch (Exception e)
            {
                this.Close();
                return(null);

                throw new Exception(e.Message);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 执行SQL语句返回结果集IDataReader
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="cmdParms">参数</param>
        /// <returns></returns>
        public static DataResult GetDataReader(string sql, params IDbDataParameter[] cmdParms)
        {
            sql = DataBaseFactory.GetSQL(sql);
            DataResult result = new DataResult();

            result.Sql = sql + ";";
            result.IDbDataParameter = cmdParms;
            try
            {
                if (IDbConn == null || IDbConn.State == ConnectionState.Closed)
                {
                    IDbConn = DataBaseFactory.GetIDbConnection();
                    IDbConn.Open();
                    IDbComm = DataBaseFactory.GetIDbCommand();
                    PrepareCommand(IDbComm, IDbConn, null, CommandType.Text, sql, cmdParms);
                    // = IDbcmd.ExecuteReader();
                    result.IDataReader = IDbComm.ExecuteReader((CommandBehavior)((int)CommandBehavior.CloseConnection));
                    return(result);
                    // IDbComm.Parameters.Clear();
                }
                else
                {
                    return(result);
                }
            }
            catch (Exception e)
            {
                IDbConn.Close();
                result.Error = e.Message;
                return(result);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 执行SQL语句返回结果集object
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="cmdParms">参数</param>
        /// <returns></returns>
        public static object ExecuteScalar(string sql, params IDbDataParameter[] cmdParms)
        {
            sql = DataBaseFactory.GetSQL(sql);
            DataResult result = new DataResult();

            result.Sql = sql + ";";
            using (IDbConn = DataBaseFactory.GetIDbConnection())
            {
                IDbConn.Open();
                using (IDbComm = DataBaseFactory.GetIDbCommand())
                {
                    try
                    {
                        PrepareCommand(IDbComm, IDbConn, null, CommandType.Text, sql, cmdParms);
                        object rows = IDbComm.ExecuteScalar();
                        IDbConn.Close();
                        IDbComm.Parameters.Clear();
                        return(rows);
                    }
                    catch (Exception E)
                    {
                        IDbConn.Close();
                        return(null);

                        throw new Exception(E.Message);
                    }
                    finally
                    {
                        IDbConn.Close();
                    }
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        ///  执行SQL语句,并返加影响的行数
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns></returns>
        public int ExecuteNonQuery(string sql)
        {
            using (IDbConn = DataBaseFactory.GetIDbConnection())
            {
                IDbConn.Open();
                using (IDbComm = DataBaseFactory.GetIDbCommand(sql))
                {
                    try
                    {
                        int rows = IDbComm.ExecuteNonQuery();
                        IDbConn.Close();
                        return(rows);
                    }
                    catch (Exception E)
                    {
                        IDbConn.Close();
                        return(0);

                        throw new Exception(E.Message);
                    }
                    finally
                    {
                        IDbConn.Close();
                    }
                }
            }
        }
Esempio n. 6
0
        /// <summary>
        /// 执行SQL语句返回结果中上的第一行第一列的值,忽略额外的列和行
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns></returns>
        public object ExecuteScalar(string sql)
        {
            using (IDbConn = DataBaseFactory.GetIDbConnection())
            {
                IDbConn.Open();
                using (IDbComm = DataBaseFactory.GetIDbCommand(sql))
                {
                    try
                    {
                        //IDbComm.CommandText = sql;
                        //IDbComm.CommandType = CommandType.Text;
                        object rows = IDbComm.ExecuteScalar();
                        IDbConn.Close();
                        return(rows);
                    }
                    catch (Exception E)
                    {
                        IDbConn.Close();
                        return(null);

                        throw new Exception(E.Message);
                    }
                    finally
                    {
                        IDbConn.Close();
                    }
                }
            }
        }
Esempio n. 7
0
        /// <summary>
        /// 执行SQL语句返回结果集DataSet
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="cmdParms">参数</param>
        /// <returns></returns>
        public DataSet GetDataSet(string sql, params IDbDataParameter[] cmdParms)
        {
            using (IDbConn = DataBaseFactory.GetIDbConnection())
            {
                IDbConn.Open();
                using (IDbComm = DataBaseFactory.GetIDbCommand())
                {
                    try
                    {
                        PrepareCommand(IDbComm, IDbConn, null, CommandType.Text, sql, cmdParms);
                        IDbDataAdapter dataAdapter = DataBaseFactory.GetIDbDataAdapter();
                        dataAdapter.SelectCommand = IDbComm;
                        DataSet dataSet = new DataSet();
                        dataAdapter.Fill(dataSet);
                        IDbComm.Parameters.Clear();
                        return(dataSet);
                    }
                    catch (Exception E)
                    {
                        IDbConn.Close();
                        return(null);

                        throw new Exception(E.Message);
                    }
                    finally
                    {
                        IDbConn.Close();
                    }
                }
            }
        }
Esempio n. 8
0
        /// <summary>
        ///  执行SQL语句,并返加影响的行数
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns></returns>
        public static DataResult ExecuteNonQuery(string sql)
        {
            DataResult result = new DataResult();

            result.Sql = sql + ";";
            using (IDbConn = DataBaseFactory.GetIDbConnection())
            {
                IDbConn.Open();
                using (IDbComm = DataBaseFactory.GetIDbCommand(sql))
                {
                    try
                    {
                        int rows = IDbComm.ExecuteNonQuery();
                        IDbConn.Close();
                        result.RecordCount = rows;
                    }
                    catch (Exception E)
                    {
                        result.Error = E.Message;
                        IDbConn.Close();
                        result.RecordCount = 0;
                        return(result);
                    }
                    finally
                    {
                        IDbConn.Close();
                    }
                }
            }
            return(result);
        }
Esempio n. 9
0
        /// <summary>
        /// 执行SQL语句返回结果集IDataReader
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="cmdParms">参数</param>
        /// <returns></returns>
        public IDataReader GetDataReader(string sql, params IDbDataParameter[] cmdParms)
        {
            IDataReader ireader = null;

            try
            {
                if (IDbConn == null || IDbConn.State == ConnectionState.Closed)
                {
                    IDbConn = DataBaseFactory.GetIDbConnection();
                    IDbConn.Open();
                    IDbComm = DataBaseFactory.GetIDbCommand();
                    PrepareCommand(IDbComm, IDbConn, null, CommandType.Text, sql, cmdParms);
                    // = IDbcmd.ExecuteReader();
                    ireader = IDbComm.ExecuteReader((CommandBehavior)((int)CommandBehavior.CloseConnection));
                    // IDbComm.Parameters.Clear();
                }
                return(ireader);
            }
            catch (Exception e)
            {
                this.Close();
                return(null);

                throw new Exception(e.Message);
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 执行SQL语句,并返加影响的行数
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="cmdParms">参数</param>
        /// <returns></returns>
        public int ExecuteNonQuery(string sql, params IDbDataParameter[] cmdParms)
        {
            using (IDbConn = DataBaseFactory.GetIDbConnection())
            {
                IDbConn.Open();
                using (IDbComm = DataBaseFactory.GetIDbCommand())
                {
                    try
                    {
                        PrepareCommand(IDbComm, IDbConn, null, CommandType.Text, sql, cmdParms);
                        int rows = IDbComm.ExecuteNonQuery();
                        IDbConn.Close();
                        IDbComm.Parameters.Clear();
                        return(rows);
                    }
                    catch (Exception E)
                    {
                        IDbConn.Close();
                        return(0);

                        throw new Exception(E.Message);
                    }
                    finally
                    {
                        IDbConn.Close();
                    }
                }
            }
        }
Esempio n. 11
0
 /// <summary>
 /// 执行SQL语句返回结果集DataSet
 /// </summary>
 /// <param name="sql">SQL语句</param>
 /// <returns></returns>
 public DataSet GetDataSet(string sql)
 {
     using (IDbConn = DataBaseFactory.GetIDbConnection())
     {
         IDbConn.Open();
         DataSet dataset = new DataSet();
         try
         {
             IDbComm = DataBaseFactory.GetIDbCommand(sql);
             //IDbComm.CommandText = sql;
             //IDbComm.CommandType = CommandType.Text;
             IDbAdpter = DataBaseFactory.GetIDbDataAdapter(IDbComm);
             //IDbAdpter.SelectCommand = IDbComm;
             IDbAdpter.Fill(dataset);
         }
         catch (Exception e)
         {
             IDbConn.Close();
             throw new Exception(e.Message);
         }
         finally
         {
             IDbConn.Close();
         }
         return(dataset);
     }
 }
Esempio n. 12
0
        /// <summary>
        /// 执行SQL语句返回结果集DataSet
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns></returns>
        public static DataResult GetDataSet(string sql)
        {
            sql = DataBaseFactory.GetSQL(sql);
            DataResult result = new DataResult();

            result.Sql = sql + ";";
            using (IDbConn = DataBaseFactory.GetIDbConnection())
            {
                IDbConn.Open();
                using (IDbComm = DataBaseFactory.GetIDbCommand())
                {
                    try
                    {
                        PrepareCommand(IDbComm, IDbConn, null, CommandType.Text, sql, IDbParams);
                        IDbDataAdapter dataAdapter = DataBaseFactory.GetIDbDataAdapter();
                        dataAdapter.SelectCommand = IDbComm;
                        DataSet dataSet = new DataSet();
                        dataAdapter.Fill(dataSet);
                        IDbComm.Parameters.Clear();
                        result.DataSet = dataSet;
                    }
                    catch (Exception E)
                    {
                        IDbConn.Close();
                        result.Error = E.Message;
                        return(result);
                    }
                    finally
                    {
                        IDbConn.Close();
                    }
                }
            }
            return(result);
            //using (IDbConn = DataBaseFactory.GetIDbConnection())
            //{
            //    IDbConn.Open();
            //    DataSet dataset = new DataSet();
            //    try
            //    {
            //        IDbComm = DataBaseFactory.GetIDbCommand(sql);
            //        //IDbComm.CommandText = sql;
            //        //IDbComm.CommandType = CommandType.Text;
            //        IDbAdpter = DataBaseFactory.GetIDbDataAdapter(IDbComm);
            //        //IDbAdpter.SelectCommand = IDbComm;
            //        IDbAdpter.Fill(dataset);
            //    }
            //    catch (Exception e)
            //    {
            //        IDbConn.Close();
            //        throw new Exception(e.Message);
            //    }
            //    finally
            //    {
            //        IDbConn.Close();
            //    }
            //    return dataset;
            //}
        }
Esempio n. 13
0
 /// <summary>
 /// 开始事务
 /// </summary>
 public void BeginTransaction()
 {
     if (IDbTrans == null)
     {
         IDbTrans = DataBaseFactory.GetIDbTransaction();
     }
     IDbComm.Transaction = IDbTrans;
 }
Esempio n. 14
0
 /// <summary>
 /// 开始事务
 /// </summary>
 public static IDbConnection BeginTransaction(string connectionString)
 {
     IDbConn = DataBaseFactory.GetIDbConnection(connectionString);
     IDbConn.Open();
     IDbComm             = DataBaseFactory.GetIDbCommand(IDbConn);
     IDbTrans            = IDbConn.BeginTransaction(IsolationLevel.ReadCommitted);
     IDbComm.Connection  = IDbConn;
     IDbComm.Transaction = IDbTrans;
     return(IDbConn);
 }
Esempio n. 15
0
        /// <summary>
        /// 分页处理
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="index">页索引</param>
        /// <param name="pageSize">每面显示记录数</param>
        /// <param name="pageCount">总页数</param>
        /// <param name="rowCount">总记录数</param>
        /// <returns></returns>
        public static DataResult BindPaging(string sql, int index, int pageSize, out int pageCount, out int rowCount)
        {
            if (index > 0)
            {//索引从0开始
                index = index - 1;
            }
            sql = DataBaseFactory.GetSQL(sql);
            DataResult result = new DataResult();

            result.Sql = sql + ";";
            #region ORACLE

            // int rowCount = 0;
            //   DataTable dt = new DataTable();
            try
            {
                OracleParameter[] param = new OracleParameter[] {
                    new OracleParameter("pindex", OracleDbType.Int32),
                    new OracleParameter("psql", OracleDbType.Varchar2, 2000),
                    new OracleParameter("psize", OracleDbType.Int32),
                    new OracleParameter("pcount", OracleDbType.Int32),
                    new OracleParameter("prowcount", OracleDbType.Int32),
                    new OracleParameter("v_cur", OracleDbType.RefCursor)
                };
                param[0].Value = index;
                param[1].Value = sql;
                param[2].Value = pageSize;

                param[0].Direction = ParameterDirection.Input;
                param[1].Direction = ParameterDirection.Input;
                param[2].Direction = ParameterDirection.Input;
                param[3].Direction = ParameterDirection.Output;
                param[4].Direction = ParameterDirection.Output;
                param[5].Direction = ParameterDirection.Output;
                result.DataTable   = SMT.OracleDataProvider.ExecuteDataTableByPaging("SMT_P_PAGE.SMT_Paging", param);

                pageCount = int.Parse(param[3].Value.ToString());
                rowCount  = int.Parse(param[4].Value.ToString());
            }
            catch (OracleException on)
            {
                pageCount    = 0;
                rowCount     = 0;
                result.Error = on.Message;
                //throw new Exception(on.Message);
            }
            return(result);

            #endregion
        }
Esempio n. 16
0
 /// <summary>
 /// 返回指定的存储过程的参数集
 /// </summary>
 /// <remarks>
 /// 这个方法将查询数据库,并将信息存储到缓存.
 /// </remarks>
 /// <param>一个有效的数据库连接字符.</param>
 /// <param>存储过程名</param>
 /// <param>是否包含返回值参数</param>
 /// <returns>返回IDbDataParameter参数数组</returns>
 public static IDbDataParameter[] GetSpParameterSet(string connectionString, string spName, bool includeReturnValueParameter)
 {
     if (connectionString == null || connectionString.Length == 0)
     {
         throw new ArgumentNullException("连接字符串不能为空");
     }
     if (spName == null || spName.Length == 0)
     {
         throw new ArgumentNullException("存储过程名不能为空");
     }
     using (IDbConnection connection = DataBaseFactory.GetIDbConnection())
     {
         return(GetSpParameterSetInternal(connection, spName, includeReturnValueParameter));
     }
 }
Esempio n. 17
0
        /// <summary>
        /// 通过事务提执行SQL语句(必须放在BeginTransaction()方法与CommitTransaction()方法中间)
        /// </summary>
        /// <param name="idbconn">IDbConnection</param>
        ///  <param name="sql">SQL语句</param>
        public static DataResult ExecuteSQLByTransaction(IDbCommand iDbComm, string sql)
        {
            DataResult result = new DataResult();

            sql        = DataBaseFactory.GetSQL(sql);
            result.Sql = sql + ";";
            try
            {
                PrepareCommand(iDbComm, iDbComm.Connection, iDbComm.Transaction, CommandType.Text, sql, IDbParams);
                int rows = iDbComm.ExecuteNonQuery();
                iDbComm.Parameters.Clear();
            }
            catch (Exception E)
            {
                iDbComm.Connection.Close();
                result.Error = E.Message;
            }
            return(result);
        }
Esempio n. 18
0
        /// <summary>
        /// 执行SQL语句返回结果集IDataReader
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns></returns>
        public static DataResult GetDataReader(string sql)
        {
            sql = DataBaseFactory.GetSQL(sql);
            DataResult result = new DataResult();

            result.Sql = sql + ";";
            IDbConn    = DataBaseFactory.GetIDbConnection();
            IDbConn.Open();
            IDbComm = DataBaseFactory.GetIDbCommand(IDbConn);
            try
            {
                PrepareCommand(IDbComm, IDbConn, null, CommandType.Text, sql, IDbParams);
                result.IDataReader = IDbComm.ExecuteReader();
            }
            catch (Exception E)
            {
                result.Error = E.Message;
                return(result);
            }
            return(result);
            //  IDataReader ireader = null;
            //  try
            //  {
            //      if (IDbConn == null || IDbConn.State == ConnectionState.Closed)
            //      {
            //          IDbConn = DataBaseFactory.GetIDbConnection();
            //          IDbConn.Open();
            //          IDbComm = DataBaseFactory.GetIDbCommand(sql);
            //          //IDbComm.CommandText = sql;
            //          //IDbComm.CommandType = CommandType.Text;
            //          // = IDbcmd.ExecuteReader();
            //          ireader = IDbComm.ExecuteReader((CommandBehavior)((int)CommandBehavior.CloseConnection));
            //      }
            //      return ireader;
            //  }
            //catch (Exception e)
            //  {
            //       IDbConn.Close();
            //      return null;
            //      throw new Exception(e.Message);
            //  }
        }
Esempio n. 19
0
        /// <summary>
        /// 通过事务执行多条SQL语句
        /// </summary>
        /// <param name="sqlList">SQL语句集</param>
        /// <returns></returns>
        public static DataResult ExecuteByTransaction(List <string> sqlList)
        {
            DataResult result = new DataResult();

            using (IDbConn = DataBaseFactory.GetIDbConnection())
            {
                IDbConn.Open();
                IDbComm            = DataBaseFactory.GetIDbCommand();
                IDbComm.Connection = IDbConn;
                IDbTrans           = IDbConn.BeginTransaction(IsolationLevel.ReadCommitted);// DataBaseFactory.GetIDbTransaction();
                if (IDbTrans != null)
                {
                    IDbComm.Transaction = IDbTrans;
                    // IDbTrans = IDbConn.BeginTransaction(IsolationLevel.ReadCommitted);
                }
                try
                {
                    for (int i = 0; i < sqlList.Count; i++)
                    {
                        string str = sqlList[i].ToString();
                        if (str.Trim().Length > 1)
                        {
                            IDbComm.CommandText = str;
                            result.RecordCount += IDbComm.ExecuteNonQuery();
                        }
                    }
                    IDbTrans.Commit();
                    return(result);
                }
                catch (Exception exception)
                {
                    IDbTrans.Rollback();
                    IDbConn.Close();
                    result.Error = exception.Message;
                    return(result);
                }
                finally
                {
                    IDbConn.Close();
                }
            }
        }
Esempio n. 20
0
        /// <summary>
        /// 通过事务执行多条SQL语句
        /// </summary>
        /// <param name="sqlList">SQL语句集</param>
        /// <returns></returns>
        public bool ExecuteByTransaction(List <string> sqlList)
        {
            using (IDbConn = DataBaseFactory.GetIDbConnection())
            {
                IDbConn.Open();
                IDbComm            = DataBaseFactory.GetIDbCommand();
                IDbComm.Connection = IDbConn;
                IDbTrans           = IDbConn.BeginTransaction();// DataBaseFactory.GetIDbTransaction();
                if (IDbTrans != null)
                {
                    IDbComm.Transaction = IDbTrans;
                    IDbTrans            = IDbConn.BeginTransaction(IsolationLevel.ReadCommitted);
                }
                try
                {
                    for (int i = 0; i < sqlList.Count; i++)
                    {
                        string str = sqlList[i].ToString();
                        if (str.Trim().Length > 1)
                        {
                            IDbComm.CommandText = str;
                            IDbComm.ExecuteNonQuery();
                        }
                    }
                    IDbTrans.Commit();
                    return(true);
                }
                catch (Exception exception)
                {
                    IDbTrans.Rollback();
                    IDbConn.Close();
                    return(false);

                    throw new Exception(exception.Message);
                }
                finally
                {
                    IDbConn.Close();
                }
            }
        }
Esempio n. 21
0
 /// <summary>
 /// 打开数据库连接
 /// </summary>
 public void Open()
 {
     if (IDbConn == null || IDbConn.State == ConnectionState.Closed)
     {
         IDbConn   = DataBaseFactory.GetIDbConnection();
         IDbComm   = DataBaseFactory.GetIDbCommand();
         IDbAdpter = DataBaseFactory.GetIDbDataAdapter();
         // IDbTrans = DataBaseFactory.GetIDbTransaction();
     }
     IDbComm.Connection      = IDbConn;
     IDbAdpter.SelectCommand = IDbComm;
     IDbComm.CommandType     = CommandType.Text;
     try
     {
         IDbConn.Open();
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
Esempio n. 22
0
        public static DataResult ExistsRecord(string sql)
        {
            DataResult result = new DataResult();

            result.Sql = sql + ";";
            IDataReader ireader = null;

            try
            {
                if (IDbConn == null || IDbConn.State == ConnectionState.Closed)
                {
                    IDbConn = DataBaseFactory.GetIDbConnection();
                    IDbConn.Open();
                    IDbComm = DataBaseFactory.GetIDbCommand(sql);
                    //IDbComm.CommandText = sql;
                    //IDbComm.CommandType = CommandType.Text;
                    ireader = IDbComm.ExecuteReader();
                    if (ireader.Read())
                    {
                        result.RecordCount = 1;
                    }
                    else
                    {
                        result.RecordCount = 0;
                    }
                }
                else
                {
                    result.RecordCount = 1;
                }
            }
            catch (Exception e)
            {
                IDbConn.Close();
                result.Error = e.Message;
                return(result);
            }
            return(result);
        }
Esempio n. 23
0
        /// <summary>
        /// 是否存在记录
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="cmdParms">参数</param>
        /// <returns></returns>
        public bool ExistsRecord(string sql, params IDbDataParameter[] cmdParms)
        {
            IDataReader ireader = null;

            try
            {
                if (IDbConn == null || IDbConn.State == ConnectionState.Closed)
                {
                    IDbConn = DataBaseFactory.GetIDbConnection();
                    IDbConn.Open();
                    IDbComm = DataBaseFactory.GetIDbCommand();
                    PrepareCommand(IDbComm, IDbConn, null, CommandType.Text, sql, cmdParms);
                    ireader = IDbComm.ExecuteReader((CommandBehavior)((int)CommandBehavior.CloseConnection));
                    if (ireader.Read())
                    {
                        IDbComm.Parameters.Clear();
                        ireader.Close();
                        this.Close();
                        return(true);
                    }
                    else
                    {
                        this.Close();
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                this.Close();
                return(false);

                throw new Exception(e.Message);
            }
        }
Esempio n. 24
0
        /// <summary>
        /// 探索运行时的存储过程,返回IDbDataParameter参数数组.
        /// 初始化参数值为 DBNull.Value.
        /// </summary>
        /// <param>一个有效的数据库连接</param>
        /// <param>存储过程名称</param>
        /// <param>是否包含返回值参数</param>
        /// <returns>返回IDbDataParameter参数数组</returns>
        private static IDbDataParameter[] DiscoverSpParameterSet(IDbConnection connection, string spName, bool includeReturnValueParameter)
        {
            if (connection == null)
            {
                throw new ArgumentNullException("IDbConnection 连接对象为NULL");
            }
            if (spName == null || spName.Length == 0)
            {
                throw new ArgumentNullException("存储过程名称为null");
            }
            IDbCommand cmd = DataBaseFactory.GetIDbCommand();//. new IDbCommand(spName, connection);

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = spName;
            connection.Open();
            // 检索cmd指定的存储过程的参数信息,并填充到cmd的Parameters参数集中.
            // SqlCommandBuilder.DeriveParameters(cmd); //这里考虑一下如何是区分不同数据库的填充

            connection.Close();
            // 如果不包含返回值参数,将参数集中的每一个参数删除.

            if (!includeReturnValueParameter)
            {
                cmd.Parameters.RemoveAt(0);
            }
            // 创建参数数组
            IDbDataParameter[] discoveredParameters = new IDbDataParameter[cmd.Parameters.Count];
            // 将cmd的Parameters参数集复制到discoveredParameters数组.
            cmd.Parameters.CopyTo(discoveredParameters, 0);
            // 初始化参数值为 DBNull.Value.
            foreach (IDbDataParameter discoveredParameter in discoveredParameters)
            {
                discoveredParameter.Value = DBNull.Value;
            }
            return(discoveredParameters);
        }
Esempio n. 25
0
        /// <summary>
        /// 执行SQL语句返回结果集DataSet
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="cmdParms">参数</param>
        /// <returns></returns>
        public static DataResult GetDataSet(string sql, params IDbDataParameter[] cmdParms)
        {
            sql = DataBaseFactory.GetSQL(sql);
            DataResult result = new DataResult();

            result.Sql = sql + ";";
            result.IDbDataParameter = cmdParms;
            using (IDbConn = DataBaseFactory.GetIDbConnection())
            {
                IDbConn.Open();
                using (IDbComm = DataBaseFactory.GetIDbCommand())
                {
                    try
                    {
                        PrepareCommand(IDbComm, IDbConn, null, CommandType.Text, sql, cmdParms);
                        IDbDataAdapter dataAdapter = DataBaseFactory.GetIDbDataAdapter();
                        dataAdapter.SelectCommand = IDbComm;
                        DataSet dataSet = new DataSet();
                        dataAdapter.Fill(dataSet);
                        IDbComm.Parameters.Clear();
                        result.DataSet = dataSet;
                    }
                    catch (Exception E)
                    {
                        IDbConn.Close();
                        result.Error = E.Message;
                        return(result);
                    }
                    finally
                    {
                        IDbConn.Close();
                    }
                }
            }
            return(result);
        }
Esempio n. 26
0
        public bool ExistsRecord(string sql)
        {
            IDataReader ireader = null;

            try
            {
                if (IDbConn == null || IDbConn.State == ConnectionState.Closed)
                {
                    IDbConn = DataBaseFactory.GetIDbConnection();
                    IDbConn.Open();
                    IDbComm = DataBaseFactory.GetIDbCommand(sql);
                    //IDbComm.CommandText = sql;
                    //IDbComm.CommandType = CommandType.Text;
                    ireader = IDbComm.ExecuteReader();
                    if (ireader.Read())
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                this.Close();
                return(false);

                throw new Exception(e.Message);
            }
        }
Esempio n. 27
0
 /// <summary>
 /// 创建参数数量
 /// </summary>
 /// <param name="paramsCount">参数个数</param>
 public void CreateParameters(int paramsCount)
 {
     //  IDbParams = new IDbDataParameter[paramsCount];
     IDbParams = DataBaseFactory.GetIDbParameters(paramsCount);
 }