2012-10-24 60 views
0

我已經創建了一個數據庫,並使用Visual Studio C#在gridview中顯示了數據。我正在嘗試編寫一個查詢方法,該方法將搜索員工的姓名並返回與姓名相似的所有結果。SQL查詢接受有效參數C#

SELECT personID, name, address, phoneNumer, age FROM dbo.person WHERE name Like @name 

對此有何建議/幫助將非常感激。我似乎無法找到解決方案。

+4

你面臨的問題究竟是什麼? –

+0

當我嘗試使用來執行我的形式應用: 私人無效searchButton_Click(對象發件人,EventArgs的) { this.personTableAdapter.searchName(this.personDataSet.person,searchTextBox.Text); } 使用有效的名稱,什麼都沒有出現? –

+1

...「當我嘗試使用此代碼執行我的應用程序時」.....會發生什麼情況?什麼是確切的錯誤?你的應用程序是編譯的,還是運行時失敗?您發佈的屏幕截圖中的錯誤是指「文本」的數據類型與相同的「不兼容」---這是指什麼,特別是考慮到您在原始問題中編寫的查詢沒有等號? – CptSupermrkt

回答

2

LIKE子句使用通配符替換字母。其中最常用的通配符是%,其中翻譯爲「什麼都可以去在這裏」,所以當你的LIKE子句是這樣的:

SELECT personID, name, address, phoneNumer, age FROM dbo.person WHERE name Like 'Tina%' 

它將檢索具有與蒂娜開頭的名稱的所有記錄,而這一個:

SELECT personID, name, address, phoneNumer, age FROM dbo.person WHERE name Like '%Tina%' 

這將檢索具有蒂娜任何地方的所有記錄。默認情況下,這是不區分大小寫的,我相信,除非您更改數據庫的排序規則。

因此,請使您的@name參數中的值包含某個通配符,除非您想查找匹配的確切

+0

所以你的建議是: SELECT personID,name,address,phoneNumer,age FROM dbo.person WHERE name Like @ name% ? –

+0

否。將通配符放在'@ name'的*值*中。或者,您可以將通配符連接到參數:'LIKE @name +'%'' –