Ejemplo n.º 1
0
        /// <summary>
        /// 执行查询存储过程返回结果集
        /// </summary>
        /// <param name="TransID">连接字符串</param>
        /// <param name="StrConn">连接字符串</param>
        /// <param name="ProcedureName">存储过程名</param>
        /// <param name="Params">Sql 参数,参数值所在位置必须与参数名一致</param>
        /// <returns>返回数据集</returns>
        public byte[] QueryProcedure(string TransID, string StrConn, string ProcedureName, Dictionary <string, object> Params)
        {
            SqlConnection oConn = GetSqlConnection(TransID, StrConn);

            try
            {
                using (SqlCommand oCmd = new SqlCommand(ProcedureName, oConn))
                {
                    oCmd.CommandType = CommandType.StoredProcedure;
                    CreateSqlProcedureParam(oCmd, Params);
                    using (SqlDataReader odr = oCmd.ExecuteReader(CommandBehavior.CloseConnection))
                    {
                        using (DataTable dtSchema = odr.GetSchemaTable())
                        {
                            using (CJia.Net.Serialization.SerializationWriter sw = new Net.Serialization.SerializationWriter())
                            {
                                SerializationSchema(sw, dtSchema);
                                object[] aryValues = new object[odr.FieldCount];
                                while (odr.Read())
                                {
                                    odr.GetValues(aryValues);
                                    sw.WriteOptimized(aryValues);
                                }
                                aryValues = null;
                                return(sw.ToArray());
                            }
                        }
                    }
                }
            }
            finally
            {
                CloseConnection(TransID, oConn);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 执行查询SQL语句
        /// </summary>
        /// <param name="StrConn">连接字符串</param>
        /// <param name="strConn">连接字符串</param>
        /// <param name="TransID">事务ID</param>
        /// <param name="SqlText">Sql 文本</param>
        /// <param name="SqlParams">Sql 参数,参数值所在位置必须与参数名一致</param>
        /// <returns>返回数据集</returns>
        public byte[] Query(string TransID, string StrConn, string SqlText, object[] SqlParams)
        {
            NpgsqlConnection oConn = GetNpgsqlConnection(TransID, StrConn);

            try
            {
                using (NpgsqlCommand oCmd = new NpgsqlCommand(SqlText, oConn))
                {
                    CreateSqlParam(oCmd, SqlParams);
                    using (NpgsqlDataReader odr = oCmd.ExecuteReader(CommandBehavior.CloseConnection))
                    {
                        using (DataTable dtSchema = odr.GetSchemaTable())
                        {
                            using (CJia.Net.Serialization.SerializationWriter sw = new Net.Serialization.SerializationWriter())
                            {
                                SerializationSchema(sw, dtSchema);
                                object[] aryValues = new object[odr.FieldCount];
                                while (odr.Read())
                                {
                                    odr.GetValues(aryValues);
                                    sw.WriteOptimized(aryValues);
                                }
                                aryValues = null;
                                return(sw.ToArray());
                            }
                        }
                    }
                }
            }
            finally
            {
                CloseConnection(TransID, oConn);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 执行查询存储过程返回结果集
        /// </summary>
        /// <param name="TransID">连接字符串</param>
        /// <param name="StrConn">连接字符串</param>
        /// <param name="ProcedureName">存储过程名</param>
        /// <param name="Params">Sql 参数,参数值所在位置必须与参数名一致</param>
        /// <returns>返回数据集</returns>
        public byte[] QueryProcedure(string TransID, string StrConn, string ProcedureName, Dictionary <string, object> Params)
        {
            OracleConnection oConn = GetOracleConnection(TransID, StrConn);

            try
            {
                using (OracleCommand oCmd = new OracleCommand(ProcedureName, oConn))
                {
                    oCmd.CommandType = CommandType.StoredProcedure;
                    OracleParameter cursor = new OracleParameter();
                    cursor.ParameterName = "C_CURSOR";
                    cursor.OracleDbType  = OracleDbType.RefCursor;
                    cursor.Direction     = ParameterDirection.Output;
                    oCmd.Parameters.Add(cursor);
                    CreateSqlProcedureParam(oCmd, Params);
                    using (OracleDataReader odr = oCmd.ExecuteReader(CommandBehavior.CloseConnection))
                    {
                        using (DataTable dtSchema = odr.GetSchemaTable())
                        {
                            using (CJia.Net.Serialization.SerializationWriter sw = new Net.Serialization.SerializationWriter())
                            {
                                SerializationSchema(sw, dtSchema);
                                object[] aryValues = new object[odr.FieldCount];
                                while (odr.Read())
                                {
                                    odr.GetValues(aryValues);
                                    sw.WriteOptimized(aryValues);
                                }
                                aryValues = null;
                                return(sw.ToArray());
                            }
                        }
                    }
                }
            }
            finally
            {
                CloseConnection(TransID, oConn);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 执行查询存储过程返回结果集
        /// </summary>
        /// <param name="TransID">连接字符串</param>
        /// <param name="StrConn">连接字符串</param>
        /// <param name="ProcedureName">存储过程名</param>
        /// <param name="Params">Sql 参数,参数值所在位置必须与参数名一致</param>
        /// <returns>返回数据集</returns>
        public byte[] QueryProcedure(string TransID, string StrConn, string ProcedureName, Dictionary <string, object> Params)
        {
            NpgsqlConnection oConn = GetNpgsqlConnection(TransID, StrConn);

            if (string.IsNullOrWhiteSpace(TransID))//没有事务需要设一单独事务
            {
                NpgsqlTransaction trans = oConn.BeginTransaction(IsolationLevel.ReadCommitted);
            }
            try
            {
                using (NpgsqlCommand oCmd = new NpgsqlCommand(ProcedureName, oConn))
                {
                    oCmd.CommandType = CommandType.StoredProcedure;
                    CreateSqlProcedureParam(oCmd, Params);
                    using (NpgsqlDataReader odr = oCmd.ExecuteReader(CommandBehavior.CloseConnection))
                    {
                        using (DataTable dtSchema = odr.GetSchemaTable())
                        {
                            using (CJia.Net.Serialization.SerializationWriter sw = new Net.Serialization.SerializationWriter())
                            {
                                SerializationSchema(sw, dtSchema);
                                object[] aryValues = new object[odr.FieldCount];
                                while (odr.Read())
                                {
                                    odr.GetValues(aryValues);
                                    sw.WriteOptimized(aryValues);
                                }
                                aryValues = null;
                                return(sw.ToArray());
                            }
                        }
                    }
                }
            }
            finally
            {
                CloseConnection(TransID, oConn);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 查询该分页接下来的一定行数据
        /// </summary>
        /// <param name="Paging">分页号</param>
        /// <param name="count">接下来的数据行</param>
        /// <returns>返回数据集</returns>
        public byte[] QueryPagingData(int Paging, int count)
        {
            DbDataReader odr = pagingDic[Paging];

            using (DataTable dtSchema = odr.GetSchemaTable())
            {
                using (CJia.Net.Serialization.SerializationWriter sw = new Net.Serialization.SerializationWriter())
                {
                    SerializationSchema(sw, dtSchema);
                    object[] aryValues = new object[odr.FieldCount];
                    for (int i = 0; i < count; i++)
                    {
                        if (odr.Read())
                        {
                            odr.GetValues(aryValues);
                            sw.WriteOptimized(aryValues);
                        }
                    }
                    aryValues = null;
                    return(sw.ToArray());
                }
            }
        }