2

我有一个SqlDataReader阅读器,我事先不知道数据结构,即列数是未知的。我想把表格放在 csv 文件中。我从中检索列

System.Data.DataTable dt = reader.GetSchemaTable();

所以我把它们放在 dt.Columns() 之后。然后,我想做这样的事情:

while (reader.Read())
{
    writer.WriteLine(string.Join(";",ListWithRowContent))
}

但是,我很难使用 linq .Select 之类的东西将一行的内容放入 ListWithRowContent 列表中,但是无法查询“reader”对象。
问题:怎么做(请不要for循环!)?

4

1 回答 1

6

假设该读者位于任何记录上:

var values = new Object[reader.FieldCount];

reader.GetValues(values);

writer.WriteLine(string.Join(";", values.Select(v => v.ToString())));

或更方便的方式(FW 4.0 或更高版本):

var values = new Object[reader.FieldCount];

reader.GetValues(values);

writer.WriteLine(string.Join(";", values));
于 2012-08-08T09:44:10.413 回答