在ADO.NET中使用参数化SQL语句访问不同数据库时的差异
在ADO.NET中经常需要跟各种数据库打交道,在不实用存储过程的情况下,使用参数化SQL语句一定程度上可以防止SQL注入,同时对一些较难赋值的字段(如在SQL Server中Image字段,在Oracle中Clob字段等)使用参数化SQL语句很容易就能赋值,所以本人经常在ADO.NET中使用参数化SQL语句,近几年来陆续跟SQL Server/Oracle/ MySQL 打交道,积累了一些心得,现在整理出来供大家参考。
表架构如下:
create table Table1 (
Column1 varchar(60) not null,
Column2 varchar(60) not null,
Column3 int not null default 0,
)
使用ado.net参数化查询语句,向Table1中插入一条记录。
MySql: string sql = "insert into Table1(Column1,Column2,Column3)values(?Column1,?Column2,?Column3)";
Sql Server: string sql = "insert into Table1(Column1,Column2,Column3)values(@Column1,@Column2,@Column3)";
Oracle: string sql = "insert into Table1(Column1,Column2,Column3)values(:Column1,:Column2,:Column3)";
在ADO.NET中使用参数化SQL语句访问不同数据库时的差异的更多相关文章
- 在程序开发中怎样写SQL语句可以提高数据库的性能
以下内容是公司dba总结. 1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来 ...
- sql语句进行写数据库时,字符串含有'的处理方式
如果字符串含有',sql语句在执行insert 或update时会发生错误,应将'替换成'',语句如下: land.Address = land.Address.Trim().Replace(&quo ...
- SQL Server参数化SQL语句中的like和in查询的语法(C#)
sql语句进行 like和in 参数化,按照正常的方式是无法实现的 我们一般的思维是: Like参数化查询:string sqlstmt = "select * from users whe ...
- 如何用参数化SQL语句污染你的计划缓存
你的SQL语句的参数化总是个好想法.使用参数化SQL语句你不会污染你的计划缓存——错!!!在这篇文章里我想向你展示下用参数化SQL语句就可以污染你的计划缓存,这是非常简单的! ADO.NET-AddW ...
- 参数化SQL语句
避免SQL注入的方法有两种:一是所有的SQL语句都存放在存储过程中,这样不但可以避免SQL注入,还能提高一些性能,并且存储过程可以由专门的数据库管理员(DBA)编写和集中管理,不过这种做法有时候针对相 ...
- 怎样用SQL语句查询一个数据库中的所有表?
怎样用SQL语句查询一个数据库中的所有表? --读取库中的所有表名 select name from sysobjects where xtype='u'--读取指定表的所有列名select nam ...
- SQL Server中常用的SQL语句(转):
SQL Server中常用的SQL语句 转自:http://www.cnblogs.com/rainman/archive/2013/05/04/3060428.html 1.概述 名词 笛卡尔积.主 ...
- 如何找出MySQL数据库中的低效SQL语句
面对业务的迅猛发展,DBA的一项重要工作就是及时发现数据库中的低效SQL语句,有的可以立刻着手解决(比如缺少合适的索引),有的需要尽快反馈给开发人员进行修改. MySQL数据库有几个配置选项可以帮助我 ...
- SQL*PLUS中批量执行SQL语句
SQL*PLUS中批量执行SQL语句 今天由于工作的需要,要在CMD中批量执行大量的SQL语句,对于Oracle学习还处在入门阶段的我,只能硬着头皮到处去寻找资料(主要是网络资料,也包括自己的电子书) ...
随机推荐
- RadHat搭建内网YUM源server
前言:随着内网linuxserver越来越多,在每台server上安装软件.都要先把安装盘上传上去.在配置本地yum服务,即麻烦又费时.能够在内网的一台linuxserver上安装yum服务,然后其它 ...
- GNOME3启动时出错:Oh no! Something has gone wrong.Logout!
今天用虚拟机安装debian7.1,在启动的时候遇到登录失败的问题,用GNOME Classic可以登录,特地记录如下: 原文出处:http://r3dux.org/2011/11/how-to-fi ...
- vs2010突然变慢解决方法
方法一: 开始>>运行>>devenv.exe /resetuserdata
- MySQL::SQL_MODE
SQL_MODE可能是比较容易让开发人员和DBA忽略的一个变量,默认为空.SQL_MODE的设置其实是比较冒险的一种设置,因为在这种设置下可以允许一些非法操作,比如可以将NULL插入NOT NULL的 ...
- careercup-数学与概率
7.3 给定直角坐标系上的两条线,确定这两条线会不会相交. 解法: 此题有很多不确定的地方:两条线的格式是什么?两条线实为同一条怎么处理?这些含糊不清的地方最好跟面试官讨论一下. 下面将做出以下假设: ...
- 开启、关闭数据库mysql
1.命令行 net start mysql net start mysql 2.点控制面板→管理→服务 招到mysql 3.找到安装目录下的bin目录
- 鼠标单击事件--JavaScript
<html> <head> <title></title> </head> <script type="text/javas ...
- 普通SQL注入
安全防御:过滤/转义非法参数,屏蔽SQL查询错误. 工具:Firefox,hackbar,sqlmap,burpsuite 1.联想tms站 例1, 联想tms站fromCity参数存在普通SQL注入 ...
- mysql mac 上启动
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist 中内容: <string>/usr/local/o ...
- 深入理解计算机系统第二版习题解答CSAPP 2.1
A.将0x39A7F8转换为二进制. 0011 1001 1010 0111 1111 1000 B.将二进制1100 1001 0111 1011转换为十六进制. 0xC97B C.将0xD5E ...