C# 将Oracle.ManagedDataAccess.Client.OracleDataReader中的行转储到在关闭连接后仍然存在的集合
我正在尝试编写一个简单的帮助函数,它使用C# 将Oracle.ManagedDataAccess.Client.OracleDataReader中的行转储到在关闭连接后仍然存在的集合,c#,design-patterns,.net-core,oracle.manageddataaccess,C#,Design Patterns,.net Core,Oracle.manageddataaccess,我正在尝试编写一个简单的帮助函数,它使用Oracle.ManagedDataAccess.Corelibrary连接到Oracle数据库,并返回行 当与数据库的连接关闭时,返回的对象应继续存在。类似于下面的内容。我不知道结果会是什么 public <sometype> GetOracleResults(string connectionString, string cmdText, List<OracleParameter> oracleParameters) {
Oracle.ManagedDataAccess.Core
library连接到Oracle数据库,并返回行
当与数据库的连接关闭时,返回的对象应继续存在。类似于下面的内容。我不知道结果会是什么
public <sometype> GetOracleResults(string connectionString, string cmdText, List<OracleParameter> oracleParameters)
{
<sometype> results = null;
try
{
using (OracleConnection oracleConnection = new OracleConnection(connectionString))
{
oracleConnection.Open();
using (OracleCommand oracleCommand = new OracleCommand(cmdText, oracleConnection))
{
foreach (var param in oracleParameters)
{
oracleCommand.Parameters.Add(param);
}
OracleDataReader oracleDataReader = oracleCommand.ExecuteReader();
if(oracleDataReader.HasRows)
{
results = new <sometype>();
while (oracleDataReader.Read())
{
//loop through the reader and add results
return results;
}
}
}
}
}
catch (Exception)
{
//todo
throw;
}
}
public GetOracleResults(字符串连接字符串、字符串cmdText、列表oracleParameters)
{
结果=空;
尝试
{
使用(OracleConnection OracleConnection=新OracleConnection(connectionString))
{
oracleConnection.Open();
使用(OracleCommand OracleCommand=new OracleCommand(cmdText,oracleConnection))
{
foreach(oracleParameters中的var param)
{
oracleCommand.Parameters.Add(param);
}
OracleDataReader OracleDataReader=oracleCommand.ExecuteReader();
if(oracleDataReader.HasRows)
{
结果=新的();
while(oracleDataReader.Read())
{
//循环阅读并添加结果
返回结果;
}
}
}
}
}
捕获(例外)
{
//待办事项
投掷;
}
}
它必须是强类型的吗?如果没有,一位同事让我将数据粘贴到字典项列表中,例如:
var columns = new List<string>();
for (int i = 0; i < myReader.FieldCount; i++)
{
columns.Add(myReader.GetName(i).Trim());
}
while (myReader.Read() && results.Count < 200)
{
Dictionary<string, string> row = new Dictionary<string, string>();
foreach (var column in columns)
{
row.Add(column, Convert.ToString(myReader[column], CultureInfo.InvariantCulture).Trim());
}
results.Add(row);
}
var columns=newlist();
for(int i=0;i
我想,如果您知道模式,因此进入方法的泛型类型具有与列名匹配的属性名,那么您可以使用反射将列结果与C#对象匹配