FbDataReader для ArrayList в C # - PullRequest
       4

FbDataReader для ArrayList в C #

1 голос
/ 11 января 2012

Я пытаюсь отправить данные из FbDataReader в ArrayList. Вот мой пример кода:

ArrayList aList = new ArrayList();
FbCommand fbCommand = new FbCommand("SELECT * FROM users", dbConn);
FbDataReader fbDataReader = fbCommand.ExecuteReader();
while (fbDataReader.Read()) {
    aList.Add(fbDataReader[0]);
    // Should push all the fbDataReader (including rows and columns) into the aList array
}
fbDataReader.Close();
return aList;

Ответы [ 2 ]

4 голосов
/ 11 января 2012

Не помещайте вопрос в качестве комментария в своем коде. Его сложнее найти.

Вы можете использовать метод GetValues() из интерфейса IDataRecord (который реализует программа чтения данных).

public IList<object[]> FindUsers()
{
    using (var command = dbConn.CreateCommand())
    {
        command.CommandText =  "SELECT * FROM users";
        using (var reader = command.ExecuteReader())
        {
            var rows = new List<object[]>();
            while (reader.Read()) 
            {
                var columns = new object[reader.FieldCount];
                reader.GetValues(columns);
                rows.Add(columns);
            }
            return rows;
        }
    }
}

Что позволяет позже использовать:

var users = FindUsers();
var value = users[rowIndex][columnIndex].ToString();
1 голос
/ 11 января 2012

Метод DataReader.GetValues скопирует все значения в строке в массив объектов, переданный ему в качестве аргумента.Затем вы можете добавить массив объектов в ваш ArrayList:

Object[] values = new Object[fbDataReader.FieldCount];
fbDataReader.GetValues(values)
aList.Add(values);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...