2011-02-07 61 views
0

我正在C#中重寫一個IronPython WPF應用程序(出於各種原因)。在IPython中,我可以這樣做:使用WPF/C#/ IList接口訪問Oracle查詢數據

行= dt.GetList()

的foreach(在排排);

ln = row["lastname"] ... etc. 

等等。由於C#對數據類型更挑剔,因此我一直無法弄清楚如何使foreach工作,甚至讓簡單的索引版本(在下面的MessageBox中)工作。我並沒有想要將它變成一個CollectionView。已經搜索了很多關於如何做比這更復雜的事情的信息 - 我最終可能會這樣做 - 但現在,只是試圖查看我是否可以將我的數據恢復爲簡單的Oracle類數據類型 - 字符串,Ints等建議表示讚賞。

 OracleDataAdapter da = new OracleDataAdapter(sql, db_connection); 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 

     System.Collections.IList rows = ((IListSource)dt).GetList(); 
     MessageBox.Show(rows[0]["lastname"]); 

回答

1

你不必轉換你的數據表,已經有一個datarow列表。

隨着foreach循環:

foreach (DataRow row in dt.Rows) 
    MessageBox.Show(row["id"].ToString()); 

您還可以訪問:

MessageBox.Show(dt.Rows[0]["id"].ToString()); 

要打印整個表:

foreach (DataRow row in dt.Rows) 
{ 
    foreach (DataColumn col in dt.Columns) 
    { 
     Console.Write(row[col] + " "); 
    } 
    Console.WriteLine(""); 
} 

隨着col.DataType,你可以檢索類型;)

希望它會幫助

+0

嗨,這看起來不錯,會試一試。現在幾年沒有使用C#,並且總結出什麼類型的東西並不總是容易的。謝謝一堆! – Ken 2011-02-08 13:23:14