데이터를 SQLite에서 .csv
으로 내보내는 중입니다.하지만 행에 문제가있어 결과가 항상 첫 번째 행에 표시되는 이유는 무엇입니까? 내가 뭐 놓친 거 없니??결과가 항상 첫 번째 행에 표시되는 이유는 무엇입니까?
결과 :
이
내 코드 :
private void DataExport()
{
SaveFileDialog saveFileDialog = new SaveFileDialog
{
Title = "Choose file to save to",
FileName = ".csv",
Filter = "CSV (*.csv)|*.csv",
FilterIndex = 0,
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
};
if (saveFileDialog.ShowDialog() == true)
{
SQLiteCommand cmd = new SQLiteCommand();
String sSQL;
sSQL = "select * from Tile1";
cmd.CommandText = sSQL;
clsCon.con.Open();
cmd.Connection = clsCon.con;
SQLiteDataReader dr2;
dr2 = cmd.ExecuteReader();
dr2.Read();
DataSet _dataSet = new DataSet();
DataTable _dataTable = new DataTable();
for (var i = 0; i < dr2.FieldCount; i++)
{
_dataTable.Columns.Add("" + dr2.GetName(i) + "", typeof(string));
_dataTable.Rows.Add("" + dr2.GetValue(i) + "");
}
var rows = _dataTable.Rows;
StringBuilder sb = new StringBuilder();
IEnumerable<string> columnNames = _dataTable.Columns.Cast<DataColumn>().Select(column => column.ColumnName);
sb.AppendLine(string.Join(",", columnNames));
foreach (DataRow row in rows)
{
IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString());
sb.AppendLine(string.Join(",", fields));
}
File.WriteAllText(saveFileDialog.FileName, sb.ToString());
clsCon.con.Close();
}
}
"결과가 항상 첫 번째 행에 나타나는 이유"가 무엇을 의미하는지 명확하지 않습니다. 자세한 내용을 알려주십시오. –
행의 결과가 각 열 대신에 첫 번째 행에서 연속적으로 내려 간다는 의미입니다. – redbeef
글쎄 실제로 텍스트 파일에 쓰는 경우 결과를 Excel 표로 표시 했으므로 많은 도움이되지 않습니다. 텍스트 파일은 어떤 모습입니까? (그리고 당신이 수행 한 진단을 알려주십시오. 예를 들어, 디버거를 밟았습니까?) –