我有一个从数据库中选择一些列值的函数。我希望将这些选定的值插入到最多26个项目的列表中。我怎样才能做到这一点?列表中的一行“行”包含question
和answer1,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();
}
}
}
答案 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.
}
}
}
我的观点是 - 有很多解决方案,这个问题有点模糊 - 你应该找到适合你的东西,具体取决于你的申请,并去寻求它;
祝你好运:)