2017-02-15 11 views
0

Я загружаю таблицу с базой данных в DataGridView таким образом. У меня есть datagridview, отображаемый во всех строках, кроме первого. В чем проблема?Таблица, загруженная с базой данных в datagridview, не отображает первую строку

  while (reader.Read()) 
      { 
       if (reader.HasRows == false) 
       { 
        dataGridView1.Visible = false; 
       } 
       else 
       { 
        dataGridView1.Visible = true; 
        DataTable dt = null; 
        dt = new DataTable(); 
        dt.Load(reader); 
        dataGridView1.DataSource = dt; 

        if (reader.IsClosed == true) 
        { 
         break; 
        } 
       } 
      } 
+0

Вы читаете CSV-файл? Первая строка станет именами столбцов и не будет помещена в 1-ю строку. – jdweng

+0

В первой строке csv содержатся имена столбцов? Вы видите эти имена в заголовках столбцов DataGridView? – Graffito

+0

Нет, я прочитал DB SQL Server. Да, я вижу заголовки в datagridview, ну и без них нет первой строки. – SergeyAndSmart

ответ

0

Используется следующая codesnippet и она работала безупречно на моем конце

private void Request(string request) { 

    var dt = new DataTable(); 

    try { 
     MySqlCommand cmd = new MySqlCommand(request, connectionString); 
     MySqlDataReader reader = cmd.ExecuteReader(); 

     while (reader.Read()) { 
      dt.Load(reader); 
      if (reader.IsClosed) break; 
     } 
     reader.Close(); 
    } catch (MySql.Data.MySqlClient.MySqlException ex) { 
     Console.WriteLine(ex); 
    } 
    dataGridView1.DataSource = dt; 
} 

попробовать это, и если это не будет работать, проверить запрос Строка

+0

Я пробовал, не работал. – SergeyAndSmart

+0

вы можете показать весь код для процесса чтения? – Zerray

+0

Да. [Код] (http://savepic.ru/12932192.png) – SergeyAndSmart

0

Все работает. Необходимо было удалить цикл reader.Read(). Спасибо за помощь!

private void Request(string request) 
     { 
      try 
      { 
       SqlCommand command = new SqlCommand(request, connectionString); 
       command.ExecuteNonQuery(); 
       SqlDataReader reader = command.ExecuteReader(); 

       if (reader.HasRows == false) 
       { 
        dataGridView1.Visible = false; 
       } 
       else 
       { 
        dataGridView1.Visible = true; 
        var dt = new DataTable(); 
        dt.Load(reader); 

        dataGridView1.DataSource = dt; 
       } 
      } 
      catch (Exception e) 
      { 
       MessageBox.Show(e.Message.ToString(), e.Source.ToString()); 
      } 
     }