CSVHelper を使用して DataReader の結果を csv ファイルに書き込みますが、データリーダーから列名を取得するだけでなく、ヘッダー名を手動で入力する必要があることを除いて、すべてがうまく機能します。
したがって、現在、次を使用してデータを取得し、ヘッダーを配置しています。これは、CSVHelper のドキュメントから直接取得されます: http://joshclose.github.io/CsvHelper/#misc-faq
while (rdr.Read())
{
if (!hasHeaderBeenWritten)
{
for (var i = 0; i < rdr.FieldCount; i++)
{
csv.WriteField(rdr.GetName(i));
}
csv.NextRecord();
hasHeaderBeenWritten = true;
foreach (var item in dataList)
{
csv.WriteRecord(item);
}
}
for (var i = 0; i < rdr.FieldCount; i++)
{
csv.WriteField(rdr[i]);
}
csv.NextRecord();
}
基本的に、上記で使用されている rdr.GetName(i) メソッドに対して、クラスが返すことができる 3 つの列に手動の名前を追加することを検討しています。
誰にも解決策はありますか?私は csv.WriteField("namehere"[i]); をやってみました。これは明らかに機能せず、代わりに各文字を 3 つの列にまたがって停止しました。