I have a datagridview that's getting its data from Access via `OleDbDataReader`.

The problem is as follows
Reading data into Data table then setting `datasource = dt` => works

```
dt.Load(dr);

```

taking the dt and applying Linq to it => empty GridView

```
GVMultiple.DataSource = (from myRow in dt.AsEnumerable()
                         where myRow.Field<string>("State") == "Succeeded"
                         select myRow)

```

making the `Linq.ToList()` => shows columns with names "RowError","RowState","Table" and "hasErrors" which aren't my columns

```
GVMultiple.DataSource = (from myRow in dt.AsEnumerable()
                         where myRow.Field<string>("State") == "Succeeded"
                         select myRow).ToList()

```

Reading data into `Object` of a custom `List then` setting `datasource = List` => empty `GridView`

```
while (dr.Read())
{
    UserList.Add(new UserInfo()
    {
        ID = (int)dr["ID"],
        UserName = (string)dr["User Name"]
    });
}

GVMultiple.DataSource = UserList

```

Can someone tell me what is going on?