0

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;
4

1 に答える 1

0

をご覧くださいOracleDataAdapter。この構文が正しいかどうかはよくわかりませんが、これで始められるはずです。

var response = new DataSet();

using (OracleCommand command = new OracleCommand(query, con))
{
    var dataAdapter = new OracleDataAdapter(command);
    dataAdapter.Fill(response); 
}

return response;
于 2013-03-11T11:50:11.757 に答える