在我的查詢是此行System.Data.SqlTypes.SqlNullValueException對空字符串PARAM
//query...
"AND (@4 = '' OR (p.FirstName + p.LastName LIKE '%' + @4 + '%') OR (eup.FirstName + eup.LastName LIKE '%' + @4 + '%')) " +
//more query...
這是給我一個例外。參數@4
即爲""
。當我將其更改爲
"AND (@4 IS NULL OR (p.FirstName + p.LastName LIKE '%' + @4 + '%') OR (eup.FirstName + eup.LastName LIKE '%' + @4 + '%')) " +
它沒有返回任何表中沒有名或姓的記錄。
我該如何解決這個問題?如果參數4爲空,我希望返回所有記錄,而不管名稱是否存在。
paramater'@ 4'是連接的名字和姓氏。我將徹底重構這個查詢,我不喜歡它的任何內容。 –
@ USER_8675309我剛剛看到上面的其他評論。如果您真的在尋找解決方案來搜索員工數據集與您的AD記錄,我敢打賭,他們有幾個問題可以幫助您找到自己想要的東西。如果不是的話,我會把它放在問題本身,因爲這是讓人們知道何時提供答案的好信息。 – Matt
確實。我認爲這裏有兩個單獨的問題,一個是關於SQL的''''vs'null',另一個關於AD用戶。我們前進的解決方案是爲前進的AD用戶創建人員記錄,並使用腳本將現有AD用戶回填到人員表中。不過謝謝你們的幫忙。我最終使用了你和phil答案之間的混合。 –