ホームページ  >  記事  >  ウェブフロントエンド  >  asp.net および asp_javascript スキルでの ACCESS のパラメーター化されたクエリ

asp.net および asp_javascript スキルでの ACCESS のパラメーター化されたクエリ

WBOY
WBOYオリジナル
2016-05-16 19:03:481241ブラウズ

今日は、ACCESS のパラメーター化クエリを使用した私の方法と経験をいくつか共有します。
これがあなたのインスピレーションになれば幸いです。私が何か間違ったことを書いた場合、専門家がアドバイスをくれることを願っています。

ASP.NET は、OleDbCommand の新しい OleDbParameter を使用してパラメータ クエリを作成します
ASP は、Command の CreateParameter メソッドを使用してパラメータ化されたクエリを作成します
(SQL ストアド プロシージャ クエリもこのメソッドを使用して作成されます)

ASP.NET C# 構文
OleDbParameter parm = new OleDbParameter(Name, Type, Direction, Size, Value);
(実際には 7 つのオーバーロードがあり、VS.net で確認できます)
Parameter
Name はオプションです。パラメータオブジェクト名を表す文字列。
Type オプションの長整数値で、Parameter オブジェクトのデータ型を指定します。
方向はオプション、長整数値、パラメータ オブジェクト タイプを指定します。 。
サイズはオプションで、長整数の値で、パラメーター値の最大長 (文字またはバイト単位) を指定します。
値はオプションのバリアント型で、Parameter オブジェクトの値を指定します。
以下は、ニュース テーブル内の 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";
// cmd.Parameters[0]
conn.Open(); として記述することもできる tsing をクエリします。 ExecuteReader();


ASP VBSCRIPT 構文
パラメータ = command.CreateParameter (名前、型、方向、サイズ、値)
パラメータは上記と同じです
以下は、ニュース テーブル内の tsing によって公開されたすべてのニュースをクエリする例です
--- ------------------------ ------------------------- -



コードをコピー コードは次のとおりです: set conn = Server.CreateObject("Adod​​b.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 値 ----
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 = 13 5
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関数,希望对大家有帮助

复制代码代码如下:

システムを使用; 
System.Data を使用; 
System.Configuration を使用; 
System.Web を使用; 
System.Data.OleDb を使用; 
namespace acc_select
{
///  
/// accselect 的摘要说明
///
 
public class accselect
{
//"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:dqdb1.mdb"
private string conn = ConfigurationManager.ConnectionStrings["tsingConnectionString"] .ToString(); 
public string sql = string.Empty; 
public int t = 4; 
パブリック オブジェクト v = null; 
public accselect()
{
}
///  
/// 构造関数数,传递ACCパラメータ查询语句
///  
/// strsql文字型 
public accselect(string strsql)
{
sql = strsql; 
}
///  
/// 构造関数数,传递ACCパラメータ查询语句
///  
/// パラメータ查询语句 
/// 字节数 
public accselect(string strsql, int total)
{
sql = strsql; 
t = 合計; 
}
///  
/// 构造関数数
///  
/// パラメータ查询语句 
/// 字节数 
/// OBJECT值 
public accselect(string strsql, int total, object value)
{
sql = strsql; 
t = 合計; 
v = 値; 
}
///  
/// getOdd メソッドが OleDbDataReader を返す
///  
/// 定义OleDbType类型 
///  
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(); 
オーダを返します。 
}
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("Adod​​b.Connection")
conn.ConnectionString = connString
conn.open()
set mycmd = Server.CreateObject("ADODB.Command")
mycmd.ActiveConnection =conn
mycmd.CommandText=sql
mycmd.Prepared = true 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
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。