をエクスポートしていない、とは二つの問題があります。CsvWriteは、私は、SQL ServerのテーブルからデータをエクスポートするCsvWriterを使用しています小さなテーブル
テーブルが小さい、すなわち、いくつかを持っているが(空白ファイル)
テーブルがエクスポートをトリガするのに十分な行を持っている場合、CsvWriterは行を切り捨てます(行が1行と5行をテストした)。私のテストでは、30行のテーブルをエクスポートするときに21行、50行のテーブルをエクスポートするときに44行が得られました(最後の行は両方とも不完全です)。データをエクスポートするC#のコードに
DECLARE @cnt INT = 0; DECLARE @rows INT = 1; /* I tested 5, 30 and 50 */ WHILE @cnt < @rows BEGIN INSERT INTO csvtest(id, a, b) VALUES(NEWID(), @cnt, 'a very very1 very2 very3 very4 long random string'); SET @cnt = @cnt + 1; END;
テストデータをロードする
SQL Serverコード(https://joshclose.github.io/CsvHelper/でのコードの多かれ少なかれコピー)
// open a database connection
SqlConnection con = new SqlConnection(cs);
con.Open();
string sqlstring = "SELECT * FROM csvTest";
SqlCommand cmd = new SqlCommand(sqlstring, con);
SqlDataReader dr = cmd.ExecuteReader();
var csv = new CsvWriter(new StreamWriter("c:\\tmp\\csvtest_1row.csv"));
while (dr.Read())
{
for (var i = 0; i < dr.FieldCount; i++)
{
csv.WriteField(dr[i]);
}
csv.NextRecord();
}
con.Close();
マイCsvHelperのバージョンは2.15.0.2です。
2つのノート:
私は線でコード行をデバッグし、データがデータベースから正しく読み込まれた確認することができます。実際には、私はCSVオブジェクトを覗いて、そこにデータがあるようです。ちょうど何とか彼らはファイルに正しく書かれていませんでした。
私のコードは、テーブルをエクスポートするための一般的なものです。
誰でも私が間違っていたことを教えてもらえますか?
ご協力いただきありがとうございます。
ありがとうございました。それは私の問題を解決します。 – james800