powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Вопрос по идеологии доступа к базам данных в .NET
24 сообщений из 24, страница 1 из 1
Вопрос по идеологии доступа к базам данных в .NET
    #34909484
Фотография VadimPanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите, братцы, сил моих больше нет в интере рыться. Задаю вопрос здесь, сильно не пинайте, если было (беглый просмотр форума ничего не дал).

Суть моей проблемы такова. Достаточно долго (с момента появления 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. Все действия, кроме создания грида и кнопки должны быть выполнены «ручками», в коде.

Вот. Кто рискнёт?

Заранее спасибо!
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34909593
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да тут рисковать даже не надо.так как есть книги.но видать ты промахнулся по всем нормальным книгам.

а жаль.

будущее твое могло было бы быть проще :)

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

ну вот,вариации может быть еще больше,чем я привел.короче как бы объекты выучил бы ты,а то методом тыка через мастеров студии,ты даже с места не двинешься.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34910197
########
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SqlDataSet - это ты мощно задвинул.
Автору. Ищи книги по автору "Дэвид Сеппа". Есть переведенные книги как по первому фреймворку, так и по второму. Есть и в нете в виде ибуков.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34910298
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я списывал сверху))) там везде буква T приставка :) я тут по инерции Sql добавил.
БД(MSSQL Interbase DB2 и т.п) <--- (ADO.NET) <--- SqlConnection <--- SqlDataReader or SqlDataAdapter <-- DataSet <--- DataGridView.DataSource
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34910868
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачай книгу

Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET
там всё на доступном языке
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34911152
Фотография VadimPanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bill GreatСкачай книгу
Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET
там всё на доступном языке
Рапидшар говорит, что файл удалён.
А как насчёт кода? Может кто-то привести пример, как вывести содержимое запроса, сделанного ручками в грид?

Всем ответившим - спасибо!!!
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34911172
Фотография VadimPanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimPanov Bill GreatСкачай книгу
Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET
там всё на доступном языке
Рапидшар говорит, что файл удалён.

При попытке найти по интеру эту книгу вылазят только платные ссылки, если у кого есть, мыльните, плз, или выложите, укачаю.

Заранее благодарен.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34911280
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМожет кто-то привести пример, как вывести содержимое запроса, сделанного ручками в грид?
Здесь примеры решения множества базовых задач.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34911284
ищи здесь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
www.chmpdf.com
только там нужно зарегаться
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34911899
Фотография VadimPanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bigheadman авторМожет кто-то привести пример, как вывести содержимое запроса, сделанного ручками в грид?
Здесь примеры решения множества базовых задач.
Там отвечают "Sorry, we were unable to service your request".
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34911912
Фотография VadimPanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bill GreatСкачай книгу

Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET
там всё на доступном языке
Таки нашёл на рапидшаре, кажись, это то, что надо, спасибо всем кто ответил.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34914825
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как ты и просил смотри.
За пару минут накатал

Код: 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.
        private void button1_Click(object sender, EventArgs e)
        {
            // создаем подключение к базе данных
            SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
            builder.DataSource = @"localhost\sqlexpress";
            builder.InitialCatalog = "NorthwindCS";
            builder.IntegratedSecurity = true;
            SqlConnection connection = new SqlConnection(builder.ConnectionString);

            // создаем адаптер данных
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand();
            adapter.SelectCommand.CommandText = "SELECT * FROM Products";
            adapter.SelectCommand.Connection = connection;

            // создаем DataSet (можно просто DataTable)
            DataSet ds = new DataSet();
            DataTable tb = new DataTable("Products");
            // именно здесь выполняеться запрос и происходит открытие
            // подключения и закрытие его после выполнение запроса
            // И что бы заранее не возникали вопросы - что лучше адаптер данных или датаридер)
            // говорю что адаптер использует ридер для извлечения данных
            adapter.Fill(tb);  
 
            // отображение данных в гриде
            ds.Tables.Add(tb);
            this.dataGridView1.DataSource = ds;
            this.dataGridView1.DataMember = "Products";
        }

все просто, но вариантов дальнейшего развития ох как много. ! :)
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34920689
Фотография VadimPanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJackВот как ты и просил смотри.
За пару минут накатал
code skipped...
все просто, но вариантов дальнейшего развития ох как много. ! :)
Огромное спасибо за пример! Странслировал в VB (уж извините... :-) ), всё работает.

Итак, вот что я понял из примера eJack и хелпа (прошу поправить, если я заблуждаюсь):
DataSource в .net это средство доступа к хранилищу данных (любого типа - от простого csv файла до баз данных на SQL-движке или даже хранилища MSExchange). В башке программииста ассоциируется с самим хранилищем.
SQLDataAdapter - это хрень для получения или изменения данных в хранилище данных, к которому он подцеплен.
SQLDataReader - средство, которое юзает SQLDataAdapter для чтения данных из DataSource для дальнейших манипуляций.
SQLDataSet - некий кэш данных, состоящий из одного или нескольких наборов данных (таблиц), высосанных из DataSource для временного хранения или для изменения
DataTable - как раз такой набор данных, кучу которых может содержать DataSet

Т.е. можно, слив выборку данных их БД (простую или сложную, состоящую из нескольких таблиц, между которыми даже могут быть установленны какие-то связи), выполнить над ними любые операции по вставке/апдейту/удалению записей (как будто в самой БД), а потом одним махом применить все изменения в эту БД или отказаться от этой затеи.
При этом в простых случаях можно не юзать DataSet, а работать прямо с DataTable.
Всё это можно делать как руками, так и визуально...
Единственное, пока не разобрался, как работать с транзакциями и точками отката.

Однако, кайф самого VS как раз в том, что не надо ничего лишнего писать руками: все операции типа редактирования записи справочника, со всевозможными проверками на валидность данных, можно очень быстро (при наличии определённых навыков, конечно) делать визуально. За счёт это го происходит экономия времени разработки, а время, это - деньги! :-)

Вот... Всё верно?
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34920701
Фотография VadimPanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос вдогонку: как в VB Express в список возможных типов DataSource (при их создании) добавить MSSQL server? Там есть только "MicrosoftAccess Database file" и "Microsoft SQL Server Database file", т.е. прицепиться можно только к самому файлу с данными, но не к серверу. Можно, конечно, сделать всё руками и получить желаемое, но хочется до конца проникнуться идеологией визуального создания приложений. Я понимаю, что это ограничение Express версии, но думаю, что народ это как-то обходит.

Как?

---
Regards, Vadim Panov
мыло: vadimpanov @ inbox . ru
ася: 145519056
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34921255
Думающий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ограничение только при использовании подключения через вижуал компоненты, в коде все провайдеры доступны.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34921260
Думающий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimPanov
Однако, кайф самого VS как раз в том, что не надо ничего лишнего писать руками: все операции типа редактирования записи справочника, со всевозможными проверками на валидность данных, можно очень быстро (при наличии определённых навыков, конечно) делать визуально. За счёт это го происходит экономия времени разработки, а время, это - деньги! :-)

Вот... Всё верно?
Тоже так раньше думал)) Теперь все ручками делаю)
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34921445
Думающий VadimPanov
Однако, кайф самого VS как раз в том, что не надо ничего лишнего писать руками: все операции типа редактирования записи справочника, со всевозможными проверками на валидность данных, можно очень быстро (при наличии определённых навыков, конечно) делать визуально. За счёт это го происходит экономия времени разработки, а время, это - деньги! :-)

Вот... Всё верно?
Тоже так раньше думал)) Теперь все ручками делаю)

Полностью поддерживаю. Забудьте про "визуальное" программирование. Все чего Вы с ним добьетесь это ужасный и неподдерживаемый код. Лучше сразу учитесь делать ручками нормальный DAL с помощью ADO.NET.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34921559
Фотография VadimPanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой-то хрен с горы Думающий VadimPanov
Однако, кайф самого VS как раз в том, что не надо ничего лишнего писать руками: все операции типа редактирования записи справочника, со всевозможными проверками на валидность данных, можно очень быстро (при наличии определённых навыков, конечно) делать визуально. За счёт это го происходит экономия времени разработки, а время, это - деньги! :-)

Вот... Всё верно?
Тоже так раньше думал)) Теперь все ручками делаю)

Полностью поддерживаю. Забудьте про "визуальное" программирование. Все чего Вы с ним добьетесь это ужасный и неподдерживаемый код. Лучше сразу учитесь делать ручками нормальный DAL с помощью ADO.NET.
Я тоже в Дельфях всегда так делал: если редактируется или вставляется запись, то SQL-выражение криейтится руками.
Однако, хотелось бы как-то ускорить процесс разработки и выявлять ошибки при работе с БД не на стадии запуска, а на стадии компиляции приложения. Тем более, что при изменении структуры базы приходится вспоминать, что данные изменения затрагивают в коде приложения и править это дело. Всё это тормозит процесс разработки.
Вот отсюда и интерес.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34921566
Фотография VadimPanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДумающийЭто ограничение только при использовании подключения через вижуал компоненты, в коде все провайдеры доступны.
Так-то фиг с ним, я всё равно в реальном приложении свою обёртку для классов работы с БД буду писать. Просто, хотелось бы понимать, как это сделать. Если невозможно, так и не надо.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34921581
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimPanovТак-то фиг с ним, я всё равно в реальном приложении свою обёртку для классов работы с БД буду писать. Просто, хотелось бы понимать, как это сделать. Если невозможно, так и не надо.
Все уже написано до вас. Читайте про ORM.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34921625
Фотография VadimPanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучВсе уже написано до вас. Читайте про ORM.
При чём тут ORM? Я про визуальное создание нового DataSource, того типа, который отсутствует в визарде VS Express.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34921654
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimPanovПри чём тут ORM? Я про визуальное создание нового DataSource, того типа, который отсутствует в визарде VS Express.
Что-то вы с одного на другое перескакиваете. Я отвечал на "Так-то фиг с ним, я всё равно в реальном приложении свою обёртку для классов работы с БД буду писать.", а не про датасорсы.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34921706
Фотография VadimPanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нахлобуч VadimPanovПри чём тут ORM? Я про визуальное создание нового DataSource, того типа, который отсутствует в визарде VS Express.
Что-то вы с одного на другое перескакиваете. Я отвечал на "Так-то фиг с ним, я всё равно в реальном приложении свою обёртку для классов работы с БД буду писать.", а не про датасорсы.
Что-то вы меня неверно понимаете: я под обёрткой понимал набор собственных функций и классов VB.NET, с помощью которых я скоряю создание приложений, работающих с БД, а вовсе не работу с данными, хранящимися в БД, как с объектами.
...
Рейтинг: 0 / 0
Вопрос по идеологии доступа к базам данных в .NET
    #34921730
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimPanovЧто-то вы меня неверно понимаете: я под обёрткой понимал набор собственных функций и классов VB.NET, с помощью которых я скоряю создание приложений, работающих с БД, а вовсе не работу с данными, хранящимися в БД, как с объектами.
Я понял ровно то, что вы написали. А написали вы, что собираетесь сочинять "свою обёртку для классов работы с БД", от чего я вас и отговариваю.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Вопрос по идеологии доступа к базам данных в .NET
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]