2011-02-07 3 views
0

Я переписываю приложение WPF IronPython на C# (по разным причинам). В IPython, я могу сделать что-то вроде:Доступ к данным запроса Oracle с использованием интерфейса WPF/C#/IList

строк = dt.GetList()

Foreach (строка строк);

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

и пр. Поскольку C# гораздо более придирчивы к типам данных, я не смог понять, как получить что-то вроде foreach для работы, или даже для того, чтобы работать с простой индексированной версией (в MessageBox ниже). Я не до такой степени, что хочу превратить его в CollectionView. У вас довольно много информации о том, как сделать что-то более сложное, чем это - возможно, я захочу сделать это в конце концов - но пока просто пытаюсь выяснить, могу ли я вернуть свои данные в простые типы данных, подобные Oracle - строки, инты и т. д. Предложения оценены.

 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 (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