Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataTable列名包括方括号[名称]_C#_Wpf_Datagrid_Brackets - Fatal编程技术网

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

C# DataTable列名包括方括号[名称],c#,wpf,datagrid,brackets,C#,Wpf,Datagrid,Brackets,我在向DataGrid添加名为“[name]version”的列时遇到问题。如果我有类似“[name]”或“version[name]”的东西,那么转义、unicode或加倍所有工作。只有在右括号后面有字符时,才会出现问题。“[[name]version]”也可以,但不是我需要的 我使用的是WPF和C#,这行代码将DataTable绑定到DataGrid datagrid1.ItemsSource = dataTable1.DefaultView; 我收到的错误是: “PropertyPath

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

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

datagrid1.ItemsSource = dataTable1.DefaultView;
我收到的错误是:

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


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

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

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

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

您需要做的就是跳出结束方括号

见:


你所需要做的就是摆脱封闭的方括号

见:


能否更改列名,使其不存在此问题?e、 g.“VersionName”@taylonr,不,公司需要括号作为括号,括号内的名称是商标实体/符号。@Ben。。。但为什么您关心数据库中的字段使用商标名命名?在DB中将其命名为field1,然后显示“[我的商标括号内的字段]名称”,仅显示我的2美分,我知道您不能总是更改字段名称,但这可能是一个简单的解决方法,我在WPF程序中引用DataGrid上的列标题名称,而不是数据库表中的列名。我将无法使用WPF使“[My Trademarked Bracketed Field]Name”在DataGrid中用作列名标题。糟糕的是,我看到DataGrid和我的大脑被转换为DataSet。您能否更改列名以避免出现此问题?e、 g.“VersionName”@taylonr,不,公司需要括号作为括号,括号内的名称是商标实体/符号。@Ben。。。但为什么您关心数据库中的字段使用商标名命名?在DB中将其命名为field1,然后显示“[我的商标括号内的字段]名称”,仅显示我的2美分,我知道您不能总是更改字段名称,但这可能是一个简单的解决方法,我在WPF程序中引用DataGrid上的列标题名称,而不是数据库表中的列名。我无法使用WPF将“[My Trademarked Bracketed Field]Name”作为DataGrid中的列名标题。糟糕的是,我看到DataGrid和我的大脑被转换为DataSet。不,DataGrid列名标题必须包含开放方括号和闭合方括号。请注意,我指的是WPF窗口中的DataGrid,而不是数据库表上的数据列。不,DataGrid列标题名称必须包含打开方括号和关闭方括号。请注意,我指的是WPF窗口中的DataGrid,而不是数据库表上的数据列。
   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);