好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

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

asp.net SqlParameter如何根據條件有選擇的添加參數

熱門標簽:柳州電銷機器人公司 電銷語音機器人型號參數 百度地圖怎樣做地圖標注 太原400電話上門辦理 昆明語音電銷機器人價格 征途美甲店地圖標注 400電話如何申請取消 騰訊地圖標注手機 浦發電話機器人提醒還款
SqlParameter帶參數的增刪改查語句,可以防止注入.有時候寫sql語句的時候會根據方法傳進來的參數來判斷sql語句中where條件的參數.

一般方法

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;
}

現在想根據集合UserInfo內屬性來添加SqlParameter參數

方法如下

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";
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> 的元素復制到新數組中。

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()不能傳空參數組
//params 的意思就是允許傳空參數組
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頁面傳中文參數UrlEncode編碼以及接收解碼
  • asp.net獲取當前網址url的各種屬性(文件名、參數、域名 等)的代碼
  • asp.net利用Ajax和Jquery在前臺向后臺傳參數并返回值的實例
  • asp.net中mvc使用ajax提交參數的匹配問題解決探討
  • asp.net 參數不同共用一個頁面的實現方法
  • asp.net中使用cookie傳遞參數的方法
  • 在ASP.NET 2.0中操作數據之一:創建一個數據訪問層
  • 在ASP.NET 2.0中操作數據之二:創建一個業務邏輯層
  • 在ASP.NET 2.0中操作數據之三:創建母版頁和站點導航
  • 在ASP.NET 2.0中操作數據之四:使用ObjectDataSource展現數據
  • 在ASP.NET 2.0中操作數據之五:聲明參數

標簽:陽泉 張家界 新疆 德陽 天門 白山 蘭州 江蘇

巨人網絡通訊聲明:本文標題《asp.net SqlParameter如何根據條件有選擇的添加參數》,本文關鍵詞  asp.net,SqlParameter,如何,根據,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《asp.net SqlParameter如何根據條件有選擇的添加參數》相關的同類信息!
  • 本頁收集關于asp.net SqlParameter如何根據條件有選擇的添加參數的相關信息資訊供網民參考!
  • 推薦文章