Max*_*mus 7 c# linq select datarow apostrophe
我最近发现当我在包含撇号的字段下进行LINQ选择时,它会使我的应用程序抛出异常.
DataRow[] newDr = this.ds.Tables["TableName"].Select("Name = '" + drData["Name"].ToString() + "'");
Run Code Online (Sandbox Code Playgroud)
如果drData ["姓名"] ="商家的钱"
I got an exception of "Syntax error: Missing operand after 'S' operator "
任何人都可以告诉我如何保存它,不要更换或删除它,好吗?
Kin*_*ing 17
您必须将单引号转换为2个单引号,可能还有其他特殊字符,因此您必须处理它们:
DataRow[] newDr = this.ds.Tables["TableName"]
.Select(string.Format("Name ='{0}'",drData["Name"].ToString().Replace("'","''")));
Run Code Online (Sandbox Code Playgroud)
有关在过滤器字符串中转义特殊字符的更多示例(在Select方法中使用):
行过滤器字符串示例
它不是LINQ Select,而是它的DataTable.Select方法.你得到的错误是因为角色',你需要用双重逃避它' '.简单的方法就是替换它:
DataRow[] newDr = this.ds.Tables["TableName"]
.Select("Name = '" + drData["Name"].ToString().Replace("'", "''" + "'");
Run Code Online (Sandbox Code Playgroud)
您可能会看到有关如何在DataTable.Select中转义字符的问题