C# 如何从数据库中的表行而不是列中获取最大值和最小值
我的数据库中有一个表,在一列中有许多不同的学生姓名,每个科目的分数都有一列,例如-课程1,课程2-课程10。我试图从数据库中选择的学生那里找到最低和最高课程分数。这有意义吗 我一直在这个问题上纠缠了一个多星期,因为我一直在寻找的所有答案都是如何从一列中找到最小值和最大值,因为我需要一行 请帮帮我,我不知道还能尝试什么C# 如何从数据库中的表行而不是列中获取最大值和最小值,c#,C#,我的数据库中有一个表,在一列中有许多不同的学生姓名,每个科目的分数都有一列,例如-课程1,课程2-课程10。我试图从数据库中选择的学生那里找到最低和最高课程分数。这有意义吗 我一直在这个问题上纠缠了一个多星期,因为我一直在寻找的所有答案都是如何从一列中找到最小值和最大值,因为我需要一行 请帮帮我,我不知道还能尝试什么 public int[] max_min_rowvalue(DataRow dr) { int[] i_array = new int[2];
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;
}
返回2和10我想这也是您之前在另一个帐户下提出的问题?这是你的第二次尝试,并不令人印象深刻。请从我们的角度考虑,我们不知道您是如何查询数据库的,是否使用ORM ect,查询后的结构是什么。。。请把您的确切表结构,查询任何代码,以及任何其他相关信息。。。如果您这样做,这将在几分钟内得到回答。您发现在SQL中很难做到这一点的原因是您的数据库设计没有规范化。因此,要么规范化数据库中的3个表、学生、课程和成绩,要么在应用程序代码中找到最小值/最大值。
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]);