c# - 将字符串放入 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);
这里发生了什么事,有什么办法可以避免这种情况吗?
解决方案
您没有将列添加到数据表中。直接添加行将引发运行时错误“输入数组长于此表中的列数。”
您必须声明并添加其类型为字符串的列。
string[] values = new string[] { "1/1/1801" };
DataTable dt = new DataTable();
dt.Columns.Add("Date", typeof(string));
dt.Rows.Add(dt.NewRow().ItemArray = values);