为什么我无法向所有访问数据库表添加新记录?
问题描述:
我只是想知道为什么我不能将新记录添加到我的所有访问数据库表中。我使用下面显示的html表单和经典的ASP代码写入我的表格之一,并且它完美地工作。为什么我无法向所有访问数据库表添加新记录?
HTML表单代码:
<form method="post" action="empresas.asp">
<table>
<tr>
<td>Código:</td>
<td><input name="custid"></td>
</tr><tr>
<td>Empresa:</td>
<td><input name="compname"></td>
</tr><tr>
<td>Teléfono:</td>
<td><input name="contname"></td>
</tr><tr>
<td>Email:</td>
<td><input name="address"></td>
</tr><tr>
<td>Descripción:</td>
<td><input name="descr"></td>
</tr>
</table>
<br><br>
<input type="submit" value="Add New">
<input type="reset" value="Cancel">
</form>
传统的ASP文件编号:
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/administracion1.mdb"
sql="INSERT INTO empresas (codigo,nombre,"
sql=sql & "telefono,email,descripcion)"
sql=sql & " VALUES "
sql=sql & "('" & Request.Form("custid") & "',"
sql=sql & "'" & Request.Form("compname") & "',"
sql=sql & "'" & Request.Form("contname") & "',"
sql=sql & "'" & Request.Form("address") & "',"
sql=sql & "'" & Request.Form("descr") & "')"
on error resume next
conn.Execute sql,recaffected
if err<>0 then
Response.Write("No update permissions!")
else
Response.Write("<h3>" & recaffected & " record added</h3>")
end if
conn.close
%>
这些很好地工作。然而,当试图使用另一个非常相似的表单和表格来做同样的事情时,我会看到ASP代码中显示的消息(“没有更新权限!”),我真的不明白为什么。
答
您可以通过使用获得实际的错误:
的Response.Write(“!没有更新权限 - ” & Err.Description)
您必须禁用“的错误......”看到详细信息或张贴错误的代码而不是正确的代码。并注意SQL注入! –
谢谢。我希望它能起作用。 –
如果你可以写入一些表,但不是在同一个mdb/accdb文件中的其他人,那么我猜想问题在于数据库,而不是你的传统ASP代码,这对我来说看起来OK。正如安东尼奥说,你应该评论“错误恢复下一步” - 你可能会得到一个错误消息,为您提供一些线索。 – John