数据库批量操作中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数组的转换过程中可以确保输入的只有数字
数据库批量操作中SqlParameter参数传递的问题的更多相关文章
- C# 数据库批量插入数据之 —— SqlBulkCopy、表值参数
创建了一个用来测试的Student表: CREATE TABLE [dbo].[Student]( [ID] [int] PRIMARY KEY NOT NULL, ) NULL, ) NULL, [ ...
- sql数据库批量替换dedecms内容关键字
之前写了一篇dedecms后台批量替换文章中的关键词,这边我们介绍一下用sql数据库批量替换dedecms内容关键字,当然要求你对数据库比较熟悉,修改前请自行做好备份. 1.更改文章中的内容 upda ...
- innodb数据库批量转换表引擎为MyISAM
2013.0106 innodb数据库批量转换表引擎为MyISAM 来源:本站原创 PHP, 数据库, 系统技术 超过488名童鞋围观 1条评论 <?php //连接数据库 $host='lo ...
- Mysql MyISAM数据库批量转换表引擎为Innodb
Mysql MyISAM数据库批量转换表引擎为Innodb 最近在做事物处理需要把表结构都改为带有支持事物的Innodb引擎格式, 把里面数据库 用户名.密码 等信息修改为你自己的,放在网站下运行即可 ...
- 金蝶KIS&K3助记码SQL数据库批量刷新
金蝶KIS&K3助记码SQL数据库批量刷新 用的次数不多,就没有写入存储过程或者触发里面了,可以自行实现. 第一步选择对应账套的数据库,执行下面的命令,这个是一个函数. go if exist ...
- SQL:数据库批量插入数据
测试中有些功能要求有足够的数据进行测试,当输入字段较多时通过页面添加很慢.业务只关联单个数据库表可以通过数据库批量插入数据 批量插入数据示例: declare @i int--声明变量 --变量初始化 ...
- 数据库过滤操作中 != 或者 <> 指定操作数并不能改匹配到NULL值
数据库过滤操作中 != 或者 <> 指定操作数并不能改匹配到NULL值
- SqlServer批量压缩数据库日志-多数据库批量作业,批量备份还原
原文:SqlServer批量压缩数据库日志-多数据库批量作业,批量备份还原 --作业定时压缩脚本 多库批量操作 DECLARE @DatabaseName NVARCHAR(50) DECLARE @ ...
- MySQL数据库迁移与MySQL数据库批量恢复
目录 一.MySQL数据库迁移或备份 1. 了解使用InnoDB引擎创建数据库所产生的文件 2. 迁移数据库步骤 1. 从A服务器迁移至B服务器 2. MySQL重装并导入之前数据库 二.MySQL数 ...
随机推荐
- Linux下ps -ef 和 ps aux的区别
Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux.这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格, ...
- Django + Uwsgi + Nginx 实现生产环境 项目部署
内容: uwsgi 介绍 uwsgi安装使用 nginx安装配置 django with nginx 如何在生产上部署Django项目? Django项目的部署可以有很多方式,采用nginx+uwsg ...
- 使用Xutils 3 中遇到的一些问题!!!!
1.当xml页面中有可见的,同时设置id的控件时,如果在Activity中没有使用注解进行反射该控件,app会crash,提示: Caused by: java.lang.NullPointerEx ...
- bigdata-02-hadoop2.8.4-resourceHA安装
1, 电脑环境准备 1), 关闭selinux vim /etc/selinux/config SELINUX=disabled 2), 时间同步 yum -y install chrony 修改时间 ...
- PTA (Advanced Level) 1005 Spell It Right
Spell It Right Given a non-negative integer N, your task is to compute the sum of all the digits of ...
- Tomcat学习总结(14)—— Tomcat常见面试题
一.Tomcat的缺省是多少,怎么修改 Tomcat的缺省端口号是8080. 修改Tomcat端口号: 1.找到Tomcat目录下的conf文件夹 2.进入conf文件夹里面找到server.xml文 ...
- Java NIO 进程间通信
转自:http://blog.csdn.net/lingzhm/article/details/45026119 传统的进程间通信的方式有大致如下几种: (1) 管道(PIPE) (2) 命名 ...
- Tomcat专题
1. 修改端口 tomcat-7.0.70/conf/server.xml <Connector port=" protocol="HTTP/1.1"
- android开发学习笔记系列(3)--ScrollView与HorizontalScrollView
ScrollView与HorizontalScrollView 这是一个滚动视图,就是说如果你在你的UI中容不下那么多的内容,且你对自己的UI都已经设置好了px,OK,那么在适应屏幕过程中,我们并不希 ...
- Linux 卸载 openjdk
1 卸载 openjdk sudo apt-get purge openjdk*