主页 > 知识库 > 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如何根据条件有选择的添加参数的相关信息资讯供网民参考!
  • 推荐文章