資源描述:
《ASP NET程序設計(徐占鵬)教學資源訪問數(shù)據(jù)庫(九)SqlParametar對象.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、單元五ADO.NET訪問數(shù)據(jù)庫(九)SqlParameter對象主講教師:宋園園學習目標【知識目標】了解SqlParameter的常用屬性和方法【技能目標】掌握SqlParameter的常用屬性和方法;能夠使用SqlParameter對象實現(xiàn)對數(shù)據(jù)庫的操作;注:本課內容參考教材單元五5.2使用SqlParameter的必要性一般來說,在更新DataTable或是DataSet時,如果不采用SqlParameter,那么當輸入的Sql語句出現(xiàn)歧義時,如字符串中含有單引號,程序就會發(fā)生錯誤,并且他人可以輕易地通過拼接Sql語句來進行注入攻擊。SqlParameter
2、對象簡介執(zhí)行sql命令時,大多數(shù)情況下都需要向sql語句或者存儲過程傳遞參數(shù).在NETFramework中,使用system.data.common.dbparameter類表示sql命令的參數(shù),dbparameter類是一個抽象類.如同dbConnection一樣,對于不同的數(shù)據(jù)庫管理系統(tǒng),NETFramework有不同的dbparameter派生類.包括Odbcparameter,Oledbparameter,Oracleparameter,Sqlparameter.SqlParameter對象簡介SqlParameter表示SqlCommand的參數(shù),也可
3、以是它到DataSet列的映射。此類不能被繼承。SqlParameter的參數(shù)名稱不區(qū)分大小寫。SqlParameter對象屬性屬性描述說明DbType獲取或設置參數(shù)的SqlDbType。(重寫DbParameter.DbType。)IsNullable獲取或設置一個值,該值指示參數(shù)是否接受空值。Size獲取或設置列中數(shù)據(jù)的最大大?。ㄒ宰止?jié)為單位)。SqlDbType獲取或設置參數(shù)的SqlDbType。MaxLength獲取或設置文本列的最大長度。SqlValue獲取作為SQL類型的參數(shù)的值,或設置該值。TypeName獲取或設置表值參數(shù)的類型名稱。Value獲
4、取或設置該參數(shù)的值。SqlParameter對象屬性Size獲取或設置列中數(shù)據(jù)的最大大?。ㄒ宰止?jié)為單位)。SqlDbType獲取或設置參數(shù)的SqlDbType。Value獲取或設置該參數(shù)的值。SqlParameter對象常用方法方法描述說明GetHashCode()用作特定類型的哈希函數(shù)。GetType()獲取當前實例的Type。MemberwiseClone()創(chuàng)建當前Object的淺表副本。ResetDbType重置與此SqlParameter關聯(lián)的類型。ResetSqlDbType重置與此SqlParameter關聯(lián)的類型。SqlParameter對象常用
5、方法GetType()獲取當前實例的Type。SqlParameter對象的應用string?sql?=?"update?Table1?set?name?=?'Pudding'?where?ID?=?'1'";//未采用SqlParameterSqlConnection?conn?=?new?SqlConnection();conn.ConnectionString?=?"server=.;database=studentmanagement;uid=admin;pwd=admin123";//連接字符串與數(shù)據(jù)庫有關SqlCommand?cmd?=?new?Sq
6、lCommand(sql,?conn);try{??????conn.Open();return(cmd.ExecuteNonQuery());}??catch?(Exception)??{return?-1;throw;}finally{conn.Close();}SqlParameter對象的應用上述代碼未采用SqlParameter,除了存在安全性問題,該方法還無法解決二進制流的更新,如圖片文件。通過使用SqlParameter可以解決上述問題,常見的使用方法有兩種,Add方法和AddRange方法。SqlParameter對象的應用一、Add方法SqlP
7、arameter?sp?=?new?SqlParameter("@name",?"Pudding");cmd.Parameters.Add(sp);sp?=?new?SqlParameter("@ID",?"1");cmd.Parameters.Add(sp);該方法每次只能添加一個SqlParameter。上述代碼的功能是將ID值等于1的字段name更新為Pudding(人名)。SqlParameter對象的應用二、AddRange方法SqlParameter[]?paras?=?new?SqlParameter[]?{?new?SqlParameter("@
8、name",?"Pudd