asp.net SqlParameter如何根據(jù)條件有選擇的添加參數(shù)_.Net教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:asp.net Xml綁定到數(shù)據(jù)控件的具體實(shí)現(xiàn)這篇文章主要介紹了asp.net Xml綁定到數(shù)據(jù)控件的兩種簡單方法 ,需要的朋友可以參考下 方法一:aspx前臺綁定 代碼如下: asp:XmlDataSource ID=XmlDataSource1 runat=server DataFile=~/SaveFile/test2.xml/asp:XmlDataSource asp:Repeater runat=server ID=Rpt1 DataSour
有時候?qū)憇ql語句的時候會根據(jù)方法傳進(jìn)來的參數(shù)來判斷sql語句中where條件的參數(shù),下面有個示例,大家可以參考下
SqlParameter帶參數(shù)的增刪改查語句,可以防止注入.有時候?qū)憇ql語句的時候會根據(jù)方法傳進(jìn)來的參數(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;
}
}
分享:asp.net顯示自己的網(wǎng)頁圖標(biāo)的幾種方式多tab的瀏覽器,你一定會發(fā)現(xiàn)tab前邊的個性圖標(biāo),關(guān)于這個東西有好幾種做法,下面與大家分享下 如果你是用IE7以上的版本,或者用多tab的瀏覽器,你一定會發(fā)現(xiàn)tab前邊的個性圖標(biāo),這個是怎么弄的呢 一直不太明白,偶然的機(jī)會,同事告訴我了幾種做法,貼出來和大家分享 1
相關(guān).Net教程:
- asp.net Xml綁定到數(shù)據(jù)控件的具體實(shí)現(xiàn)
- asp.net顯示自己的網(wǎng)頁圖標(biāo)的幾種方式
- ASP.NET連SQL7接口源代碼
- ASP.NET 頁面間數(shù)據(jù)傳遞方法
- ASP.NET解決驗(yàn)證控件與JS腳本驗(yàn)證沖突
- Asp.net實(shí)現(xiàn)向上向下排序的例子
- asp.net中包含文件的代碼及使用方法
- 如何在ASP.NET中使用三層架構(gòu)
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- ADO.Net 類型化DataSet的簡單介紹
- 如何使用.Net C#開發(fā)批量ACCESS數(shù)據(jù)庫壓縮軟件
- 在asp.net 2.0 中使用的存儲過程解析
- 解析WPF綁定層次結(jié)構(gòu)數(shù)據(jù)的應(yīng)用詳解
- 深入分析XmlSerializer對象的Xml序列化與反序列化的示例詳解
- 解讀ASP.NET密碼強(qiáng)度驗(yàn)證代碼實(shí)例
- 微軟新版開發(fā)工具VS 2008 beta2功能定案
- 如何實(shí)現(xiàn)C#中用鼠標(biāo)移動頁面的功能
- AjaxPro讓.NET的AjaxPro變得簡單
- 分析.NET上執(zhí)行多線程應(yīng)該注意的兩點(diǎn)
- 相關(guān)鏈接:
- 教程說明:
.Net教程-asp.net SqlParameter如何根據(jù)條件有選擇的添加參數(shù)
。