在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)";