-1

我正在将 excel 表导入到 sql server db 表中,excelsheet 具有:id|data(它是 mm/dd/yyyy 中的日期)我能够将数据上传到 db 表中,但我希望将日期转换为 yyyy/mm /dd 在将其发送到数据库之前。我尝试了一段代码,但没有成功

        DataTable dt7 = new DataTable();
        dt7.Load(dr);
        DataRow[] ExcelRows = new DataRow[dt7.Rows.Count];
        // Bulk Copy to SQL Server
        using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
        {
            bulkCopy.DestinationTableName = "ExcelTable";

            dt7.Rows.CopyTo(ExcelRows, 0);

            for (int i = 0; i < ExcelRows.Length; i++)//i represents the row
            {
                var oldDate = ExcelRows[i]["data"].ToString();
                var newDate = Convert.ToDateTime(oldDate);

                ExcelRows[i]["data"] = newDate.ToString("yyyy/MM/dd");
            }

            bulkCopy.WriteToServer(ExcelRows);

错误:字符串未被识别为有效的日期时间。我已经尝试了数据库 nvarchar、varchar、datetime 中的所有 3 种数据类型。同样的错误

4

1 回答 1

1

对于日期列,无法在此处以不同格式设置值 ExcelRows[i]["data"] = newDate.ToString("yyyy/MM/dd"); 如果您想要格式化日期,那么再使用一个字符串列并更新到该列以及您需要保存的相同内容。

于 2012-10-29T11:01:23.633 回答