亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 sql 的 Gridview 搜索/過濾

使用 sql 的 Gridview 搜索/過濾

C#
catspeake 2022-12-24 10:38:07
我在 c# webform 中得到了一個 gridview,它包含來自 SQL Server 數據庫的數據庫,通過 sqlDataSource。SqlDataSource 包含一個 SQL 字符串SELECT * FROM [MaterialView] WHERE (([MaterialName] LIKE '%' + @MaterialName + '%') AND ([SupplierID] = @SupplierID))SQL 字符串按 SupplierID 和 MaterialName 過濾數據兩次。首先,用戶在上一頁確定 SupplierID(@SupplierID 參數),當加載 gridview 頁面時,它執行([SupplierID] = @SupplierID))。然后,我得到一個“搜索框”+“按鈕”,通過在“搜索框”(@MaterialName 參數)中輸入文本,用戶可以再次過濾 gridview,執行 ([MaterialName] LIKE '%' + @MaterialName + '%')。我的問題是,當加載 gridview 頁面時,由于“搜索框”最初是空的(沒有 @MaterialName 參數),gridview 返回 0 條記錄()。我修復它的方法是創建 2 個相似的 Gridview,一個只包含 supplierID 過濾器,另一個包含兩者。
查看完整描述

2 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

您需要檢查您的查詢參數是否為空或其長度是否為 0 或者它是否包含某個值然后過濾Like


SELECT * FROM [MaterialView] 

WHERE 

((

 @MaterialName IS NULL 

 OR LEN(@MaterialName) = 0 

 OR ([MaterialName] LIKE '%' + @MaterialName + '%')

)

AND ([SupplierID] = @SupplierID));


查看完整回答
反對 回復 2022-12-24
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

當我設置文本框默認文本= 0(@MaterialName 參數源)并將@er-sho SQL 修改為


SELECT * FROM [MaterialView] 

WHERE 

((

 @MaterialName = 0 

 OR ([MaterialName] LIKE '%' + @MaterialName + '%')

 )

 AND ([SupplierID] = @SupplierID));

所以我想問題是 textbox.text 默認值(如果未設置)既不是 NULL 也不是 LEN 0。我知道這是一個草率的解決方案,但我很滿意,再次感謝@er-sho


查看完整回答
反對 回復 2022-12-24
  • 2 回答
  • 0 關注
  • 186 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號