【问题标题】:how can I add a custom non-DataTable column to my DataView, in a winforms ADO.net application?如何在 winforms ADO.net 应用程序中向我的 DataView 添加自定义非 DataTable 列?
【发布时间】:2010-01-18 02:21:44
【问题描述】:

我如何(/是否可能)向我的 DataView 添加自定义列,并在此列中显示特定计算的结果。

也就是说,我目前有一个 dataGridView,它基于我数据库中的 DataTable 绑定到一个 DataView。我想在 dataGridView 中添加一个额外的列来显示一个数字,该数字是通过查看当前行加上它的子行来计算的。换句话说,列的信息不仅仅是从行数据本身推导出来的。

具体问题可能是: a)在哪里添加列本身?到我假设的 DataView? b)从哪个方法/事件触发重新计算这个自定义列的值(/我如何控制这个)

谢谢

PS。我还注意到,如果我使用以下代码/方法,我会得到一个无限循环......

    // Custom Items
    DataColumn dc = new DataColumn("OverallSize", typeof(long));
    DT_Webfiles.Columns.Add(dc);
    DT_Webfiles.RowChanged += new DataRowChangeEventHandler(DT_Row_Changed);

private static void DT_Row_Changed(object sender, DataRowChangeEventArgs e)
{
    e.Row["OverallSize"] = e.Row["OverallSize"] ?? 0;
    e.Row["OverallSize"] = (long)e.Row["OverallSize"] + 1;
}

还有什么其他方法可以避免这种循环。即目前我说的是在行更改时更新自定义列的值,但是在更改行之后它会触发另一个“行已更改”事件...

【问题讨论】:

标签: winforms ado.net datagridview datatable dataview


【解决方案1】:

我认为这个链接可能是一个很好的答案?虽然我还不确定表达式 DataColumn.Expression 属性是否能够处理它......(即基于 ITEM_TABLERELATIONSHIP_TABLE 构造。Relationship_table 有一个 ID,ITEM_PARENT_ID,ITEM_CHILD_ID。

http://ondotnet.com/pub/a/dotnet/2003/05/26/datacolumn_expressions.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 2019-04-19
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    相关资源
    最近更新 更多