gpt4 book ai didi

c# - DataRow 中项目的设置值不起作用

转载 作者:太空狗 更新时间:2023-10-29 23:57:09 25 4
gpt4 key购买 nike

我正在尝试将 DataTable 中的所有 DateTime 值转换为字符串。这是我使用的方法:

private static void ConvertDateTimesToStrings(DataTable dataTable)
{
if (dataTable == null)
{
return;
}

for (int rowIndex = 0; rowIndex < dataTable.Rows.Count; rowIndex++ )
{
for (int i = 0; i < dataTable.Columns.Count; i++)
{
DateTime dateTime;
try
{
dateTime = (DateTime)dataTable.Rows[rowIndex][i];
}
catch (InvalidCastException)
{
continue;
}
dataTable.Rows[rowIndex][i] = dateTime.ToString("dd.MM.yyyy hh:mm:ss");
}
}
}

此行工作后:

dataTable.Rows[rowIndex][i] = dateTime.ToString("dd.MM.yyyy hh:mm:ss");

我检查了 dataTable.Rows[rowIndex][i] 的值,发现它仍然是 DateTime,而不是字符串。为什么会发生这种情况,我该如何解决?

编辑:我正在尝试这样做,因为我正在与一个 api 作斗争,不幸的是我无法选择使用哪个组件。

最佳答案

这根本行不通,因为您没有更改底层数据类型。

您有一个 DataTable,其中一列的数据类型为 DateTime。

您可以为其分配一个字符串,但它会转换回 DateTime。

为什么要改成格式化字符串呢?不能只在需要显示时格式化,并在必须显示之前作为 DateTime 处理吗?

更新:最好在尝试转换之前检查列的类型,这样会更快:

if (dataTable.Columns[0].DataType == typeof(DateTime))
{
}

关于c# - DataRow 中项目的设置值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/204406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com