private async Task<List<Homework>> gethomeworkasync(string url)
        {
            string sql = $"select stuname,stunum,classnum,score,hcount from Homework where stulisturl='{url}'";
            List<Homework> c = new List<Homework>();
            return await Task.Run(() =>
            {
                OleDbDataReader reader = AccessDBHelper.ExecuteReader(sql, App.Databasefilepath);
                if (reader != null)
                {
                    while (reader.Read())
                    {
                        Homework a = new Homework();
                        a.StuNum = reader["stunum"].ToString();
                        a.StuName = reader["stuname"].ToString();
                        a.ClassNum = reader["classnum"].ToString();
                        a.Score = Convert.ToDecimal(reader["score"].ToString());
                        a.Count = Convert.ToInt32(reader["hcount"].ToString());
                        this.Dispatcher.Invoke(() =>
                        {
                            c.Add(a);
                        });
                    }
                    reader.Close();
                    AccessDBHelper.CloseConnectDB();
                }
                return c;
            });

        }
        /// <summary>
        /// 获取作业成绩记录
        /// </summary>
        private async void gethomework()
        {
            if (currenthomelist != homeworklistview.ItemsSource)
            {
                //this.progess.Visibility = Visibility.Visible;
                StatisticsDetailViewModel sd = (StatisticsDetailViewModel)this.DataContext;
                this.Dispatcher.Invoke(() =>
                {
                    sd = (StatisticsDetailViewModel)this.DataContext;
                });

                string sql = $"select stuname,stunum,classnum,score,hcount from Homework where stulisturl='{sd.DetailCourse.StudentListUrl}';";
                await Task.Run(() =>
                {
                    OleDbDataReader reader = AccessDBHelper.ExecuteReader(sql, App.Databasefilepath);
                    if (reader != null)
                    {
                        if (attendancelist != null)
                            this.Dispatcher.Invoke(() =>
                            {
                                currenthomelist.Clear();
                            });
                        while (reader.Read())
                        {
                            Homework a = new Homework();
                            a.StuNum = reader["stunum"].ToString();
                            a.StuName = reader["stuname"].ToString();
                            a.ClassNum = reader["classnum"].ToString();
                            a.Score = Convert.ToDecimal(reader["score"].ToString());
                            a.Count = Convert.ToInt32(reader["hcount"].ToString());
                            this.Dispatcher.Invoke(() =>
                            {
                                currenthomelist.Add(a);
                            });
                        }
                        reader.Close();
                    }
                    AccessDBHelper.CloseConnectDB();
                });
                int c = 0;
                string avg = $"select homework FROM Score WHERE stulisturl='{sd.DetailCourse.StudentListUrl}'";
                OleDbDataReader readerw = AccessDBHelper.ExecuteReader(avg, App.Databasefilepath);
                if (readerw != null)
                {
                    while (readerw.Read())
                    {
                        try
                        {
                            currenthomelist[c++].Avg = Convert.ToDecimal(readerw["homework"].ToString());
                        }
                        catch (Exception)
                        {
                            readerw.Close();
                            AccessDBHelper.CloseConnectDB();
                            break;
                        }
                    }
                }
                this.homeworklistview.ItemsSource = currenthomelist;
                this.homeworktime.ItemsSource = (from n in currenthomelist select n.Count).ToList().Distinct();
                readhomelist = currenthomelist;
            }
        }
 /// <summary>
 /// 添加作业成绩
 /// </summary>
 private async void edithome_Click(object sender, RoutedEventArgs e)
 {
     StatisticsDetailViewModel sd = (StatisticsDetailViewModel)this.DataContext;
     if (this.edithome.Content.ToString() == "添加成绩")
     {
         if (this.currenthomelist != null)
             this.currenthomelist.Clear();
         //string sql = $"select stuname,stunum,classnum,score,count FROM homework stulisturl='{sd.DetailCourse.StudentListUrl}';";
         string sql = $"select stuname,stunum,classnum from {sd.DetailCourse.StudentListUrl}";
         //this.progess.IsActive = true;
         //await Task
         //await Task.Delay(1000);
         await Task.Run(() =>
         {
             OleDbDataReader reader = AccessDBHelper.ExecuteReader(sql, App.Databasefilepath);
             if (reader != null)
             {
                 while (reader.Read())
                 {
                     Homework a = new Homework();
                     a.StuNum = reader["stunum"].ToString();
                     a.StuName = reader["stuname"].ToString();
                     a.ClassNum = reader["classnum"].ToString();
                     a.Score = 0;
                     a.Count = this.homeworktime.Items.Count + 1;
                     a.Stulisturl = sd.DetailCourse.StudentListUrl;
                     this.Dispatcher.Invoke(() =>
                     {
                         currenthomelist.Add(a);
                     });
                 }
                 reader.Close();
             }
             AccessDBHelper.CloseConnectDB();
             this.Dispatcher.Invoke(() =>
             {
                 this.homeworklistview.ItemsSource = null;
                 this.homeworklistview.ItemsSource = currenthomelist;
                 //this.homeworktime.Items.Add(currenthomelist[0].Count);
                 this.homeworktime.IsEnabled = false;
                 this.edithome.Content = "保存成绩";
             });
         });
         //this.progess.IsActive = false;
     }
     else
     {
         //保存成绩
         string[] SQLTransaction = new string[currenthomelist.Count - 1];
         string itempatten = $"insert into Homework (stuname,stunum,classnum,score,coursenum,hcount,stulisturl) values ";
         for (int i = 0; i < SQLTransaction.Length; i++)
         {
             string insert = itempatten + $"('{currenthomelist[i].StuName}','{currenthomelist[i].StuNum}','{currenthomelist[i].ClassNum}','{currenthomelist[i].Score}','{sd.DetailCourse.CourseNum}','{currenthomelist[0].Count}','{currenthomelist[0].Stulisturl}')";
             SQLTransaction[i] = insert;
         }
         AccessDBHelper.Transaction(SQLTransaction, App.Databasefilepath);
         this.homeworktime.IsEnabled = true;
         this.readhomelist.AddRange(currenthomelist);
         string setscore=$"UPDATE score as t1,(SELECT stunum,AVG(score)AS avgscore FROM homework WHERE stulisturl='{currenthomelist[0].Stulisturl}' GROUP BY stunum)as t2 SET t1.homework = t2.avgscore WHERE t1.stunum = t2.stunum";
         //string setscore = $"UPDATE score SET homework=( SELECT AVG(score) FROM homework WHERE stunum = score.stunum and stulisturl = '{currenthomelist[0].Stulisturl}' )";
         AccessDBHelper.ExecuteNonQuery2(setscore, App.Databasefilepath);
         this.edithome.Content = "添加成绩";
         this.homeworktime.ItemsSource = null;
         this.homeworktime.ItemsSource = (from n in readhomelist select n.Count).ToList().Distinct();
         MessageBox.Show("已保存");
     }
 }
        private ObservableCollection<Homework> gethomeworkasync(string url)
        {
            string sql = $"select stuname,stunum,classnum,score,hcount from Homework where stulisturl='{url}'";
            ObservableCollection<Homework> c = new ObservableCollection<Homework>();
            //return await Task.Run(() =>
            //{
            //    OleDbDataReader reader = AccessDBHelper.ExecuteReader(sql, App.Databasefilepath);
            //    if (reader != null)
            //    {
            //        while (reader.Read())
            //        {
            //            Homework a = new Homework();
            //            a.StuNum = reader["stunum"].ToString();
            //            a.StuName = reader["stuname"].ToString();
            //            a.ClassNum = reader["classnum"].ToString();
            //            a.Score = Convert.ToDecimal(reader["score"].ToString());
            //            a.Count = Convert.ToInt32(reader["hcount"].ToString());
            //            c.Add(a);
            //        }
            //        reader.Close();
            //        AccessDBHelper.CloseConnectDB();
            //    }

            //    return c;
            OleDbDataReader reader = AccessDBHelper.ExecuteReader(sql, App.Databasefilepath);
            if (reader != null)
            {
                while (reader.Read())
                {
                    Homework a = new Homework();
                    a.StuNum = reader["stunum"].ToString();
                    a.StuName = reader["stuname"].ToString();
                    a.ClassNum = reader["classnum"].ToString();
                    a.Score = Convert.ToDecimal(reader["score"].ToString());
                    a.Count = Convert.ToInt32(reader["hcount"].ToString());
                    c.Add(a);
                }
                reader.Close();
                AccessDBHelper.CloseConnectDB();
            }
            return c;
            //});
        }