0

これは本当にプロセスを遅らせています。私は短いものとして保存されたマークのデータベースを持っており、単一のエントリを抽出して要約統計を作成したいと考えています。それは簡単に思えますが、それを得るにはたくさんのフープを飛び越える必要があるようですので、基本的なものが欠けているに違いありません.

これが基本的な方法であり、これはうまく機能します。ただし、それでできることは、それを DataGridView に渡すことだけです。

    private void MarksSummary(string StudentID)
        {
        int ID = Convert.ToInt32(StudentID);
        //get the average of the marks using entity
        using (var context = new collegestudentsEntities1())
        {
            var StudentMarks = (from m in context.Marks
                                where m.StudIDFK == ID
                                select new
                                {
                                    m.Marks1,
                                    m.marks2,
                                    m.Marks3,
                                    m.Marks4
                                });
   dataGridView1.DataSource = StudentMarks.ToList();

それ以外は、ばかげて長編のようです。

例:私はこれを行うことができません

  var Marklist = new List<Int16>();
  StudentMarks.ToList().ForEach(m => Marklist.Add(m));

「「AnonymousType#1」から「short」に変換できません」

またはこれ

   Marklist = StudentMarks.ToList();

またはこれ

 double av = Marklist.Average();

それでも、1行のデータに対してばかげている forEach を実行できます

     foreach (var s in StudentMarks)
                {
                    Marklist.Add(s.Marks1);
                   Marklist.Add(s.marks2);
                    Marklist.Add(s.Marks3);
                    Marklist.Add(s.Marks4);
                }

そして、これはうまく出力します

            txtMarksOverFifty.Text = Marklist.Count(s => s > 50).ToString();
            txtMarksFailed.Text = Marklist.Count(s => s < 50).ToString();

では、クエリから値を簡単に取得するために何が欠けているのでしょうか?

ご協力いただきありがとうございます :-)

4

2 に答える 2