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在IE和FF下attachEvent,addEventListener学习笔记
Nov 26 Javascript
在每个匹配元素的外部插入新元素的方法
Dec 20 Javascript
jQuery常用且重要方法汇总
Jul 13 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
Vuejs第十二篇之动态组件全面解析
Sep 09 Javascript
前端构建工具之gulp的配置与搭建详解
Jun 12 Javascript
详谈表单重复提交的三种情况及解决方法
Aug 16 Javascript
微信小程序methods中定义的方法互相调用的实例代码
Aug 07 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
Nov 14 Javascript
浅析Vue.js 中的条件渲染指令
Nov 19 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
Apr 29 Javascript
Vue如何实现变量表达式选择器
Feb 18 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
DC的38部超级英雄动画电影
2020/03/03 欧美动漫
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
js回溯法计算最佳旅行线路代码实例
2019/09/11 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
python回调函数用法实例分析
2015/05/09 Python
Python批量转换文件编码格式
2015/05/17 Python
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
python如何对实例属性进行类型检查
2018/03/20 Python
python调用百度语音识别api
2018/08/30 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
python简单实现AES加密和解密
2019/03/28 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
《与象共舞》教学反思
2014/02/24 职场文书
党校培训自我鉴定范文
2014/03/20 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
防灾减灾活动总结
2014/08/30 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
2014年班组建设工作总结
2014/12/01 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis