Как вы можете распечатать все столбцы, возвращенные в одной строке из базы данных. Я могу напечатать определенное число, вручную добавив код для каждого столбца, как показано ниже, и это отлично работает для этого примера только с первыми тремя столбцами. Но в таблице много столбцов.
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}\t{2}", reader[0], reader[1], reader[2]);
}
Как я могу динамически печатать каждое значение столбца без необходимости писать до читателя [n]? Есть ли способ зацикливаться. Я попытался использовать цикл for, но я получаю сообщение об ошибке с попыткой Read(), когда читать нечего. (или слова к этому влиянию)
Ну вот:
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
Console.WriteLine("\t{0}", reader[i]);
}
}
Попробуй это
while (reader.Read())
{
Console.WriteLine(string.Join("\t", reader));
}
статический метод string.Join()
примет массив объектов, вызовет ToString() на них и вставляет предоставленную строку между ними для любого размера.
Попробуйте эту ссылку. Указанный объект должен помочь вам получить желаемые результаты.
http://www.thinqlinq.com/default/consuming-a-datareader-with-linq