我有以下代码:
Dim sql2 As String =“INSERT INTO Product(product_category_id,product_name,product_title,product_desc,product_author,product_author_age,product_author_desc,product_other_detail,product_dimension1,product_dimension2,product_price,product_institution,product_status,product_delivery_time)VALUES(@ product_category_id,@ product_name,@ product_title,@ product_desc,@ product_author,@ product_author_age,@ product_author_desc,@ product_other_detail,@ product_dimension1,@ product_dimension2,@ product_price,@ product_institution,@ product_status,@ product_delivery_time)“
cmd.Parameters.Add(New SqlParameter(“@ product_name”,(txtProductName2.Text))) cmd.Parameters.Add(New SqlParameter(“@ product_title”,(txtProductTitle2.Text)))
问题是,当下拉列表显示'product_category_names'而不是'product_category_id'时,如何将'product_category_id'(整数)插入表'Product'?
有人能给我看灯吗?感谢。
答案 0 :(得分:0)
假设您在页面加载事件上绑定了下拉列表并使用product_Catogry表,那么最简单的方法是将product_category_ID绑定到下拉列表的value属性。这样,您可以在用户看到名称时以编程方式访问ID。
DropDownList.DataSource = [your product table]
DropDownList.DataTextField = "Proudct_Category_Name"
DropDownList.DataValueField = "Product_category_ID"
如果由于某种原因这不是一个选项,那么下面的SQL将在您当前的命令中工作,只需确保将@Product_Category_Name作为参数添加到SqlCommand而不是@product_Category_Name。
INSERT INTO Product
( product_category_id,
product_name,
product_title,
product_desc,
product_author,
product_author_age,
product_author_desc,
product_other_detail,
product_dimension1,
product_dimension2,
product_price,
product_institution,
product_status,
product_delivery_time
)
SELECT product_category_id,
@product_name,
@product_title,
@product_desc,
@product_author,
@product_author_age,
@product_author_desc,
@product_other_detail,
@product_dimension1,
@product_dimension2,
@product_price,
@product_institution,
@product_status,
@product_delivery_time
FROM product_category
WHERE product_category_Name = @Product_Category_Name
或者你可以简单地将它添加到当前SQL的开头:
DECLARE @Product_Category_ID INT
SELECT @Product_Category_ID = Product_Category_ID
FROM Product_Category
WHERE Product_Category_Name = @Product_Category_Name
继续使用insert ... values()。