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]'中出现错误。。。'版本'",'"。
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);