我是SQL的新手,所以这可能是一个基本级别的问题。
我在C#上有一个datagridview,其中有100行,其中有3列:ID从1到100,学生的姓名和Math的分数。我按数学分数对它们进行了降序排序,现在我想分为5部分,这是对学生进行排序的前20%,然后设置“奖励”列5个糖果,对接下来的20%的学生设置4个糖果,所以接下来是3 ,2和1个糖果。
这是我为前20%的学生准备的5种糖果的代码,因为我将所有标记降序排列:
for (int i = 0; i < DataGridView.Rows.Count * 0.2; i++)
{
string sql;
sql = "UPDATE StudentManagement SET Reward= 5 WHERE Name= N'" + DataGridView.Rows[i].Cells[1].Value + "'";
Functions.RunSql(sql);
}
运行代码时,我希望“奖励”列中的所有前20行设置为5个candy,但仅对第19行更新了值5。 “奖励”列中的所有前18行和第20行仍然具有NULL值。我认为问题来自if条件:
i < DataGridView.Rows.Count * 0.2
我该如何解决?