2013-03-11 72 views
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; 
+2

當前用於將SQL數據放入列表中的代碼是什麼? – rhughes 2013-03-11 11:16:14

+0

郵政編碼或我們無法幫到您。 – Romoku 2013-03-11 11:24:19

+0

@rhughes添加代碼 – AlexProutorov 2013-03-11 11:28:41

回答

0

看一看的OracleDataAdapter。我不太確定這個語法是否正確,但它應該讓你開始。

var response = new DataSet(); 

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

return response; 
相關問題