• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp.net SqlParameter如何根据条件有选择的添加参数
    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中操作数据之五:声明参数
    上一篇:C#中的switch case使用介绍
    下一篇:asp.net Xml绑定到数据控件的具体实现
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    asp.net SqlParameter如何根据条件有选择的添加参数 asp.net,SqlParameter,如何,根据,