ACCESS的參數(shù)化查詢

字號:

最近因項目需要用Access做數(shù)據(jù)庫開發(fā)Web項目
    ACCESS被注入的安全問題
    許多人解決的方法仍然是用Replace替換特殊字符,然而這樣做也并沒有起到太大做用
    今天就把用ACCESS參數(shù)化查詢的一些方法和經(jīng)驗和大家分享,希望對大家有所啟發(fā)
    ASP.net 用OleDbCommand的new OleDbParameter創(chuàng)建參數(shù)貨查詢
    ASP用Command的CreateParameter 方法創(chuàng)建參數(shù)化查詢
    (SQL儲存過程查詢也是用這個方法建立的)
    ASP.NET C#語法
    OleDbParameter parm = new OleDbParameter(Name, Type, Direction, Size, Value);
    (實際上它有七重載大家具體大家可以在VS.net里面就可以看到)
    參數(shù)
    Name 可選,字符串,代表 Parameter 對象名稱。
    Type 可選,長整型值,指定 Parameter 對象數(shù)據(jù)類型。
    Direction 可選,長整型值,指定 Parameter 對象類型。。
    Size 可選,長整型值,指定參數(shù)值長度(以字符或字節(jié)數(shù)為單位)。
    Value 可選,變體型,指定 Parameter 對象的值。
    以下是實例,查詢news表中所有tsing發(fā)表的新聞
    -------------------------------------------------------
    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;
    //指定其類型輸入?yún)?shù)
    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)
    參數(shù)同上