您当前的位置: 首页 > 数据库教程 > ACCESS教程 > ACCESS的参数化查询

ACCESS的参数化查询

作者:不详 来源:网络 发布时间: 2014-07-29 11:36 点击:
最近因项目需要用ACCESS做数据库开发WEB项目看论坛上还许多人问及ACCESS被注入的安全问题许多人解决的方法仍然是用Replace替换特殊字符,然而这样做也并没有起到太大做用.今天我就把我用ACCESS参数化查询的一些方法和经验和大家分享,希望对大家有所启发,有写的不对的

ACCESS的参数化查询

  最近因项目需要用ACCESS做数据库开发WEB项目看论坛上还许多人问及ACCESS被注入的安全问题许多人解决的方法仍然是用Replace替换特殊字符,然而这样做也并没有起到太大做用.今天我就把我用ACCESS参数化查询的一些方法和经验和大家分享,希望对大家有所启发,有写的不对的地方希望高手们多多指教

  ASP.NET 用OleDbCommand的new OleDbParameter创建参数货查询

  ASP用Command的CreateParameter 方法创建参数化查询

  (SQL储存过程查询也是用这个方法建立的)

  ASP.NETC#语法:

  OleDbParameter parm = new OleDbParameter(Name, Type, Direction, Size, Value);

  (实际上它有七重载大家具体大家可以在VS.net里面就可以看到)

  参数

  Name可选,字符串,代表 Parameter 对象名称。

  Type可选,长整型值,指定 Parameter 对象数据类型。

  Direction 可选,长整型值,指定 Parameter 对象类型。。

  Size可选,长整型值,指定参数值最大长度(以字符或字节数为单位)。

  Value 可选,变体型,指定 Parameter 对象的值。

  以下是实例,查询news表中所有tsing发表的新闻

  -------------------------------------------------------

  sql="select * from newss where username=? order by id"

  //注意查询的条件均用?号表示

  OleDbConnection conn = new OleDbConnection(connString);

  OleDbCommand cmd = new OleDbCommand(sql,conn);

  OleDbParameter parm = new OleDbParameter("temp",OleDbType.VarChar, 50);

  //temp为Parameter对象可随便定义,OleDbType.VarChar指定为字符串,长度50

  parm.Direction = ParameterDirection.Input;

  //指定其类型输入参数

  cmd.Parameters.Add(parm);

  cmd.Parameters["temp"].Value = "tsing";

  //查询tsing,也可以写成cmd.Parameters[0]

  conn.Open();

  cmd.ExecuteReader();

  ASP VBSCRIPT语法

  Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)

  参数同上

  以下是实例,查询news表中所有tsing发表的新闻

  ------------------------------------------------------

  et conn = Server.CreateObject("Adodb.Connection")

  conn.ConnectionString = connString

  conn.open()

  set mycmd = Server.CreateObject("ADODB.Command")

  mycmd.ActiveConnection=conn

  mycmd.CommandText=sql

  mycmd.Prepared = true

  set mypar = mycmd.CreateParameter("temp",129,1,50,"tsing")

  mycmd.Parameters.Append mypar

  set myrs = mycmd.Execute

  与上面基本相同不同的地方法是asp在对参数的表达上面不同

  129为adChar,1就是指示输入参数(是其实是默认值)

  大家请参阅MICROSOFT的ADOVB.Inc:

  ’---- ParameterDirectionEnum Values ----

  Const adParamUnknown = 0

  Const adParamInput = 1

  Const adParamOutput = 2

  Const adParamInputOutput = 3

  Const adParamReturnValue = 4

  ’---- DataTypeEnum Values ----

  Const adEmpty = 0

  Const adTinyInt = 16

  Const adSmallInt = 2

  Const adInteger = 3

  Const adBigInt = 20

  Const adUnsignedTinyInt = 17

  Const adUnsignedSmallInt = 18

  Const adUnsignedInt = 19

  Const adUnsignedBigInt = 21

  Const adSingle = 4

  Const adDouble = 5

  Const adCurrency = 6

  Const adDecimal = 14

  Const adNumeric = 131

  Const adBoolean = 11

  Const adError = 10

  Const adUserDefined = 132

  Const adVariant = 12

  Const adIDispatch = 9

  Const adIUnknown = 13

  Const adGUID = 72

  Const adDate = 7

  Const adDBDate = 133

  Const adDBTime = 134

  Const adDBTimeStamp = 135

  Const adBSTR = 8

  Const adChar = 129

  Const adVarChar = 200

  Const adLongVarChar = 201

  Const adWChar = 130

  Const adVarWChar = 202

  Const adLongVarWChar = 203

  Const adBinary = 128

  Const adVarBinary = 204

  Const adLongVarBinary = 205
分享到:
本文"ACCESS的参数化查询"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4