RowFilter带有特殊字符

时间:2013-08-20 14:03:25

标签: c# filtering rowfilter

我有一个名为myMainTable的表,我想在我的DataView上运行.RowFilter。目前我的代码是这样的(用于RowFilter的值是一个示例值):

var mainDataView = maindataDataSet.Tables["myMainTable"].DefaultView;
mainDataView .RowFilter = "LastName= '" + "Gemma O'Neil" + "'";
var mainDataTable = mainDataView.ToTable();

我当然遇到的问题是它认为(因为'奥尼尔'中的'我正在寻找的价值结束于“Gemma O”。

如何才能成功地将RowFilter应用于完整值“Gemma O'Neil”?

1 个答案:

答案 0 :(得分:0)

对于这样的情况,你只需要逃避'角色; RowFilter只是另一个':

  string surname = "Gemma O'Neil";
  mainDataView .RowFilter = "LastName= '" + surname.Replace("'", "''") + "'";

(或者,neater:

  string surname = "Gemma O'Neil";
  mainDataView.RowFilter =
        String.Format("LastName='{0}', surname.Replace("'", "''"));

顺便说一下,这是一个与试图避免SQL注入攻击的人面临的问题非常类似的问题。如果这是一个新的开发,那么我建议调查实体框架和LINQ,它将自动为您处理。