C#MYSQL MySqlBulkLoader可以动态转换数据类型吗?

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

我将一个逗号分隔值文本文件读取并解析为C# 用四个字符串列出。一个字符串的字符串日期格式为:

"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

    }