从数据库中插入列表值

Insert in list values from database

我有一个函数可以从数据库中选择一些列值。我希望将这些选定的值插入到最多包含 26 个项目的列表中。我怎样才能做到这一点?列表中的一个 "row" 包含 questionanswer1,answer2,answer2,option1,option2,option3。我怎样才能做到这一点?我真的不知道如何使用列表。

private void select()
{
    if (index.connect.State == ConnectionState.Open) {
        index.connect.Close(); 
    }

    MySqlCommand cmd = new MySqlCommand(dataA, index.connect);
    cmd.CommandType = CommandType.Text;
    using (index.connect)
    {
        index.connect.Open();
        MySqlDataReader rdr = cmd.ExecuteReader();
        try
        {
            if (rdr.Read())
            {
                label2.Text = rdr["question"].ToString();
                label3.Text = rdr["answer1"].ToString();
                label4.Text = rdr["answer2"].ToString();
                label5.Text = rdr["answer3"].ToString();
                r1 = (int)rdr["option1"];
                r2 = (int)rdr["option2"];
                r3 = (int)rdr["option3"];
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            index.connect.Close();
        }
    }
}

有几种方法可以实现您的要求。

SQL级别,有一个简单的解决方案——你可以select一定数量的物品,即26,使用关键字"Top".

例如,

SELECT TOP 26 Grade FROM StudentsTable;

应用程序级别,您可以通过编程方式select您想要的26个项目;例如,如果您从文本框中的 ASP 应用程序获取它们,并且数据库交互是从 button_Click 事件激活的,您可以在函数本身中 Select 它们;为了说明,假设您想要 select 50 个名为 Label 的标签中的最大 26 个值,您将在 button.Click:

List<int> MyLabels = FindMaxValues(<Your array of labels>, 26)
//Database stuff with MyLabels

函数本身:

private static List<int> FindMaxValues(Labels[] myLbls, int AmountOutOfMax)
{
int LabelValue=0
for(int i=0;i<AmountOutOfMax;i++)
 {
  for(int k=0;k<50;k++)
  {
  LabelValue=int.Parse(myLbls[k])
   // find max, etc.
   }
 }
}

我的观点是 - 有很多解决方案,这个问题有点模糊 - 你应该根据你的应用找到适合你的,然后去做;

祝你好运:)