Datagridview c добавить строку

Ранее мы рассмотрели, как удобно загружать данные в приложении Windows Forms в элемент DataGridView через DataSet. Теперь определим полнофункциональную форму, через которую мы сможем производить все стандартные CRUD операции в базе данных.

Итак, определим форму, на которой будет элемент DataGridView и три кнопки для добавления, удаления и сохранения изменений. Форма в итоге будет выглядеть примерно следующим образом:

Код формы будет выглядеть следующим образом:

Здесь для добавления объекта мы будем обращаться к хранимой процедуре sp_CreateUser, которая была добавлена в базу данных в прошлой теме.

В конструкторе данные загружаются в DataSet, первая таблица которого устанавливается в качестве источника данных для dataGridView1:

Также в конструкторе устанавливается полное выделение строки и запрет на ручное добавление новых строк:

В обработчике кнопки добавления создается новая строка, которая добавляется в таблицу объекта DataSet. И так как мы ранее установили привязку к источнику данных, то автоматически новая строка также будет добавляться и в dataGridView1:

В обработчике кнопки удаления удаляются выделенные строки в dataGridView1. Опять же в силу привязки к источнику данных будет также происходить удаление и из таблицы в DataSet:

Для обновления на не нужна никакая кнопка, так как мы можем нажать на любую ячейку таблицы (кроме заблокированного для изменения столбца Id) и изменить в ней данные. Однако сами по себе добавление новой строки, удаление строк, изменение ячеек ни как автоматически не отразятся на базе данных. И чтобы бд синхронизировалась, пользователю надо будет нажать на кнопку сохранения, обработчик которой выглядит следующим образом:

Как в прошлой теме здесь устанавливается у адаптера команда на добавление InsertCommand и затем вызывается метод Update() . В итоге мы можем добавить несколько строк, удалить, изменить, и потом один раз мы нажмем на кнопку, и все изменения будут применены к базе данных.

2 vijisha [2014-12-16 13:58:00]

У меня 2 формы. form1 содержит datagridview. вторая форма (form2) содержит текстовые поля. когда я нажимаю кнопку Ok в форме2, значения должны добавляться в datagridview как новая строка. Это код, который я пытаюсь использовать для передачи данных, но не показывающий ошибки и результата.

c# winforms datagridview

3 ответа

3 Решение Nocturnal [2014-12-16 19:20:00]

поместите это на Form1

поместите это на Form2

это должно сделать это

и модификатор datagridview должен быть общедоступным

0 SiD [2014-12-16 15:33:00]

Это самый простой способ предложить вам:

  • Создание открытого метода в форме 2 для добавления строк в представление сетки данных
  • Создать экземпляр формы 2 при нажатии кнопки и методе вызова формы 2

Форма 1

Форма 2

0 Vajura [2014-12-16 14:06:00]

Вам нужно добавить ссылку на вашу форму1 где-то в форме2, несколько простой способ сделать это — добавить это в form2 сверху

И тогда, когда вы создаете форму2, я предполагаю что-то вроде этого из form1

Вы добавляете это сразу после ShowDialog() или перед

Затем вы можете использовать form1 как переменную внутри form2 для ссылки на form1

Member

Как добавить новую строку в DataGridView?

Из этой статьи Вы узнаете, как добавить строку в DataGridView.

И так, как обычно для начала создадим простое Windows Forms приложение на языке c#, после чего добавим на форму: DataGridView (dgv), кнопку и textBox.

Чтобы добавить новую строку в DataGridView нужно воспользоваться методом Add, например:

Первый параметр — это имя колонки, а второй — это
название колонки, которое будет отображаться в DataGridView.

Снова попробуем добавить строку в DataGridView.

Либо можно сразу же передать значения в качестве параметров, например:
dgv.Rows.Add(0, textBox1.Text);
результат

Теперь всё в порядке задача решена.

Здесь стоит обратить внимание на один важный момент. По умолчанию в DataGridView рядом с пунктом Enable Adding включена галочка, которая даёт возможность пользователям вручную добавлять строки прямо в самом элементе DataGridView.

Но также её включение приводит к тому, что каждый раз, перед
выполнением метода Add, в коллекцию строк будет автоматически
добавляться новая строка.

Поэтому в данном примере мы можем вообще не вызывать метод Add, а
сразу же заполнить ячейки уже существующей строки нужными нам
значениями, например:


[an error occurred while processing the directive]
Карта сайта