Как заполнить datagridview c из sql
Данное руководство устарело. Актуальное руководство: по ADO.NET и работе с базами данных в .NET 6
Ранее мы рассмотрели, как удобно загружать данные в приложении Windows Forms в элемент DataGridView через DataSet. Теперь определим полнофункциональную форму, через которую мы сможем производить все стандартные CRUD операции в базе данных.
Итак, определим форму, на которой будет элемент DataGridView и три кнопки для добавления, удаления и сохранения изменений. Форма в итоге будет выглядеть примерно следующим образом:
Код формы будет выглядеть следующим образом:
Здесь для добавления объекта мы будем обращаться к хранимой процедуре sp_CreateUser, которая была добавлена в базу данных в прошлой теме.
В конструкторе данные загружаются в DataSet, первая таблица которого устанавливается в качестве источника данных для dataGridView1:
Также в конструкторе устанавливается полное выделение строки и запрет на ручное добавление новых строк:
В обработчике кнопки добавления создается новая строка, которая добавляется в таблицу объекта DataSet. И так как мы ранее установили привязку к источнику данных, то автоматически новая строка также будет добавляться и в dataGridView1:
В обработчике кнопки удаления удаляются выделенные строки в dataGridView1. Опять же в силу привязки к источнику данных будет также происходить удаление и из таблицы в DataSet:
Для обновления на не нужна никакая кнопка, так как мы можем нажать на любую ячейку таблицы (кроме заблокированного для изменения столбца Id) и изменить в ней данные. Однако сами по себе добавление новой строки, удаление строк, изменение ячеек ни как автоматически не отразятся на базе данных. И чтобы бд синхронизировалась, пользователю надо будет нажать на кнопку сохранения, обработчик которой выглядит следующим образом:
Как в прошлой теме здесь устанавливается у адаптера команда на добавление InsertCommand и затем вызывается метод Update() . В итоге мы можем добавить несколько строк, удалить, изменить, и потом один раз мы нажмем на кнопку, и все изменения будут применены к базе данных.
Как заполнить datagridview c из sql
![]()
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Answered by:
Question
im trying to get data from dataset to a gridview , like this:
But somehow it does not work. the error is on line :
Object reference not set to an instance of an object.
Answers
Hello ondra, with DataSet you need to specify a DataMember name, in your case the table name:
- Marked as answer by Jason Dot Wang Wednesday, October 10, 2012 9:06 AM
All replies
Try this instead
If you prefer to call the table by the name instead the index(recommended for the readability) you can assign the name when you instantiate the table.
- Edited by Norkk Tuesday, October 2, 2012 5:17 PM
- Proposed as answer by mkruluts Tuesday, October 2, 2012 5:19 PM
The problem is this line!
2nd parameter "lide" is not set to any object (it must be a table name that exists), you simply write some name. If you want this to work, you have to do:
After that line
Create this, and put one breakpoint
And tell me which value count have. If have 0 that’s is your problem, your select don’t return anything. Because it’s probably the reason to my code don’t work.
- Edited by Norkk Tuesday, October 2, 2012 5:33 PM
But you actually dont even need a DataSet, which is only a connection of multiple dataTables. I assume you only need one datatable, so this code will do just fine:
But you actually dont even need a DataSet, which is only a connection of multiple dataTables. I assume you only need one datatable, so this code will do just fine:
This will do
If dataTable has data (rows) this code should work I suppose.
And if you checked there are rows in dataTable (you said there are 2), the databinding should occur.
Try changing binding to:
I really dont know what the dataGridView is not populated with the data from dataTable.
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Вывод данных в DataGridView из БД на C#
В Windows Forms табличные данные удобно выводить с помощью элемента управления DataGridView. В статье покажем, как это сделать на примере таблицы из базы данных и языка программирования C#.
Исходные данные для DataGridView
Имеется таблица в базе данных Microsoft SQL Server с информацией о факультетах университета.

Эти данные будем выводить в элемент DataGridView, расположенный на Windows Forms.
Программа с DataGridView
Создадим новый проект Windows Forms на Visual C# в Visual Studio. На форме расположим элемент управления DataGridView — для этого перетащите его с «Панели элементов» на макет окна.
Добавим в DataGridView три столбца под три соответствующих колонки из таблицы БД с помощью кнопки «Правка столбцов».

Для наглядности назовём их так же, как называются поля в таблице базы данных.

Переходим к написанию кода. Вся функциональность по чтению данных из БД и их последующему выводу в DataGridView реализована в методе LoadData().
Populate a datagridview with sql query results
![]()
Try binding your DataGridView to the DefaultView of the DataTable :
![]()
This is suppose to be the safest and error pron query :
You may get a blank data grid if you set the data Source to a Dataset that you added to the form but is not being used. Set this to None if you are programatically setting your dataSource based on the above codes.
You may try this sample, and always check your Connection String, you can use this example with or with out bindingsource you can load the data to datagridview.