一段数据写不进ACCESS数据库的问题

xbolton 2008-06-03 05:47:24
ASP+ACCESS也搞了蛮长时间了,今天碰到个怪问题
一个页面,同一个数据库,插入数据至2个表,奇怪的是上面一个addnew怎么运行都写不进数据库。单独拿出来也不行,后来测试了直接开新页面用insert into一段测试数据也不行。表的结构我都看过了,全改成允许空字符串了。到底怎么回事啊?
代码估计没问题的,请大家帮我分析下什么情况

贴一下代码


'保存订单
Set Add_Order = server.CreateObject("ADODB.Recordset")
Sql="select * from Order"
Add_Order.open Sql,Shop_Conn,1,3
Add_Order.addnew

Add_Order("OrderNumber")=OrderNumber
Add_Order("UserName")=A_UserName
Add_Order("RealName")=A_RealName
Add_Order("Province")=A_Province
Add_Order("City")=A_City
Add_Order("Address")=A_Address
Add_Order("PostCode")=A_PostCode
Add_Order("Tel")=A_Tel
Add_Order("deliver")=A_deliver
if A_deliver=1 then
Add_Order("Freight")=A_Freight
end if
Add_Order("Total")=A_Total

Add_Order.update
Add_Order.close
Set Add_Order=Nothing


'保存详细订购信息
ProductList=replace(session("ProductList")," ","")
Session.Contents.Remove("ProductList")

Set Rs_Product = server.CreateObject("ADODB.Recordset")
Sql="select * From Product where ProductId in ("& ProductList &")"
Rs_Product.open Sql,Shop_Conn,1,1
do while not Rs_Product.eof

Set Add_Detail = server.CreateObject("ADODB.Recordset")
Sql="select * From Order_Detail"
Add_Detail.open Sql,Shop_Conn,1,3

Add_Detail.addnew

Add_Detail("OrderNumber")=OrderNumber
Add_Detail("ProductId")=Rs_Product("ProductId")
Add_Detail("ProductNumber")=Rs_Product("ProductNumber")
Add_Detail("ProductName")=Rs_Product("ProductName")
Add_Detail("Unit")=Rs_Product("Unit")
Add_Detail("Price")=Rs_Product("Price")
Add_Detail("Weight")=Rs_Product("Weight")
Add_Detail("Quantity")=session("Q_"&Rs_Product("ProductId"))
Session.Contents.Remove("Q_"&Rs_Product("ProductId"))
Add_Detail.update

Rs_Product.movenext
loop

Add_Detail.close
Set Add_Detail=Nothing
Rs_Product.close
Set Rs_Product=Nothing
...全文
156 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xbolton 2008-06-04
  • 打赏
  • 举报
回复

结帖送分
xbolton 2008-06-04
  • 打赏
  • 举报
回复
傻了,我真……

表名用Order,SQL排序

改名后解决了
xbolton 2008-06-04
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 pkkquan 的回复:]
注意一个是否“主键”问题.....以前遇过这种问题...
[/Quote]
请详细说明一下
pkkquan 2008-06-04
  • 打赏
  • 举报
回复
注意一个是否“主键”问题.....以前遇过这种问题...
xbolton 2008-06-04
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ziziszj 的回复:]
if A_deliver=1 then
Add_Order("Freight")=A_Freight
end if
估计是这句出了问题,如果Adeliver <>1呢??
不等于1的话Add_Order("Freight")就没能写入数据库,允许吗??
[/Quote]
这句加不加没问题的
现在我就算开另一个页面,全部写入字符串常量都不行
ziziszj 2008-06-04
  • 打赏
  • 举报
回复
if A_deliver=1 then
Add_Order("Freight")=A_Freight
end if
估计是这句出了问题,如果Adeliver<>1呢??
不等于1的话Add_Order("Freight")就没能写入数据库,允许吗??
xbolton 2008-06-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jhwcd 的回复:]
检查有问题的字段先注释掉看看。
比如Add_Detail("Unit")=Rs_Product("Unit")如果这句有问题就先注释掉看看。
[/Quote]
这一段都是正常的,是Add_Order那一段写不进去
xbolton 2008-06-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yuezixi 的回复:]
有没有哪个字段是流水号,自动递增
[/Quote]
OrderId是自动递增的,不用赋值的吧,程序里也没有赋值
xbolton 2008-06-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 luxu001207 的回复:]
用Response.Write(" <script>alert('可以执行到这里???'); </script>")
一步一步的调试看看问题出在哪里
[/Quote]
整个页面都执行了,唯独Add_Order.addnew写不进数据库
tianyer 2008-06-03
  • 打赏
  • 举报
回复
最后的我直接粘贴了,应该是:

Add_Detail.Requery
tianyer 2008-06-03
  • 打赏
  • 举报
回复
'保存订单
Set Add_Order = server.CreateObject("ADODB.Recordset")
Sql="select * from Order"
Add_Order.open Sql,Shop_Conn,1,3
Add_Order.addnew

Add_Order("OrderNumber")=OrderNumber
Add_Order("UserName")=A_UserName
Add_Order("RealName")=A_RealName
Add_Order("Province")=A_Province
Add_Order("City")=A_City
Add_Order("Address")=A_Address
Add_Order("PostCode")=A_PostCode
Add_Order("Tel")=A_Tel
Add_Order("deliver")=A_deliver
if A_deliver=1 then
Add_Order("Freight")=A_Freight
end if
Add_Order("Total")=A_Total

Add_Order.update

'新增加的行
Add_Order.requery
'''''''''''''''

Add_Order.close
Set Add_Order=Nothing


'保存详细订购信息
ProductList=replace(session("ProductList")," ","")
Session.Contents.Remove("ProductList")

Set Rs_Product = server.CreateObject("ADODB.Recordset")
Sql="select * From Product where ProductId in ("& ProductList &")"
Rs_Product.open Sql,Shop_Conn,1,1
do while not Rs_Product.eof

Set Add_Detail = server.CreateObject("ADODB.Recordset")
Sql="select * From Order_Detail"
Add_Detail.open Sql,Shop_Conn,1,3

Add_Detail.addnew

Add_Detail("OrderNumber")=OrderNumber
Add_Detail("ProductId")=Rs_Product("ProductId")
Add_Detail("ProductNumber")=Rs_Product("ProductNumber")
Add_Detail("ProductName")=Rs_Product("ProductName")
Add_Detail("Unit")=Rs_Product("Unit")
Add_Detail("Price")=Rs_Product("Price")
Add_Detail("Weight")=Rs_Product("Weight")
Add_Detail("Quantity")=session("Q_"&Rs_Product("ProductId"))
Session.Contents.Remove("Q_"&Rs_Product("ProductId"))
Add_Detail.update

Rs_Product.movenext
loop

'新增加的行
Add_Order.requery
'''''''''''''''

Add_Detail.close
Set Add_Detail=Nothing
Rs_Product.close
Set Rs_Product=Nothing

代码改过了,测试
jhwcd 2008-06-03
  • 打赏
  • 举报
回复
检查有问题的字段先注释掉看看。
比如Add_Detail("Unit")=Rs_Product("Unit")如果这句有问题就先注释掉看看。
yuezixi 2008-06-03
  • 打赏
  • 举报
回复
有没有哪个字段是流水号,自动递增
Atai-Lu 2008-06-03
  • 打赏
  • 举报
回复
用Response.Write("<script>alert('可以执行到这里???');</script>")
一步一步的调试看看问题出在哪里
xbolton 2008-06-03
  • 打赏
  • 举报
回复
字段也没问题,大都是字符串类型的
数字类型的ACCESS自动默认值是0
jhwcd 2008-06-03
  • 打赏
  • 举报
回复
检查一下,你的字段类型。
jacklinchen 2008-06-03
  • 打赏
  • 举报
回复
有的可能是数字型的字段,加入时可将其赋值为0试试

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧