오늘은 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은 선택 사항입니다. Parameter 개체 이름을 나타내는 문자열입니다.
선택 사항인 긴 정수 값 유형은 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()
cmd로 작성할 수도 있는 tsing을 쿼리합니다. ExecuteReader();
ASP VBSCRIPT 구문
설정 매개변수 = command.CreateParameter(Name, Type, Direction, Size, Value)
매개변수는 위와 동일합니다
다음은 뉴스 테이블에서 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 값 ----
Const adParamUnknown = 0
Const adParamInput = 1
Const adParamOutput = 2
Const adParamInputOutput = 3
상수 adParamReturnValue = 4
'---- DataTypeEnum 값 ----
Const adEmpty = 0
Const adTinyInt = 16
Const adSmallInt = 2
Const adInteger = 3
Const adBig 정수 = 20
Const adUnsignedTinyInt = 17
Const adUnsignedSmallInt = 18
Const adUnsignedInt = 19
Const adUnsignedBigInt = 21
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 5
상수 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 사용;
네임스페이스 acc_select
{
///
/// acselect 적摘要说명
/// 공용 클래스 accselect
{
//"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:dqdb1.mdb"
private string conn = ConfigurationManager.ConnectionStrings["tsingConnectionString"] .ToString();
공개 문자열 sql = string.Empty;
공개 int t = 4;
공개 객체 v = null;
public acselect()
{
}
///
/// 构造函数,传递ACC参数查询语句
/// ///
strsql字符型
공용 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类型
/// <반품>반품>
공용 OleDbDataReader getOdd(OleDbType odt)
{
OleDbConnection conns = new OleDbConnection(this.conn);
OleDbCommand cmd = 새 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();
반환 oda;
}
string Sql
{
get
{
return sql;
}
설정
{
sql = value;
}
}
int T
{
get
{
return t;
}
설정
{
t = 값;
}
}
객체 V
{
get
{
return v;
}
설정
{
v = 값;
}
}
}
}
//调사용방법
//accselect acc = new accselect();
//acc.sql = "d_id=?dtt에서 *를 선택하세요.";
//acc.t = 10;
//acc.v = 1;
//OleDbDataReader oda = acc.getOdd(OleDbType.VarChar);
//Repeater1.DataSource = oda;
//Repeater1.DataBind();
함수 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")
세트 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 함수
'调사용방법
'dim rs
'sql="select * from users 여기서 id=? id로 주문 "
'set rs=acc_sql(sql,3,1,4,1)
'if not rs.eof then
'response.Write(rs(1))
'end if