SqlParameter的作用与用法

一般来说,在更新DataTable或是DataSet时,如果不采用SqlParameter,那么当输入的Sql语句出现歧义时,如字符串中含有单引号,程序就会发生错误,并且他人可以轻易地通过拼接Sql语句来进行注入攻击。

sqlhelper里:

AddRange方法

  public static string connstr = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
        //查询语句
        public static DataTable ExcuteTable(string sql, params SqlParameter[] sqlParameters)
        {
            using (SqlDataAdapter sda = new SqlDataAdapter(sql, connstr))
            {
                if (sqlParameters != null && sqlParameters.Count() > 0)
                    sda.SelectCommand.Parameters.AddRange(sqlParameters);
                using (DataTable dt = new DataTable())
                {
                    sda.Fill(dt);
                    return dt;
                }
            }
        }
        //增删改语句
        public static int ExcuteNonQuery(string sql, params SqlParameter[] sqlParameters)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                using (SqlCommand comm = new SqlCommand(sql, conn))
                {
                    if (sqlParameters != null && sqlParameters.Count() > 0)
                        comm.Parameters.AddRange(sqlParameters);
                    conn.Open();
                    return comm.ExecuteNonQuery();
                }
            }
        }

Add方法

 public static Userinfo Select(string name, string pwd)
        {
            //构建查询语句   =   不能like
            var sql = $"select * from UserInfo where name=@name and pwd=@pwd";
            SqlParameter[] sqlParameters=
            {
                new SqlParameter("@name",name),
                 new SqlParameter("@pwd",pwd),
            };

            var table = DBhelper.ExcuteTable(sql,sqlParameters);
            //如果没有数据  null
            if (table == null || table.Rows.Count < 1)
            {
                return null;
            }
var row = table.Rows[0];
            Userinfo user = new Userinfo()
            {
                Id = Convert.ToInt32(row["Id"]),
                Name = Convert.ToString(row["Name"]),
                Role = Convert.ToInt32(row["Role"])
            };
            return user;
        }

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值