使用ADO插入经典ASP

问题描述:

' Setting variables 
Dim con, sql_insert, data_source 

data_source = "project_db" 
sql_insert = "insert into cart (UserID,Count,ProductName,ProductDescription,ProductPrice) values ('"&user_id&"','"&count&"','"&product_name&"','"&product_description&"','"&product_price&"')" 

' Creating the Connection Object and opening the database 
Set con = Server.CreateObject("ADODB.Connection") 
con.Open data_source 

' Executing the sql insertion code 
con.Execute sql_insert 

' Done. Now Close the connection 
con.Close 
Set con = Nothing 

正如您所见,它是一个简单的代码。它在我的本地主机上工作了5或6次。但现在它不起作用。有什么问题 ?我想,这是关于我的数据库或内存。我在2个不同的电脑设置2个不同的IIS和他们的行为一样......请帮助..使用ADO插入经典ASP

感谢

+0

给出有关错误的一些更详细的信息你得到 – Smur 2010-06-02 12:26:06

+0

Microsoft OLE DB提供程序的ODBC驱动程序错误“80040e07”,我收到。 – 2010-06-02 12:46:54

+0

插入SQL中的嵌套引号有什么用?你为什么不使用ADO参数? – 2010-06-02 16:21:27

它是否给你的错误信息?确保您插入的所有值实际上都有值,并且不为空或为空。你可以通过response.write检查所有的值,然后response.end来查看它们是否包含任何值。

我敢打赌这是一个数据相关的错误。您应该使用ADO参数。这些将确保输入中无关的SQL不友好字符不会对数据库操作产生不利影响。您还应该使用它们来防范SQL注入问题。

有些文档可在http://msdn.microsoft.com/en-us/library/ms675869(VS.85).aspx处获得,您可以在谷歌搜索“ADO参数”并找到许多相关示例。

我相信'data_source'应该关注(并且与Tom Gullen就错误消息达成一致,请始终在页面顶部使用Option Explicit)。

con.Open要么在'data_source'中传递一些DSN参数或数据库连接字符串。

例子,分别为:

data_source = DSN_Database, DSN_User, DSN_Password 

(在你的DSN配置这些 'DSN_' 参数被发现/套)

OR:

data_source = "Driver={SQL Server};Server=server.domain.com;Database=project_db;uid=MyUser;pwd=MyPass;""