关于OLEDB参数化查询【.net】
使用参数化 DbCommand 的一个缺点是需要参数的代码将仅适用于支持相同语法的提供程序。OLEDB、SqlClient 和 Oracle 提供程序全部使用不同的语法。例如,用于命名和指定参数的 SQL 语法使用 @ 符号,OLEDB 参数语法需要使用问号 (?) 作为参数占位符,而 Oracle 提供程序使用冒号 (:)。
string sqlstr = " select * from table where id=@id and name=@name ";
System.Data.SqlClient.SqlParameter parameters = newSystem.Data.SqlClient.SqlParameter[2];
parameters[0] = new SqlParameter("@id", uid);
parameters[1] = new SqlParameter("@name", name);
string sqlstr = " select * from table where id=? and name=? ";
System.Data.OleDb.OleDbParameter parameters = new System.Data.OleDb.OleDbParameter[2];
parameters[0] = new OleDbParameter("id", uid);
parameters[1] = new OleDbParameter("name", name);
string sqlstr = " select * from table where id=:id and name=:name ";
System.Data.OracleClient.OracleParameter parameters = new System.Data.OracleClient.OracleParameter[2];
parameters[0] = new OracleParameter(":id", uid);
parameters[1] = new OracleParameter(":name", name);
在通过OLEDB传递参数时候需要注意的问题
对于ACCESS数据库 可以是cmd.CommandText = "insert into shop(ShopName,ShopAddress) Values(@sn,@sadd)";
但是对于SQL数据库 就是cmd.CommandText = "insert into shop(ShopName,ShopAddress) Values(?,?)";
而且在ACCESS中对于传递的参数的添加顺序 即使给出变量名 也必须和SQL语句调用的顺序一致 否则会出错
比如
cmd.CommandText = "insert into shop(ShopName,ShopAddress) Values(@sn,@sadd)";
cmd.Parameters.Clear();
p = new OleDbParameter();
p.ParameterName = "@sn"; p.OleDbType = OleDbType.Char; p.Value = sn;
cmd.Parameters.Add(p);
p = new OleDbParameter();
p.ParameterName = "@sadd"; p.OleDbType = OleDbType.Char; p.Value = sadd;
cmd.Parameters.Add(p);
因为语句中Values(@sn,@sadd)
@sn在@sadd之前 如果你在写参数的时候把@sn和@sadd的顺序写反 那么传递的参数也会反过来 即使你的p.ParameterName定义准确了也一样
关于OLEDB参数化查询【.net】相关推荐
- OLEDB 参数化查询
一般情况下,SQL查询是相对固定的,一条语句变化的可能只是条件值,比如之前要求查询二年级学生信息,而后面需要查询三年级的信息,这样的查询一般查询的列不变,后面的条件只有值在变化,针对这种查询可以使用参 ...
- mysql 查询语句 参数,mysql参数化查询语句有关问题
mysql参数化查询语句问题 部分代码如下: using (MySqlConnection conn = new MySqlConnection(connectionString)) { conn.O ...
- 参数化查询 但未提供该参数(将null插入数据库)
当你是使用参数化查询时为参数赋值时,比如command.Parameters.Add("@a",SqlDbType.Text,30).Value=a;当a=null是将报错: 错参 ...
- SqlParameter参数化查询
上篇博客写了关于重构代码用到的SQLHelper类,这个类包括四种函数,根据是否含参和是否有返回值各分两种.在这里写写传参过程用到的SqlParameter. 如果我们使用如下拼接sql字符串的方式进 ...
- java参数化查询_小博老师解析Java核心技术 ——JDBC参数化查询(二)
[步骤阅读四]SQL注入 按照以上方式开发,确实已经完成了基本的用户登录业务需求,但是这么做的话可以会出现一个比较严重的问题,那就是容易被SQL注入.所谓SQL注入,就是在需要用户填写信息,并且这些信 ...
- C# 中是否支持 Like 和 ln 条件的参数化查询 ?
咨询区 Tom Ritter .NET 中的参数化查询我一直都像下面这样写. SqlCommand comm = new SqlCommand(@"SELECT * FROM Product ...
- php pdo 查询语句,PDO:预处理语句(参数化查询)
@(PDO(PHP data object/PHP数据对象))[PDO|预处理语句|参数化查询] The database library called PHP Data Objects or PDO ...
- pdo 参数化查询 mysql函数_PDO笔记之参数化查询
参数化查询解释在这里:Wiki参数化查询 (少有的Wiki中文比英文介绍的要详细的编程条目) PDO中参数化查询主要用到prepare()方法,然后这个方法会返回一个PDOStatement对象,也就 ...
- Sql Server参数化查询之where in和like实现之xml和DataTable传参
在上一篇Sql Server参数化查询之where in和like实现详解中介绍了在Sql Server使用参数化查询where in的几种实现方案,遗漏了xml和表值参数,这里做一个补充 文章导读 ...
最新文章
- 【spring】spring基于xml的声明式事务控制
- (iOS-基本知识)int long NSInteger 入门与兼容问题讲解
- 剑指offer 04:重构二叉树
- Activiti实战. 导读
- maya中英文切换插件_老司机都在用的30款maya常用插件
- Linux笔记-grep -v功能相关说明
- 在 Unity 多人游戏中实现语音对话
- Android Developers:使ListView滑动流畅
- 蒙特卡罗方法 python 实现2
- c# winform 显示动态gif图片的简单方法
- ChartControl动态添加曲线,X轴Label间隔显示
- CRC循环冗余校验码
- 洛谷每日三题之第三天(第四天补做)
- 虚拟机超线程性能分析深入浅出
- 电脑连接手机热点频繁掉线问题
- [北航软工教学] 教学计划大纲
- 51单片机基础——数码管数组动态显示0—F
- [RK3399][Android7.1]触摸屏TP,敦泰FT5436驱动移植
- x265编码H265
- 15、wxapp - 小程序登录以及全局参数 - 微擎小程序模块应用开发
热门文章
- 日常快捷键、代码快捷键
- Java排序之归并排序 1
- mac可以正常联网,其他的app也可以正常使用,就是浏览器无法浏览网页,解决办法在这里
- 用Qemu搭建x86学习环境
- android监听耳机,Android监听耳机按键事件
- 浙江大学pta答案python第四章_浙大PTA-Python题库 编程题第一章(1-1~1-3)题解
- [tcpreplay] tcpreplay高级用法--使用tcpreplay-edit进行循环动态发包
- JSP的四大作用域及属性范围
- 神经网络与机器学习 pdf 全文内容详细分享
- 我在北大青鸟的工作经历