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

发布于 2024-11-09 04:29:19 字数 404 浏览 0 评论 0原文

我在向 DataGrid 添加名为“[name] version”的列时遇到问题。如果我有类似“[name]”或“version [name]”的内容,则转义、unicode 或将所有工作加倍。仅当右括号后面有字符时才会出现问题。 “[[name] version]”也可以,但不是我需要的。

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

datagrid1.ItemsSource = dataTable1.DefaultView;

我收到的错误是:

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

I am having a problem with adding a column named "[name] version" to a DataGrid. If I have something like "[name]" or "version [name]" then escaping, unicode or doubling all work. There only appears to be a problem when there are characters after the closing bracket. "[[name] version]" works too but is not what I need.

I am using WPF and C#, this line of code binds the DataTable to the DataGrid.

datagrid1.ItemsSource = dataTable1.DefaultView;

The error I receive is:

Syntax error in "PropertyPath 'Syntax
error in "Binding.Path '[name]' ...
'version'",'".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

つ可否回来 2024-11-16 04:29:19

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

SQL Server allows square brackets or double quotes around column names... can you use double quotes instead?

十秒萌定你 2024-11-16 04:29:19

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

I've just written a helper function which changes the ColumnName property to remove special characters like [] and spaces and I simply leave these characters in the Caption property. So then I bind the Caption to the column header and the ColumnName to the DisplayMemberBinding.

樱娆 2024-11-16 04:29:19

您需要做的就是避开右方括号。

看:

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

All you need to do is escape the closing square bracket.

See:

   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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文