c# - 如何从表行而不是数据库中的列中获取最大值和最小值
问题描述
我的数据库中有一个表格,其中有一列中有许多不同的学生姓名,每个科目标记有一列,例如课程 1、课程 2 - 课程 10。我正在尝试从学生那里找到最低和最高课程分数这是从数据库中选择的。这有意义吗?
我已经在这个问题上停留了一个多星期,因为我一直在寻找的所有答案都是如何从我需要一行的列中找到最小值和最大值。
请帮助我,我不知道还能尝试什么。
解决方案
public int[] max_min_rowvalue(DataRow dr)
{
int[] i_array = new int[2];
List<int> lst_values = new List<int>();
//Start at 1 to avoid Student field which is presumably a varchar field
//Presumes the course scores are int
//Add null checks if required
for(int i = 1; i <= dr.ItemArray.Length -1; i++)
{
if (lst_values.Contains(Convert.ToInt32(dr[i])) == false) lst_values.Add(Convert.ToInt32(dr[i]));
}
lst_values.Sort();
i_array[0] = lst_values[0];
i_array[1] = lst_values[lst_values.Count - 1];
return i_array;
}
测试:
DataTable dt = new DataTable();
dt.Columns.Add("Student");
dt.Columns.Add("Course1");
dt.Columns.Add("Course2");
dt.Columns.Add("Course3");
dt.Columns.Add("Course4");
dt.Columns.Add("Course5");
DataRow dr = dt.NewRow();
object[] rowarray = new object[6];
rowarray[0] = "Paul";
rowarray[1] = 8;
rowarray[2] = 2;
rowarray[3] = 10;
rowarray[4] = 10;
rowarray[5] = 4;
dr.ItemArray = rowarray;
int[] i_test = max_min_rowvalue(dr);
Debug.WriteLine(i_test[0]);
Debug.WriteLine(i_test[1]);
返回 2 和 10
推荐阅读
- r - 如何根据频率将 colnames 转换为文本/向量?
- python - 有没有办法不更新 pygame 帧什么都没有发生?
- android - 将手机升级到 Android 9 Pie API 28 修订版 6 后 Cordova 应用程序中出现 Ajax 错误
- python - 如何在我的情节标题中包含多个变量?
- reactjs - React + TypeScript 语法:动态更改容器组件
- javascript - mousedown 上的复选框,mouseup 上的取消选中
- php - “foreach”构造中的 ${$key} 表达式是什么意思?
- php - 如何修复在 GoDaddy Server 500(内部服务器)上发送 PHPMailer SMTP 邮件错误
- parse-server - Parse-Server - 无法从远程机器上的数据库中获取数据
- javascript - 为什么“-webkit-app-region”在大多数代码编辑器中不是定义的 CSS 属性?