首页 > 解决方案 > 将字符串放入 System.Data.DataTable 时将其转换为 DateTime

问题描述

我正在用值填充数据表,其中之一是以下字符串:“1/1/1801”。在我的数组“值”中,该项目是字符串类型的。但是当我将数组分配给 System.Data.DataTable 行时,它神奇地变成了 datetime 类型:

System.Data.DataTable dt = new System.Data.DataTable();
dt.Rows.Add(dt.NewRow().ItemArray = values);

这里发生了什么事,有什么办法可以避免这种情况吗?

标签: c#.netdatatable

解决方案


您没有将列添加到数据表中。直接添加行将引发运行时错误“输入数组长于此表中的列数。”

您必须声明并添加其类型为字符串的列。

            string[] values = new string[] { "1/1/1801" };
            DataTable dt = new DataTable();
            dt.Columns.Add("Date", typeof(string));          
            dt.Rows.Add(dt.NewRow().ItemArray = values);

推荐阅读