【问题标题】:Insert dropdownlist value in database在数据库中插入下拉列表值
【发布时间】:2014-03-24 20:06:14
【问题描述】:

我有一个 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();
  }
}

【问题讨论】:

  • ddlproductName.SelectedValue 返回您的 Product_Id。您的 Product_Name 绑定到 ddlproductName.SelectedText。
  • 当我使用 ddlproductName.SelectedText 时,它给出的错误是:'System.Web.UI.WebControls.DropDownList' 不包含 'SelectedText' 的定义并且没有扩展方法 'SelectedText' 接受可以找到“System.Web.UI.WebControls.DropDownList”类型的第一个参数(您是否缺少 using 指令或程序集引用?)
  • 抱歉,应该是 SelectedItem.Text,而不是 SelectedText。您还可以使用 SelectedItem.Value 获取值。我的错误是属性名称错误。

标签: c# asp.net drop-down-menu


【解决方案1】:

如果要从选定的值中获取产品名称,则应将其绑定为 DataValueField 而不是 DataTextField

【讨论】:

    【解决方案2】:

    看起来您使用 Product_ID 作为 SelectedValue,请在下拉列表中将 SelectedValue 更改为 Prod_Name。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      相关资源
      最近更新 更多