|
|
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
Простите, братцы, сил моих больше нет в интере рыться. Задаю вопрос здесь, сильно не пинайте, если было (беглый просмотр форума ничего не дал). Суть моей проблемы такова. Достаточно долго (с момента появления 1-й версии) писал на Дельфях, по некоторым причинам решил перебираться на *.NET. Освоение решил начать с VB.NET. Наибольший интерес для меня представляет работа с базами данных. До этого работал с DB2, MSSQL, Interbase/Firebird. С самого начала никаких проблем с ПОНИМАНИЕМ принципа доступа к БД из Дельфей не испытывал. Возможно, прежний опыт мешает мне сейчас понять, как это делается в VS.NET. Вот как выглядит в Дельфях (в простейшем случае) цепочка объектов, позволяющих отобразить данные из БД в гриде: БД (MSSQL, Interbase, DB2 и т.п)<--- (ADO, BDE, и т.п.) <--- TDataBase <--- TQuery (TTable) <-- TDataSource <--- TDBGrid т.е.: объект TQuery с запросом внутри (или даже просто TTable) через объект TDataBase лезет через «драйвера баз данных» к этим базам и получает/отправляет что нужно. У визуального компонента TDBGrid можно в дизайнтайме назначить DataSource, самому датасорцу указать «квери» или «таблю» и таким образом получить в гриде содержимое запроса/таблицы. То же самое можно сделать и в рантайме, «ручками» прописав создание всех классов и назначив их пропертям желаемые значения. Что я и предпочитаю делать ( в части доступа к БД), стараясь не пользоваться «визуальным построением» приложений: так лучше понимаешь (и контролируешь) процесс. Собственно вопрос: КАК выглядит в VB.NET та же самая цепочка и каковы функции каждого из её звеньев? Если с простыми и конкретными вещами мне разобраться удалось (законнектиться к БД, выполнить некоторые операции по изменению/вставке/удалению записей SQL-запросами, получить по запросу к серверу набор данных на клиента и в цикле вывести их в консоль или файл), то общего понимания картины у меня нет. Все это визарды, позволяющие доступиться «парой кликов» к БД только мешают пониманию. Я хочу понимать, как это всё делается «руками». Конкретная просьба для тех, кто сам понимает что-откуда :-) : имеем форму, на ней DataGrid и кнопку. Задача: по нажатию кнопки законнектиться к БД MSSQL, сделать SQL запрос в ней, результат — вывести в DataGrid. Все действия, кроме создания грида и кнопки должны быть выполнены «ручками», в коде. Вот. Кто рискнёт? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 10:48 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
да тут рисковать даже не надо.так как есть книги.но видать ты промахнулся по всем нормальным книгам. а жаль. будущее твое могло было бы быть проще :) System.Data.SqlClient вот этот namespace содержит объкты эквиваленты ,ну раз ты не в зуб ногой в английской литераторе то тут ниже список: БД(MSSQL Interbase DB2 и т.п) <--- (ADO BDE и т.п.) <--- TDataBase <--- TQuery(TTable) <-- TDataSource <--- TDBGrid БД(MSSQL Interbase DB2 и т.п) <--- (ADO.NET) <--- SqlConnection <--- SqlDataReader or SqlDataAdapter <-- SqlDataSet <--- DataGridView.DataSource ну вот,вариации может быть еще больше,чем я привел.короче как бы объекты выучил бы ты,а то методом тыка через мастеров студии,ты даже с места не двинешься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 11:17 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
SqlDataSet - это ты мощно задвинул. Автору. Ищи книги по автору "Дэвид Сеппа". Есть переведенные книги как по первому фреймворку, так и по второму. Есть и в нете в виде ибуков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 13:33 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
я списывал сверху))) там везде буква T приставка :) я тут по инерции Sql добавил. БД(MSSQL Interbase DB2 и т.п) <--- (ADO.NET) <--- SqlConnection <--- SqlDataReader or SqlDataAdapter <-- DataSet <--- DataGridView.DataSource ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 13:57 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
Скачай книгу Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET там всё на доступном языке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 16:26 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
Bill GreatСкачай книгу Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET там всё на доступном языке Рапидшар говорит, что файл удалён. А как насчёт кода? Может кто-то привести пример, как вывести содержимое запроса, сделанного ручками в грид? Всем ответившим - спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:47 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
VadimPanov Bill GreatСкачай книгу Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET там всё на доступном языке Рапидшар говорит, что файл удалён. При попытке найти по интеру эту книгу вылазят только платные ссылки, если у кого есть, мыльните, плз, или выложите, укачаю. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:51 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
авторМожет кто-то привести пример, как вывести содержимое запроса, сделанного ручками в грид? Здесь примеры решения множества базовых задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:23 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
www.chmpdf.com только там нужно зарегаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:24 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
Bigheadman авторМожет кто-то привести пример, как вывести содержимое запроса, сделанного ручками в грид? Здесь примеры решения множества базовых задач. Там отвечают "Sorry, we were unable to service your request". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 08:22 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
Bill GreatСкачай книгу Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET там всё на доступном языке Таки нашёл на рапидшаре, кажись, это то, что надо, спасибо всем кто ответил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 08:37 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
Вот как ты и просил смотри. За пару минут накатал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. все просто, но вариантов дальнейшего развития ох как много. ! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2007, 09:45 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
eJackВот как ты и просил смотри. За пару минут накатал code skipped... все просто, но вариантов дальнейшего развития ох как много. ! :) Огромное спасибо за пример! Странслировал в VB (уж извините... :-) ), всё работает. Итак, вот что я понял из примера eJack и хелпа (прошу поправить, если я заблуждаюсь): DataSource в .net это средство доступа к хранилищу данных (любого типа - от простого csv файла до баз данных на SQL-движке или даже хранилища MSExchange). В башке программииста ассоциируется с самим хранилищем. SQLDataAdapter - это хрень для получения или изменения данных в хранилище данных, к которому он подцеплен. SQLDataReader - средство, которое юзает SQLDataAdapter для чтения данных из DataSource для дальнейших манипуляций. SQLDataSet - некий кэш данных, состоящий из одного или нескольких наборов данных (таблиц), высосанных из DataSource для временного хранения или для изменения DataTable - как раз такой набор данных, кучу которых может содержать DataSet Т.е. можно, слив выборку данных их БД (простую или сложную, состоящую из нескольких таблиц, между которыми даже могут быть установленны какие-то связи), выполнить над ними любые операции по вставке/апдейту/удалению записей (как будто в самой БД), а потом одним махом применить все изменения в эту БД или отказаться от этой затеи. При этом в простых случаях можно не юзать DataSet, а работать прямо с DataTable. Всё это можно делать как руками, так и визуально... Единственное, пока не разобрался, как работать с транзакциями и точками отката. Однако, кайф самого VS как раз в том, что не надо ничего лишнего писать руками: все операции типа редактирования записи справочника, со всевозможными проверками на валидность данных, можно очень быстро (при наличии определённых навыков, конечно) делать визуально. За счёт это го происходит экономия времени разработки, а время, это - деньги! :-) Вот... Всё верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 08:39 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
Вопрос вдогонку: как в VB Express в список возможных типов DataSource (при их создании) добавить MSSQL server? Там есть только "MicrosoftAccess Database file" и "Microsoft SQL Server Database file", т.е. прицепиться можно только к самому файлу с данными, но не к серверу. Можно, конечно, сделать всё руками и получить желаемое, но хочется до конца проникнуться идеологией визуального создания приложений. Я понимаю, что это ограничение Express версии, но думаю, что народ это как-то обходит. Как? --- Regards, Vadim Panov мыло: vadimpanov @ inbox . ru ася: 145519056 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 08:49 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
Это ограничение только при использовании подключения через вижуал компоненты, в коде все провайдеры доступны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:32 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
VadimPanov Однако, кайф самого VS как раз в том, что не надо ничего лишнего писать руками: все операции типа редактирования записи справочника, со всевозможными проверками на валидность данных, можно очень быстро (при наличии определённых навыков, конечно) делать визуально. За счёт это го происходит экономия времени разработки, а время, это - деньги! :-) Вот... Всё верно? Тоже так раньше думал)) Теперь все ручками делаю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 11:34 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
Думающий VadimPanov Однако, кайф самого VS как раз в том, что не надо ничего лишнего писать руками: все операции типа редактирования записи справочника, со всевозможными проверками на валидность данных, можно очень быстро (при наличии определённых навыков, конечно) делать визуально. За счёт это го происходит экономия времени разработки, а время, это - деньги! :-) Вот... Всё верно? Тоже так раньше думал)) Теперь все ручками делаю) Полностью поддерживаю. Забудьте про "визуальное" программирование. Все чего Вы с ним добьетесь это ужасный и неподдерживаемый код. Лучше сразу учитесь делать ручками нормальный DAL с помощью ADO.NET. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:11 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
Какой-то хрен с горы Думающий VadimPanov Однако, кайф самого VS как раз в том, что не надо ничего лишнего писать руками: все операции типа редактирования записи справочника, со всевозможными проверками на валидность данных, можно очень быстро (при наличии определённых навыков, конечно) делать визуально. За счёт это го происходит экономия времени разработки, а время, это - деньги! :-) Вот... Всё верно? Тоже так раньше думал)) Теперь все ручками делаю) Полностью поддерживаю. Забудьте про "визуальное" программирование. Все чего Вы с ним добьетесь это ужасный и неподдерживаемый код. Лучше сразу учитесь делать ручками нормальный DAL с помощью ADO.NET. Я тоже в Дельфях всегда так делал: если редактируется или вставляется запись, то SQL-выражение криейтится руками. Однако, хотелось бы как-то ускорить процесс разработки и выявлять ошибки при работе с БД не на стадии запуска, а на стадии компиляции приложения. Тем более, что при изменении структуры базы приходится вспоминать, что данные изменения затрагивают в коде приложения и править это дело. Всё это тормозит процесс разработки. Вот отсюда и интерес. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:34 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
ДумающийЭто ограничение только при использовании подключения через вижуал компоненты, в коде все провайдеры доступны. Так-то фиг с ним, я всё равно в реальном приложении свою обёртку для классов работы с БД буду писать. Просто, хотелось бы понимать, как это сделать. Если невозможно, так и не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:35 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
VadimPanovТак-то фиг с ним, я всё равно в реальном приложении свою обёртку для классов работы с БД буду писать. Просто, хотелось бы понимать, как это сделать. Если невозможно, так и не надо. Все уже написано до вас. Читайте про ORM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:38 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
НахлобучВсе уже написано до вас. Читайте про ORM. При чём тут ORM? Я про визуальное создание нового DataSource, того типа, который отсутствует в визарде VS Express. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:48 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
VadimPanovПри чём тут ORM? Я про визуальное создание нового DataSource, того типа, который отсутствует в визарде VS Express. Что-то вы с одного на другое перескакиваете. Я отвечал на "Так-то фиг с ним, я всё равно в реальном приложении свою обёртку для классов работы с БД буду писать.", а не про датасорсы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 12:56 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
Нахлобуч VadimPanovПри чём тут ORM? Я про визуальное создание нового DataSource, того типа, который отсутствует в визарде VS Express. Что-то вы с одного на другое перескакиваете. Я отвечал на "Так-то фиг с ним, я всё равно в реальном приложении свою обёртку для классов работы с БД буду писать.", а не про датасорсы. Что-то вы меня неверно понимаете: я под обёрткой понимал набор собственных функций и классов VB.NET, с помощью которых я скоряю создание приложений, работающих с БД, а вовсе не работу с данными, хранящимися в БД, как с объектами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:10 |
|
||
|
Вопрос по идеологии доступа к базам данных в .NET
|
|||
|---|---|---|---|
|
#18+
VadimPanovЧто-то вы меня неверно понимаете: я под обёрткой понимал набор собственных функций и классов VB.NET, с помощью которых я скоряю создание приложений, работающих с БД, а вовсе не работу с данными, хранящимися в БД, как с объектами. Я понял ровно то, что вы написали. А написали вы, что собираетесь сочинять "свою обёртку для классов работы с БД", от чего я вас и отговариваю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2007, 13:15 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=34910197&tid=1352546]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
153ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 498ms |

| 0 / 0 |
