我正在学习经典的ASP,似乎无法使我的第一个文件正常工作。我正在尝试将html表单链接到.accdb。有什么建议吗?
'Declare variables
dim formdate, jsia, jsga, yvcia, yvgia, query, errorFlag
'Collect data from form
formdate = Request.Form("date")
jsia = Request.Form("jsia")
jsga = Request.Form("jsga")
yvcia = Request.Form("yvcia")
yvcga = Request.Form("yvcga")
'SQL for Query
query = "INSERT INTO ATTENDANCE VALUES (formdate, jsia, jsga, yvcia, yvcga);"
'Create and open connection to database
'On Error Resume Next
set Connect = Server.CreateObject("ADODB.Connection")
Connect.Provider = "Microsoft.ACE.OLEDB.12.0"
Connect.Open(Server.Mappath("database.accdb"))
'Create recordset
set rs = Server.CreateObject("ADODB.recordset")
'Open recordset run query in database
rs.Open query, Connect, adOpenStatic, adOpenOptimistic
'Display message
Response.Write("<h1>Your form has been received. Thank you.</h1>")
'Close recordset and database connection
rs.close
Connect.close
答案 0 :(得分:0)
您的LockTypeEnum值似乎有误。
更改此行...
rs.Open query, Connect, adOpenStatic, adOpenOptimistic
...到...
rs.Open query, Connect, adOpenStatic, adLockOptimistic
这可能会解决问题。
答案 1 :(得分:0)
除了我在其他答案中的同名建议外,您还需要将查询更改为
query = "INSERT INTO ATTENDANCE VALUES ('"&formdate&"', '"&jsia&"', '"&jsga&"', '"&yvcia&"', '"&yvcga&"');"
单引号是因为你需要在SQL查询中将字符串和日期时间值放在单引号中,而且&符号和双引号都在那里,因为你需要做什么才能将变量连接到插入中查询。
一旦你开始工作,我强烈建议你研究如何保护你的插件免受SQL注入攻击。
我还建议您按照此页面中的步骤启用友好的错误消息 - 它们可以帮助您确定脚本中的内容无效。
答案 2 :(得分:0)
感谢您的回复,我实际上遇到了很多错误。
我没有为我的对象声明变量(rs和Connect)。
另外,我没有将我的页面链接到我的.inc文件所在的公共文件夹。
再次感谢!