/// <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); } }
/// <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); } }
/// <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); } }
/// <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); } }
/// <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()); } } }