标题:[求助]Insert 语句调试出错
只看楼主
zhy589
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-7-2
结帖率:100%
 问题点数:0 回复次数:13 
[求助]Insert 语句调试出错
sql = "insert into user(xm,tel,sj,addr) values('"&rs(0)&"','"&rs(1)&"','"&rs(2)&"','"&rs(3)&"')"  

[此贴子已经被作者于2007-8-9 10:29:00编辑过]


搜索更多相关主题的帖子: Insert 语句 调试 
2007-08-09 10:27
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
得分:0 
sql = "insert into [user] (xm,tel,sj,addr) values ('"&rs(0)&"','"&rs(1)&"','"&rs(2)&"','"&rs(3)&"')"
试试这样行不行
2007-08-09 11:19
盖世豪侠
Rank: 1
等 级:新手上路
威 望:1
帖 子:444
专家分:0
注 册:2007-7-15
得分:0 
rs数组是由多选框得到的话就是从1开始的

sql = "insert into user(xm,tel,sj,addr) values('"&rs(1)&"','"&rs(2)&"','"&rs(3)&"','"&rs(4)&"')"

[flash][/flash]
2007-08-09 11:28
zhy589
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-7-2
得分:0 
回复:(madpbpl)sql =
谢谢相助


改成你这样出现的错误是:
错误类型:
ADODB.Recordset (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
/test/excelTosql1.asp, 第 55 行


第55行代码如下:请问怎么改啊?
rssql.Open sql,conn,1,3

[此贴子已经被作者于2007-8-9 14:12:28编辑过]

2007-08-09 14:10
zhy589
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-7-2
得分:0 
回复:这是我的原代码请大家帮我调试一下吧

'sql 连接驱动
dim conn,connstr,time1,time2,db
db="data/wx.mdb"
time1=timer
Server.ScriptTimeOut = 100
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
Set conn = Server.Createobject("ADODB.Connection")
conn.Open connstr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串。"
Response.End
End If

sub closedb()
conn.close
set conn=nothing
end sub

dim aa
aa=request.form("bbb") '获取传递过来的值

Dim StrConnect,cc
Dim objConn
Dim rs
Dim Sql
cc=0
'Excel连接驱动
aaa="provider=Microsoft.Jet.OLEDB.4.0; Data Source="&aa&";Extended Properties=Excel 8.0"
set StrConnect=CreateObject("ADODB.Connection")
StrConnect.Open aaa
Set objConn=CreateObject("ADODB.Connection")
objConn.Open StrConnect

'注意 表名一定要以下边这种格试 "[表名$]" 书写
Set rs = Server.CreateObject("ADODB.Recordset")
Sql="select * from [sheet1$]"
rs.Open Sql,StrConnect,2,2
IF rs.Eof And Rs.Bof Then
response.Write("<script>alert('没有资料可以导入!');history.go(-1)</script>")
else
Do While Not rs.EOF
'列出表内信息
response.write"excel数据为: <br>"
response.write ""&rs(0)&"-"&rs(1)&"-"&rs(2)&""
response.write"<br>"
set rssql=server.CreateObject("adodb.recordset")
' sql="select * from user"
sql = sql = "insert into [user] (xm,tel,sj,addr) values ('"&rs(0)&"','"&rs(1)&"','"&rs(2)&"','"&rs(3)&"')"
rssql.Open sql,conn,2,2
rssql.AddNew
if rs(0)<>"" then
rssql(1)=rs(0)
end if
if rs(1)<>"" then
rssql(2)=rs(1)
end if
if rs(2)<>"" then
rssql(3)=rs(2)
end if
if rs(4)<>"" then
rssql(4)=rs(3)
end if

rssql.Update
Rs.MoveNext
Loop
rssql.close
set rssql=nothing
end if
response.Write "<script language=javascript>alert('资料导入成功!\n共有"&cc&"条数据导入');history.go(-1)</script>"

[此贴子已经被作者于2007-8-9 14:25:49编辑过]

2007-08-09 14:24
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
得分:0 
sql = "insert into [user] (xm,tel,sj,addr) values ('"&rs(0)&"','"&rs(1)&"','"&rs(2)&"','"&rs(3)&"')"
改成
sql = "insert into [user] (xm,tel,sj,addr) values ('"&rs(0)&"',"&rs(1)&",'"&rs(2)&"','"&rs(3)&"')"
试试这样行不行
可能是你和tel字段是数字,所以才冲突的。
或者不改程序,把tel字段改为文本试试。
2007-08-09 15:33
zhy589
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-7-2
得分:0 
回复:(madpbpl)sql =
我把程序的下部分改成这样了INSERT语句也改了出现错误如下:
错误类型:
ADODB.Recordset (0x800A0E78)
对象关闭时,不允许操作。
/test/excelTosql1.asp, 第 56 行

56行是 rssql.AddNew

请指教:
改程序如下
Do While Not rs.EOF
'列出表内信息
response.write ""&rs(0)&"-"&rs(1)&"-"&rs(2)&"-"&rs(3)&""
cc=cc+1
response.write"<br>"
'添加到数据库只能感
set rssql=server.CreateObject("adodb.recordset")
' sql="select * from user"
sql = "insert into [user] (xm,tel,sj,addr) values ('"&rs(0)&"',"&rs(1)&",'"&rs(2)&"','"&rs(3)&"')"
rssql.Open sql,conn,1,3
rssql.AddNew
if rs(0)<>"" then
rssql(1)=rs(0)
end if
if rs(1)<>"" then
rssql(2)=rs(1)
end if
if rs(2)<>"" then
rssql(3)=rs(2)
end if
if rs(4)<>"" then
rssql(4)=rs(3)
end if

rssql.Update
rssql.close
set rssql=nothing
Rs.MoveNext
Loop

end if
response.Write "<script language=javascript>alert('资料导入成功!\n共有"&cc&"条数据导入');history.go(-1)</script>"
2007-08-09 15:47
阳光白雪
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:39
帖 子:2220
专家分:0
注 册:2005-11-18
得分:0 

[QUOTE]Do While Not rs.EOF
'列出表内信息
response.write ""&rs(0)&"-"&rs(1)&"-"&rs(2)&"-"&rs(3)&""
cc=cc+1
response.write"<br>"
'添加到数据库只能感
set rssql=server.CreateObject("adodb.recordset")
sql="select * from [user]"
'sql = "insert into [user] (xm,tel,sj,addr) values ('"&rs(0)&"',"&rs(1)&",'"&rs(2)&"','"&rs(3)&"')"
rssql.Open sql,conn,3,3
rssql.AddNew
if rs(0)<>"" then
rssql(1)=rs(0)
end if
if rs(1)<>"" then
rssql(2)=rs(1)
end if
if rs(2)<>"" then
rssql(3)=rs(2)
end if
if rs(4)<>"" then
rssql(4)=rs(3)
end if

rssql.Update
rssql.close
set rssql=nothing
Rs.MoveNext
Loop
end if
response.Write "<script language=javascript>alert('资料导入成功!\n共有"& cc &"条数据导入');history.go(-1)</script>"[/QUOTE]

[此贴子已经被作者于2007-8-9 15:52:32编辑过]


专注于WEB前端交互平台开发:[url=http://blog./]blog.[/url](富客户端技术(RIA)交流平台)
2007-08-09 15:52
madpbpl
Rank: 4
等 级:贵宾
威 望:11
帖 子:2876
专家分:244
注 册:2007-4-5
得分:0 

你想把execl里的数据导入到数据库中呀!
你去网上先搜一下,我现在有点忙,晚上有空再试试,我没做过这样的例子。
[url]http://www.845821.com/sc/wyjd/200705/sc_183468.html[/url]
参考一下上面这个

2007-08-09 16:04
zhy589
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-7-2
得分:0 
回复:(阳光白雪)[QUOTE]Do While Not rs.EOF \'列...
谢谢斑竹 非常感谢我调试出来了!好激动啊!
2007-08-09 16:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-161403-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.170963 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved