从数据库中插入列表值

时间:2015-01-17 15:03:27

标签: c# list select

我有一个从数据库中选择一些列值的函数。我希望将这些选定的值插入到最多26个项目的列表中。我怎样才能做到这一点?列表中的一行“行”包含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();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

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

SQL级别中,有一个简单的解决方案 - 您可以使用关键字“Top”选择一定数量的项目,即I.E 26。

例如,

SELECT TOP 26 Grade FROM StudentsTable;

应用程序级别中,您可以以编程方式选择所需的26个项目;例如,如果您从文本框中的ASP应用程序获取它们并且从button_Click事件激活数据库交互,则可以在函数本身中选择它们;为了说明,假设您要从名为Label的50个标签中选择最多26个值,您将在按钮中单击。点击:

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.
   }
 }
}

我的观点是 - 有很多解决方案,这个问题有点模糊 - 你应该找到适合你的东西,具体取决于你的申请,并去寻求它;

祝你好运:)