ADO.NET中带参数的Sql语句的陷阱
1.使用Parameter
//利用构造函数方式 ,不推荐这样写 Parameter p =new Parameter("@id",值); cmd.Parameters.Add(p); //利用对象初始化器的方式,推荐是这样写 Parameter p =new Parameter() {ParameterName="@id",Value="值"}; cmd.Parameters.Add(p);//推荐和不推荐为了什么?在下面说
2.使用Parameter数组
//不推荐的写法 Parameter[] pms =new Parameter[]; {new Parameter("@id",值);...... }; cmd.Parameter.AddRange(pms);//推荐的写法SqlParameter[] pms= {new SqlParameter("@id", SqlDbType.VarChar,50),.......} ;parameters[0].Value = "值";cmd.Parameter.AddRange(pms);//推荐和不推荐是因为什么?在下面说
3.Parameter("@id",值)的陷阱
如上1和2中所说,不推荐Parameter("@id",值)的使用方式。为什么呢?
原因是有一次这样写。
new SqlParameter("@aa",0); 发现竟然奇怪的调用了 红色圈中的构造函数。
结果就是数据库中原本赋过值的项,变成了null。
为什么0会被编译器看成MySqlDbType类型呢?
原因是,MySqlDbType是一个枚举。0正好对应了Decimal类型。
所以为了避免这种情况,
推荐使用对象初始化器,
或者直接使用带DbType的构造函数实例化,然后再赋值。
总之,直接用构造函数的方式有点略坑~
转载于:https://www.cnblogs.com/mcad/p/4212391.html
ADO.NET中带参数的Sql语句的陷阱相关推荐
- SQL Server之 (四) ADO增删查改 登录demo 带参数的sql语句 插入自动返回行号
SQL Server之 (四) ADO增删查改 登录demo 带参数的sql语句 插入自动返回行号 自己学习笔记,转载请注明出处,谢谢!---酸菜 1.什么是ADO.NET ADO.NET是一组 ...
- 不带参数的SQL语句执行方法
不带参数的SQL语句执行方法 以下是不带参数的SQL语句执行方法的代码,它调用通用数据访问类(SqlHelper)执行 SqlHelper.ExecuteNonQuery()方法,使用示例为; int ...
- oracle 执行带参数的sql语句_当用EXECUTE IMMEDIATE执行SQL语句中的参数个数也是动态的?用什么方法实现?...
当用EXECUTE IMMEDIATE执行SQL语句中的参数个数也是动态的?用什么方法实现? 描述详细一点就是:在要执行的SQL语句中所用到(: parameter)这种参数的个数,因具体条件不同,而 ...
- oracle 执行带参数的sql语句_Oracle动态SQL语句的简单执行
在使用ODP.NET进行Oracle编程时,有时候SQL语句非常复杂,需要采用动态构造查询语句的情况,有两种方法可以构造动态的SQL语句,并执行返回结果集. 1.在数据访问层构造SQL语句 例如下面的 ...
- java sql传参_JAVA执行带参数的SQL语句
MVC系列--MVC源码学习:打造自己的MVC框架(三:自定义路由规则) 前言:上篇介绍了下自己的MVC框架前两个版本,经过两天的整理,版本三基本已经完成,今天还是发出来供大家参考和学习.虽然微软的R ...
- 【C# .NET】Oracle数据库连接的坑之传入parameters参数名SQL语句中的参数变量名不匹配(顺序不一致)的问题
问题描述 有一个user表,需要修改id为10086的用户的姓名和年龄,在C#的后台这样写: using (IDbConnection db = DapperFactory.GetConnection ...
- Order By 排序条件中带参数的写法(Oracle数据库、MyBatis)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. sortWay 是参数. 当sortWay 为 llpx 就 ORDER BY FORMAT AS ...
- 带参数的插入语句的问题
友人遇到问题,数据库中无存储过程,而想写带参数的插入语句. sql里面+了"@"表示sql里面的参数,而你开始定义的只是一个字符串.刚才那个没有赋值,正确看下面的. SqlConn ...
- mysql导出不带注释的sql语句_MySQL mysqlbinlog解析出的SQL语句被注释是怎么回事
MySQL mysqlbinlog解析出的SQL语句被注释是怎么回事 一网友反馈使用mysqlbinlog解析出的二进制日志中的内容中,有些SQL语句有#注释的情况,这个是怎么回事呢?我们通过实验来了 ...
最新文章
- Android5.0之CoordinatorLayout的使用
- ssm 异常捕获 统一处理_统一异常处理介绍及实战
- Spring-AOP 自动创建代理
- linux下软件如何防破裂,linux下管道破裂的處理
- 科学计算机js代码,JavaScript实现科学计算器
- oracle 存储过程字符替换,Oracle存储过程常用字符串处理函数整理
- roc曲线怎么绘制_利用ROC曲线寻找最佳cutoff值(连续型变量组成的riskscore)
- axure element元件_Axure教程,产品小白从0学起
- gis数据与cad数据转换之间的关系
- android avrcp处理流程,(VR虚拟现实)Android 蓝牙AVRCP功能的实现.doc
- 英文网站源码 国外财经资讯商业新闻整站源码 全自动采集发布 广告联盟网站
- 微信每天加多少人不会封号?(行业经验)
- 压缩软件大评比,7-ZIP/WinZIP/WinRAR的抗争
- 30ea什么意思_ea阶段是什么?你未必全知道!
- 【Exception】Class com.XXX1 can not access a member of class com.XXX2 with modifiers “public“
- jquery延时执行
- 互联网经典SQL面试题及答案解析
- 分治法求循环赛日程表
- mysql修改工资字段_基于Linux的MySQL操作实例(修改表结构,MySQL索引,MySQL数据引擎)...
- 金纳米粒子修饰MIL-101骨架材料(AuNPs/MIL-101)/负载COF-TpPa-1(Au NPs/COF-TpPa-1)|齐岳试剂