在数据表中搜索数据类型
Searching a DataTable for a DataType
正在努力寻找任何相关信息。这个在线。不可否认,我不太精通 linq 表达式,这可能是一个障碍。
我目前有一个数据表列表,我想专门搜索所有数据表以查找存在的任何 DateTime 变量,以便将值更改为本地时区。
并非所有 table 都包含日期时间,相关列会有所不同。
理想情况下我需要类似的东西。
Foreach table in resultTables
Foreach row in table.rows
if row contains dataType(DateTime) then [change value]
(或类似的东西,但逐列代替)
直到知道我什至无法访问单个 table 元素。一点快速观察显示了我正在寻找的价值
((System.Data.DataRow)((new System.Linq.SystemCore_EnumerableDebugView(table.Rows)).Items[0])).ItemArray[1]
提前致谢!
快速而简单的版本,我会选择这样的东西:
foreach (DataTable table in resultTables) {
foreach (DataRow row in table.Rows) {
foreach (DataColumn col in table.Columns) {
if (col.DataType == typeof (DateTime)) {
row[col] = // do something
}
}
}
}
当然,如果 table 中有很多行,您可以通过跟踪在临时列表中找到的列来改进。或者切换行和列循环。
试试这个:
var dateColumns = dt.Columns.Cast<DataColumn>().Where(x => x.DataType == typeof(DateTime));
foreach (DataColumn column in dateColumns)
{
foreach (DataRow row in dt.Rows)
{
row[column.ColumnName] = DateTime.Parse("1/1/4");
}
}
正在努力寻找任何相关信息。这个在线。不可否认,我不太精通 linq 表达式,这可能是一个障碍。
我目前有一个数据表列表,我想专门搜索所有数据表以查找存在的任何 DateTime 变量,以便将值更改为本地时区。
并非所有 table 都包含日期时间,相关列会有所不同。
理想情况下我需要类似的东西。
Foreach table in resultTables
Foreach row in table.rows
if row contains dataType(DateTime) then [change value]
(或类似的东西,但逐列代替)
直到知道我什至无法访问单个 table 元素。一点快速观察显示了我正在寻找的价值
((System.Data.DataRow)((new System.Linq.SystemCore_EnumerableDebugView(table.Rows)).Items[0])).ItemArray[1]
提前致谢!
快速而简单的版本,我会选择这样的东西:
foreach (DataTable table in resultTables) {
foreach (DataRow row in table.Rows) {
foreach (DataColumn col in table.Columns) {
if (col.DataType == typeof (DateTime)) {
row[col] = // do something
}
}
}
}
当然,如果 table 中有很多行,您可以通过跟踪在临时列表中找到的列来改进。或者切换行和列循环。
试试这个:
var dateColumns = dt.Columns.Cast<DataColumn>().Where(x => x.DataType == typeof(DateTime));
foreach (DataColumn column in dateColumns)
{
foreach (DataRow row in dt.Rows)
{
row[column.ColumnName] = DateTime.Parse("1/1/4");
}
}