用LINQ替换字符串值

我有以下包含列名称的字符串:

string colsToSelect;

该字符串包含列名称(例如:col1 + col2 + col3 + col4 + col5或col1 + col3),并且在这些列中有数字值。

我正在使用它从数据库中获取所有这些列的总数。

SELECT " + colsToSelect + " AS totalVolume " + "FROM myTable

不过,我需要将nvl(col1,0)添加到每个列,因为这些列可能包含null。

我已经这样做了:

    colsToSelect = colsToSelect.Replace("+", "+nvl(");
    colsToSelect = colsToSelect.Replace("+", ",0)+");
    colsToSelect = "nvl(" + colsToSelect;
    colsToSelect = colsToSelect + ",0)";

这给了我nvl(col1, 0) + nvl(col2, 0)等..但我想知道是否有更好的方式来实现这一点,可能与LINQ或SQL?


你可以使用string.Split ,然后string.Join再次:

colsToSelect = string.Join("+", 
                    colsToSelect.Split('+')
                                .Select(x => string.Format("nvl({0}, 0)", x)));
链接地址: http://www.djcxy.com/p/68835.html

上一篇: Replace string values with LINQ

下一篇: How to show multiple values in datagridview cell