C# WPF 和 Sqlite:Datagrid 在尝试从 sqlite 数据库 table 读取时显示最后 table 记录

C# WPF and Sqlite: Datagrid displays last table recording when trying to read from an sqlite database table

我不明白为什么我的数据网格显示来自 Sqlite 数据库的最后 table 记录。 这是我写的代码。

    ObservableCollection<Activity> _activitiesList = new ObservableCollection<Activity>();



  while (reader.Read())
{
   _act.Name = reader.GetString(reader.GetOrdinal("Activity"));
   _act.Customer = reader.GetString(reader.GetOrdinal("ActivityCustomer"));
   _act.Activitytpe = reader.GetString(reader.GetOrdinal("ActivityNature"));
   string st = reader.GetString(reader.GetOrdinal("StartedAt"));
   _act.StartedAt = Convert.ToDateTime(st);
   string et = reader.GetString(reader.GetOrdinal("FinishedAt"));
   _act.EndedAt = Convert.ToDateTime(et);
   //string _ratio = reader.GetString(reader.GetOrdinal("ActivityRatio"));
   //_act.ActivityRatio = Convert.ToDouble(_ratio);
   _act.Notes = reader.GetString(reader.GetOrdinal("Notes"));
   string _hldy = reader.GetString(reader.GetOrdinal("Holiday"));
   _act.IsHoliday = Convert.ToBoolean(_hldy);
   _activitiesList.Add(_act);
}
ActivitiesDataGrid.ItemsSource=_activitiesList;

你必须实例化一个新的 activity class:

while (reader.Read())
{ 
      Activity _act=new Activity();
      ....
}

你能在 while 循环中为 "Activity" class 创建新的对象实例吗?

 ObservableCollection<Activity> _activitiesList = new ObservableCollection<Activity>();

**while (reader.Read())
            {
                ***_act = new Activity();***
                _act.Name = reader.GetString(reader.GetOrdinal("Activity"));
               ....
               ....
             }**