2012-01-28 17 views
0
  • 我正在開發的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

回答

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 

,並繼續進行插入...值()。

+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