使用带逗号的数据列名称对数据表进行排序

Has*_*sif 5 c# sorting datatable dataview

我有数据表,显示不同时期不同城市的统计数据。它有以下列名称

Period | city1,state | city2,state | city3,state
Jan        15              25          20 
Feb        5              26          29 
Mar        35              27          21 
Run Code Online (Sandbox Code Playgroud)

我应用了一些逻辑,它给了我列名称来对相应的列名称进行排序,并再次将数据与前端的网格绑定。

现在当我尝试使用以下代码进行排序时出现问题

griData.DefaultView.Sort = string.Format("{0} {1}", orderByField, sortDirection)
Run Code Online (Sandbox Code Playgroud)

由于列名中的逗号,它将其视为两列并给出异常。示例:如果我按 city1,state 列升序排序,则排序表达式将为city1,state asc,并且在执行该语句时,它会抛出列 city1 不存在的异常,而不是排序。谢谢

Ann*_* L. 0

你可以尝试:

 griData.DefaultView.Sort = string.Format("[{0}] {1}", orderByField, sortDirection)
Run Code Online (Sandbox Code Playgroud)

有趣的是,这也是在 SQL Server 中处理它的方式:将包含保留字符(例如逗号和空格)的字段放在方括号内。