【问题标题】:Save listbox items in database after ordering订购后将列表框项目保存在数据库中
【发布时间】:2016-03-29 23:41:33
【问题描述】:

我有一个带有两个列表框和一个保存按钮的 asp.net 页面。用户需要根据他的顺序将项目从 listbox1 转移到 listbox2 我的意思是用户可以选择首先出现的项目,然后是接下来的项目。

之后我的系统会提示(最常见的)实现订购项目的结果,希望你理解

我做了两个列表框之间的传输方法,效果很好。但是我被困在save方法中,它可以在listbox2中保存项目但不能以相同的传输顺序(用户顺序)。

这是我保存按钮的代码:

protected void Button1_Click(object sender, EventArgs e)
{
    string strConnString = ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString;
    string str;

    OracleCommand com;
    OracleConnection con = new OracleConnection(strConnString);

    try
    {
        con.Open();

        for (int i = 0; i < ListBox2.Items.Count; i++)
        {
            str = "insert into Criteria values('" + ListBox2.Items[i].ToString() + "')";
            com = new OracleCommand(str, con);
            com.ExecuteNonQuery();
        }

        LabOut.Visible = true;
        LabOut.Text = "Upload succesful!";
        con.Close();
        //Response.Write("Inserted");
    }
    catch (Exception)
    {
        LabOut.Visible = true;
        LabOut.Text = "Upload failed!";
    }
    finally
    {
       con.Close();
       con.Dispose();
    }
}     

【问题讨论】:

  • 这似乎是一件小事,但要注意拼写(尤其是在您的问题标题中)和正确的大小写。您的问题文本中没有一个大写字母。对细节的关注是开发人员的一项重要资产。

标签: c# asp.net listbox


【解决方案1】:

这里的问题是数据库表本身并没有顺序的概念。除非您使用 order by 子句,否则从表中检索行永远不会保证顺序。

您应该在表格中添加一个额外的列(例如,命名为“Sequence”或“Order”)。它可以是一个 int 或其他一些可排序的值。然后您需要修改您的插入语句:

str = "insert into Criteria(ItemValue, Sequence) values('" + ListBox2.Items[i].ToString() + "'," + i.ToString() + ")";

并使用检索列表

str = "Select ItemValue from Criteria order by Sequence"

【讨论】:

    【解决方案2】:

    @fifo 跟我来

    1. 首先在数据库中添加一列,说它是 SeqNo。
    2. 然后保存您的数据。我的意思是生成 SeqNo。为每个 listbox2 项目保存它。
    3. 当您将从数据库中获取数据到 lintbox2 时,请在 SeqNo 上使用 sql/linq ORDER BY。列并显示您保存在哪个订单上。简单.. :)

    【讨论】:

      猜你喜欢
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 1970-01-01
      • 2015-05-09
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多