2024年4月11日发(作者:)

最近因项目需要用 ACCESS做数据库开发 WEB项目看论坛上还许多人问及

被注入的安全问题许多人解决的方法仍然是用

ACCESS

Replace替换特殊字符,然而这样做也并没有

起到太大做用•今天我就把我用ACCESS参数化查询的一些方法和经验和大家分享

家有所启发,有写的不对的地方希望高手们多多指教

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

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

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

C# 语法:

希望对大

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

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

参数

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

Type可选,长整型值,指定

Direction

Parameter对象数据类型。

Parameter对象类型。

可选,长整型值,指定

Size可选,长整型值,指定参数值最大长度

以字符或字节数为单位

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

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

sql="select * from n ewss where user name=? order by id"

〃注意查询的条件均用

号表示

OleDbC onnection conn = new OleDbC onn ecti on(conn Stri ng);

OleDbComma nd cmd = new OleDbComma nd(sql,c onn);

OleDbParameter parm = new OleDbParameter("temp",r, 50); //temp为

Parameter对象可随便定义

r指定为字符串

长度50 io n =

ParameterDirectio n.l nput;

//指定其类型输入参数

(parm);

cmd. Parameters["temp"].Value = "tsi ng";

//查询 tsing,也可以写成 ters[0]

conn. Ope n();

eReader();

ASP VBSCRIPT 语法

Set parameter = comma Parameter (Name, Type, Direction, Size, Value)

参数同上

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

et conn = Object("Adodb.C onnection") tion Stri ng = conn Stri ng

conn. ope n()

set mycmd = Object(" nd") C onnection=conn

ndText=sql

ed = true

set mypar = Parameter("temp",129,1,50,"ts in g") nd

mypar

set myrs = e

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

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

)

大家请参阅 MICROSOFT 的 :

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

Co nst

ParameterDirectio nEnum Values

adParam Unknown = 0

adParam In put

= 1

adParamOutput

= 2

adParam In putOutput = 3

adParamRetur nValue = 4

DataTypeE num Values —

adEmpty =

0

adT inylnt = 16

adSmallI nt = 2

adI nteger = 3

adBigI nt =

20

adU nsig nedT inylnt = 17

adU nsig nedSmall Int = 18

adU nsig nedl nt = 19

adU nsig nedBig Int = 21

adS in gle = 4

adDouble = 5

adCurre ncy = 6

adDecimal = 14

adNumeric = 131

adBoolea n = 11

adError = 10

adUserDefi ned = 132

adVaria nt = 12

adIDispatch =

9

adI Unknown= 13

adGUID = 72

adDate = 7

adDBDate = 133

adDBTime = 134

adDBTimeStamp = 135

adBSTR = 8

adChar = 129

adVarChar = 200

adL on gVarChar =201

Co nst adWChar = 130

Const

Const

Const

Const

adVarWChar =

adBi nary =

adVarBi nary =

adL on gVarB inary

202

=

204

=

205

203

128

Con st adLo ngVarWChar

更多信息请查看IT技术专栏