コード例 #1
0
ファイル: DBHelper.Async.cs プロジェクト: hubo0831/DataGate
        /// <summary>
        /// 根据指定Sql返回一个DataReader
        /// </summary>
        /// <param name="sql">要执行的sql语句</param>
        /// <param name="sp">参数数组</param>
        /// <returns>IDataReader</returns>
        public virtual async Task <IDataReader> ExecReaderAsync(string sql, params IDataParameter[] sp)
        {
            var       conn = StartConn();
            DbCommand sc   = DBComm.CreateCommand(conn);

            sc.CommandText = sql;

            // we use a try/catch here because if the method throws an exception we want to
            // close the connection throw code, because no datareader will exist, hence the
            // commandBehaviour.CloseConnection will not work
            try
            {
                PrepareCommand(sc, sp);
                IDataReader rdr = await sc.ExecuteReaderAsync(
                    InTrans?CommandBehavior.Default :
                    CommandBehavior.CloseConnection);

                sc.Parameters.Clear();
                return(rdr);
            }
            catch
            {
                EndConn(conn);
                throw;
            }
        }
コード例 #2
0
        /// <summary>
        /// 得到单一对象
        /// </summary>
        /// <param name="sql">要执行的sql语句</param>
        /// <param name="sp">参数数组</param>
        /// <returns>返回的单个值</returns>
        public virtual object ExecGetObject(String sql, params IDataParameter[] sp)
        {
            object       o    = 0;
            DbConnection conn = StartConn();
            DbCommand    sc   = DBComm.CreateCommand(conn);

            sc.CommandText = sql;
            PrepareCommand(sc, sp);
            o = sc.ExecuteScalar();
            sc.Parameters.Clear();
            EndConn(conn);
            return(o);
        }
コード例 #3
0
        /// <summary>
        /// 用指定连接串执行非查询语句
        /// </summary>
        /// <param name="sql">非查询语句</param>
        /// <param name="sp">可选参数数组</param>
        /// <returns>影响的行数</returns>
        public virtual int ExecNonQuery(string sql, params IDataParameter[] sp)
        {
            DbConnection conn = StartConn();
            DbCommand    sc   = DBComm.CreateCommand(conn);

            sc.CommandText = sql;
            PrepareCommand(sc, sp);
            int r = sc.ExecuteNonQuery();

            sc.Parameters.Clear();
            EndConn(conn);
            return(r);
        }
コード例 #4
0
ファイル: DBHelper.Async.cs プロジェクト: hubo0831/DataGate
        /// <summary>
        /// 执行存储过程修改数据
        /// </summary>
        /// <param name="procname">存储过程名称</param>
        /// <param name="sp">可选参数数组</param>
        /// <returns>影响的行数</returns>
        public virtual async Task <int> RunProcedureAsync(string procname, params IDataParameter[] sp)
        {
            var       conn = StartConn();
            DbCommand sc   = DBComm.CreateCommand(conn);

            sc.CommandText = procname;
            sc.CommandType = CommandType.StoredProcedure;
            PrepareCommand(sc, sp);
            int r = await sc.ExecuteNonQueryAsync();

            sc.Parameters.Clear();
            EndConn(conn);
            return(r);
        }
コード例 #5
0
ファイル: DBHelper.Async.cs プロジェクト: hubo0831/DataGate
        /// <summary>
        /// 得到单一对象
        /// </summary>
        /// <param name="sql">要执行的sql语句</param>
        /// <param name="sp">参数数组</param>
        /// <returns>返回的单个值</returns>
        public virtual async Task <object> ExecGetObjectAsync(String sql, params IDataParameter[] sp)
        {
            object    o    = 0;
            var       conn = StartConn();
            DbCommand sc   = DBComm.CreateCommand(conn);

            sc.CommandText = sql;
            PrepareCommand(sc, sp);
            o = await sc.ExecuteScalarAsync();

            sc.Parameters.Clear();
            EndConn(conn);
            return(o);
        }
コード例 #6
0
        /// <summary>
        /// 执行SQL查询语句,返回DataSet
        /// </summary>
        /// <param name="sql">要执行的Sql语句</param>
        /// <param name="sp">参数数组</param>
        /// <returns>DataSet</returns>
        public virtual DataSet ExecDataSet(string sql, params IDataParameter[] sp)
        {
            DbConnection conn = StartConn();
            DbCommand    sc   = DBComm.CreateCommand(conn);

            sc.CommandText = sql;
            PrepareCommand(sc, sp);
            DbDataAdapter da = DBComm.CreateDataAdapter(sc);
            DataSet       ds = new DataSet();

            da.Fill(ds);
            sc.Parameters.Clear();
            EndConn(conn);
            return(ds);
        }
コード例 #7
0
ファイル: DBHelper.Async.cs プロジェクト: hubo0831/DataGate
        /// <summary>
        /// 用指定连接串执行非查询语句异步版本
        /// </summary>
        /// <param name="sql">非查询语句</param>
        /// <param name="sp">可选参数数组</param>
        /// <returns>影响的行数</returns>
        public virtual async Task <int> ExecNonQueryAsync(string sql, params IDataParameter[] sp)
        {
            var       conn = StartConn();
            DbCommand sc   = DBComm.CreateCommand(conn);

            sc.CommandText = sql;
            PrepareCommand(sc, sp);
            if (!sql.Contains(' '))
            {
                sc.CommandType = CommandType.StoredProcedure;
            }
            int r = await sc.ExecuteNonQueryAsync();

            sc.Parameters.Clear();
            EndConn(conn);
            return(r);
        }