//datatable
DataTable dt = new DataTable();
            dt.Columns.Add("OrderNum");
            dt.Columns.Add("OrderDate");
            dt.Columns.Add("Address");
            dt.Columns.Add("OrderUser");
            dt.Columns["OrderDate"].DataType = Type.GetType("System.DateTime");//datarow
DataRow dr = dt.NewRow();
                    dr[0] = e.Element("OrderNum").Value;
                    dr[1] = Convert.ToDateTime(e.Element("OrderDate").Value);
                    dr[2] = e.Element("Address").Value;
                    dr[3] = e.Element("OrderUser").Value;
                    dt.Rows.Add(dr);
sqlBulkCopy.WriteToServer(dt); 时候报错
 来自数据源的string类型的给定值不能转换为指定目标列的类型datetime。

解决方案 »

  1.   

    你可以断点看看,你得到的datetime格式是怎样的 ,如果格式为特殊的“2012‎年‎9‎月‎12‎日 ‎星期三 11:02:23”这样的字符串,SQL无法正常解析的日期字符串,那么,你需要转换一下,比如
    string time=DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//
      

  2.   

    你不要用 DateTime 类型,而是直接用 String 类型,
    然后使用标准的odbc格式 "yyyy-MM-dd HH:mm:ss",这样写入数据库就不会有问题了。
      

  3.   

    假如数据库中的字段就是 datetime呢