Microsoft Office Access是由微軟發布的關系數據庫管理系統。它結合了 MicrosoftJet Database Engine 和 圖形用戶界面兩項特點,是 Microsoft Office 的系統程序之一。Microsoft Office Access是微軟把數據庫引擎的圖形用戶界面和軟件開發工具結合在一起的一個數據庫管理系統。它是微軟OFFICE的一個成員, 在包括專業版和更高版本的office版本里面被單獨出售。2018年9月25日,最新的微軟Office Access 2019在微軟Office 2019里發布。 最近因項目需要用ACCESS做數據庫開發WEB項目看論壇上還許多人問及ACCESS被注入的安全問題許多人解決的方法仍然是用Replace替換特殊字符,然而這樣做也并沒有起到太大做用.今天我就把我用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發表的新聞 ------------------------------------------------------ et 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 Microsoft Access在很多地方得到廣泛使用,例如小型企業,大公司的部門。 |
溫馨提示:喜歡本站的話,請收藏一下本站!