如何在DataColumn.Expression中使用CASE WHEN?

时间:2013-10-11 21:04:25

标签: c# sql expression datacolumn

我有一个包含1列的表:'状态'我想在另一个名为'Action'的列中添加,其值将如下:

If column Status = '0' Then Action = 'Start', 
If column Status = '1' Then Action = 'Ready', 
If column Status = '2' Then Action = 'Go',

如何添加具有类似表达式的列?

我试过以下但不起作用:

 myDataTable.Columns.Add("Action", "CASE (WHEN [Status] = '0') THEN "Start")

1 个答案:

答案 0 :(得分:0)

您的引号不匹配,并且您缺少Add方法的列类型参数。

此外,表达式似乎不支持CASE语句。尝试使用嵌套的IIF:

试试这个:

workTable.Columns.Add("Action", 
                      typeof(string), 
                      "IIF([Status] = '0', 'Start', IIF([Status] = '1', 'Ready', 'Go'))");

文档:http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx