当dropdownlist将字符串显示为datavaluefield时插入整数

时间:2012-01-28 06:04:12

标签: sql visual-studio-2008 drop-down-menu

  • 我正在开发visual studio 2008上的应用程序
  • 我有4张桌子
  • 我有一个下拉列表(显示product_category_names)
  • 我需要做一个插入声明
  • 我有以下代码:

    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'?

有人能给我看灯吗?感谢。

1 个答案:

答案 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()。