使用参数化 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);

c# 针对不同数据库进行参数化查询的更多相关文章

  1. c# oracle 数据库连接以及参数化查询

    private string OracleSearchDemo(string cadqueueId) { string address = null; using (OracleConnection ...

  2. 第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获得连接字符串

    第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获 ...

  3. OLEDB 参数化查询

    一般情况下,SQL查询是相对固定的,一条语句变化的可能只是条件值,比如之前要求查询二年级学生信息,而后面需要查询三年级的信息,这样的查询一般查询的列不变,后面的条件只有值在变化,针对这种查询可以使用参 ...

  4. 【转】浅析Sql Server参数化查询

    转载至: http://www.cnblogs.com/lzrabbit/archive/2012/04/21/2460978.html 错误认识1.不需要防止sql注入的地方无需参数化 参数化查询就 ...

  5. 【转】Sql Server参数化查询之where in和like实现之xml和DataTable传参

    转载至: http://www.cnblogs.com/lzrabbit/archive/2012/04/29/2475427.html 在上一篇Sql Server参数化查询之where in和li ...

  6. SQL 参数化查询 应用于 Like

    在sql 进行参数化查询的时候,使用like 语句和参数的时候,错误的写法:  Participant like '%@Participant%' ,这样在数据库为解析为 '%'participant ...

  7. SQL Server 2008 R2——VC++ ADO 操作 参数化查询

    ==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...

  8. SQL参数化查询--最有效可预防SQL注入攻击的防御方式

    参数化查询(Parameterized Query 或 Parameterized Statement)是访问数据库时,在需要填入数值或数据的地方,使用参数 (Parameter) 来给值. 在使用参 ...

  9. SqlParameter参数化查询

    上篇博客写了关于重构代码用到的SQLHelper类,这个类包括四种函数,根据是否含参和是否有返回值各分两种.在这里写写传参过程用到的SqlParameter. 如果我们使用如下拼接sql字符串的方式进 ...

随机推荐

  1. InstallShield 工程类型MSI 使用过程中碰到的问题及解决方法。

    原文 http://www.cnblogs.com/daocaorenbx/p/InstallShield.html 一.安装完 桌面创建IE快捷方式: 1.  install script可以直接建 ...

  2. Taobao File System

    TFS是淘宝针对海量非结构化数据存储设计的分布式系统,构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问.高可扩展.高可用.高性能.面向互联网服务. 特性 采用扁平化的数据组织结构 ...

  3. CC++初学者编程教程(10) 搭建Android java C/C++ NDK QTforAndroid 开发环境

    1 安装JDK 2 点下一步 3 点下一步 4 开始安装 5 定制路径,点下一步 6 开始安装 7 安装完成, 8 解压缩 9 启动eclipse 10 看到启动画面 11 设置工作文件夹 12 单击 ...

  4. e = e || window.event用法细节讨论

    e = e || window.event是我们在做事件处理时候区分IE和其他浏览器事件对象时常用的写法.但是这行兼容性代码有没有必要出现在所有的事件句柄中呢?标准事件调用方式需要这行代码吗?下边我们 ...

  5. magento中取不同store中的产品数据

    $products = Mage::getResourceModel('catalog/product_collection')                    ->setStoreId( ...

  6. 联想A208T ROOT

    前几天,一直陪伴我的海信T89电池挂掉...胀胀的肚子...真可怜 一时之间找不到配套的电池,就借了个手机先用着,就是这 联想A208T ROOT... 话说的配置一般般,勉强够我这样的不怎么玩手机的 ...

  7. 模拟表格 inline-block等高布局

    表格是个好东西,它可以自动根据内容来调整格子,确保数据正常显示,并且不破坏表格的结构.但也有一些劣势,因为是用大量标签堆砌而成,页面结构会比较乱,细节也往往不容易控制.所以我们希望有表格的展示效果,但 ...

  8. iOS 任意类型数据转换字符串

    //转换数据类型: NSError *parseError = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:resp ...

  9. linux安装桌面软件

    CentOS 作为服务器的操作系统是很常见的,但是因为需要稳定而没有很时髦的更新,所以很少做为桌面环境.在服务器上通常不需要安装桌面环境,最小化地安装 CentOS(也就是 minimal CentO ...

  10. 解决eclipse创建Maven项目后无法生成src/main/java资源文件夹的方法

    在项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre.