【问题标题】:ASP.NET Dropdown list from mysql database来自 mysql 数据库的 ASP.NET 下拉列表
【发布时间】:2015-11-04 05:25:20
【问题描述】:

我的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>

【问题讨论】:

  • 在你的Page_Load 绑定到DropDown 得到检查if (!IsPostBack) ?

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


【解决方案1】:

在 Page_Load 事件中,将您的代码置于 if 条件中,如下所示。

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

        }
}

【讨论】:

    【解决方案2】:

    提交页面意味着再次重新加载页面。重新加载后你的 dorpdownbox 正在刷新。

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

    【讨论】:

      猜你喜欢
      • 2016-02-04
      • 1970-01-01
      • 2020-01-09
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-03
      • 1970-01-01
      相关资源
      最近更新 更多