Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从datagridview列表达式调用自定义方法_C#_Datagridview_Methods_Expression - Fatal编程技术网

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

C# 从datagridview列表达式调用自定义方法,c#,datagridview,methods,expression,C#,Datagridview,Methods,Expression,使用c#,vs2008 winforms 我有一个datagridview,通过编程绑定到绑定源,绑定到一个带有1个表的数据集 在使用SQLAdapter填充数据集之后,我想向数据集添加一个新列,并在新列中使用调用表单中的自定义方法得到的结果填充数据集 代码Eg如下,但我得到一个“表达式包含未定义的函数调用this.Test() 是否允许在列的表达式中这样调用方法 提前谢谢你的帮助 干杯 form类的其他地方是方法 public int Test(int orderType) { ret

使用c#,vs2008 winforms

我有一个datagridview,通过编程绑定到绑定源,绑定到一个带有1个表的数据集

在使用SQLAdapter填充数据集之后,我想向数据集添加一个新列,并在新列中使用调用表单中的自定义方法得到的结果填充数据集

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

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

提前谢谢你的帮助 干杯

form类的其他地方是方法

public int Test(int orderType)
{
    return 10; //return a test value
}
好吧,这些表达式(称为)无法调用任何类型的用户定义函数。但是,手动填充新列应该很简单:

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'))

的文档中有一个受支持函数的列表(向下滚动可以找到它)。

是的,我想通过在表达式中执行它来避免这种情况,我认为这样做会更快,因为它会在每一行上执行,而不必遍历整个数据集。如果不可能,那就不可能了
IIF(order_type = 0, 'Mail', IIF(order_type = 1, 'Phone', 'Online'))