У меня есть следующий код:
// personCount = 7291; correct value
int personCount = (int)new OleDbCommand("SELECT COUNT(*) AS [count] FROM [Individual]", _access).ExecuteScalar();
List<Person> people = new List<Person>();
OleDbCommand personQuery = new OleDbCommand("SELECT * FROM [Individual]", _access);
using (OleDbDataReader personReader = personQuery.ExecuteReader())
{
int curPerson;
while (personReader.Read())
{
curPerson++;
// This runs several times
if (personReader.IsDBNull(0)) continue;
// [snip] create a new Person and add it to people
}
// at this point, curPerson == 7291 but the list is empty.
}
Это мой точный код. Поле 0 является первичным ключом, поэтому никогда не должно быть нулевым, но для каждой строки, возвращаемой из базы данных, все поля имеют значение DBNull! Я не вижу, что я делаю неправильно, кто-нибудь может пролить свет на это?
Моя строка подключения:
Provider = Microsoft.Jet.OLEDB.4.0; Источник данных = C: \ path \ to \ database.mdb