我得到一个SQL响应并将其记录到列表列表中,表示结果表。之后,我需要在第一个“列”(列表列表中的第一个列表)中使用不同的值。如何将所有其他列表绑定到第一个列表,以便所有“行”保持一致并以某种方式通过索引号连接? 列数(列表)是可变的。
以下是我用来从SQL响应中获取数据的代码:
List<List<string>> response = new List<List<string>>();
int colNum = 0;
using (OracleCommand comm = new OracleCommand(query, con))
{
using (OracleDataReader rdr = comm.ExecuteReader()) // execute the oracle sql and start reading it
{
while (rdr.Read())
{
if (response.Count == 0)
{
while (rdr.GetOracleValue(colNum) != null)
{
response.Add(new List<string>());
colNum++;
}
}
for (int c = 0; c < colNum; c++)
{
if (rdr.GetOracleValue(c).ToString() == "Oracle.DataAccess.Types.OracleClob")
{
response[c].AddRange(report.getPropertiesByName(rdr.GetOracleValue(c), "Value", false, false).Select(p => p.ToString()));
}
else
{
response[c].Add(rdr.GetOracleValue(c).ToString());
}
}
}
rdr.Close();
}
}
return response;
答案 0 :(得分:0)
看看OracleDataAdapter
。我不太确定这种语法是否正确,但它应该让你开始。
var response = new DataSet();
using (OracleCommand command = new OracleCommand(query, con))
{
var dataAdapter = new OracleDataAdapter(command);
dataAdapter.Fill(response);
}
return response;