asp.net SqlParameter 根据条件 有选择的添加参数
2013-06-06 22:09
555 查看
SqlParameter带参数的增删改查语句,可以防止注入.有时候写sql语句的时候会根据方法传进来的参数来判断sql语句中where条件的参数.
一般方法
DAL层方法
方法如下
DAL层方法
DBUtility层SqlHelper
一般方法
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如何根据条件有选择的添加参数
- asp.net SqlParameter关于Like的传参数无效问题
- ASP.NET repeater添加序号列的方法及根据条件添加html(转)
- sql output参数 Sql Output 参数和asp.net的sqlparameter配合使用
- [转]ASP.NET 缓存(六)--根据参数缓存页的版本
- asp.net学习之SqlDataSource 2 select的四种参数赋予形式的解释
- 在asp.net中强烈建议通过参数来实现sql而不是sql拼接
- 向SqlParameter集合数组中添加参数——SQLHelp对数据访问层的优化(一)
- asp.net中DropDownList添加“请选择”提示
- ASP.NET提示框,且根据用户选择执行不同代码的实现
- 根据List<SqlParameter>返回sql条件(where后)
- 每日总结(二)C#判断输入内容为数字、Sharepoint回收应用程序池错误、Asp.Net 会发或回调参数无效、DropDownList动态绑定且设置默认选择项
- ASP.net 页面添加时间选择控件
- ASP.NET 多条件动态参数查询方法
- [Database]创建存储过程并在ASP.NET中的调用带参数的存储过程与及调用带参数的SQL语句对比
- ASP.NET中时间选择控件的添加
- 向SqlParameter内动态添加参数
- Asp.Net Web API 2第十六课——Parameter Binding in ASP.NET Web API(参数绑定)
- asp.net mvc 选择excel 文件并添加到数据库(译,原文有误已更改)