我目前正在使用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);
}
将DataTable写入CSV。在CSV格式中,日期格式看起来像dd MM YYYY,在任何日/月/年之间没有-
。我相信这就是混淆MySQL数据库格式的原因。
之前我对FileHelpers
没有多少经验,是不是导致格式错误的包?
编辑:我尝试过使用此功能;
row[6] = ((DateTime)row[6]).ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)
但是当我打印row[6]
时,我仍然遇到完全相同的问题。
答案 0 :(得分:0)
试试这个((DateTime)row[6]).ToString("yyyy.MM.dd")