我有一個數據表,我想用公司名稱過濾此表。但它給了這個錯誤:「語法錯誤'操作員'後缺少操作。's'操作符後缺少opperand
我的代碼是這樣的。
DataRow[] rowList = resultDt.Select(string.Format(" [{0}] = '{1}'", resultDt.Columns["Company"], "Dyn's"));
可能是什麼問題?
我有一個數據表,我想用公司名稱過濾此表。但它給了這個錯誤:「語法錯誤'操作員'後缺少操作。's'操作符後缺少opperand
我的代碼是這樣的。
DataRow[] rowList = resultDt.Select(string.Format(" [{0}] = '{1}'", resultDt.Columns["Company"], "Dyn's"));
可能是什麼問題?
問題是「Dyn's」。你可以使用\「而不是」出現問題
它在名稱中的撇號,你需要逃避它:
DataRow[] rowList = resultDt.Select(string.Format(" [{0}] = '{1}'", resultDt.Columns["Company"], "Dyn\'s"))
的問題是它正在取代{1}
等生成的字符串看起來像'Dyn's'
,逃脫它可以讓你'Dyn\'s'
這應該沒問題。
Dyn's
你需要躲避撇號:
Dyn\'s
嘗試逃脫「:
"Dyn\'s"
您能夠使用LINQ到數據表呢?我一直認爲DataTable.Select()
是一種容易出錯的方式,正是出於這種原因。
通過DataTableExtensions.AsEnumerable()
方法(或更簡單地使用強類型數據集,IIRC)使用LINQ查詢對象(有效)是更好的IMO。無可否認,您將無法從DataTable
執行的任何內存索引中受益,但我懷疑在大多數情況下,這些索引是無關緊要的。
非常感謝它的工作... – emrahe 2010-07-09 08:04:02
我認爲你可以寫@ @ Dyn's「 – Jonathan 2010-07-09 09:20:46