C# 如何通过每次单击按钮获取阵列中的下一项?

C# 如何通过每次单击按钮获取阵列中的下一项?,c#,sql,sql-server,arrays,C#,Sql,Sql Server,Arrays,我有一个SQL表格,里面有200多种不同的水果类型。我正在做的是创建一个应用程序,使用同一组问题调查用户关于这些不同水果类型的情况。应用程序将首先要求用户从不同的水果类型中进行选择。我将用户选择的值和计数存储为单独的字符串和整数。然后我获取他们选择的项目,并在每次单击按钮时一次显示一个项目。 代码编辑 接下来,我定义一个列表来存储sql中的值: public class FruitList { public int FruitID { get; set; } public str

我有一个SQL表格,里面有200多种不同的水果类型。我正在做的是创建一个应用程序,使用同一组问题调查用户关于这些不同水果类型的情况。应用程序将首先要求用户从不同的水果类型中进行选择。我将用户选择的值和计数存储为单独的字符串和整数。然后我获取他们选择的项目,并在每次单击按钮时一次显示一个项目。 代码编辑

接下来,我定义一个列表来存储sql中的值:

public class FruitList
{
    public int FruitID { get; set; }
    public string FruitName { get; set; }
}
然后在按钮中单击,获取计数并根据用户从asp:复选框列表中选择的值从数据库检索数据


当前,此方法仅返回数组中的最后一项。它不会迭代数组中的第一项或中间项

这真的不清楚。你到底在问什么?如何将代码绑定到按钮单击?如果是这样,那么这与sql server无关。如何编写更新查询-如果是,那与单击按钮有什么关系。请把问题简化一点,这样我和能回答的人就知道你在问什么了。很抱歉我不清楚。我想知道每次单击按钮时如何获取和显示数组中的下一项。@Skulomania,您的代码甚至无法编译,MyFruits在while循环中声明,因此它不在foreach循环的范围内。即使你解决了这个问题,你也只会重复创建一个元素数组,并将其丢弃在foreach循环中。@BenRobinson我正在编译和测试我的代码,目前没有错误,同时试图找出我自己的答案。@Skulomania你能帮我澄清一下吗?然后,如何最终绑定这两个函数,以便每次单击按钮都可以显示第一个、下一个或用户选择的最后一个存储在数组中的水果的数量?这是什么样的按钮?既然你说这是一项调查,我想你指的是单选按钮,但你不清楚你想达到什么目的。
public class FruitList
{
    public int FruitID { get; set; }
    public string FruitName { get; set; }
}
List<FruitList> FruitList = new List<FruitList>();
StringBuilder myFruits = new StringBuilder();
string strFruits = string.Empty;
foreach (System.Web.UI.WebControls.ListItem li in chkDepartments.Items)
{
    if (li.Selected == true)
    {
        strFruits += "'" + li.Value + "'" + ",";
        countFruits += 1;
        ActiveCount += 1;
    }
}

strFruits = strFruits.TrimEnd(',');
myFruits.Append("WHERE [id] IN(" + strFruits + ")");
if (countDeparments > 0)
{
    using (SqlConnection conn2 = new SqlConnection(ConfigurationManager.ConnectionStrings["SiteSqlServer2"].ConnectionString))
    {
        SqlCommand cmd1 = new SqlCommand("Select SELECT [ID], [Fruits] from [my_tastyfruits] " + myFruits, conn2);
        conn2.Open();
        using (SqlDataReader reader2 = cmd1.ExecuteReader())
        {
            while (reader2.Read())
            {
                FruitList fl = new FruitList();
                fl.DeptID = reader2.GetInt32(0);
                fl.FruitName = reader2.GetString(1);
                FruitList.Add(fl);
            }
        }
        foreach (var fruits in FruitList)
        {
            //string[] FruitList = {"\"" + fruits.FruitName + "\"",};
            Array.Resize(ref FruitList, countFruits);
            FruitList[countFruits - 1] = fruits.FruitName; 
        }
        ViewState["count"] = Convert.ToInt32(ViewState["count"]) + 1;
        txtNAC.Text = ViewState["count"].ToString();
        NAC = Convert.ToInt32(ViewState["count"]);
        Total = NAC - ActiveCount - 1;

        txtActiveCount.Text = FruitList[countFruits - 1];

        if (Total == 0)
        {
            NAC = 0;
            ActiveCount = 0;
            Response.Write("Congrats, The total is zero");
        }
        else if (Total >= 1)
        {
           Response.Redirect(Request.RawUrl);
        }                    
    }
}