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