【问题标题】:How to access an column with special characters using DataTable.Select()?如何使用 DataTable.Select() 访问具有特殊字符的列?
【发布时间】:2012-04-22 07:36:15
【问题描述】:

我有一个DataTable 的列,例如# of Students,并希望按降序排序。这是我的代码:

...
dt.Columns.Add(new DataColumn("# of Students", typeof(string)));

// do some stuff... add records etc.

// A runtime error occurs here: "Cannot find column '# of Students'"
var rows = dt.Select("","'# of Students' desc");

// this is just fine.
rows = dt.Select("","# of Students");

如果名称中包含特殊字符,我如何访问此列?

【问题讨论】:

    标签: c# datatable datacolumn


    【解决方案1】:

    您可以同时使用 [] 或 `` 语法。以下两个 sn-ps 都是正确的:

    var rows = dt.Select("","`# of Students` desc");
    
    var rows = dt.Select("","[# of Students] desc");
    

    【讨论】:

    • 反引号对我不起作用。也许这是 .NET 4.0 的新功能?我正在运行 3.5
    • 是的,它是 4.0 的东西。这里是一些msdn阅读-msdn.microsoft.com/ru-ru/library/…切换框架版本比较语法描述。
    • 但是,字符 ','(逗号)存在(而不是 '#')然后在 [] 和 ''' 情况下都失败。
    【解决方案2】:

    你应该使用 [] 括号,像这样:

    var rows = dt.Select("","[# of Students] desc");
    

    【讨论】:

    • 伙计,我是个假人!这对我来说应该更明显。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2016-11-05
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    相关资源
    最近更新 更多