asp.net和asp下ACCESS的参数化查询
asp.net和asp下ACCESS的参数化查询
发布时间:2016-12-30 来源:查字典编辑
摘要:今天我就把我用ACCESS参数化查询的一些方法和经验和大家分享希望对大家有所启发,有写的不对的地方希望高手们多多指教ASP.NET用OleD...

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

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

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

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

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

ASP.NETC#语法

OleDbParameterparm=newOleDbParameter(Name,Type,Direction,Size,Value);

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

参数

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

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

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

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

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

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

复制代码 代码如下:

sql="select*fromnewsswhereusername=?orderbyid"

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

OleDbConnectionconn=newOleDbConnection(connString);

OleDbCommandcmd=newOleDbCommand(sql,conn);

OleDbParameterparm=newOleDbParameter("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();

ASPVBSCRIPT语法

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

参数同上

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

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

复制代码 代码如下:

setconn=Server.CreateObject("Adodb.Connection")

conn.ConnectionString=connString

conn.open()

setmycmd=Server.CreateObject("ADODB.Command")

mycmd.ActiveConnection=conn

mycmd.CommandText=sql

mycmd.Prepared=true

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

mycmd.Parameters.Appendmypar

setmyrs=mycmd.Execute

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

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

大家请参阅MICROSOFT的ADOVB.Inc:

复制代码 代码如下:

'----ParameterDirectionEnumValues----

ConstadParamUnknown=0

ConstadParamInput=1

ConstadParamOutput=2

ConstadParamInputOutput=3

ConstadParamReturnValue=4

'----DataTypeEnumValues----

ConstadEmpty=0

ConstadTinyInt=16

ConstadSmallInt=2

ConstadInteger=3

ConstadBigInt=20

ConstadUnsignedTinyInt=17

ConstadUnsignedSmallInt=18

ConstadUnsignedInt=19

ConstadUnsignedBigInt=21

ConstadSingle=4

ConstadDouble=5

ConstadCurrency=6

ConstadDecimal=14

ConstadNumeric=131

ConstadBoolean=11

ConstadError=10

ConstadUserDefined=132

ConstadVariant=12

ConstadIDispatch=9

ConstadIUnknown=13

ConstadGUID=72

ConstadDate=7

ConstadDBDate=133

ConstadDBTime=134

ConstadDBTimeStamp=135

ConstadBSTR=8

ConstadChar=129

ConstadVarChar=200

ConstadLongVarChar=201

ConstadWChar=130

ConstadVarWChar=202

ConstadLongVarWChar=203

ConstadBinary=128

ConstadVarBinary=204

ConstadLongVarBinary=205

附我写的C#类,和VBSCRIPT函数,希望对大家有帮助

复制代码 代码如下:

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Web;

usingSystem.Data.OleDb;

namespaceacc_select

{

///<summary>

///accselect的摘要说明

///</summary>

publicclassaccselect

{

//"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=d:dqdb1.mdb"

privatestringconn=ConfigurationManager.ConnectionStrings["tsingConnectionString"].ToString();

publicstringsql=string.Empty;

publicintt=4;

publicobjectv=null;

publicaccselect()

{

}

///<summary>

///构造函数,传递ACC参数查询语句

///</summary>

///<paramname="strsql">strsql字符型</param>

publicaccselect(stringstrsql)

{

sql=strsql;

}

///<summary>

///构造函数,传递ACC参数查询语句

///</summary>

///<paramname="strsql">参数查询语句</param>

///<paramname="total">字节数</param>

publicaccselect(stringstrsql,inttotal)

{

sql=strsql;

t=total;

}

///<summary>

///构造函数

///</summary>

///<paramname="strsql">参数查询语句</param>

///<paramname="total">字节数</param>

///<paramname="value">OBJECT值</param>

publicaccselect(stringstrsql,inttotal,objectvalue)

{

sql=strsql;

t=total;

v=value;

}

///<summary>

///getOdd方法返回OleDbDataReader

///</summary>

///<paramname="odt">定义OleDbType类型</param>

///<returns></returns>

publicOleDbDataReadergetOdd(OleDbTypeodt)

{

OleDbConnectionconns=newOleDbConnection(this.conn);

OleDbCommandcmd=newOleDbCommand(this.sql,conns);

OleDbParameterparm=newOleDbParameter("temp",odt,this.t);

parm.Direction=ParameterDirection.Input;

cmd.Parameters.Add(parm);

cmd.Parameters[0].Value=this.v;

conns.Open();

OleDbDataReaderoda=cmd.ExecuteReader();

cmd.Dispose();

returnoda;

}

stringSql

{

get

{

returnsql;

}

set

{

sql=value;

}

}

intT

{

get

{

returnt;

}

set

{

t=value;

}

}

objectV

{

get

{

returnv;

}

set

{

v=value;

}

}

}

}

//调用方法

//accselectacc=newaccselect();

//acc.sql="select*fromdttwhered_id=?";

//acc.t=10;

//acc.v=1;

//OleDbDataReaderoda=acc.getOdd(OleDbType.VarChar);

//Repeater1.DataSource=oda;

//Repeater1.DataBind();

复制代码 代码如下:

functionacc_sql(sql,adotype,adodct,strlong,values)

dimconnstring,mycmd,myrs,conn

connString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath("db1.mdb")

setconn=Server.CreateObject("Adodb.Connection")

conn.ConnectionString=connString

conn.open()

setmycmd=Server.CreateObject("ADODB.Command")

mycmd.ActiveConnection=conn

mycmd.CommandText=sql

mycmd.Prepared=true

setmypar=mycmd.CreateParameter("temp",adotype,adodct,strlong,values)

mycmd.Parameters.Appendmypar

setmyrs=mycmd.Execute

setacc_sql=myrs

endfunction

'调用方法

'dimrs

'sql="select*fromuserswhereid=?orderbyid"

'setrs=acc_sql(sql,3,1,4,1)

'ifnotrs.eofthen

'response.Write(rs(1))

'endif

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类