2014-03-12 89 views
0

我正在使用ASP經典和MS Access數據庫。我這裏有在ASP經典代碼,我添加數據:ASP經典更新和同時添加數據庫數據

<% 

Dim con, rs, sql 

Set con = Server.CreateObject("ADODB.Connection") 
Set rs = Server.CreateObject("ADODB.Recordset") 

con.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("dbPayroll.mdb") &"" 
sql="SELECT * FROM tblPayslipRec" 

rs.LockType = 3 
rs.CursorType = 2 

rs.Open sql, con 

    rs.AddNew 
    rs.fields("ps_date")= request.form("dnt") 
    rs.fields("emp_id")= request.form("eid") 
    rs.fields("emp_name")= request.form("name") 
    rs.Update 

    response.redirect "makepayslip2.asp" 

rs.Close 
SET rs = Nothing 
SET con= Nothing 
%> 

,我需要包括上面,我會在桌子上tblPayslipRec更新一個欄的代碼。

是否可以做到這一點?如果是,請幫助我。

+1

這並不是說我對Web應用程序的MS Access的粉絲,但你不應該」不要讓你的MDB文件可以從你的網站的路徑訪問,這將在稍後回來咬你。將配置值與物理路徑一起存儲到網站外的MDB文件,並將「IUSR」帳戶權限授予此位置或使用DSN。目前,您的網站正在向全世界展示'/ dbPayroll.mdb'(無論它是Internet還是Intranet,它仍然暴露在外)。 – Lankymart

回答

0

你爲什麼不只是使用一個標準的更新查詢,如

sql = "update tblPayslipRec set name = '"& request.form("name") &"' where id = "& request.form("id") 

con.Execute sql 

我這裏假設你的主鍵字段被稱爲「ID」

這看起來像它的一部分內部網,所以SQL注入攻擊可能不是一個擔心,但如果這是一個面向公衆的網頁,我強烈建議在將數據發送到數據庫之前將表單數據清理乾淨。此外,您使用的是ODBC連接字符串,其工作原理,但OLEDB連接可能是一個更好的選擇 - 例如

"PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="& Server.MapPath("dbPayroll.mdb") 
0
Dim con, rs, sql 

Set con = Server.CreateObject("ADODB.Connection") 
Set rs = Server.CreateObject("ADODB.Recordset") 

con.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("dbPayroll.mdb") &"" 
sql="SELECT * FROM tblPayslipRec" 

rs.LockType = 3 
rs.CursorType = 2 

rs.Open sql, con 
rs.AddNew 
rs.fields("ps_date")= request.form("dnt") 
rs.fields("emp_id")= request.form("eid") 
rs.fields("emp_name")= request.form("name") 
rs.Update 
rs.close 
set rs = nothing 
' Now do your record update 

set rs = Server.CreateObject("ADODB.Recordset") 
sql="SELECT * FROM tblPayslipRec where id = " & Your_Record_Id 
rs.open(sql,conn,1,3) 
if not (rs.eof or rs.bof) then 
rs.update 
rs("yourField") = "What You Want To Update It With") 
rs.update 
else 
' No record found to update 
end if 

response.redirect "makepayslip2.asp" 

rs.Close 
SET rs = Nothing 
SET con= Nothing