mysql数据库中的ASP.NET下拉列表

本文关键字:NET 下拉列表 ASP 数据库 mysql | 更新日期: 2023-09-27 18:20:31

我的Pageload 中有此代码

string query_regNo = @"SELECT spare_part FROM spare_parts";
cb_description.Items.Clear();
try
{
    conn.Open();
    MySqlCommand cmd = new MySqlCommand(query_regNo, conn);
    MySqlDataReader DR = cmd.ExecuteReader();
    while (DR.Read())
    {
        cb_description.Items.Add(new ListItem(DR[0].ToString()));
    }
}

我的submit button 上有这个

{
    conn.Open();
    MySqlCommand cmd = new MySqlCommand(query_submit, conn);
    prepareQuery(cmd);
    cmd.Parameters["@quantity"].Value = tf_quantity.Text;
    cmd.Parameters["@description"].Value = cb_description.SelectedItem.Value;
    cmd.Parameters["@remarks"].Value = tf_remarks.Text;
    cmd.Parameters["@jobID"].Value = job_id != null ? job_id : "1";
    cmd.Parameters["@truck_id"].Value = truck_id;
}

这个在我的addquery

private void prepareQuery(MySqlCommand cmd)
{
    cmd.Parameters.Add("@quantity", MySqlDbType.Int32);
    cmd.Parameters.Add("@description", MySqlDbType.VarChar, 45);
    cmd.Parameters.Add("@remarks", MySqlDbType.VarChar, 45);
    cmd.Parameters.Add("@jobID", MySqlDbType.VarChar, 45);
    cmd.Parameters.Add("@truck_id", MySqlDbType.VarChar, 45);
    cmd.Prepare();
}

当我单击提交按钮时,仅选择cb_description下拉列表中的第一个值(发动机油),当我选择不同的值时,它总是添加备件表中的第一值。如何从下拉列表中获取所选值并将其添加到cmd.Parameters.Add("@description", MySqlDbType.VarChar, 45);

我的aspx 上有这个

 <asp:DropDownList ID="cb_description" runat="server" Height="16px" Width="125px">
 </asp:DropDownList>

mysql数据库中的ASP.NET下拉列表

在Page_Load事件中,如果条件如下,请将代码放入。

If(!Page.IsPostBack)
{
   string query_regNo = @"SELECT spare_part FROM spare_parts";
   cb_description.Items.Clear();
        try
        {
            conn.Open();
            MySqlCommand cmd = new MySqlCommand(query_regNo, conn);
            MySqlDataReader DR = cmd.ExecuteReader();
            while (DR.Read())
            {
                cb_description.Items.Add(new ListItem(DR[0].ToString()));
            }
        }
}

提交页面意味着再次重新加载页面。重新加载dorpdownbox后会刷新。

Page.IsPostBack属性将解决您的问题。如果你不想刷新某些代码,请检查!Page.IsPostBack