作者:我等到你不再等我_129 | 来源:互联网 | 2023-05-19 16:22
有如下的SQL语句:sqlinsertintoproduct(Category_ID,ProvideTrader_ID,Product_Name,Serial_Number,Product
有如下的SQL语句:
sql="insert into product(Category_ID,ProvideTrader_ID,Product_Name,Serial_Number,Product_Detail,Sale_Price) values("
sql=sql & CategoryID & "," & ProvideTraderID & ",'" & ProductName & "','" & SerialNumber & "','" & ProductDetail & "','" & SalePrice & "')"
ProvideTrader_ID为ProvideTrader(供应商)表的主关键字段,ProvideTrader表中又有一个外部关键字段Category_ID指向Product表,也就是说它们两个互相都有关联。如今我第一次往Product表中插入数据时,ProvideTraderID是空的,我想把ProvideTrader_ID字段设为一个NULL值,这样上面那个SQL语句如何写呢?
另外我对数据库不是很精通,不知道这样的两个表互相引用以后会不会出现问题,烦劳高手的指点了。
12 个解决方案
sql="insert into product(Category_ID,ProvideTrader_ID,Product_Name,Serial_Number,Product_Detail,Sale_Price) values("
sql=sql & "Null" & "," & ProvideTraderID & ",'" & ProductName & "','" & SerialNumber & "','" & ProductDetail & "','" & SalePrice & "')"
TO BrentIvan(Ivan):好象不行啊,请看下面的全部代码:
ProductName=trim(request.queryString("ProductName"))
CategoryID=trim(request.queryString("CategoryID"))
ProvideTraderID=trim(request.queryString("ProvideTraderID"))
if ProvideTraderID="" then ProvideTraderID="Null"
SerialNumber=trim(request.queryString("SerialNumber"))
SalePrice=trim(request.queryString("SalePrice"))
ProductDetail=trim(request.queryString("ProductDetail"))
sql="insert into product(Category_ID,ProvideTrader_ID,Product_Name,Serial_Number,Product_Detail,Sale_Price) values("
sql=sql & CategoryID & "," & ProvideTraderID & ",'" & ProductName & "','" & SerialNumber & "','" & ProductDetail & "','" & SalePrice & "')"
conn.execute(sql)
忘了说ProvideTraderID是一个列表框变量,第一次传过来的时候是空值,我试过在SQL Server Query Analyzer中用NULL值代替ProvideTraderID是可以的,但就是不知道如何在ASP中写语句。期待你的再次指点,谢谢。
在给ProvideTraderID赋值的语句后加一句
If ProvideTraderID = "" Then
ProvideTraderID = Null
End If
刚才忘了在ProvideTraderID中加引号了,不过加了好象也没有作用,我在SQL语句中直接付值也不行。
还要引号吗?这样做:
...
ProvideTraderID = Trim(request.queryString("ProvideTraderID"))
If ProvideTraderID = "" Then
ProvideTraderID = "Null"
Else
ProvideTraderID = "'" & ProvideTraderID & "'"
End If
...
sql="insert into product(Category_ID,ProvideTrader_ID,Product_Name,Serial_Number,Product_Detail,Sale_Price) values("
sql=sql & CategoryID & "," & ProvideTraderID & ",'" & ProductName & "','" & SerialNumber & "','" & ProductDetail & "','" & SalePrice & "')"
TO:BrentIvan(Ivan),我照你的方法做了,不过为什么还是不行。也许是我说得不够详细吧:
Product表中的ProvideTrader_ID字段是一个整型变量,用来记录产品的供应商,它是一个外部关键字段。
IIS提示:
HTTP 500.100 - 内部服务器错误 - ASP 错误
Microsoft OLE DB Provider for SQL Server (0x80040E14)
整型你加引号做什么?
这样:
ProvideTraderID = Trim(request.queryString("ProvideTraderID"))
If ProvideTraderID = "" Then
ProvideTraderID = "Null"
End If
...
sql="insert into product(Category_ID,ProvideTrader_ID,Product_Name,Serial_Number,Product_Detail,Sale_Price) values("
sql=sql & CategoryID & "," & ProvideTraderID & ",'" & ProductName & "','" & SerialNumber & "','" & ProductDetail & "','" & SalePrice & "')"
下面是我的response.write(SQL) 输出,请Ivan兄看看有什么不妥之处:
insert into product(Category_ID,ProvideTrader_ID,Product_Name,Serial_Number,Product_Detail,Sale_Price) values(15,Null,'193卡','a1','该产品是新产品,值得去购买。','10.0')
感谢BrentIvan(Ivan)兄,错误出在后面的那个Sale_Price,Sale_Price是money型的。money型的变量是不用加引号的吗?
我再想问下除了字符串要加引号之外,那些类型变量还要加引号?我知道日期是要加"#"的