从数据库表中获取DropDown值

时间:2011-03-30 22:47:58

标签: c# asp.net

我有一个ASP:DropDown列表,其中包含以下内容:

public void Fill1()
{
    string connectionString = WebConfigurationManager.ConnectionStrings["CRM2Sage"].ConnectionString;
    using (SqlConnection _con = new SqlConnection(connectionString))
    using (SqlCommand cmd = new SqlCommand("SELECT * FROM Products", _con))
    {
        cmd.Connection.Open();

        SqlDataReader ddlValues;
        ddlValues = cmd.ExecuteReader();

        txtProduct.DataSource = ddlValues;
        txtProduct.DataValueField = "Description";
        txtProduct.DataTextField = "Description";
        txtProduct.DataBind();

        cmd.Connection.Close();
        cmd.Connection.Dispose();
    }
}

我需要从同一个表格中调用SalesPrice,并根据下拉列表中选定的值更新名为ASP:TextBox的{​​{1}}字段。

我尝试将其写入同一个函数,并且不会让我为txtUnitAmount设置.Text值。任何人都可以提出一种方法来实现这一目标吗?

感谢所有人的帮助到目前为止!

干杯

贾斯汀

额外的讨论代码

ASP:TextBox

1 个答案:

答案 0 :(得分:1)

这个问题有点难以理解,但我会给它一个刺。

您将不得不根据下拉更改产生的onChnge事件对数据库进行另一次查询。

您需要连接下拉列表的OnChange事件并启用自动后备。这可以通过属性资源管理器完成。从OnChangeEvent中,激活您的代码

请注意,此代码远非生产。你需要做输入并返回清理。

var description = Request.Form["txtProduct"].ToString();
using (SqlConnection _con = new SqlConnection(getProdValue))
using (SqlCommand cmd = new SqlCommand("SELECT UnitPrice FROM Products WHERE Description = '" + description "'", _con))
{
    cmd.Connection.Open();
    var unitPrice = cmd.ExecuteScalar();
    txtUnitPrice.Text= unitPrice.ToString("###,###0.000");       
}