佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > asp.net SqlParameter如何根據(jù)條件有選擇的添加參數(shù)

asp.net SqlParameter如何根據(jù)條件有選擇的添加參數(shù)

熱門標(biāo)簽:國美全國運營中心 人工智能 網(wǎng)站排名優(yōu)化 科大訊飛語音識別系統(tǒng) 百度AI接口 客戶服務(wù) 電商新玩法 電銷業(yè)務(wù)
SqlParameter帶參數(shù)的增刪改查語句,可以防止注入.有時候?qū)憇ql語句的時候會根據(jù)方法傳進來的參數(shù)來判斷sql語句中where條件的參數(shù).

一般方法

DAL層方法
復(fù)制代碼 代碼如下:

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層方法
復(fù)制代碼 代碼如下:

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";
ListSqlParameter> parametertemp = new ListSqlParameter>();
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()方法將 ListT> 的元素復(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
復(fù)制代碼 代碼如下:

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;
}
}
您可能感興趣的文章:
  • asp頁面和Asp.net頁面?zhèn)髦形膮?shù)UrlEncode編碼以及接收解碼
  • asp.net獲取當(dāng)前網(wǎng)址url的各種屬性(文件名、參數(shù)、域名 等)的代碼
  • asp.net利用Ajax和Jquery在前臺向后臺傳參數(shù)并返回值的實例
  • asp.net中mvc使用ajax提交參數(shù)的匹配問題解決探討
  • asp.net 參數(shù)不同共用一個頁面的實現(xiàn)方法
  • asp.net中使用cookie傳遞參數(shù)的方法
  • 在ASP.NET 2.0中操作數(shù)據(jù)之一:創(chuàng)建一個數(shù)據(jù)訪問層
  • 在ASP.NET 2.0中操作數(shù)據(jù)之二:創(chuàng)建一個業(yè)務(wù)邏輯層
  • 在ASP.NET 2.0中操作數(shù)據(jù)之三:創(chuàng)建母版頁和站點導(dǎo)航
  • 在ASP.NET 2.0中操作數(shù)據(jù)之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)
  • 在ASP.NET 2.0中操作數(shù)據(jù)之五:聲明參數(shù)

標(biāo)簽:益陽 棗莊 POS機 南平 廈門 攀枝花 拉薩 咸寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net SqlParameter如何根據(jù)條件有選擇的添加參數(shù)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    剑河县| 洱源县| 咸丰县| 通州区| 澄迈县| 石门县| 乐昌市| 柏乡县| 丹凤县| 平顶山市| 荆门市| 峨山| 衢州市| 福贡县| 苏州市| 佛山市| 来凤县| 宜州市| 兴宁市| 朔州市| 大丰市| 确山县| 苍溪县| 清丰县| 吉安县| 馆陶县| 阿克陶县| 大同市| 新营市| 尚义县| 罗甸县| 莒南县| 诸城市| 凤山市| 商河县| 临夏市| 林州市| 乐昌市| 镇康县| 当雄县| 察隅县|