2016-01-17 2 views
1

Я пытаюсь извлечь данные из базы данных и отобразить их в списке. У меня есть следующий код, и когда я его запускаю, он не дает никаких ошибок или чего-то другого, но в списке нет данных.Нет ошибок в коде, но данные, полученные из базы данных, не отображаются в списке

connection.Open(); 

DataTable dt = new DataTable(); 

OleDbCommand command = new OleDbCommand(); 
command.Connection = connection; 
command.CommandText = "select * from Appointments where PersonID = '" + textBox4.Text + "'"; 

OleDbDataReader reader = command.ExecuteReader(); 

dt.Load(reader); 

foreach (DataRow Dr in dt.Rows) 
{ 
    listBox1.Items.Add(Dr["PersonID"].ToString()); 
} 

connection.Close(); 
+0

Я считаю, что вам нужно позвонить listBox1.Refresh() - не цитируйте меня на том, что, хотя, я не могу вспомнить, если это так или нет –

+0

Я добавил ваше предложение, но, к сожалению, это Безразлично Не работай. – Needsomehelp

+1

Имеет ли datatable какие-либо строки? Ваш SQL может не получать какие-либо данные из базы данных, которая соответствует критериям. – jdweng

ответ

2

Вы не показывать строку подключения, но при работе с базами данных на основе файлов (Access, как это кажется вы используете) внутри Visual Studio, это звучит как один из старых подводных камней.

Если ваш файл MDB является частью проекта, а его «Действие» имеет значение «Копировать всегда», то каждый раз, когда вы запускаете приложение, файл MDB в папке BIN будет перезаписан тем, который находится в вашем исходной папке, тем самым перезаписав все изменения, внесенные вами в последний раз.

Убедитесь, что это не так, поскольку это один из распространенных источников проблемы.

Приветствия

+0

Это не имеет значения. Потому что я добавляю данные, когда приложение работает. Поэтому без проблем данные могут быть перезаписаны при запуске приложения. – Needsomehelp

Смежные вопросы