C#MYSQL MySqlBulkLoader可以动态转换数据类型吗?
我将一个逗号分隔值文本文件读取并解析为C# 用四个字符串列出。一个字符串的字符串日期格式为:C#MYSQL MySqlBulkLoader可以动态转换数据类型吗?,c#,mysql,csv,C#,Mysql,Csv,我将一个逗号分隔值文本文件读取并解析为C# 用四个字符串列出。一个字符串的字符串日期格式为: "20090501 00:00:00.308" 另一个字符串包含类似10.00001的浮点数据类型 我想使用下面的C代码 问题是我想将CSV字符串数据类型转换为正确的MySQL数据类型DECIMAL和DATETIME。 我可以使用上面的源代码示例,并且仍然可以使用它进行动态转换吗?如果是的话,怎么做呢。如果没有,我还有吗 要使用SQL一次插入一个并在每次插入时转换?问题在于CSV文件中存储的格式是'd
"20090501 00:00:00.308"
另一个字符串包含类似10.00001的浮点数据类型
我想使用下面的C代码
问题是我想将CSV字符串数据类型转换为正确的MySQL数据类型DECIMAL和DATETIME。
我可以使用上面的源代码示例,并且仍然可以使用它进行动态转换吗?如果是的话,怎么做呢。如果没有,我还有吗
要使用SQL一次插入一个并在每次插入时转换?问题在于CSV文件中存储的格式是'dd/MM/yyyy',但在MySQL中,它的格式是'yyyy/MM/dd',因此我认为这就是问题所在。 你可以在这里找到解决办法 以下是我的新生成csv文件方法:
public static void CreateCSVfile(DataTable dt, string strFilePath)
{
#region Export Grid to CSV
// Create the CSV file to which grid data will be exported.
StreamWriter sw = new StreamWriter(strFilePath, false);
// First we will write the headers.
//DataTable dt = m_dsProducts.Tables[0];
int iColCount = dt.Columns.Count;
for (int i = 0; i < iColCount; i++)
{
sw.Write(dt.Columns[i]);
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
// Now write all the rows.
Type _datetype = typeof(DateTime);
foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < iColCount; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
sw.Write(
dt.Columns[i].DataType == _datetype
? ((DateTime)dr[i]).ToString(CultureInfo.InvariantCulture.DateTimeFormat)
: dr[i].ToString());
}
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
}
sw.Close();
#endregion
}
publicstaticvoidcreatecsvfile(DataTable dt,string strFilePath)
{
#区域将网格导出为CSV
//创建要将栅格数据导出到的CSV文件。
StreamWriter sw=新StreamWriter(strFilePath,false);
//首先,我们将编写标题。
//DataTable dt=m_dsProducts.表[0];
int iColCount=dt.Columns.Count;
对于(int i=0;i
public static void CreateCSVfile(DataTable dt, string strFilePath)
{
#region Export Grid to CSV
// Create the CSV file to which grid data will be exported.
StreamWriter sw = new StreamWriter(strFilePath, false);
// First we will write the headers.
//DataTable dt = m_dsProducts.Tables[0];
int iColCount = dt.Columns.Count;
for (int i = 0; i < iColCount; i++)
{
sw.Write(dt.Columns[i]);
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
// Now write all the rows.
Type _datetype = typeof(DateTime);
foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < iColCount; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
sw.Write(
dt.Columns[i].DataType == _datetype
? ((DateTime)dr[i]).ToString(CultureInfo.InvariantCulture.DateTimeFormat)
: dr[i].ToString());
}
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
}
sw.Close();
#endregion
}