| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > вывод таблицы в DataGridView |
| Автор: cypher 30.6.2007, 13:53 | ||
| Не могу уже два дня решить проблепу! Поиск юзал долго таких тем много но из всего пересмотреного так и не смог решить проблему.. так вот я подключаюсь к файлу Access.mdb, после создаю DataSet notaryDS = new DataSet; и загружаю таблицу из Access.mdb в notaryDS через OleDbDataAdapter: OleDbDataAdapter dataAdaper_xls = new OleDbDataAdapter("SELECT * FROM notary", connect_xls); dataAdaper_xls.Fill(notaryDS); После чего создаю DataColumn ... создаю DataTable и додаю в свою DataTable свои DataColumn вот так: DataTable notaryTable = new DataTable("Notary"); notaryTable.Columns.AddRange(new DataColumn[] {id_nColumn, name_nColumn, streetName_nColumn, codeStreet_nColumn, house_nColumn, addressInf_nColumn, phone_nColumn, organization_nColumn, otherInf_nColumn}); Наконец додаю DataTable в DataSet notaryDS.Tables.Add(notaryTable); Потом мне надо все ето отобразить в DataGridView делаю вот так dataGridViewN.DataSource = notaryTable; в Троельсен пишет что ето и есть отображение таблицы DataTable в DataGridView;(но наверное я что-то не понял) вот мой код на C#
После всего етого я запузкаю своё приложение и в DataGridView отображаются только названия столбцов([B]смотри файл!) которые я создав в DataTable а отобразить содержимое таблицы никак не могу, как ето сделать?[/B] всюду пишут про BindingSource, но я не понимаю что он делает, пробовал я и так делать BindingSource bindSource = new BindingSource(); bindSource.DataMember = "notary"; bindSource.DataSource = notaryDS; А может ето вообще не то... обясните пожалуйста как мне вручную вывести свою таблицу в DataGridView. знаю можно сделать автоматически Data Source Configuration Wizard тогда все отображается но он генерирует кода на 1500 строк. |
| Автор: Idsa 30.6.2007, 14:49 |
| Хм... Не очень понятно, зачем ты добавляешь таблицу в DataSet, а потом в качестве DataSource указываешь все ту же таблицу... Хотя проблема, конечно, не в этом. Ты бы лучше не картинку прикрепил, а проект! |
| Автор: cypher 30.6.2007, 16:21 |
| не могу! там база даных которую нельзя выставлять... |
| Автор: tol05 30.6.2007, 16:36 | ||||||
| ты в качестве источника данных к DataGridView указываешь не таблицу Dataset (который ты так качественно запонил вместо
напиши
а весь код, начиная со строки 16 до строки 40 - удали вообще... P.S. вариант 2:
|
| Автор: cypher 30.6.2007, 18:04 |
| tol05 зделал так как ты сказал и все заработало! респект. теперь надо сделать чтобы я ввёл изменение и при нажатии кнопки ети изменения из DataGridView переносились в БД! пока что не представляю себе как ето сделать... если есть предложения буду очень признателен! |
| Автор: tol05 30.6.2007, 19:57 | ||
| 1. Адаптер нужно сделать переменной класса. И все остальные объекты (датасет, таблицы) тоже... Чтоб доступ к ним был из любого метода... 2. Нужно написать http://msdn2.microsoft.com/en-us/library/system.data.oledb.oledbdataadapter.updatecommand.aspx
И вообще, почитать MSDN по DataAdapter, DataSet. Или просто книжку по ADO.NET |
| Автор: cypher 30.6.2007, 20:40 | ||
я вот только не понимаю что надо обновлять, тоесть как отслеживать что именно было изменино в DataGridView, или может можно всё сразу обновить??, внести в БД нажатием етой кнопки все изменения из DataGridView. Тоесь что нужно подставлять в SET.. "UPDATE мояТаблица SET аТутЧто?", как узнать что я изменил в DataGridView? P.S. понимаю что вопросы наивные но у меня времени очень мало, надо всё доделать до Понедельника!! |
| Автор: cypher 30.6.2007, 21:06 | ||
Ура решил проблему!!
не совсем понимаю как работает но.. при нажатии кнопки вносит изменения в БД сделаные в DataGridView. |
| Автор: thomas 1.7.2007, 12:33 | ||
| cypher, Не забудь дописать
|
| Автор: cypher 1.7.2007, 16:12 | ||||
а зачем если оно и так работает, что ета строчка будет делать? |
| Автор: thomas 1.7.2007, 17:50 |
| cypher, http://msdn.microsoft.com/library/rus/default.asp?url=/library/RUS/cpref/html/frlrfsystemdatadatasetclassacceptchangestopic.asp что надо читать первоисточники. Там слева оглавление есть, посмотри пригодиться. |
| Автор: thomas 2.7.2007, 10:12 | ||
Idsa,
Да база у него обновляется, но представь себе ситуацию: - внесли изменения в DataGridView - обновили базу - очистили DataGridView (не нужно больше отображать эти данные) - сделали какие-то другие действия И внимание !!! Нужно СНОВА вывести данные из этой таблицы ДатаСет в DataGridView Что в данном случае будет отображаться? |
| Автор: tol05 2.7.2007, 10:43 | ||
thomas, а я в первоисточниках другое читал как-то...
http://msdn.microsoft.com/library/rus/default.asp?url=/library/rus/cpref/html/frlrfsystemdatacommondataadapterclassupdatetopic.asp и писал когда-то http://forum.vingrad.ru/index.php?showtopic=150459&view=findpost&p=1129662 |
| Автор: Idsa 2.7.2007, 13:22 | ||
| thomas, Похоже, ты не обратил внимание на мой пост:
|
| Автор: cypher 2.7.2007, 17:17 |
| я очень стараюсь понять что вы сдесь обсуждаете но у меня есть еще одна существенная задача.. нужно както организовать поиск по DataGridViewN дёргал поиск но там нашёл только поиск с помощью DataTable.Select() который я так и не понял как работает. Можно как то искать по содержимому DataGridViewN или DataGridViewN.DataSource и потом их както выделять в DataGridViewN (например ввёл фразу оно нашло и както выделило, ну как в Excel, например) я не очень представляю как хранятся данные в DataGridView.. ёще про фильтры что-то пишут но как оно все роботает P.S. почему когда я выделяю в своём DataGridViewNБ мотом жму Ctrl-C открываю Excel жму Ctrl-V нормально отображаюся только цифры, а буквы(русские) ероглифы и кружечки |
| Автор: Idsa 2.7.2007, 17:29 |
| cypher, раз изначальный вопрос решен, тебе следует сообщить, что тема закрыта (а еще лучше и соответствующую галочку вверху справа поставить). Для последующих же вопросов стоит открывать новые топики. |
| Автор: cypher 2.7.2007, 18:38 |
| Да что-то я увлёкся, спасибо з замечание, и всем кто помог решить изначальный вопрос |