c# - 表导出到 CSV 不保留 SQLite 日期格式

标签 c# csv sqlite

我正在尝试使用 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/

相关文章:

c# - 如何使用身份列表从 Entity Framework 获取 ObjectResult

c# - 类型初始值设定项抛出异常

python - 在python中解析csv文件并保存到字典中,字典又保存到列表中

java - 在 Mac OS X 中读取 Windows .CSV 文件

python - 读取制表符分隔的文件,第一列作为键,其余列作为值

Python SQLite - 如何手动开始和结束交易?

sql - 查找不在另一个表中的多个字段上的记录

C# : Whether this approach is thread-safe

c# - 如何创建对值字段的引用

sqlite - 连接科目和考试委员会的简单数据库结构