计算数据库中检索到的行

时间:2012-10-14 09:32:41

标签: c# database ms-access

Form1

我是Visual C#的新手,想知道如何从数据库中计算检索到的数据。

使用上面的GUI,当点击“计算”时,程序将显示textBox1中的学生数,以及textBox2中所有学生的平均GPA。

这是我的数据库表“学生”:

enter image description here

我能够显示学生人数,但我仍然对如何计算平均GPA感到困惑

这是我的代码:

    private void button1_Click(object sender, EventArgs e)
    {
            string connection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data  Source=C:\Database1.accdb";
            OleDbConnection connect = new OleDbConnection(connection);

        string sql = "SELECT * FROM Students";
        connect.Open();
        OleDbCommand command = new OleDbCommand(sql, connect);
        DataSet data = new DataSet();
        OleDbDataAdapter adapter = new OleDbDataAdapter(command);
        adapter.Fill(data, "Students");

        textBox1.Text = data.Tables["Students"].Rows.Count.ToString();

        double gpa;
        for (int i = 0; i < data.Tables["Students"].Rows.Count; i++)
        {
            gpa = Convert.ToDouble(data.Tables["Students"].Rows[i][2]);
        }

        connect.Close();
    }

1 个答案:

答案 0 :(得分:3)

您可以使用Average方法使用 LINQ to DataTable

var gpa = data.Tables["Students"].AsEnumerable()
              .Average(row => row.Field<double>("GPA"));