![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Finkel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 31.3.2004 Репутация: нет Всего: нет |
хотелось бы знатьа можно вносить изменения в Бд с помощью технологии OLE DB.
я просто сейчас читаю книгу по си шарпу , но в ней говорится больше о технологиях провайдера SQL |
|||
|
||||
| stron |
|
|||
![]() Консультант ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1654 Регистрация: 17.7.2003 Где: Питер Репутация: 4 Всего: 36 |
Конечно можно.
Просто The Microsoft SQL Server .NET data provider рекомендуем для работы с MsSQL server 7.0+ (по идеи он должен быстрее работать, т.к. меньше ступеней при в/д) The Microsoft OLE DB .NET data provider рекомендуем для работы с MsSQL server до версии 6.5 (интересно, а им ещё кто-то пользуется???), Access'ом........... Просто OLE DB - более универсальная штука, но многие провайдеры придётся скачивать из инета -------------------- подписи нет |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
OLE DB работает медленнее, чем специализированные сборки, такие как для MSSQL. Однако OLEDB более универсальна.
Вобщем, на всякий пожарный, вот тебе пример работы через OLEDB. Тока поменяй цикл, к-й вносит данные в БД, под скорость твоего компа. Здесь я реализовал все основные операции (создание таблицы, insert, select, удаление..). Вот:
Может, немного коряво, но я думаю понятно. Если что - спрашивай.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Finkel |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 31.3.2004 Репутация: нет Всего: нет |
[ разве есть такая команда в SQL ? в принцепе все практически ясно , правда половины вещей я не нашел в своей книжке Можно ли работать обьектом DataSet, а потом записывать этот обьект в бд? Это сообщение отредактировал(а) Finkel - 12.5.2004, 00:06 |
||||
|
|||||
| stron |
|
||||
![]() Консультант ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1654 Регистрация: 17.7.2003 Где: Питер Репутация: 4 Всего: 36 |
есть!!
удаляет все строки из таблицы. -------------------- подписи нет |
||||
|
|||||
| Kurt |
|
||||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Если что - спрашивай.. Если сможем - попробуем ответить..
Не мог бы ты уточнить/перефразировать вопрос? Тебе нужно решение именно через DataSet? Я не уверен, что правильно тебя понял.. Это сообщение отредактировал(а) Kurt - 12.5.2004, 20:50 -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||
|
|||||
| Kurt |
|
||||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Аааа.. Понял. Что-то я сразу не сообразил. Посмотри в сторону DataAdapter. Он есть как в OLEDB (OleDbDataAdapter), так и в SQL-сборке (SqlDataAdapter). В нем есть такие интересные методы как Fill() - заполнение DataSet из базы, а также Update() - обновление БД из DataSet. Fill() многократно перегружен, можно выбирать нужный "диапозон" записей для загрузки и т.п. Update() имеет параметры: - DataSet - string <Имя таблицы> - какую таблицу обновить.. Перед тем, как исполнять, данный метод тебе нужно определить как минимум Insert операцию. В примере, прикрепленном ниже, я показал, как это делается - тебе нужно определить входные параметры, имена столбцов, их типы и т.п. Еще в коде я использовал метод PrintTable - это просто вспомогательный метод, чтоб выводить таблицу. Для нормальной работы тебе нужна будет база - файл baza.mdb в той же директории, что и .exe, а также таблица myTable с двумя столбцами: intColumn (целочисл. столбец) strColumn (строка..). Что делает пример - открывает базу, записывает в DataSet таблицу из БД, выводит на консоль, добавляет три строки в DataSet, обновляет БД и выводит, что получилось. Вот код:
Все. Надеюсь, этот код чем-то помог. Удачи! З.Ы. Пример готов к компиляции. Можно откомпилить и запустить.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||
|
|||||
| Finkel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 31.3.2004 Репутация: нет Всего: нет |
фух , минут тридцать сравнивал обьявления параметров
|
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Немножко не понял, что ты имеешь ввиду..
Извини, что запутал - я наоборот старался, чтоб поаккуратнее, да попроще.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Finkel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 31.3.2004 Репутация: нет Всего: нет |
хм, а как можно сделать :
на одной форме критерии и поиск таблицы , а результат передать в другую форму в DataGrid ? |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Модератор: Давайте вернёмся к теме обсуждения.
Если хочешь задать другой вопрос, настоятельно рекомендую создать НОВУЮ тему с соответствующим названием. Таким образом, ты привлечешь внимание тех, кто знает ответ. А также это соответствует правилам форума. 1 топик - 1 вопрос. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Finkel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 31.3.2004 Репутация: нет Всего: нет |
Вот пробывал добавить в свою базу строку
возникает прирывание , в котором говорится что не инициализирована Инсерт-операция . В чем яне прав , все сделал по примеру Курта. |
|||
|
||||
| Kurt |
|
||||||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Хмммм.. Да. Действительно похоже.. Однако, говоришь, не работает.. Смотрим.. Стоп! ..А ЭТО что?! Сравним две строчки кода. Твой код:
Мой пример:
Чувствуешь разницу? У тебя нету второго параметра в конструкторе! Очевидно, просто конструктор перегружен - считается, что ты определишь этот параметр позже или из еще каких-то соображений. Попробуй указать вторым параметров твой OleDbConnection cn; Как у меня в примере. Поидее, всю будет работать.. Опробуй и доложи о результатах - если нет, дальше будем искать.. Удачи! З.Ы. Попутно.. Не подумай ничего такого, но вроде вместо "Uncorrect" надо писать "Incorrect".. А, можь, и нет.. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||||
|
|||||||
| Finkel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 31.3.2004 Репутация: нет Всего: нет |
Возникает ексепшн с вот таким текстом
"ExceptionSystem.Data.OleDb.OleDb.Exception ошибка ситаксиса инструкции INSERT INTO, at System.Data.comon.DbDataAdapter.Update(DataRow[] dataRow,DataTableMapping tableMapping ) at System.Data.comon.DbDataAdapter.Update(DataSet dataset,String srcTable) at ..." єто опять с Инсертом как то связано? |
|||
|
||||
| Finkel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 31.3.2004 Репутация: нет Всего: нет |
может я ошибся изменив регистр букв ? Важно ли это для SQL Запроса?
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |