2014-03-24 55 views
0

我有一個DropDownList,我已經將它綁定到一個表。問題是,當我試圖DropDownList控件的選定值插入到數據庫中,我沒有得到正確的價值觀,而不是讓整數數據2和1在數據庫中插入下拉列表值

這是我的下拉列表控制:

<asp:DropDownList 
    ID="ddlproductName" 
    runat="server" 
    DataTextField="Prod_Name" 
    DataValueField= "Product_Id" 
    > 
</asp:DropDownList> 

代碼隱藏:

protected void Page_Load(object sender, EventArgs e) 
{ 
    ddlproductName.SelectedIndex = 0; 

    if (!IsPostBack) 
    { 
    tbDate.Text = DateTime.Today.ToShortDateString(); 
    string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; 
    using (SqlConnection con = new SqlConnection(cs)) 
    { 
     SqlCommand cmd = new SqlCommand("Select Product_Id,Prod_Name from Add_Product", con); 
     con.Open(); 
     SqlDataReader rdr = cmd.ExecuteReader(); 
     ddlproductName.DataSource = rdr; 
     ddlproductName.DataBind(); 
    } 
    } 
} 

protected void btnPurchase_Click(object sender, EventArgs e) 
{ 
    try 
    { 
    string custName = tbcustName.Text; 
    string prodName = ddlproductName.SelectedValue; 
    int quantity = Convert.ToInt32(tbQuantity.Text); 
    string date = tbDate.Text; 
    string voucherNo = tbVoucher.Text; 
    double amount = Convert.ToDouble(tbAmount.Text); 

    PurchProduct purch = new PurchProduct(custName, prodName, quantity, date, voucherNo, amount); 
    ConnectionClass.purchaseProd(purch); 
    LblPurchase.Text = "Submitted succesfully"; 
    } 

而且purchaseProd方法如下:

public static void purchaseProd(PurchProduct purchase) 
{ 
    cmd = new SqlCommand("insert into TblPurchase(custName, prodName, quantity, date,voucherNo,amount) values (@custName, @prodName, @quantity, @date,@voucherNo,@amount)", con); 

    cmd.Parameters.AddWithValue("@custName", purchase.custName); 
    cmd.Parameters.AddWithValue("@prodName", purchase.prodName); 
    cmd.Parameters.AddWithValue("@quantity", purchase.quantity); 
    cmd.Parameters.AddWithValue("@date", purchase.date); 
    cmd.Parameters.AddWithValue("@voucherNo", purchase.voucherNo); 
    cmd.Parameters.AddWithValue("@amount",purchase.amount); 

    try 
    { 
    con.Open(); 
    cmd.ExecuteNonQuery(); 
    } 
    finally 
    { 
    con.Close(); 
    cmd.Parameters.Clear(); 
    } 
} 
+0

ddlproductName.SelectedValue返回你的PRODUCT_ID。您的Product_Name綁定到ddlproductName.SelectedText。 –

+0

當我使用ddlproductName.SelectedText它給出的錯誤說:'System.Web.UI.WebControls.DropDownList'不包含'SelectedText'的定義,並且沒有擴展方法'SelectedText'接受'系統類型的第一個參數.Web.UI.WebControls.DropDownList'可以找到(你是否缺少使用指令或程序集引用?) – Insafian

+0

對不起,應該是SelectedItem.Text,而不是SelectedText。您還可以使用SelectedItem.Value獲取值。我的財產名稱錯誤是我的錯誤。 –

回答

0

,如果你想從選擇價值產品的名稱,你應該把它綁定爲DataValueField不是DataTextField

0

它看起來像使用Product_ID作爲SelectedValue,在下拉列表中將SelectedValue更改爲Prod_Name。

相關問題