我正在使用值填充数据表,其中一个是以下字符串:“1/1/1801”。 在我的数组“values”中,该项是String类型。 但是当我将数组分配给System.Data.DataTable行时,它会神奇地变成日期时间类型:
System.Data.DataTable dt = new System.Data.DataTable();
dt.Rows.Add(dt.NewRow().ItemArray = values);
Waht在这里,有什么办法可以避免这种情况吗?
答案 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);