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 相关文章推荐
不同浏览器对回车提交表单的处理办法
Feb 13 Javascript
javascript中的变量是传值还是传址的?
Apr 19 Javascript
Jquery Change与bind事件代码
Sep 29 Javascript
JS自调用匿名函数具体实现
Feb 11 Javascript
js字符串日期yyyy-MM-dd转化为date示例代码
Mar 06 Javascript
JavaScript添加随滚动条滚动窗体的方法
Feb 23 Javascript
Jquery根据浏览器窗口改变调整大小的方法
Feb 07 Javascript
vue 请求后台数据的实例代码
Jun 22 Javascript
使用axios实现上传图片进度条功能
Dec 21 Javascript
在vue里面设置全局变量或数据的方法
Mar 09 Javascript
cnpm加速Angular项目创建的方法
Sep 07 Javascript
JavaScript 原型与原型链详情
Nov 02 Javascript
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
PHP经典的给图片加水印程序
2006/12/06 PHP
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
javascript事件的绑定基础实例讲解(34)
2017/02/14 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
2018/07/25 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
Python的pygame安装教程详解
2020/02/10 Python
Python configparser模块操作代码实例
2020/06/08 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
Shell编程面试题
2016/05/29 面试题
普通大学毕业生自荐信
2013/11/04 职场文书
应用心理学个人的求职信
2013/12/08 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
Redis三种集群模式详解
2021/10/05 Redis
springboot中的pom文件 project报错问题
2022/01/18 Java/Android