Он не пересылает таблицу в datagridview и меня warning invalid operation exception

У меня есть следующая проблема. Я пробую пересылать таблицу в datagridview, но попробовав это, мне встречает warning сообщения invalid operation exception.

Я оставляю детали данного исключения.

System.InvalidOperationException was unhandled
  HResult=-2146233079
  Message=No row can be added to a DataGridView control that does not have columns. Columns must be added first.
  Source=System.Windows.Forms
  StackTrace:
       at System.Windows.Forms.DataGridViewRowCollection.AddInternal(Boolean newRow, Object[] values)
       at System.Windows.Forms.DataGridViewRowCollection.Add(Object[] values)
       at Proyecto_final1.Worktable.llenar1() in D:\Manejador de items\Proyecto final1\Proyecto final1\Worktable.cs:line 88
       at Proyecto_final1.Worktable.Worktable_Load(Object sender, EventArgs e) in D:\Manejador de items\Proyecto final1\Proyecto final1\Worktable.cs:line 35
       at System.Windows.Forms.Form.OnLoad(EventArgs e)
       at System.Windows.Forms.Form.OnCreateControl()
       at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       at System.Windows.Forms.Control.CreateControl()
       at System.Windows.Forms.Control.WmShowWindow(Message& m)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       at System.Windows.Forms.Form.WmShowWindow(Message& m)
       at System.Windows.Forms.Form.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  InnerException: 

И это линия, на которую VS 2015 указывает мне, у таблицы есть 8 колонн

 conx.Open(); MySqlDataReader leer;
            MySqlCommand cmd = new MySqlCommand("select * from usuario", conx);
            leer = cmd.ExecuteReader(); dgvUsuario.Rows.Clear();
            while (leer.Read())
            {
                this.dgvUsuario.Rows.Add(leer.GetValue(0), leer.GetValue(1), leer.GetValue(2), leer.GetValue(3), leer.GetValue(4), leer.GetValue(5), leer.GetValue(6), leer.GetValue(7));
            }
            conx.Close();

Он какую-то разрабатывает коллеги?

1
задан 25.04.2017, 19:39
1 ответ

Ты мог бы осуществлять что-то как это

MySqlCommand cmd = new MySqlCommand("select * from usuario", conx);

SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);

dgvUsuario.DataSource = dt;

из этой формы колонны будут созданы автоматически согласно данным datatable

, Если ты хочешь использовать Rows. Add () сначала ты был бы должен создавать колонны

dataGridView1.ColumnCount = 8;
dataGridView1.Columns[0].Name = "NombreCol1";
dataGridView1.Columns[1].Name = "NombreCol2";

DataGridView. Columns

1
ответ дан 24.11.2019, 09:58
  • 1
    большое спасибо у него проблемы были с этим, так как это было тем, что я мой учитель показал нам, я подумал, что он немного вредил, но я осведомляюсь, которому проистекает моя проблема, случай - что-то из версий платформ? снова спасибо я функционирую верно – Carlos Alvarez 12.04.2017, 21:18
  • 2
    если ты создаешь колонны используя Rows. Add () у тебя есть, что заблаговременно создавать колонны используя dgvUsuario. Columns. Add () – Leandro Tuttini 12.04.2017, 21:23
  • 3
    ох, и поскольку он был бы должен переходить в этом случае? – Carlos Alvarez 12.04.2017, 22:19
  • 4
    издайте вопрос, добавьте код, чтобы создавать колонны с кодом до того, как rows добавлять – Leandro Tuttini 12.04.2017, 23:03