zoukankan      html  css  js  c++  java
  • 数据库批量操作中SqlParameter参数传递的问题

    数据库批量操作

    比如会写:update T_AdminUsers set IsEnabled=@IsEnabled where Id in (@ids)

    然后再SqlParameter("@isd","1,2,3"),

    但这样是不行的,原因是什么呢,找啊找,找啊找,为什么每次都是费了老半天时间排除各种原因后才想起来最可能的原因大哭

    最后想可能是SqlParameter的机制问题,于是查看SqlParameter的重载,它可以处理多个object值,可以处理数组,但就是不认识"1,2,3"。


    但办法是有的:像这样http://blog.csdn.net/yenange/article/details/17653213,将"1,2,3"分割,再重写了sql语句;


    挺巧妙的办法,但考虑到我自己的情况,最后的处理方式为:

    "update T_AdminUsers set IsEnabled=@IsEnabled where Id in ("+ids+")",

    同时为了防止SQL注入漏洞攻击,手动筛查ids的内容:

    执行如下转换:"1,2,3"->字符串数组->int数组->"1,2,3",

    字符串数组->int数组的转换过程中可以确保输入的只有数字



  • 相关阅读:
    深度学习中的激活函数
    23.从上往下打印二叉树
    22.栈的压入、弹出序列
    使用TensorFlow实现DNN
    shell按行读取文件
    linux集群批量执行命令
    CDH升级
    自动微分方法(auto diff)
    快速了解负载均衡
    拼写纠错的利器,BK树算法
  • 原文地址:https://www.cnblogs.com/zhixin9001/p/5008116.html
Copyright © 2011-2022 走看看