asp.net SqlParameter 根据条件 有选择的添加参数
来源:互联网 发布:云海螺英语怎么样知乎 编辑:程序博客网 时间:2024/05/22 10:39
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"; 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> 的元素复制到新数组中。 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.net SqlParameter 根据条件 有选择的添加参数
- asp.net SqlParameter关于Like的传参数无效问题
- asp.net SqlParameter关于Like的传参数无效问题
- asp.net sqlparameter 传参数模糊查询
- asp.net C#命名参数SqlParameter详解
- asp.net C#命名参数SqlParameter详解
- ADO.NET中使用SqlParameter添加参数时遇到的参数无效问题
- asp.net 中 sqlparameter 的使用
- 多条件查询,动态添加SqlParameter参数,动态添加where条件
- Asp.Net------------sqlparameter
- SqlParameter的参数应用
- asp.net sqlparameter,dataset合并排序的用法
- 关于在GridView模版里添加DropDownList实现根据下拉列表的不同选择gridview根据条件筛选显示。
- 向SqlParameter内动态添加参数
- 向SqlParameter内动态添加参数
- 向SqlParameter内动态添加参数
- ASP.NET-有选择的进行验证控件的验证
- ASP.NET GridView有选择的导出Excel
- UML图之一——用例图
- django中怎么格式化当前时间
- Linux启动流程
- python simplejson模块的使用方法
- android模拟器启动错误
- asp.net SqlParameter 根据条件 有选择的添加参数
- pkg-config工具的使用
- 伟易达(深圳)2013.6.6实习生笔试题
- 排序算法--直接插入排序
- 我所理解的设计模式(C++实现)——责任链模式(Chain Of Responsibility Pattern)
- android Canvas(2D)详解
- rad grid, drag and drop
- hud3018 解题报告
- 这两天的情况