簡體   English   中英

在數據庫中插入下拉列表值

[英]Insert dropdownlist value in database

我有一個DropDownList,並且已將其綁定到表。 問題是當我嘗試將dropDownlist控件的選定值插入數據庫時​​,我沒有獲得正確的值,而是獲得了2和1的整數數據。

這是我的dropdownList控件:

<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();
  }
}

看起來您使用Product_ID作為SelectedValue,在下拉菜單中將SelectedValue更改為Prod_Name。

如果要從所選值中獲取產品名稱,則應將其綁定為DataValueField而不是DataTextField

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM