2010-02-26 63 views
0

我的應用程序有一個填充數據表並通過設置數據源屬性將其綁定到ddatagridview。爲什麼我的datagridview.rowfilter無法正常工作。我不斷收到語法錯誤消息

在運行時我想過濾這張表。當用戶點擊一個按鈕時,我運行以下代碼:

dataManager.VDMSTables.DataTable.DefaultView.RowFilter = column + " LIKE '%" + criteria + "%'"; 

所有類都正確填充。在運行時,當我到達這條線時,我收到以下錯誤消息:

語法錯誤:'數據'操作符後缺少操作數。我用來構建rowfilter的變量已正確填充。即使我硬編碼一個字符串,我仍然得到這個相同的錯誤。爲什麼?

+2

您是否有導致此問題的示例標準值?我假設列是一個字符串,而不是一個列對象? – Crispy 2010-02-26 18:01:41

回答

2

當您在調試器中查看時,實際構建的字符串是什麼樣的? 「數據」這個詞不會出現在那裏,是嗎?

如果是這樣,那麼它告訴你Data是一個保留字,你需要將它標記爲這樣。如:

dataManager.VDMSTables.DataTable.DefaultView.RowFilter 
    = String.Format("[{0}] LIKE '%{1}%'" 
     , column 
     , YourSingleQuoteEscape(criteria)); 

這將產生:

"[Data] like '%strawberries%'" 

...這應該正確地解析爲您的RowFilter。

+0

不,它不。即使當我硬編碼字符串的東西,如 string s =「column name ='test'」我得到該錯誤。 然後我使用這個字符串s作爲行過濾器iike: dataview.rowfilter = s; – gsirianni 2010-02-26 18:29:13

+0

我看過一些在線帖子中使用的stirng.Format方法。我會給它一個鏡頭。 – gsirianni 2010-02-26 18:30:10

+0

爲什麼你認爲這條線是你問題的根源?如果你可以設置.RowFilter =「mycol like'fishies'」,它仍然會拋出,那麼你的下一步就是完全刪除這條線,看看會發生什麼。我的懷疑是它會拋出任何線路漂浮到同一個位置。換句話說,看上面和下面的線條。 – 2010-02-26 18:45:52

相關問題