日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
探秘不同尋常的ADO.NET參數(shù)介紹

在ADO.NET參數(shù)中經(jīng)常需要跟各種數(shù)據(jù)庫打交道,在不實(shí)用存儲過程的情況下,使用參數(shù)化SQL語句一定程度上可以防止SQL注入,同時對一些較難賦值的字段使用參數(shù)化SQL語句很容易就能賦值。

創(chuàng)新互聯(lián)公司于2013年成立,先為沈河等服務(wù)建站,沈河等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為沈河企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

所以本人經(jīng)常在ADO.NET參數(shù)化SQL語句,近幾年來陸續(xù)跟SQL Server/Oracle/ MySQL/Access打交道,積累了一些心得,現(xiàn)在整理出來供大家參考。我們假設(shè)數(shù)據(jù)可的結(jié)構(gòu)如下圖(設(shè)置的數(shù)據(jù)庫為Oracle10g):

 
 
  1. create table S_Admin (  
  2. UserName varchar(60) not null,  
  3. Password varchar(60) not null,  
  4. Remarkvarchar(50) null,  
  5. Mail  varchar(120)not null,  
  6. AddDate  datetime null default GETDATE(),  
  7. LoginDatedatetime null default GETDATE(),  
  8. LoginIP  varchar(50) null,  
  9. Activesmallint null default 1,  
  10. LoginCount  intnull default 1,  
  11. Power intnull default 0,  
  12. Departid intnull default 0,  
  13. constraint PK_S_ADMIN primary key nonclustered (UserId)  
  14. )  
  15. go 

需要說明的是,除了Access之外,操作其它數(shù)據(jù)庫可以不必要按照參數(shù)在SQL語句中出現(xiàn)的順序添加進(jìn)去一樣可以正確執(zhí)行,但是在Access中一定按照插入的列的順序添加參數(shù),因?yàn)椤癘LE DB.NET Framework 數(shù)據(jù)提供程序使用標(biāo)有問號 (?) 的定位參數(shù),而不使用命名參數(shù)(MSDN)”,所以給添加參數(shù)和賦值一定要按照列的順序。

通過上面的例子,基本上可以總結(jié)出一個規(guī)律:在參數(shù)化SQL中參數(shù)名的格式跟其在存儲過程中生命存儲過程參數(shù)一致,例如在Oracle中存儲過程參數(shù)一律以”:”開頭,在MS SQL Server中存儲過程參數(shù)一律以”@”開頭,而在MySQL中存儲過程(MySQL從5.0以后版本支持存儲過程)參數(shù)一律以“?#t#

”開頭,所以在參數(shù)化SQL語句中參數(shù)名有些不一樣(記得在csdn上有朋友提到過不知道為什么MySQL中參數(shù)化SQL語句中要用“?”而不是和SQL Server一樣使用”@”),如果那位朋友看過本文,我想他就會解開這個疑慮了。


分享文章:探秘不同尋常的ADO.NET參數(shù)介紹
URL地址:http://www.dlmjj.cn/article/djcsego.html