rowfilter表达式中变量的特殊字符处理
工作環境:windowsXP(SP3)+.net2005+crystalReport11開發版  
以下為加載數據源及過濾的代碼:  
DataTable dt = new DataTable();  
private void Form2_Load(object sender, EventArgs e)  
{  
     DataColumn dc = new DataColumn("c1", typeof(int));  
     dt.Columns.Add(dc);  
     dc = new DataColumn("c2", typeof(string));  
     dt.Columns.Add(dc);  
     DataRow dr = dt.NewRow();  
     dr[0] = 1;  
     dr[1] = "中國";  
     dt.Rows.Add(dr);  
     dr = dt.NewRow();  
     dr[0] = 2;  
     dr[1] = "香港";  
     dt.Rows.Add(dr);  
     dr = dt.NewRow();  
     dr[0] = 3;  
     dr[1] = "台灣";  
     dt.Rows.Add(dr);  
     dr = dt.NewRow();  
     dr[0] = 4;  
     dr[1] = "RP001_A'JANAE(女)";  
     textBox1.Text = dr[1].ToString().Trim();  
     dt.Rows.Add(dr);  
     dr = dt.NewRow();  
     dr[0] = 5;  
     dr[1] = @"RP001_A\JANAE(女)";  
     dt.Rows.Add(dr);  
     dataGridView1.DataSource = dt.DefaultView;  
}  
private void button1_Click(object sender, EventArgs e)  
{  
     string filter = textBox1.Text.Trim();  
     if (filter == "")  
         dt.DefaultView.RowFilter = "";  
     else  
         dt.DefaultView.RowFilter = "c2='" + @filter + "'";  
}  
說明:c2列的資料是不可以修改的;除非在取資料時對資料行中的特殊字符做處理(不希望如此).  
問題:要顯示c2列內容為"RP001_A'JANAE(女)"的資料.  
當按下button1時,提示錯誤:語法錯誤: 'JANAE' 運算子之後遺漏運算元。
string filter = textBox1.Text.Trim();  
改成以下也不行  
string filter = textBox1.Text.Trim().Replace("'", "\'");
------解决方案--------------------==>dr[1] = "RP001_A'JANAE(女)";  
改成下面的看看:
dr[1] = "RP001_A''JANAE(女)";  
------解决方案--------------------如1楼所言,用两个单引号替换一个单引号:
string filter = textBox1.Text.Trim().Replace("'", "''");
------解决方案--------------------