插入数据库,对象必需字符串 [英] Insert into db, Object Required String

查看:11
本文介绍了插入数据库,对象必需字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在数据库中插入一些数据,有问题..它给了我一个错误:

来源行:

SET sql="Insert Into Products (ProductName,SupID,CatID,Price,Pic,Description) Values('"&pName&"','"&pbId&"','"&pcId&"','"&price&"','"&pic&"','"&desc&"')"

<块引用>

描述:所需对象:'[string: "Insert Into Products"]'

我不明白他想要什么..

这是我的代码:

dim sql暗淡的价格暗淡的描述暗淡的名字暗淡的 pcId暗淡 pbId昏暗的图片设置 pic = Request.Form("picUpload")设置 desc = Request.Form("tbDescProduct")设置价格 = Request.Form("tbPriceProduct")设置 pcId =Request.Form("ddlCategoryForProd")设置 pbId =Request.Form("ddlBrandForProd")设置 pName=Request.Form("tbProductName")IF((bName<>"")AND(desc<>"")AND(price<>"")AND(pcId<>"-1")AND(pbId<>"-1")AND (pic<>"")) 然后设置 con = Server.CreateObject("ADODB.Connection")con.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &Server.MapPath("WebData/DB.mdb") &;"set rs = con.Execute("Select * FROM Products WHERE ProductName = '"&pName&"' and mode= true")如果 rs.EOF = true 那么SET sql ="插入产品(ProductName,SupID,CatID,Price,Pic,Description) Values('"&pName&"','"&pbId&"','"&pcId&"','"&price&"','"&pic&"','"&desc&"')"SET rs =con.Execute(sql)response.write("<script language=""javascript"">alert('产品添加成功!');</script>")别的response.write("<script language=""javascript"">alert('产品已经存在!');</script>")万一'万一

解决方案

在VBScript、VBA和VB5/6中,需要SET来分配对象引用;要分配任何其他类型的数据(包括字符串),只需将其删除:

sql = "插入产品 (ProductName,SupID,CatID,Price,Pic,Description) 值('"&pName&"','"&pbId&"','"&pcId&"','"&price&"','"&pic&"','"&desc&"')"

(在 VBA 和 VB5/6 中,您也可以在此处使用 LET.)

SET 在分配 Request.Form("foo") 调用的结果时起作用的原因是因为 Form 集合是对象集合 - 对 """-1" 的后续测试仅因为返回的对象具有返回字符串兼容变体的默认无参数属性或方法才有效.

I need to insert some data into DB, there is a problem..it gives me an error :

Source line:

SET sql ="Insert Into Products (ProductName,SupID,CatID,Price,Pic,Description) Values( '"&pName&"','"&pbId&"','"&pcId&"','"&price&"','"&pic&"','"&desc&"')" 

Description: Object required: '[string: "Insert Into Products"]'

I dont understand what he wants..

This is my code:

dim sql
dim price
dim desc
dim pName
dim pcId
dim pbId
dim pic
set pic = Request.Form("picUpload")
set desc = Request.Form("tbDescProduct")
set price= Request.Form("tbPriceProduct")
set pcId =Request.Form("ddlCategoryForProd")
set pbId =Request.Form("ddlBrandForProd")
set pName=Request.Form("tbProductName")
IF((bName<>"")AND(desc<>"")AND(price<>"")AND(pcId<>"-1")AND(pbId<>"-1")AND (pic<>"")) THEN

set con = Server.CreateObject("ADODB.Connection")
con.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("WebData/DB.mdb") & ";"  
set rs = con.Execute("Select * FROM Products WHERE ProductName = '"&pName&"' and mode= true")
IF rs.EOF = true then           
  SET sql ="Insert Into Products (ProductName,SupID,CatID,Price,Pic,Description) Values( '"&pName&"','"&pbId&"','"&pcId&"','"&price&"','"&pic&"','"&desc&"')"
  SET rs =con.Execute(sql)
  response.write("<script language=""javascript"">alert('Product added succesfully!');</script>") 
ELSE
  response.write("<script language=""javascript"">alert('Product already exist!');</script>") 
END IF

'END IF

解决方案

In VBScript, VBA and VB5/6, SET is required to assign an object reference; to assign any other sort of data (including a string), just remove it:

sql = "Insert Into Products (ProductName,SupID,CatID,Price,Pic,Description) Values( '"&pName&"','"&pbId&"','"&pcId&"','"&price&"','"&pic&"','"&desc&"')" 

(In VBA and VB5/6 you could also use LET here.)

The reason SET works when assigning the result of a Request.Form("foo") call is because the Form collection is a collection of objects - the subsequent tests against "" and "-1" are valid only because the objects returned have a default parameterless property or method that return a string-compatible variant.

这篇关于插入数据库,对象必需字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆