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