Использование Prism 5 (если это имеет значение), я пытаюсь прочитать таблицу в классе, но когда я запускаю программу, SQLiteDataReader Read() никогда не выполняется (или так я думаю, Точка останова никогда не попадает).DataReader никогда не входит в Read()
В своем решении я есть ModuleA с классом ViewModel с методом, который будет обновлять привязок в представлении:
public void ShowGeneral()
{
Personnel personnel = new Personnel();
personnel = PersonnelDAL.GetPersonnelRecord(Human);
pName = personnel.PersonName + " Esquire";
pAge = personnel.PersonAge;
}
PersonnelDAL.GetPersonnelRecord() находится в отдельном модуле. (Этот модуль имеет ссылки на SQLite).
public static Personnel GetPersonnelRecord(int id)
{
SQLiteConnection myDBconnection = new SQLiteConnection(SQLiteDAL.dbConnectionString);
Personnel personnel = new Personnel();
try
{
myDBconnection.Open();
string strQuery = "SELECT Person.*, Personnel.*," +
" FROM Person, Personnel WHERE Person.PersonPersonnelID = Personnel.PersonnelID AND Person.PersonID = @PersonID";
SQLiteCommand query = new SQLiteCommand(strQuery, myDBconnection);
query.Parameters.Add(new SQLiteParameter("@PersonID") { Value = id });
// A Breakpoint set here is hit
SQLiteDataReader myReader = query.ExecuteReader();
// A Breakpoint set here is never hit
while (myReader.Read())
{
personnel.PersonID = myReader.GetInt32(0);
personnel.PersonName = myReader.GetInt32(1);
personnel.PersonAge = myReader.GetInt32(3);
// etc
В результате View не отображает значение для Age и только Esquire для имени.
Почему myreader.Read() никогда не выполнялся?
К сожалению, лучшим описанием макета является: модуль DataLayer с классом PersonnelDAL с GetPersonnelRecord(). Предполагается, что PersonnelDAL возвращает объект Personnel. –
Вы глотаете исключения? Не делай этого. У вас есть дополнительная запятая в вашем sql перед FROM. Это бросит. – LarsTech
'Отладка на самом деле работает Wonders', попытайтесь использовать его ... – MethodMan