2012-04-10 25 views
0

我有一个DataTable的列,如# of Students,并想按此降序排序。这里是我的代码:如何使用DataTable.Select()访问具有特殊字符的列?

... 
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"); 

如何访问此列,如果它的名称中有特殊字符?

回答

2

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

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

男人我是个假人!这对我来说应该更加明显。谢谢! – DJTripleThreat 2012-04-10 00:30:53

3

:您可以使用[]或``语法。下面的代码片段都是正确的:

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

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

反引号对我不起作用。也许这对.NET 4.0来说是新的?我运行在3.5 – DJTripleThreat 2012-04-10 00:46:53

+0

是的,它的4.0东西。这里是一些MSDN阅读 - http://msdn.microsoft.com/ru-ru/library/system.data.datacolumn.expression(v=vs.100).aspx切换框架版本来比较语法的描述。 – ILya 2012-04-10 00:53:34

+0

好的,我会+1 :)谢谢! – DJTripleThreat 2012-04-10 22:27:09