ASP向ACCESS插入数据出错

作者&投稿:杜钓 (若有异议请与网页底部的电邮联系)
用asp向access插入数据出错~

0x80040E14错误是 插入时存在空值情况。
如果数据库定义了某字段不能为空,当你插入时该变量为空就会出现0x80040E14错误。

您补充的内容中 注意到了 数据类型的情况,但是您没有考虑到数据为空的情况,当数据为空,比如Request("bylw")没有赋值 而你强行Insert就会出现错误,所以最好在插入数据前检查是否为空

Dim Bylw
byLw = Request("bylw")
if len(bylw)=0 then ……

另外ASP中插入用Insert很不直观,特别是数据多的情况,出错也不好修改,建议用以下方式进行:

<%
Set Conn = Server.CreateObject("Adodb.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("tongji.mdb")
Set Rs = Server.CreateObject("Adodb.Recordset")
SQL = "Select * from [xtgsxs]"
Rs.Open SQL,Conn,1,3 '注意最后一个为3,表示可写状态
Rs.addnew
Rs("字段名1") = 值1
……
Rs("字段名n") = 值n
Rs.Update
Set Rs = Nothing
Set Conn = Nothing
%>

建议你学会调试,你先看看你的表单提交是否把数据提交过来了,用response.write写出来试试!


nowfile_name=request.form("file_dis") '这里可以精简写成request("file_dis")即可
nowfile_dis=request.form("file_dis") '这里可以精简写成request("file_dis")即可
response.write (""&nowfile_name&"")
response.write (nowfile_name)
response.end '程序到此结束看是否能输出表单提交的数据值。如果程序执行的结果没有输出相关的数据的话,那就需要检查你的表单提交区域的代码了。

set con=Server.CreateObject("adodb.connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../../data/data.mdb")
con.Open connstr
set rs=Server.CreateObject("adodb.recordset")
sql="select * from file"
rs.Open sql,con , 1, 3
rs.AddNew
rs("file_name")=request.form("file_dis")
rs("file_dis")=request.form("file_dis")
rs.Update
rs.close
set rs=nothing
con.Close
set con=nothing

在数据库上点右键>属性>安全>添加>输入"Everyone">确定>选择"写入">确定

如果没有发现安全选项卡~`那么在文件夹窗口中点工具>文件夹选项>查看>点消里面"使用简单文件夹共享(推荐)"前面的钩>确定>再执行上面的步骤~`

一、如果是window server 2003 那么:
1.确定站点目录所在的盘符格式为NTFS
2.确定数据库文件不是只读属性
3.用鼠标右键单击站点文件夹,在弹出菜单中选择属性,弹出属性对话框
4.在属性对话框中切换到“安全页”
5.单击“添加”按钮,添加Everyone用户,然后给Everyone用户添加所有权限
6.单击“确定”按钮完成操作
二、如果是xp 那么:
把站点目录所在的盘符格式改为FAT32

在工具--文件夹选项--查看--不选中使用简单文件共享(推荐)(即前面没有勾).然后再到你用IIS打开的文件夹,右键,属性--安全--添加一个Everyone--设置为完全控制.就可以了!

sql="insert into shinfo (qymc,fzr,wzym,jbrxm,jbrdh,jbrcz,jbryx,txdz,yb,wzsjdw,dh,rzslbh,jbrqm,fzrqm,jbrsj,fzrsj) values ('"&qymc&"','"&fzr&"','"&wzym&"','"&jbrxm&"','"&jbrdh&"','"&jbrcz&"','"&jbryx&"','"&txdz&"','"&yb&"','"&wzsjdw&"','"&dh&"','"&rzslbh&"','"&jbrqm&"','"&fzrqm&"','"&jbrsj&"','"&fzrsj&"')"
conn.execute sql
conn.close
set conn=nothing
response.Write("<script language='javascript'>alert('提交成功!请等待审核!');history.go(-1);</script>")

改成 rs.open "sql",conn,1,3
rs.addnew
..
试试!

数据库没有给权限,给数据库一个iis权限用户吧!

ASP如何向Access数据库中插入一条数据?
答:Set conn=Server.CreateObject("ADODB.Connection")conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("这里写上数据库的地址")set rs=server.CreateObject("adodb.recordset")sel="insert into 表名(这里写上字段名,如果是多个用“,”分割) value(字段对应的值)"rs...

asp向ACCESS添加数据的"&符号一般怎样使用
答:+ 连接的两边都得是字符串才行;& 不限制格式,它会自动把数字等其它格式转成相应的字符串。sql语句一般不要这样写,很容易出错。经过多年的实践,找到一个比较好一点的办法:sql = "INSERT INTO [tablename]([title],[words],[num) VALUES('$title$','$words$',$num$)"replace(sql,"$title...

asp向access插入多条记录如何做??
答:得到记录的方法。是可以在用户页面提交的表单中,加入元素。value="",""里面的值一般是数据库id,可以在生成用户页面的时候用asp写入。如:<input type="hidden" name="hid_1" value="<%=rs("id")%>"> <%rs.movenext%> <input type="hidden" name="hid_2" value="<%=rs("id")%>...

ASP向ACCESS插入数据出错
答:在数据库上点右键>属性>安全>添加>输入"Everyone">确定>选择"写入">确定 如果没有发现安全选项卡~`那么在文件夹窗口中点工具>文件夹选项>查看>点消里面"使用简单文件夹共享(推荐)"前面的钩>确定>再执行上面的步骤~`

用asp如何同时向ACCESS数据库中添加多条记录
答:Sub WriteData()Dim recCnt,i Dim UserID,UserName,Score Dim SqlStr //用于动态取得需要录入多少条记录 recCnt=cint(request.form("recCnt"))//批量录入数据 for i=1 to recCnt UserID=trim(request.form("UserID")(i))UserName=trim(request.form("UserName")(i))score=trim(request.form...

ASP中向ACCESS中插入数据,提示成功。但是数据库中没有
答:你这样写,根本不知道执行SQL语句是否成功。Execute其实有两个参数,第二个参数就是执行SQL语句的结果,1为成功0为失败。sql="insert into user(y_user,y_pass) values('"&name&"','"&password&"')"cn.Execute sql,result if result=1 then response.write "添加成功。"else response.write "...

asp插入数据保存到access数据库
答:首先确保已经做过数据库连接了,假设连接变量是conn 最简单的方法:conn.execute(insert into table(字段1,字段2,字段3,字段4) values(值1,值2,值3,值4))方法2:set rs = server.CreateObject("adodb.recordset")rs.Open "表名",conn,3,3 rs.addnew rs("字段1") = 值1 rs("字段2")...

关于ASP数据写入ACCESS
答:",使获取变量的""和sql语句的""不会产生冲突.如果你要插入当前时间和日期用now()函数.SELECT * FROM produce order by listid Asc 意思是 按listid升序顺序从produce表中查询数据信息.a href="123.htm" 一对标签用来定义超链接,中间内容是你要链接的页面地址,点击可以跳转到相应页面....

asp文本框内容怎么存入access数据库
答:现写一段吧,挺简单的 首先链接数据库 然后再获取文本框输入的内容再写入数据库就OK了 列表菜单的话直接把它的value值写进去就OK了,跟文本框的一样 试试吧 <!--#include file="conn.asp"--> < if request.querystring("text")="ok" then usrrname=request.form("username")set rs=...

ASP批量写入ACCESS数据库的问题
答:strSql"update vrits_diylist set title= &rs("title"),"&"money1="&rs("price")cmd.CommandText=strSql cmd.Execute 'set rs=server.createobject("adodb.recordset")'rs.open strSql,db,1,3 'rs.update 这是最标准的数据操作,你试试吧,我的例子只给你参考,不要直接复制 ...