DataTable列名包括方括号[名称]

本文关键字:名称 方括号 包括 DataTable | 更新日期: 2023-09-27 17:57:30

我在向DataGrid添加名为"[name]version"的列时遇到问题。如果我有类似"[name]"或"version[name]"的东西,那么转义、unicode或加倍所有工作。只有当右括号后面有字符时才会出现问题。"[[name]version]"也适用,但不是我需要的。

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

datagrid1.ItemsSource = dataTable1.DefaultView;

我收到的错误是:

"PropertyPath"语法中存在语法错误"Binding.Path'[name]'中出现错误。。。'版本'",'"。

DataTable列名包括方括号[名称]

SQL Server允许在列名周围使用方括号或双引号。。。你能用双引号代替吗?

我刚刚编写了一个助手函数,它更改了ColumnName属性以删除[]和空格等特殊字符,并将这些字符留在Caption属性中。因此,我将Caption绑定到列标题,将ColumnName绑定到DisplayMemberBinding。

您所需要做的就是转义最后的方括号。

参见:

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