gpt4 book ai didi

c# - 如何在 asp.net 中编辑数据集列值

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

您好,我有一个数据集,其中一个表有 5 列填充来自数据库的数据。

当我运行应用程序数据表包含超过 50 行时,我想在从数据库获取数据后更新数据表的值。我的要求是

  1. 此表中有几个单元格具有 Null 值,我想用“-”替换 null 吗?
  2. 一列是 System.datetime 数据类型,我想从中删除时间。我只想约会?

我正在使用 PUSH 方法在 asp.net 的 Crystal 报表中使用这个数据集。

在这里我想我应用数据表中存在的行的一个循环并相应地更新单元格。但我正在寻找任何直接更新方法?

请帮我解决以上两个问题?

最佳答案

遍历行,边走边更新值绝对是一种解决方案,而且非常简单:

foreach (DataRow row in table.Rows)
{
if (row.IsNull("foo")) row["foo"] = "-";
if (row.IsNull("bar")) row["bar"] = "-";
row["date"] = ((DateTime)row["date"]).Date;
}

或者,您可以使用 expressions 在表中创建新列自动生成内容:

table.Columns.Add("foo_dash", typeof(string), "IsNull(foo, '-')");
table.Columns.Add("bar_dash", typeof(string), "IsNull(bar, '-')");

(我不知道 ADO.NET 中的日期函数,所以你必须自己弄清楚最后一个函数。)

您已经标记了您的帖子 ASP.NET,所以我想假设您要将 DataTable 绑定(bind)到一些多记录数据控件(GridViewRepeater 等)。如果是这种情况,最好在数据绑定(bind)期间进行转换:

protected void theGrid_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
var data = e.DataItem as DataRowView;
if (data != null)
{
if (data.Row.IsNull("foo")) e.Row.Cells[0] = "-";
if (data.Row.IsNull("bar")) e.Row.Cells[0] = "-";
}
}

虽然这似乎需要更多的代码,但它也为您提供了更大的灵 active 。示例:

if (data.Row.IsNull("importantField")) e.Row.CssClass = "error";

GridView 中,可以使用 DataFormatString 来格式化日期在列声明中:

<asp:BoundField DataField="data" DataFormatString="{0:d}" />

数据绑定(bind) Repeater 时类似:

<%# Eval("date", "{0:d}") %>

关于c# - 如何在 asp.net 中编辑数据集列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2183409/

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