简体   繁体   English

C#WPF和Sqlite:当尝试从sqlite数据库表中读取数据时,Datagrid显示最后一个表记录

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

I can't figure why my data grid is displaying the last table recording from an Sqlite database. 我无法弄清楚为什么我的数据网格会显示Sqlite数据库中的最后一个表记录。 here is the code I've writen. 这是我写的代码。

    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;

inside the while you have to instantiate a new activity class: 在里面,您必须实例化一个新的活动类:

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

Can you create new object instance for "Activity" class in inside while loop. 您可以在while循环内部为“ Activity”类创建新的对象实例吗?

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM