我正在尝试使用 c# 将数据从 sqlite 表导出到 csv 文件一切正常,但日期时间已更改为不同的格式。这是 DateTime 的 sqlite 3 格式
'2014-05-19 14:42:13.000'
这是csv dateeime格式
19/05/2014 14:42:13
我需要它的格式与 sqlite3 相同,这是我的代码。
SQLiteCommand myCommand = new SQLiteCommand();
myCommand.Connection = m_dbConnection;
myCommand.CommandText = "select CompanyId,DateTime,Serial,ShortDeviceId,MatricolaA,Upper(Targa),CommonRoadDescription,RoadCivicNumber,GpsAddress,VerbaliVehicleTypeDescription,VehicleBrandDescription,VehicleModelDescription,CommonColorVehicleDescription,VerbaliRuleOneCode,VerbaliRuleOneDescription,VerbaliClosedNoteDescription,VerbaliRuleOnePoints,VerbaliMissedNotificationDescription from VerbaliData";
//myCommand.Connection = myConn;
DataTable data = new DataTable();
SQLiteDataAdapter myAdapter = new SQLiteDataAdapter(myCommand);
//myAdapter.SelectCommand = myCommand;
myAdapter.Fill(data);
dataGridView1.DataSource = data;
this.dataGridView1.Refresh();
if (dataGridView1.RowCount > 0)
{
string value = "";
DataGridViewRow dr = new DataGridViewRow();
StreamWriter swOut = new StreamWriter("I:/test12.csv");
for (int i = 0; i <= dataGridView1.Columns.Count - 1; i++)
{
if (i > 0)
{
swOut.Write(",");
}
swOut.Write(dataGridView1.Columns[i].HeaderText);
}
swOut.WriteLine();
for (int j = 0; j <= dataGridView1.Rows.Count - 1; j++)
{
if (j > 0)
{
swOut.WriteLine();
}
dr = dataGridView1.Rows[j];
for (int i = 0; i <= dataGridView1.Columns.Count - 1; i++)
{
if (i > 0)
{
swOut.Write(",");
}
value = dr.Cells[i].Value.ToString();
value = value.Replace(',', ' ');
value = value.Replace(Environment.NewLine, " ");
swOut.Write(value);
}
}
swOut.Close();
}m_dbConnection.Close();
最佳答案
将日期值写入 CSV 文件时,用 "(双引号)符号将其括起来。
检查:但在此之前,请在记事本中打开 CSV 文件并查看其中的值是如何写入的。通常 CSV 文件与 Excel 关联,如果您使用 Excel 打开它,它会尝试根据您当前的区域设置解析值。
关于c# - 表导出到 CSV 不保留 SQLite 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23757081/