asp.net和asp下ACCESS的参数化查询


Posted in Javascript onJune 11, 2008

今天我就把我用ACCESS参数化查询的一些方法和经验和大家分享
希望对大家有所启发,有写的不对的地方希望高手们多多指教

ASP.NET 用OleDbCommand的new OleDbParameter创建参数货查询
ASP用Command的CreateParameter 方法创建参数化查询
(SQL储存过程查询也是用这个方法建立的)

ASP.NET C#语法
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发表的新闻
 ------------------------------------------------------ 
 

set 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  

附我写的C#类,和VBSCRIPT函数,希望对大家有帮助
using System;  
using System.Data;  
using System.Configuration;  
using System.Web;  
using System.Data.OleDb;  
namespace acc_select  
{  
 /// <summary>  
 /// accselect 的摘要说明  
 /// </summary>  
 public class accselect  
 {  
 //"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\dq\db1.mdb"  
 private string conn = ConfigurationManager.ConnectionStrings["tsingConnectionString"].ToString();  
 public string sql = string.Empty;  
 public int t = 4;  
 public object v = null;  
 public accselect()  
 {  
 }  
 /// <summary>  
 /// 构造函数,传递ACC参数查询语句  
 /// </summary>  
 /// <param name="strsql">strsql字符型</param>  
 public accselect(string strsql)  
 {  
 sql = strsql;  
 }  
 /// <summary>  
 /// 构造函数,传递ACC参数查询语句  
 /// </summary>  
 /// <param name="strsql">参数查询语句</param>  
 /// <param name="total">字节数</param>  
 public accselect(string strsql, int total)  
 {  
 sql = strsql;  
 t = total;  
 }  
 /// <summary>  
 /// 构造函数  
 /// </summary>  
 /// <param name="strsql">参数查询语句</param>  
 /// <param name="total">字节数</param>  
 /// <param name="value">OBJECT值</param>  
 public accselect(string strsql, int total, object value)  
 {  
 sql = strsql;  
 t = total;  
 v = value;  
 }  
 /// <summary>  
 /// getOdd方法返回OleDbDataReader  
 /// </summary>  
 /// <param name="odt">定义OleDbType类型</param>  
 /// <returns></returns>  
 public OleDbDataReader getOdd(OleDbType odt)  
 {  
 OleDbConnection conns = new OleDbConnection(this.conn);  
 OleDbCommand cmd = new OleDbCommand(this.sql, conns);  
 OleDbParameter parm = new OleDbParameter("temp", odt, this.t);  
 parm.Direction = ParameterDirection.Input;  
 cmd.Parameters.Add(parm);  
 cmd.Parameters[0].Value = this.v;  
 conns.Open();  
 OleDbDataReader oda = cmd.ExecuteReader();  
 cmd.Dispose();  
 return oda;  
 }  
 string Sql  
 {  
 get  
 {  
 return sql;  
 }  
 set  
 {  
 sql = value;  
 }  
 }  
 int T  
 {  
 get  
 {  
 return t;  
 }  
 set  
 {  
 t = value;  
 }  
 }  
 object V  
 {  
 get  
 {  
 return v;  
 }  
 set  
 {  
 v = value;  
 }  
 }  
 }  
}  
//调用方法  
//accselect acc = new accselect();  
//acc.sql = "select * from dtt where d_id=?";  
//acc.t = 10;  
//acc.v = 1;  
//OleDbDataReader oda = acc.getOdd(OleDbType.VarChar);  
//Repeater1.DataSource = oda;  
//Repeater1.DataBind(); 

function acc_sql(sql,adotype,adodct,strlong,values)  
dim connstring,mycmd,myrs,conn   connString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db1.mdb")  
 set 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",adotype,adodct,strlong,values)  
 mycmd.Parameters.Append mypar  
 set myrs = mycmd.Execute  
 set acc_sql=myrs   
end function   
'调用方法  
'dim rs  
'sql="select * from users where id=? order by id"  
'set rs=acc_sql(sql,3,1,4,1)  
'if not rs.eof then  
 'response.Write(rs(1))  
'end if 
Javascript 相关文章推荐
js 单引号 传递方法
Jun 22 Javascript
javascript 写类方式之四
Jul 05 Javascript
javacript使用break内层跳出外层循环分析
Jan 12 Javascript
js实现屏幕自适应局部代码分享
Jan 30 Javascript
jQuery使用元素属性attr赋值详解
Feb 27 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
Feb 23 Javascript
js获取当前日期时间及其它日期操作汇总
Mar 08 Javascript
JavaScript常用本地对象小结
Mar 28 Javascript
bootstrap3 兼容IE8浏览器!
May 02 Javascript
javascript加减乘除的简单实例
Jul 12 Javascript
Require.JS中的几种define定义方式示例
Jun 01 Javascript
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 Vue.js
json跟xml的对比分析
Jun 10 #Javascript
json 定义
Jun 10 #Javascript
json简单介绍
Jun 10 #Javascript
告诉大家什么是JSON
Jun 10 #Javascript
javascript模仿msgbox提示效果代码
Jun 10 #Javascript
javascript 建设银行登陆键盘
Jun 10 #Javascript
js left,right,mid函数
Jun 10 #Javascript
You might like
中国的第一台收音机
2021/03/01 无线电
杏林同学录(八)
2006/10/09 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
symfony表单与页面实现技巧
2015/01/26 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
javascript document.execCommand() 常用解析
2009/12/14 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
2011/07/28 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
2013/11/25 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
开工庆典邀请函范文
2014/01/16 职场文书
理工大学毕业生自荐信范文
2014/02/22 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
上班旷工检讨书
2015/08/15 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
pytorch 如何使用batch训练lstm网络
2021/05/28 Python
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android