| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > Работа с Access |
| Автор: WinNet 19.7.2007, 17:10 | ||||
| Здравствуйте! Есть проблема с Access. После выборке всех данных из таблицы результат сохраняется в объекте dbRecord типа ArrayList , а затем выводится в dataGridView1. Проблема в том что данные выводятся в нежелательном порядке , то есть нумерация идет сначала с 10 до 30 а в конце с 1 до 8. Еще проблема :если сделать запрос по условию
Вот код:
|
| Автор: Nickey 19.7.2007, 19:27 |
| отсортируй полученый результат запроса(ORDER BY). я несилен в базах данных, но WHERE [№]=14 вот [] как то странно выглядит. |
| Автор: WinNet 19.7.2007, 20:07 |
| Смысл в том , что если нужно вывести 1-ну строку то ничего не выводится (к примеру) SELECT * FROM Таблица1 WHERE ИНН = '456456456'. Сортировать данные в SQL запросе или нужно настроить dataGridView? Можно примерчик... |
| Автор: thomas 19.7.2007, 20:33 | ||||||
WinNet,
ИНН - какой тип? (численный или текстовый) Если числовой то одиночные кавычки не нужны, если текстовый то нужны. Потом ИНН это что, ключ? |
| Автор: mr.DUDA 19.7.2007, 21:45 |
| ИНН это индивидуальный номер налогоплательщика. |
| Автор: WinNet 19.7.2007, 23:15 | ||
| Отсортировать получилось , а затем и выполнить "упрямый" запрос! Вот получившийся запрос:
И вообще работа с Access очень спецефична , к примеру если назвать таблицу не "Таблица1" а "Table1" (Похоже глюк с латиницей.) и соответственно отредактировав запрос , произойдет ошибка "таблица не найдена" |
| Автор: mr.DUDA 20.7.2007, 08:51 |
| WinNet, столбцы в таблицах общепринято называть латинскими буквами. Как, впрочем, и сами таблицы. |
| Автор: WinNet 23.7.2007, 16:40 |
| Не могу отредактировать данные в dataGridView. ReadOnly = false , а строки все равно не доступны... Алгоритм такой: Сначала получаю данные с помощью ExecuteReader , затем редактирую данные в dataGridView после чего вношу изменения в БД с помощью ExecuteNonQuery. Как настроить dataGridView? |
| Автор: thomas 23.7.2007, 19:43 | ||
WinNet,
код покажи. |
| Автор: WinNet 23.7.2007, 22:15 | ||
thomas вот:
|
| Автор: mr.DUDA 23.7.2007, 23:06 |
| WinNet, для датасетов есть DataAdapter-ы и метод Fill. Ридер тогда вообще не нужен. |
| Автор: thomas 23.7.2007, 23:23 | ||
| mr.DUDA, Так он ДатаСет не использует. А пользует ArrayList dbRecord = new ArrayList(); Мне тоже непонятно почему. И я тут задумался: если использовать ДатаСет, то грид редактируется(если не запретить) и изменения внесенные в грид нормально сохраняются в БД. А что должно происходить в случае когда грид отображает данные из ArrayList ? Получается грид должен внести изменения в ArrayList? И насколько я понял у него
Что-то тут не так |
| Автор: Idsa 24.7.2007, 02:00 |
| ... |
| Автор: WinNet 27.7.2007, 18:12 | ||
| Подскажите как обновить данные в БД? Вот кад заполнения DataSet:
После редактирования данных в dataGridView , нужно обновить БД. Причем желательно обновлять не всю БД целиком , а только те строки , которые были изменены. Обновление должно произойти при нажатии на кнопку "сохранить изменения".... |
| Автор: thomas 28.7.2007, 00:33 | ||
PS писал без студии, могут быть ошибки. |
| Автор: WinNet 28.7.2007, 10:29 |
| Еще 2 преблемки: 1) Я заполнил DataSet данными и вывел их в DataGridView , затем я снова (другой запрос) заполнил DataSet данными и вывел их в DataGridView , при этом данные просто добавились к существующим,а не "вывелись" самостоятельно. Что бы решить эту проблему я очищаю DataSet, (DataSet.Clear()). Правильно ли это? 2) У меня есть столбец "№" с автоприращением , при удалении строки из таблици , остается промежуток. Например удаляю строку под номером 10 , после этого строки идут так: 9-я а за ней сразу 11-я. Это нормально? |
| Автор: mr.DUDA 28.7.2007, 10:57 |
| Модератор: Пожалуйста, один топик - один вопрос. |