DataTable列名包括方括号[name]

时间:2011-05-23 13:30:22

标签: c# wpf datagrid brackets

我在向DataGrid添加名为“[name] version”的列时遇到问题。如果我有“[name]”或“version [name]”之类的东西,那么转义,unicode或加倍所有工作。关闭括号后面有字符时似乎只有问题。 “[[name] version]”也有效,但不是我需要的。

我正在使用WPF和C#,这行代码将DataTable绑定到DataGrid。

datagrid1.ItemsSource = dataTable1.DefaultView;

我收到的错误是:

  

“PropertyPath”语法中的语法错误   “Binding.Path'[name]'中的错误...   '版本'”,”'。

3 个答案:

答案 0 :(得分:0)

SQL Server允许在列名周围使用方括号或双引号...是否可以使用双引号?

答案 1 :(得分:0)

我刚刚编写了一个帮助函数,它更改了ColumnName属性以删除[]和空格之类的特殊字符,我只是将这些字符留在Caption属性中。然后我将Caption绑定到列标题,将ColumnName绑定到DisplayMemberBinding。

答案 2 :(得分:0)

您需要做的只是逃避结束的方括号。

请参阅:

   var ds = new System.Data.DataSet();
            var dt = ds.Tables.Add();
            dt.Columns.Add("[a[b]c", typeof(decimal));
            dt.Rows.Add(1);
            dt.Rows.Add(2);
            dt.Rows.Add(3);
            dt.Select("[[a[b\\]c]=3").Length.ShouldBe(1);
相关问题