我正在获取一个数据集合中的数据.现在,我想根据DesignerName值过滤掉它.

但问题是,在signername值中,我得到的是撇号,因此它是中断的,并且不返回数据.

我在desgiername列中获得的值如下:

Men's Jewelry

在这里,如果你看到在男人中有撇号,因此我得不到结果.

使用下面的行,我试图获得过滤的数据.

DataRow[] dr = dtCollections2.Select("designername = '" + strDesigner + "'");

我收到的错误是:

{"Message":"Syntax error: Missing operand after \u0027s\u0027 operator.","StackTrace":"   at System.Data.ExpressionParser.Parse()\r\n   at System.Data.DataExpression..ctor(DataTable table, String expression, Type type)\r\n   at System.Data.Select..ctor(DataTable table, String filterExpression, String sort, DataViewRowState recordStates)\r\n   at System.Data.DataTable.Select(String filterExpression)\r\n at "ExceptionType":"System.Data.SyntaxErrorException"})

推荐答案

对于Select方法,The documentation指的是this page作为查询语法的示例,从这些示例中,我们可以看到单引号字符应该通过在一行中使用两个字符来转义.

字符串值用单引号' '引起来.如果字符串包含单引号',则必须使用双引号.

[C#]
dataView.RowFilter = "Name = 'John'"        // string value
dataView.RowFilter = "Name = 'John ''A'''"  // string with single quotes "John 'A'"

dataView.RowFilter = String.Format("Name = '{0}'", "John 'A'".Replace("'", "''"));

所以在你的 case 中:

DataRow[] dr = dtCollections2.Select("designername = '" + strDesigner.Replace("'", "''") + "'")

Csharp相关问答推荐

声明和实例化时抽象类和Generics的结合问题

将序列化的IasyncESYS上传到Azure Blob存储的最佳方法是什么

PostingAsJsonAschange在从调用的方法返回时给出500错误

如何从C#中有类.x和类.y的类列表中映射List(字符串x,字符串y)?

为什么在GuardationRule的收件箱函数中,decode.TryParse(valueString,out valueParsed)在给出1.0.1时返回true?

System. InvalidOperationException:无法将数据库中的字符串值i转换为映射的ItemType枚举中的任何值''''

FileStream. FlushAsync()是否确保文件被写入磁盘?

XUNIT是否使用测试数据的源生成器?

WinForms在Linux上的JetBrains Rider中的应用

用C#从Word文档中删除重复的节控件和文本内容控件

异步任务导致内存泄漏

如何让NLog停止写入冗余信息?

JsonSchema.Net删除假阳性判断结果

正在寻找新的.NET8 Blazor Web应用程序.如何将.js添加到.razor页面?

WinUI 3中DoubleCollection崩溃应用程序类型的依赖属性

ASP.NET MVC数据批注验证组复选框

我应该为C#12中的主构造函数参数创建私有属性吗?

NETSDK1201:对于面向.NET 8.0和更高版本的项目,默认情况下,指定RUNTIME标识符将不再生成自包含的应用程序

如何使用LINQ在C#中填充列表列表?

避免在特定区域中设置Visual Studio代码的自动格式