插入整数时,下拉列表显示的字符串作为datavaluefield

问题描述:

  • 我正在开发的Visual Studio 2008的
  • 我的应用我有4个表
  • 我有一个下拉列表(显示product_category_names)
  • 我需要做一个INSERT语句
  • 我有以下代码:插入整数时,下拉列表显示的字符串作为datavaluefield

    昏暗SQL2作为字符串=“INSERT INTO产品(product_category_id,PRODUCT_NAME,PRODUCT_TITLE,product_desc,product_author,对(@ product_category_id,@product_name,@product_title,@product_desc,@product_author,@product_author_age,@product_author_desc,@product_other_detail,@ product_dimension1,@ product_dimension2,roduct_author_age,product_author_desc,product_other_detail,product_dimension1,product_dimension2,product_price,product_institution,product_status,product_delivery_time) @product_price,@product_institution,@product_status,@product_delivery_time)”

cmd.Parameters.Add(新的SqlParameter( “@ PRODUCT_NAME”,(txtProductName2.Text))) cmd.Parameters.Add(新的SqlParameter (“@product_title”,(txtProductTitle2.Text)))

问题是,我怎么能当下拉列表显示'product_category_names'而不是'product_category_id'时,将'product_category_id'(一个整数)插入表'Product'中?

有人能给我看光吗?谢谢。

+0

是Winforms,ASP.NET WebForms,ASP.NET MVC,WPF还是什么? – 2012-01-28 06:10:23

假设您在页面加载事件上绑定了下拉列表并使用了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 

,并继续进行插入...值()。

+0

如果你不使用数据绑定下拉列表的第一个选项与id字段,那么你需要使用:dim sql2作为“[我在答案中给出的SQL]”。然后将正确的SqlParameter添加到该命令。 cmd.Parameters.Add(new SqlParameter(“@ Product_Category_Name”,ddl.ProductCategoryName2.SelectedValue)。 – GarethD 2012-01-28 10:45:28

+0

哪个解决方案? – GarethD 2012-01-28 11:14:05

+0

嗨GarethD,我发布了这个问题的更详细的版本。请您好好看看你的方便,非常感谢。http://stackoverflow.com/questions/9046445/how-to-insert-id-of-a-databound-dropdownlist-of-one-table-to-another-table – brainsfrying 2012-01-28 17:45:25