数据表列表达式错误

时间:2012-02-07 10:16:25

标签: vb.net datatable

我收到语法错误“在'Price'运算符之后缺少操作数”,使用以下代码,这应该是正确的,但显然不是。有关错误在哪里的任何想法?

    table.Columns.Add("ADR Price", GetType(Double))
    table.Columns.Add("ORD Price", GetType(Double))
    table.Columns.Add("Currency Price", GetType(Double))
    Dim cDiff As DataColumn = New DataColumn
    With cDiff
        .DataType = System.Type.GetType("System.Double")
        .ColumnName = "Difference"
        .Expression = "ADR Price - (ORD Price * Currency Price)"
    End With
    table.Columns.Add(cDiff)

2 个答案:

答案 0 :(得分:1)

相当确定异常是由列名中的空格引起的。

您应该将名称括在括号中或删除空格:

.Expression = "[ADR Price] - ([ORD Price] * [Currency Price])"

但接下来可能会走进这个陷阱。所以在我看来,删除会更好:

.Expression = "ADR_Price - (ORD_Price * Currency_Price)"

答案 1 :(得分:0)

此错误是由于值(')中的撇号而产生的。检查价格值是否包含任何撇号,如果它包含任何撇号,只需加倍。

请参阅此链接:http://aspnetresources.com/blog/apostrophe_in_rowfilter