Доступ к данным запроса Oracle с использованием интерфейса WPF / C # / IList - PullRequest
0 голосов
/ 08 февраля 2011

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

row = 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 Ответ

1 голос
/ 08 февраля 2011

вам не нужно конвертировать данные, уже есть список данных.

С циклом 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 вы можете получить тип;)

Надеюсь, это поможет

...