2013-05-09 3 views
0

У меня есть следующий запрос для отображения данных студента в dataGridView, но он, похоже, вообще-то отображает любые записи. Мой код:SQL-запрос выполняется, но не дает никаких результатов.

public void setSQL() 
{ 
    string ConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\jasper\\Desktop\\AutoReg\\AutoReg.accdb;"; 

    OleDbConnection MyConn = new OleDbConnection(ConnStr); 
    MyConn.Open(); 

    DataSet ds = new DataSet(); 

    //query to ask 
    string query = "SELECT * FROM Student"; 

    using (OleDbCommand command = new OleDbCommand(query, MyConn)) 
    { 
     using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) 
     { 
      adapter.Fill(ds); 
      dataGridView1.DataSource = ds; 
      MyConn.Close(); 
     } 
    } 
} 
+0

Некоторые советы: использовать попробовать и поймать блоки, так что вы можете закрыть соединение, если выполнение запроса не удается (это может сделать это для причины вне вашего контроля). – Renan

+0

Очевидно, но убедитесь, что вы попали в нужный файл и что у него есть данные в таблице учеников. – Tony

+0

Это правильный файл, и я уверен, что в нем есть некоторые данные. – jaspernorth

ответ

0

редактировать: После просмотра комментария я заметил свою ошибку. Я принимал веб-приложение.

В качестве источника данных следует использовать DataTable, а не DataSet. Установите свойство источника данных в первую таблицу в коллекции таблиц DataSet.

На самом деле вы можете использовать DataSet, но это не так просто. Тем не менее, это позволяет пользователю изменять таблицу, которую она видит.

+0

, похоже, не работает:/ 'System.Windows. Forms.DataGridView 'не содержит определения для' DataBind ' – jaspernorth

+0

Вы совершенно правы! это работает сейчас, большое спасибо – jaspernorth

+0

Не могу поверить в принятый ответ, с downvote. @jaspernorth: Примите этот ответ, если это поможет. – shahkalpesh

0

Пара вещей, которые вы можете проверить.

  1. У вас есть данные в этой таблице?

  2. Попробуйте прокомментировать часть об OleDbDataAdapter, вместо этого используйте DataReader, чтобы вы могли перейти и посмотреть, есть ли возвращаемые строки.

  3. Если вы получаете строки в своем datareader, то это может иметь отношение к настройке вашего набора данных. Используете ли вы автогенераторы? Если нет, правильно ли настроены столбцы?

0

Вместо:

dataGridView1.DataSource = ds; 

Попробуйте это:

dataGridView1.DataSource = ds.Tables[0]; 
+0

Спасибо, полезно также – jaspernorth

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