欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2014年06月06日 10:25:35   作者:  
有時候?qū)憇ql語句的時候會根據(jù)方法傳進(jìn)來的參數(shù)來判斷sql語句中where條件的參數(shù),下面有個示例,大家可以參考下
SqlParameter帶參數(shù)的增刪改查語句,可以防止注入.有時候?qū)憇ql語句的時候會根據(jù)方法傳進(jìn)來的參數(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";
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
復(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;
}
}

相關(guān)文章

  • .NET 6開發(fā)TodoList應(yīng)用之實現(xiàn)PUT請求

    .NET 6開發(fā)TodoList應(yīng)用之實現(xiàn)PUT請求

    PUT請求本身其實可說的并不多,過程也和創(chuàng)建基本類似。這篇文章主要為大家介紹了.NET6實現(xiàn)PUT請求的示例詳解,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12
  • Asp.Net設(shè)計模式之單例模式詳解

    Asp.Net設(shè)計模式之單例模式詳解

    這篇文章主要為大家詳細(xì)介紹了Asp.Net設(shè)計模式之單例模式的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • DataReader不能使用using的詳細(xì)示例

    DataReader不能使用using的詳細(xì)示例

    這篇文章主要介紹了DataReader不能使用using的詳細(xì)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Net Core Web Api項目與在NginX下發(fā)布的方法

    Net Core Web Api項目與在NginX下發(fā)布的方法

    這篇文章主要介紹了Net Core Web Api項目與在NginX下發(fā)布的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • .Net Core實現(xiàn)圖片文件上傳下載功能

    .Net Core實現(xiàn)圖片文件上傳下載功能

    這篇文章主要為大家詳細(xì)介紹了.Net Core實現(xiàn)圖片文件上傳下載功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • c# rabbitmq 簡單收發(fā)消息的示例代碼

    c# rabbitmq 簡單收發(fā)消息的示例代碼

    這篇文章主要介紹了c# rabbitmq 簡單收發(fā)消息的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 如何創(chuàng)建一個AJAXControlToolKit的擴(kuò)展控件

    如何創(chuàng)建一個AJAXControlToolKit的擴(kuò)展控件

    相信熟悉Microsoft提供的AJAXControlToolKit的朋友已經(jīng)感覺到它的強(qiáng)大了。但是如果我們需要其它一些控件,或者是我們碰到一些很好的javascript然后需要把它們整合到ajaxcontroltoolkit中,如何來做。???
    2009-08-08
  • ASP.NET網(wǎng)站使用Kindeditor富文本編輯器配置步驟

    ASP.NET網(wǎng)站使用Kindeditor富文本編輯器配置步驟

    首先下載編輯器然后部署編輯器最后在網(wǎng)頁中加入(ValidateRequest="false")引入腳本文件,具體配置步驟如下,有需求的朋友可以了解下哈
    2013-06-06
  • 封裝的一個asp.net驗證碼類

    封裝的一個asp.net驗證碼類

    昨天在一個Q群上面群主發(fā)了一個用ASP.NET實現(xiàn)驗證碼的demo,下載下來然后運行正常,頁面上的img標(biāo)簽成功調(diào)用了一個一般處理程序并顯示了中文的驗證碼圖片,雖然有點模糊,但是可見上面是四個中文,圖片背景為白色,背后有噪點線,邊框黑色。
    2010-12-12
  • .NET/C#利用反射調(diào)用含ref或out參數(shù)的方法示例代碼

    .NET/C#利用反射調(diào)用含ref或out參數(shù)的方法示例代碼

    這篇文章主要給大家介紹了關(guān)于.NET/C#利用反射調(diào)用含ref或out參數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09

最新評論