为什么不能执行更新或插入的SQL语句?

goldpony 2003-11-27 12:58:11
请先看下面的代码
<html>
<head>
<title>ASP数据库连接</title>
</head>
<body>
<%
Set MyConn = server.CreateObject("ADODB.Connection")
MyConn.Open "dsn=dd;uid=admin;pwd=780825"
Set Rs=MyConn.Execute("SELECT * FROM TEST")
%>

<table border=1>
<tr>
<%For i = 0 to Rs.Fields.Count - 1%>
<td><% = Rs(i).Name%></td>
<%Next%>
</tr>
<%While Not Rs.EOF%>
<tr>
<%For i = 0 to Rs.Fields.Count - 1%>
<td><% = Rs(i)%></td>
<%Next%>
</tr>
<%Rs.MoveNext
Wend
Rs.Close
MyConn.Close
%>
</table>
</body>
</html>

上面的代测试可以完全没问题。
但问题是:我要用ASP来提交一个表单的内容到数据库中,在执行更新或插入的SQL语句时就出现了问题,比如下面的代码也出现类同的错误:
<html>
<head>
<title>ASP数据库连接</title>
</head>
<body>

<%
Set MyConn = server.CreateObject("ADODB.Connection")
MyConn.Open "dsn=dd;uid=admin;pwd=780825"
sSQL="INSERT INTO TEST(User,ly) VALUES ('ddddd','sssss')" '其它就不必多写了
MyConn.Execute(sSQL)
%>

</body>
</html>
在测试时就出现的数据库连接错误。

sSQL="INSERT INTO TEST(User,ly) VALUES ('ddddd','sssss')"
改成
sSQL="UPDATE TEST SET User='ddddd',ly='sssss') WHERE id='0'"
也一样出现数据库连接错误。
请各位大虾告诉我这到底是怎么的一回事?
...全文
80 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
riffleliu 2003-11-28
  • 打赏
  • 举报
回复
看你的ODBC的配置有沒有問題,你是用的系統DSN還是用戶DSN,或是文件DSN?
配置ODBC的時候加了足夠的權限?在配置的時候是否選中了“只讀”或是“獨占”?
請仔細檢查一下。
goldpony 2003-11-28
  • 打赏
  • 举报
回复
rs.open sql,myconn,1,2
rs.addnew
也试过了,还是不行,具体的错误类型是:
HTTP 500 - 内部服务器错误
Microsoft OLEDB Provider for ODBC Windows

请各位大虾帮看看是什么原因?
nevana 2003-11-27
  • 打赏
  • 举报
回复
set rs=server.creatobject("adodb.recordset")
sql="select * from test"
rs.open sql,myconn,1,2
rs.addnew

rs("User")=user
rs("ly")=ly
rs.update
一定注意“rs.open sql,myconn,1,2”中的游标,1,3是只读的,用1,2就可以了!!
Tal 2003-11-27
  • 打赏
  • 举报
回复
<%
sSQL="INSERT INTO TEST ( User , ly ) VALUES ( 'ddddd' , 'sssss' ) "
sSQL="UPDATE TEST SET User='ddddd',ly='sssss' WHERE id='0'"
'
'sSQL="INSERT INTO TEST(User,ly) VALUES ('ddddd','sssss')"
' ^^^ ^^^
'改成
'sSQL="UPDATE TEST SET User='ddddd',ly='sssss') WHERE id='0'"
' ^^^
%>
DebugXP 2003-11-27
  • 打赏
  • 举报
回复
会不会是没有权限。
leon168 2003-11-27
  • 打赏
  • 举报
回复
没看出什么问题
你看看把user那个字段名改一下看看
holyli 2003-11-27
  • 打赏
  • 举报
回复
看你的数据库规定的字段类型是不是和你添加的类型不同!
tigerwen01 2003-11-27
  • 打赏
  • 举报
回复
<%
Set MyConn = server.CreateObject("ADODB.Connection")
MyConn.Open "dsn=dd;uid=admin;pwd=780825"
sSQL="INSERT INTO [TEST]([User],ly) VALUES ('ddddd','sssss')" '其它就不必多写了
MyConn.Execute(sSQL)
%>
monkeys 2003-11-27
  • 打赏
  • 举报
回复
你用的什么数据库ACCESS 还是 SQL
goldpony 2003-11-27
  • 打赏
  • 举报
回复
数据库已确实是联接成功的,曾用 SELECT 语句代替 UPDATE 或 INSERT 语句,可以成功地连接数据库,并可将库中的数据就读出来呀。
bananasmiling 2003-11-27
  • 打赏
  • 举报
回复
MyConn.Open "dsn=dd;uid=admin;pwd=780825"


看了一下我觉得最主要是检查两个地方:
1: dd 这个数据源你是否测试成功..还有用户名admin, 密码780825; 是不是dd这个数据源的用户名和密码如果你检查没有问题
2.检查数据库是否联接成功..
hamier_hu 2003-11-27
  • 打赏
  • 举报
回复
改成
<%
Set MyConn = server.CreateObject("ADODB.Connection")
MyConn.Open "dsn=dd;uid=admin;pwd=780825"
set rs=server.creatobject("adodb.recordset")
sql="select * from test"
rs.open sql,myconn,1,3
rs.addnew

rs("User")=user
rs("ly")=ly
rs.update

%>
lu_yanfeng 2003-11-27
  • 打赏
  • 举报
回复
如果是其他的Server型的数据库,你就要确认你的连接账号是否有修改数据的权限了:)
lu_yanfeng 2003-11-27
  • 打赏
  • 举报
回复
如果你用的Access数据库的话,建议你去确认一下你的数据库*.mdb文件是否是只读。如果是只读就不能更新。
lovehwq21 2003-11-27
  • 打赏
  • 举报
回复
真是数据库连接出错吗?
没这个可能吧,把代码和出错信息都发出来
孟子E章 2003-11-27
  • 打赏
  • 举报
回复
你的数据库是否匿名允许修改啊??
bingofei 2003-11-27
  • 打赏
  • 举报
回复
把具体错误信息贴出来
整个代码最好也贴出来,这样看不出什么

28,391

社区成员

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

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