格式化日期是从excel读取的日期?

时间:2012-10-29 10:30:49

标签: c# asp.net sql sql-server

我正在将excel表导入到excelsheet具有的sql server db表中: id | data(以mm / dd / yyyy为单位的日期) 我能够将数据上传到数据库表,但我希望在将数据发送到数据库之前将日期记录到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);

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

1 个答案:

答案 0 :(得分:1)

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