一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - 數據庫技術 - 多條件查詢的程序

多條件查詢的程序

2021-10-06 17:15數據庫技術網 數據庫技術

在一個網站中,常常會使用到查詢功能。假設一個企業內部網中,用戶信息里通常會涉及到工號、姓名、性別、學歷、職業、職稱、身份證號碼、手機號碼、座機號碼、傳真號碼、郵政編號、通訊地址等信息。

而在對用戶進行查詢時,也可能會使用到多種條件的查詢方式,如通過工號查詢、通過姓名查詢、通過性別查詢、通過學歷查詢等。也有可能會通過多種條件的組合查詢,如查學歷是大專的女員工等。
對于這種查詢情況,通常的作法是讓用戶輸入查詢條件,再進行SQL語句組合來進行查詢。如讓用戶輸入工號、姓名等,單擊提交按鈕之后,在后臺獲得這些信息,如以下代碼所示:

復制代碼 代碼如下:


//設置查詢語句
string strSql = "SELECT * FROM [user] where UserState=1 ";
//如果用戶名不為空則添加查詢條件
if (UserName!="")
{
    strSql += "and (UserName'= "+UserName+"') ";
}
//如果性別不為空則添加查詢條件
if (Sex!="")
{
    strSql += "and (Sex'= "+Sex+"') ";
}


在創建完SQL語句之后,執行該語句獲得查詢結果。
這種是使用得最多并且是最不安全的方法,因為這是最容易讓別人SQL注入攻擊的一個方式。
如果想要避免SQL注入攻擊,可以將查詢語句寫在存儲過程中,然后使用SqlParameter將參數傳遞給存儲過程,但是,一個多條件查詢的存儲過程需要怎么寫呢?
其實,這個存儲過程并不難,可以使用以下方式:

復制代碼 代碼如下:


CREATE PROCEDURE [dbo].[UserCheck]
@UserId varchar(50) = null,
@UserName varchar(20) = null,
@RealName varchar(20) = null,
@Sex bit = null,
@JobTitle varchar(50) = null,
@Organ varchar(50) = null,
@IDCardType smallint = null,
@IDCard varchar(50) = null,
@Mobile varchar(50) = null
AS
BEGIN
select * from [user]
where UserId like case when @UserId is null then UserId else @UserId end
and UserName like case when @UserName is null then UserName else @UserName end
and RealName like case when @RealName is null then RealName else @RealName end
and Sex = case when @Sex is null then Sex else @Sex end
and JobTitle like case when @JobTitle is null then JobTitle else @JobTitle end
and Organ like case when @Organ is null then Organ else @Organ end
and IDCardType = case when @IDCardType is null then IDCardType else @IDCardType end
and IDCard like case when @IDCard is null then IDCard else @IDCard end
and Mobile like case when @Mobile is null then Mobile else @Mobile end
END

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲午夜精品久久久久 | 日韩精选| 婷婷草| 99热热99| 污丝瓜视频 | naruto堂同人本子汉化gg | 农村妇女野外性生话免费视频 | 小草视频免费观看在线 | 亚洲网色 | 99国产国人青青视频在线观看 | 日本xxxⅹ69xxxx护士 | av魔镜收集号 | 天堂伊人| 91搞搞| 亚洲国产精品综合久久网络 | 青青五月天 | 毛片影院 | 成人au免费视频影院 | 丝袜足控免费网站xx动漫漫画 | 国产我不卡| 性生大片免费看 | 亚洲精品视频专区 | 色综合欧美色综合七久久 | 午夜AV亚洲一码二中文字幕青青 | 亚洲欧美日韩久久一区 | 香蕉eeww99国产精选播放 | 天天狠天天透天干天天怕处 | 国产高清在线播放免费观看 | 久久国产精品福利影集 | 99re热精品这里精品 | 国产成人精品日本亚洲网址 | 美女脱一光二净的视频 | 欧美一卡2卡3卡四卡海外精品 | 欧美精品亚洲精品日韩专区va | 欧美日韩国产一区二区三区不卡 | 国色天香论坛社区在线视频 | 青草久久网 | 青青国产成人久久激情911 | 2022天天干| 美女脱了内裤打开腿让人桶网站o | 5g影院天天5g天天爽大陆 |