将字符串放入System.Data.DataTable时,字符串将转换为DateTime

时间:2018-05-17 02:23:50

标签: c# .net datatable

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

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

Waht在这里,有什么办法可以避免这种情况吗?

2 个答案:

答案 0 :(得分:0)

您需要设置DataColumn的类型,以便表格知道它是string

DataRow row; 

// Create new DataColumn, set DataType, ColumnName and add to DataTable.    
column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "Whatever";
table.Columns.Add(column);

然后,当您要求NewRow时,它会知道每列的数据类型是什么。

答案 1 :(得分:0)

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

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

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