這篇文章將為大家詳細講解有關(guān)asp.net SqlParameter根據(jù)條件有選擇的添加參數(shù),小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
SqlParameter帶參數(shù)的增刪改查語句,可以防止注入.有時候?qū)憇ql語句的時候會根據(jù)方法傳進來的參數(shù)來判斷sql語句中where條件的參數(shù).
一般方法
DAL層方法
public UserInfo GetAll(UserInfo a) { string strSql = "select id,name,code,password from [tb].[dbo].[User] where 1=1"; strSql += " and [id]=@id"; strSql += " and [name]=@name"; strSql += " and [code]=@code"; strSql += " and [password]=@password"; SqlParameter[] parameters = { new SqlParameter("@id", a.id) new SqlParameter("@name", a.name) new SqlParameter("@code", a.code), new SqlParameter("@password", a.password) }; SqlDataReader reader = SqlHelper.ExecuteReader(strSql, parameters); UserInfo hc = new UserInfo(); while(reader.Read()) { hc.id = reader.GetInt32(reader.GetOrdinal("id")); hc.name = reader.GetString(reader.GetOrdinal("name")); hc.code = reader.GetString(reader.GetOrdinal("code")); hc.password = reader.GetString(reader.GetOrdinal("password")); } reader.Close(); return hc; }
現(xiàn)在想根據(jù)集合UserInfo內(nèi)屬性來添加SqlParameter參數(shù)
方法如下
DAL層方法
public UserInfo GetALL(UserInfo a) { string strSql = "select id,name,code,password from [tb].[dbo].[User] where 1=1"; if (a.id>0) strSql += " and [id]=@id"; if (!string.IsNullOrEmpty(a.name)) strSql += " and [name]=@name"; if (!string.IsNullOrEmpty(a.code)) strSql += " and [code]=@code"; if (!string.IsNullOrEmpty(a.password)) strSql += " and [password]=@password"; List<SqlParameter> parametertemp = new List<SqlParameter>(); if (a.id > 0) parametertemp.Add(new SqlParameter("@id", a.id)); if (!string.IsNullOrEmpty(a.name)) parametertemp.Add(new SqlParameter("@name", a.name)); if (!string.IsNullOrEmpty(a.code)) parametertemp.Add(new SqlParameter("@code", a.code)); if (!string.IsNullOrEmpty(a.password)) parametertemp.Add(new SqlParameter("@password", a.password)); SqlParameter[] parameters = parametertemp.ToArray();//ToArray()方法將 List<T> 的元素復(fù)制到新數(shù)組中。 SqlDataReader reader = SqlHelper.ExecuteReader(strSql, parameters); UserInfo hc = new UserInfo(); while (reader.Read()) { hc.id = reader.GetInt32(reader.GetOrdinal("id")); hc.name = reader.GetString(reader.GetOrdinal("name")); hc.code = reader.GetString(reader.GetOrdinal("code")); hc.password = reader.GetString(reader.GetOrdinal("password")); } reader.Close(); return hc; }
DBUtility層SqlHelper
public SqlDataReader ExecuteReader(string query, params SqlParameter[] parameters) { SqlConnString = GetConnect2(); SqlConnString.Open(); SqlCommand SqlCmd = new SqlCommand(); SqlCmd.Connection = SqlConnString; SqlCmd.CommandText = query; //SqlCmd.Parameters.AddRange(parameters);//AddRange()不能傳空參數(shù)組 //params 的意思就是允許傳空參數(shù)組 foreach (SqlParameter item in parameters) { SqlCmd.Parameters.Add(item); } SqlDataReader dr; try { dr = SqlCmd.ExecuteReader(CommandBehavior.CloseConnection); return dr; } catch (Exception ee) { SqlConnString.Close(); throw ee; } }
關(guān)于“asp.net SqlParameter根據(jù)條件有選擇的添加參數(shù)”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
當(dāng)前文章:asp.netSqlParameter根據(jù)條件有選擇的添加參數(shù)-創(chuàng)新互聯(lián)
路徑分享:http://m.rwnh.cn/article0/ggpio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、品牌網(wǎng)站設(shè)計、搜索引擎優(yōu)化、動態(tài)網(wǎng)站、域名注冊、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容