html5中文学习网

您的位置: 首页 > 网站及特效实例 > jquery特效 » 正文

探秘不同寻常的ADO.NET参数介绍_编程语言综合

[ ] 已经帮助:人解决问题

   在ADO.NET参数中经常需要跟各种数据库打交道,在不实用存储过程的情况下,使用参数化SQL语句一定程度上可以防止SQL注入,同时对一些较难赋值的字段使用参数化SQL语句很容易就能赋值。ehGHTML5中文学习网 - HTML5先行者学习网

  所以本人经常在ADO.NET参数化SQL语句,近几年来陆续跟SQL Server/Oracle/ MySQL/Access打交道,积累了一些心得,现在整理出来供大家参考。我们假设数据可的结构如下图(设置的数据库为Oracle10g):ehGHTML5中文学习网 - HTML5先行者学习网

  create table S_AdminehGHTML5中文学习网 - HTML5先行者学习网

  (ehGHTML5中文学习网 - HTML5先行者学习网

  UserName varchar(60) not null,ehGHTML5中文学习网 - HTML5先行者学习网

  Password varchar(60) not null,ehGHTML5中文学习网 - HTML5先行者学习网

  Remarkvarchar(50) null,ehGHTML5中文学习网 - HTML5先行者学习网

  Mail varchar(120)not null,ehGHTML5中文学习网 - HTML5先行者学习网

  AddDate datetime null default GETDATE(),ehGHTML5中文学习网 - HTML5先行者学习网

  LoginDatedatetime null default GETDATE(),ehGHTML5中文学习网 - HTML5先行者学习网

  LoginIP varchar(50) null,ehGHTML5中文学习网 - HTML5先行者学习网

  Activesmallint null default 1,ehGHTML5中文学习网 - HTML5先行者学习网

  LoginCount intnull default 1,ehGHTML5中文学习网 - HTML5先行者学习网

  Power intnull default 0,ehGHTML5中文学习网 - HTML5先行者学习网

  Departid intnull default 0,ehGHTML5中文学习网 - HTML5先行者学习网

  constraint PK_S_ADMIN primary key nonclustered (UserId)ehGHTML5中文学习网 - HTML5先行者学习网

  )ehGHTML5中文学习网 - HTML5先行者学习网

  go 需要说明的是,除了Access之外,操作其它数据库可以不必要按照参数在SQL语句中出现的顺序添加进去一样可以正确执行,但是在Access中一定按照插入的列的顺序添加参数,因为“OLE DB.NET Framework 数据提供程序使用标有问号 (?) 的定位参数,而不使用命名参数(MSDN)”,所以给添加参数和赋值一定要按照列的顺序。ehGHTML5中文学习网 - HTML5先行者学习网

  通过上面的例子,基本上可以总结出一个规律:在参数化SQL中参数名的格式跟其在存储过程中生命存储过程参数一致,例如在Oracle中存储过程参数一律以”:”开头,在MS SQL Server中存储过程参数一律以”@”开头,而在MySQL中存储过程(MySQL从5.0以后版本支持存储过程)参数一律以“?ehGHTML5中文学习网 - HTML5先行者学习网

  ”开头,所以在参数化SQL语句中参数名有些不一样(记得在csdn上有朋友提到过不知道为什么MySQL中参数化SQL语句中要用“?”而不是和SQL Server一样使用”@”),如果那位朋友看过本文,我想他就会解开这个疑虑了。ehGHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助