2010-08-13 114 views
0

我有一個SQL查詢的問題。通過查詢,我試圖使用SQL LIKE命令在數據庫中搜索列中任何出現的字符串(可以是任何內容)。問題在於,對於大多數字符串來說,它都可以正常工作,比如john,jim,ji「m,但是當我包含下列字符(',{,}和單引號)時不起作用。通過把它們放在[]塊,每當用戶進入他們關心的這些特殊情況。問題執行查詢vb

但我得到以下錯誤,當我去查詢使用GetSelectCommand()數據庫中VB.NET

異常信息: 異常類型:System.Reflection.TargetInvocationException 異常消息:異常已被調用目標拋出。

內部異常異常信息(級別1): 異常類型:System.ApplicationException 異常消息:提供的值數量必須等於查詢中佔位符的數量。

我檢查了一遍又一遍的查詢..但它很好。

我的數據庫服務器在SQL Server 2008中

所以我的應用程序拋出異常此命令:

使用Reader作爲MustDisposeDataReader = pmSystem.DatabaseManager.GetSelectCommand(selectStatementBuilder.ToString(),新對象( ){})

其中MustDisposeDataReader是內部開發庫中的一個類的實例,它繼承自System.Object。 pmSystem是實現命令層的類PlanManagerSystem的一個實例。 GetSelectCommand()採取選擇命令

有人可以告訴我該怎麼辦?

回答

1

您應該使用參數化查詢。 然後vb.net將照顧方便地逃避字符串。

+0

能不能詳細說一下???????? – Egalitarian 2010-08-13 08:19:50

0

有很多方法可以做到這一點。你的查詢在哪裏?它是在數據源對象中,還是在其他位置的代碼中的sqlcommand對象?

在任何情況下,谷歌搜索「參數」+數據源(或「參數」+ sqlcommand等),你會想出一個TON的方法。 MSDN,VB幫助等,也是嘗試查找它的好地方。如果你嘗試了,仍然無法找到答案,那麼再回來再問一次。