gpt4 book ai didi

c# - 从 datagridview 列表达式调用自定义方法

转载 作者:行者123 更新时间:2023-11-30 13:05:53 25 4
gpt4 key购买 nike

使用c#,vs2008 winforms

我有一个 datagridview,我以编程方式绑定(bind)到绑定(bind)源,绑定(bind)到具有 1 个表的数据集。

在使用 sqlAdaptor 填充数据集后,我想向数据集添加一个新列,并在新列中使用从调用表单中的自定义方法派生的结果填充它。

代码 Eg 在下面,但我得到一个“表达式包含未定义的函数调用 this.Test()”

是否允许在列的表达式中调用方法

在此先感谢您的帮助干杯

this.dsProdOrdLst1.ProdOrder.Columns.Add("sOrderType", typeof(string), 
"this.Test(order_type)"); // order_type is another column in the dataset

在表单类的其他地方是方法

public int Test(int orderType)
{
return 10; //return a test value
}

最佳答案

据我所知,这些表达式(称为 ADO.NET expressions )无法调用任何类型的用户定义函数。然而,手动填充新列应该很简单:

this.dsProdOrdLst1.ProdOrder.Columns.Add("sOrderType", typeof(string));

foreach (DataRow row in dsProdOrdLst1.ProdOrder.Rows)
{
row["sOrderType"] = Test((int) row["order_type"]);
}

或者,您可以在 ADO.NET 表达式中实现整个函数,但您实际上只想对非常简单的函数执行此操作,否则会很乱:

IIF(order_type = 0, 'Mail', IIF(order_type = 1, 'Phone', 'Online'))

DataColumn.Expression 的文档有一个支持的功能列表(向下滚动很远才能找到它)。

关于c# - 从 datagridview 列表达式调用自定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316554/

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