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 相关文章推荐
新老版本juqery获取radio对象的方法
Mar 01 Javascript
JS保存、读取、换行、转Json报错处理方法
Jun 14 Javascript
jQuery之选择组件的深入解析
Jun 19 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
Mar 03 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
Mar 03 Javascript
javascript显示中文日期的方法
Jun 18 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
Jun 12 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
Oct 24 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
Nov 23 Javascript
js读取json文件片段中的数据实例
Mar 09 Javascript
jQuery简单实现对数组去重及排序操作实例
Oct 31 jQuery
JavaScript常见继承模式实例小结
Jan 11 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
合作指挥官:孟斯克
2020/03/16 星际争霸
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
vuex入门最详细整理
2020/03/04 Javascript
python 中文乱码问题深入分析
2011/03/13 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
开源Web应用框架Django图文教程
2017/03/09 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
python获取地震信息 微信实时推送
2019/06/18 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
基于python监控程序是否关闭
2020/01/14 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
使用Python发现隐藏的wifi
2020/03/04 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
StubHub巴西:购买和出售您的门票
2016/07/22 全球购物
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
大学生个人自荐信样本
2014/03/02 职场文书
微笑服务演讲稿
2014/05/13 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
文化大革命观后感
2015/06/17 职场文书
2016年员工年度考核评语
2015/12/02 职场文书