使用经典ASP的ADO插入

时间:2010-06-02 12:24:01

标签: asp-classic ado

' 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,它们的行为相同......请帮助..

由于

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

http://msdn.microsoft.com/en-us/library/ms675869(VS.85).aspx提供了一些文档,您可以谷歌搜索“ADO参数”并查找许多相关示例。

答案 2 :(得分:0)

我认为'data_source'应该集中在(并且与Tom Gullen就错误消息达成一致。总是在页面顶部使用Option Explicit)。

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

示例分别为:

data_source = DSN_Database, DSN_User, DSN_Password 

(在DSN配置中找到/设置了这些'DSN_'参数)

或者:

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