C# 导入到MySQL时格式化DateTable日期列
我目前正在使用C# 导入到MySQL时格式化DateTable日期列,c#,mysql,date,csv,filehelpers,C#,Mysql,Date,Csv,Filehelpers,我目前正在使用FileHelpers包将信息的DataTable导入我的MySQL数据库。运行我的程序后,数据库中的数据如下所示 MySQL列的格式是DATETIME。这些是我目前正在使用的方法,您可以看到我已经尝试正确设置列的格式 联系人 private void Contacts() { try { using (OleDbConnection dbfCon = new OleDbConnection(dbfConstr))
FileHelpers
包将信息的DataTable
导入我的MySQL
数据库。运行我的程序后,数据库中的数据如下所示
MySQL列的格式是DATETIME
。这些是我目前正在使用的方法,您可以看到我已经尝试正确设置列的格式
联系人
private void Contacts()
{
try {
using (OleDbConnection dbfCon = new OleDbConnection(dbfConstr))
{
dbfCon.Open();
var dbfCmd = new OleDbCommand(@"SELECT ct_id, ct_cmpid, ct_empid,
ct_pplid, ct_cntid, ct_pplnm, ct_date, ct_time, ct_type, ct_doneby, ct_desc
FROM contacts", dbfCon);
var dTable = new DataTable();
var dataAdapter = new OleDbDataAdapter(dbfCmd);
dataAdapter.Fill(dTable);
WriteDateTimeToCSV(dTable, "contacts");
}
}
catch (OleDbException ex)
{
MessageBox.Show(ex.ToString());
}
}
WriteDateTimeToCSV
这种方法只需对数据进行精简,然后使用其余的数据
public void WriteDateTimeToCSV(DataTable dataTable, string mySqlTable)
{
var sb = new StringBuilder();
// Trim the DataTable
dataTable.AsEnumerable().ToList()
.ForEach(row =>
{
var cellList = row.ItemArray.ToList();
row.ItemArray = cellList.Select(x => x.ToString().Trim()).ToArray();
});
foreach (DataRow row in dataTable.Rows)
{
// Used to remove carriage returns
if (row[10].ToString().Contains("\r\n"))
{
row[10] = row[10].ToString().Replace("\r\n", "*?*!");
}
CommonEngine.DataTableToCsv(dataTable, @"C:\Users\DanD\Desktop\filehelpers.csv", '|');
WriteToMySQL(mySqlTable);
}
将数据表写入CSV。在CSV格式中,日期格式类似于dd-MM-YYYY,在任何天/月/年之间都没有-
。我相信这就是MySQL数据库中的格式混乱的原因
我以前对FileHelpers
没有太多经验,是那个包导致格式不正确吗
编辑:我尝试过使用这个
row[6]=((DateTime)row[6]).ToString(“yyyy-MM-dd”,CultureInfo.InvariantCulture)
但是当我打印出
行[6]
时,我仍然有完全相同的问题。像这样尝试((日期时间)行[6])。ToString(“yyyy.MM.dd”)
像这样尝试((日期时间)行[6])。ToString(“yyy.MM.dd”)这正是我到目前为止在编辑中所尝试的。到目前为止运气不好!我已将其更改为最新版本,但仍然没有luckWhat类型在演员阵容之前有第[6]行?这正是我迄今为止在编辑中尝试的。到目前为止运气不好!我已将其更改为DATE,但仍然没有luckWhat类型在cast之前有行[6]?数据表中的日期格式是否正确?只有导入数据库时出错?@Bayeni否日期在数据表中的格式不正确,它们在数据表中的格式如下:Fri 02 08 1996 0002 08 1996 00:00:00
。我也找不到格式化我在OleDB
中使用的SELECT
语句的方法。最后一个问题:)是否从microsoft access数据库读取此数据?@Bayeni Visual Fox Pro:)数据表中的日期格式是否正确?只有导入数据库时出错?@Bayeni否日期在数据表中的格式不正确,它们在数据表中的格式如下:Fri 02 08 1996 0002 08 1996 00:00:00
。我也找不到格式化我在OleDB
中使用的SELECT
语句的方法。最后一个问题:)您正在从microsoft access数据库读取此数据吗?@Bayeni Visual Fox Pro:)