Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/32: Рейтинг темы: голосов - 32, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 07.07.2012
Сообщений: 5

Удаленный доступ к базе данных в .NET

07.07.2012, 11:18. Показов 6134. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте... Помогите, люди добрые Имею некоторый опыт программирования обячных несложных приложений в VB.NET... То есть простую событийную обработку элементов формы... Начал знакомиться с ADO.NET... но все примеры касаются доступа к базе данных на этом же локальном компьютере... Моя задача редактировать удаленную базу в локальной сети... не очень мягко говоря силен вообще в структурах инета, но насколько понимаю нужна серверная программа на компьютере с базой и клиент на удаленном компьютере.... Готов даже изучать другой язык ради этого... Может подскажите какой для данных целей лучше подходит, хотя отрываться от VB.NET не хотелось бы (с++ не предлагайте и лучше вообще избежать "незнакомого и противного" синтексиса С) Короче, как написать, где примеры, сервер на "нэт" Ну оооочень надо...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.07.2012, 11:18
Ответы с готовыми решениями:

Удаленный доступ к записи в базе данных
Уважаемые коллеги! Сильно не пинайте, мои знания в базах данных можно назвать поверхностными. Но возникла задачка, которую хочу решить....

Удаленный доступ к базе 1С 7.7
Всем доброго дня.!!! Прошу помочь знающих людей с таким вопросом. Я понимаю, что тема возможно повторяется, и не обижусь если...

Удаленный доступ к базе
День добрый. Прошу вашей помощи, подсказки.У меня возникла следующая проблема:есть готовый сайт на localhost. Надо выложить его на сервере,...

13
Заблокирован
07.07.2012, 11:44
Цитата Сообщение от Alex_mihail Посмотреть сообщение
серверная программа на компьютере с базой
MySQL(бесплатная) phpMyAdmin удобная оболочка для работы с базой.
Ну и в phpMyAdmin создайте учетку юзеру и настройте права.
Цитата Сообщение от Alex_mihail Посмотреть сообщение
клиент на удаленном компьютере.... Готов даже изучать другой язык ради этого...
VB.NET свободно подойдет.
Добавляете в ссылки проекта MySql.Data и работаете с базой.

Глобальные переменные
VB.NET Скопировано
1
2
3
    Public conn As New MySql.Data.MySqlClient.MySqlConnection
    Public cmd As New MySql.Data.MySqlClient.MySqlCommand
    Public ConnStr As String = ""
Подключение
VB.NET Скопировано
1
2
3
4
        ConnStr = "server=" & имя_сервера & "; uid=" & имя_юзера & "; pwd=" & пароль & "; database=" & база_данных & ";"
        conn.ConnectionString = ConnStr
        conn.Open()
        cmd.Connection = conn
Пример запроса
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
        Try
            cmd.CommandText = "SELECT * FROM таблица WHERE ..."
            cmd.Prepare()
            Dim reader As MySql.Data.MySqlClient.MySqlDataReader = cmd.ExecuteReader()
            While (reader.Read())
                 ...' обрабатываем строки полученные в SELECT
            End While
            reader.Close()
        Catch
            MessageBox.Show("Нет связи с базой данных.", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        End Try
Закрытие соединения
VB.NET Скопировано
1
conn.Close()
Примерно так.
1
233 / 223 / 146
Регистрация: 19.03.2012
Сообщений: 369
07.07.2012, 11:53
А какая разница где находится БД? Указываем путь,открываем и редактируем
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
    'Указываем место нахождения БД
    Private Sub OpenFile(ByVal sender As Object, ByVal e As EventArgs) Handles OpenToolStripMenuItem.Click, OpenToolStripButton.Click
        Dim OpenFileDialog As New OpenFileDialog
        'устанавливаем путь к текущему дерикторию
        OpenFileDialog.InitialDirectory = Directory.GetCurrentDirectory 'можно и так My.Computer.FileSystem.SpecialDirectories.MyDocuments
        OpenFileDialog.Filter = "Базы данных (*.mdb)|*.mdb|All Files (*.*)|*.*"
        If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
            'сохраняем в переменной путь и имя БД
            FileName = OpenFileDialog.FileName
         End If
    End Sub
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
07.07.2012, 12:20
Alex_mihail, не понятно с каким типом БД ты работаешь.
Если взять к примеру SQL Server, то рассположение БД не имеет влияния на код, главное настроить сервер на работу в сети. В локальных сетях подключение осуществляется по имени сервера, в глобальных - по IP и порту.
0
0 / 0 / 0
Регистрация: 07.07.2012
Сообщений: 5
07.07.2012, 18:46  [ТС]
[QUOTE=Dzhej-Dzhej;3245890]MySQL(бесплатная) phpMyAdmin удобная оболочка для работы с базой.
Ну и в phpMyAdmin создайте учетку юзеру и настройте права.

VB.NET свободно подойдет.
Добавляете в ссылки проекта MySql.Data и работаете с базой.

Спасибо! Правильно ли я вас понял: для клиента вы привели классический пример с которого начинаются все учебники по ADO... В строке подключения я должен указать имя сервера? Так? А сервер сей создается указанной вами "оболочкой" (знать бы что это такое... почитаем разберемся... это что-то готовое, надо полагать, так?) В Итоге: создаю сервер при помощи этой оболочки на компьютере с базой, а на клиентской машине размещаем программу манипуляций с базой, так? Извиняюсь за делитанство...
И вопрос еще: сами-то таким образом в локальной сети пробовали? (Вопрос без иронии...)

Добавлено через 21 минуту
Цитата Сообщение от nio Посмотреть сообщение
Alex_mihail, не понятно с каким типом БД ты работаешь.
Если взять к примеру SQL Server, то рассположение БД не имеет влияния на код, главное настроить сервер на работу в сети. В локальных сетях подключение осуществляется по имени сервера, в глобальных - по IP и порту.
Файл mdb аксешный находиться допустим у меня на компьютере, а доступ к нету осуществляется с другого по локальной сети... Допустим пишу клиента на vb, там в строке подключения указываю имя сервера... но вот собственно и вопрос, как создать сервер у меня, чье имя будет в строке подключения... Прошу прощения, многого не знаю, полный чайник во многих вопросах, вот и подскажите пусть "истинный", где и что почитать

Добавлено через 17 минут
Цитата Сообщение от Valery__ Посмотреть сообщение
А какая разница где находится БД? Указываем путь,открываем и редактируем
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
    'Указываем место нахождения БД
    Private Sub OpenFile(ByVal sender As Object, ByVal e As EventArgs) Handles OpenToolStripMenuItem.Click, OpenToolStripButton.Click
        Dim OpenFileDialog As New OpenFileDialog
        'устанавливаем путь к текущему дерикторию
        OpenFileDialog.InitialDirectory = Directory.GetCurrentDirectory 'можно и так My.Computer.FileSystem.SpecialDirectories.MyDocuments
        OpenFileDialog.Filter = "Базы данных (*.mdb)|*.mdb|All Files (*.*)|*.*"
        If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
            'сохраняем в переменной путь и имя БД
            FileName = OpenFileDialog.FileName
         End If
    End Sub
Спасибо, в любом случае... Насколько я понимаю это для отображения диалогового окна открытия файла... на данном компьютере... из программы на этом же компьютере... а путь к файлу на данном компьютере можно определить без всякого программирования... наверное, так... Все равно - спасибо...
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
08.07.2012, 07:44
Цитата Сообщение от Alex_mihail Посмотреть сообщение
Файл mdb аксешный находиться допустим у меня на компьютере, а доступ к нету осуществляется с другого по локальной сети
БД ACCESS - локальная БД, использовать её в сетях не рекомендуется, для этого есть сетевые БД. Использовать её для работы в локальной сети можно конечно, для этого нужно расшаривать каталог в которой она лежит. Что касается использования через интернет, вообще не представляю, как это сделать. Скорее всего придется писать клиент-серверное приложение прослойку, которое будет заниматься передачей данных....
0
0 / 0 / 0
Регистрация: 07.07.2012
Сообщений: 5
08.07.2012, 10:16  [ТС]
Цитата Сообщение от nio Посмотреть сообщение
БД ACCESS - локальная БД, использовать её в сетях не рекомендуется, для этого есть сетевые БД. Использовать её для работы в локальной сети можно конечно, для этого нужно расшаривать каталог в которой она лежит. Что касается использования через интернет, вообще не представляю, как это сделать. Скорее всего придется писать клиент-серверное приложение прослойку, которое будет заниматься передачей данных....
"Короче, как написать, где примеры, сервер на "нэт" " - цитируя самого себя... дык и я о том же... вот и я тоже очень плохо представляю, как написать или где взять сервер, а схема такая: база данных (файл mdb) - сервер - локальная сеть - клиент). Ну не должно быть для локалки слишком уж это сложно... вот и не знаешь... то ли изучать пшпи с mySQLом (но тогда возможно и vb не нужен...), а еще вместе с операционкой устанавливается Microsoft SQL server с которым, судя по инетным данным с успехом "сотрудничает" аксес (это оно и есть?!) И как тогда туда "залезть" и что делать? Короче, не хватает, мягко говоря "образования" в этом вопросе...
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
08.07.2012, 11:31
Давай по порядку

Access - локальная БД
SQL Server - сетевая СУБД, работает в локальных и глобальных сетях, для использования на одной машине подходит мало, т.к. не работает без уставленной СУБД.

Цитата Сообщение от Alex_mihail Посмотреть сообщение
вместе с операционкой устанавливается Microsoft SQL server
нет, сервер устанавливается отдельно

Цитата Сообщение от Alex_mihail Посмотреть сообщение
Microsoft SQL server с которым, судя по инетным данным с успехом "сотрудничает" аксес
никакого сотрудничества между ними нет, но поскольку у них один разработчик, работа с ними и синтаксис запросов похожи

по поводу mySQL ничего не скажу, ни разу не работал, знаю только, что он подходит для использования в сетях, и работать с ним не намного сложнее.

Цитата Сообщение от Alex_mihail Посмотреть сообщение
И как тогда туда "залезть" и что делать?
https://www.cyberforum.ru/ado-... 82279.html
0
0 / 0 / 0
Регистрация: 07.07.2012
Сообщений: 5
08.07.2012, 13:23  [ТС]
Цитата Сообщение от nio Посмотреть сообщение
Давай по порядку

Access - локальная БД
SQL Server - сетевая СУБД, работает в локальных и глобальных сетях, для использования на одной машине подходит мало, т.к. не работает без уставленной СУБД.


нет, сервер устанавливается отдельно

никакого сотрудничества между ними нет, но поскольку у них один разработчик, работа с ними и синтаксис запросов похожи

по поводу mySQL ничего не скажу, ни разу не работал, знаю только, что он подходит для использования в сетях, и работать с ним не намного сложнее.


https://www.cyberforum.ru/ado-... 82279.html
Спасибо, конечно... То что вы предлагаете по ссылке - это начало практически любого учебника по "адо нет", с подобными вещами я знакомился и даже "выдергивал" кое-какие данные из своего файла mdb здесь у себя на компьютере... НО КАК ЭТО УВЯЗАТЬ С СЕТЬЮ!!!??? Ладно... будем пока "насыщаться" информацией - может что-нибудь и выплавет достаточно четкое...

Добавлено через 41 минуту
Думается, что не было бы особых проблем, если бы просто в строке подключения можно было бы написать примерно такое... допустим в параметре "адрес": ай пи адрес того компьютера где расположена база, далее через слеш путь к файлу в самом этом компьютере... Глупо?! Наверное... Так вот в этом-то весь и вопрос, а что касается клиента на vb здесь на этом компьютере проблем нет - пишите для объекта command запрос (во всяком случае такое начало во всех учебниках... а там дальше можно использовать dataRead или DataSet... это уже "дело техники", понять несложно, есть примеры и т.д...
Я так пока понимаю, что сквел сервер дает своих поставщиков данных с которыми в нетфрамеворк взаимодействуют свои интерфейсы (префикс спереди), а дальше пошло-поехало, как написал выше...
НО С КАКОГО БОКУ ТУТ СЕТЬ!!!??? Если сквелсервер или майсквел это серверные субд, то там, надо полагать и создаются базы данных (Как?! Там же нет похоже графического интерфейса, как в аксес), далее поскольку это субд "серверные", то там же и задаем все то, что на данный момент является загадкой, грубо говоря связь с сетью... допуски, ай-пи адреса и тому подобное... Вот такие пока мысли... Уфффф))))
0
 Аватар для fatalistt
7 / 7 / 0
Регистрация: 04.07.2012
Сообщений: 20
09.07.2012, 09:18
Цитата Сообщение от Alex_mihail Посмотреть сообщение
Как?! Там же нет похоже графического интерфейса, как в аксес
Там есть командная строка, в которой можешь писать запросы, тем самым создавая и наполняя базы данных и таблицы. Если хочешь графический интерфейс, то либо ставишь phpmyadmin и через него подключаешься к субд, либо используешь какую-нибудь программу типа "navicat".
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
09.07.2012, 09:54
Цитата Сообщение от Alex_mihail Посмотреть сообщение
Там же нет похоже графического интерфейса, как в аксес
изначально SQL SERVER управлялся только запросами (в т.ч. из командной строки), но с 2005 года MS выпустила утилиту MS SQLSERVER Managment Studio, экспрессная версия распространяется бесплатно с сайта производителя. В коммерческих версиях сервера входит в комплект поставки.
Что касается оболочки для MySQL, fatalistt уже ответил.
Цитата Сообщение от Alex_mihail Посмотреть сообщение
поскольку это субд "серверные", то там же и задаем все то, что на данный момент является загадкой, грубо говоря связь с сетью... допуски, ай-пи адреса и тому подобное
Именно, работой с данными рулит СУБД. Как я уже писал выше клиенту для работы в сети нужно:
1) в локальной(в рамках одной подсети): знать имя сервера
2) за пределами подсети(в т.ч. через интернет): знать IP компа, на котором стоит сервер, а также порт по которому работает СУБД.

Цитата Сообщение от Alex_mihail Посмотреть сообщение
Думается, что не было бы особых проблем, если бы просто в строке подключения можно было бы написать примерно такое... допустим в параметре "адрес": ай пи адрес того компьютера где расположена база, далее через слеш путь к файлу в самом этом компьютере... Глупо?!
Конечно глупо. Зачем использовать для сети локальную базу? Конечно, при определенных шаманских телодвижениях оно работать будет, но Access имеет урезанный функционал по сравнению с SQLServer. Да и вообще любая сетевая СУБД изначально решает больше проблем касающихся администрирования, в том числе особенности многопользовательского доступа.
1
0 / 0 / 0
Регистрация: 07.07.2012
Сообщений: 5
20.07.2012, 21:39  [ТС]
Конечно глупо. Зачем использовать для сети локальную базу? Конечно, при определенных шаманских телодвижениях оно работать будет, но Access имеет урезанный функционал по сравнению с SQLServer. Да и вообще любая сетевая СУБД изначально решает больше проблем касающихся администрирования, в том числе особенности многопользовательского доступа.[/QUOTE]

Как оказалось и пока на этом успокоились и принялись изучать премудрости создания клиента в ADO.NET, не так уж и глупо... Более того ЭТО РАБОТАЕТ.... Даже просто из абстрогированной от всяких программистских вещей логики... в учебниках пишут примерно следующее о строках подключения: "...чаще всего требуется подключиться к БД данного компьютера..." или что-то в этом духе... вопрос... значит бывает что-то "не чаще"... а это что... А это и есть ай пи адрес... слеш...папка, где база... слеш... файл (в нашем случае .mdb) Таким образом простеньким клиентом использующим пресловутый DataRead с его методом однонаправленным Read() выдернул, опять же простым запросом SELECT данные из базы, находящейся физически в другом помещении... Никаких особых "шаманских телодвижений".... просто ай пи адрес... Что касается проблем администрирования пока не знаю, но мне то всего-то нужно, чтобы к базе подключались клиентов не больше пяти, может с этим будут проблемы, не знаю, пока не разбирался... сквел сервер сложен, ни разу не создавал там базу, вообщем полный чайник по этой части... аксес привычнее... Тем более, что пока устроит такое: база у меня, а клиент всего один на удалении... в локальной сети. Как только будут дальнейшие сдвиги обязательно отпишусь... С ув...
0
17 / 17 / 1
Регистрация: 22.02.2012
Сообщений: 116
25.02.2013, 23:11
Я подключился как указано выше, но на другом компьютере второго пользователя не пускает. В общем кто первый подключился - тот и работает, остальные ждут. Как это устранить?
0
Заблокирован
26.02.2013, 11:29
Для подключения к базе данных на MS Access надо использовать строку подключения для работы в совместном режиме. По умолчанию, подключение к базе используется в монопольном доступе.

Если SQL Server в его настройках надо указывать, каким пользователям доступ разрешен и с каких машин и адресов. Так же надо использовать строку подключения для работы в совместном режиме.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.02.2013, 11:29
Помогаю со студенческими работами здесь

Удалённый доступ к видесерверу на базе Windows XP
Такой Вопрос. Есть видеосервер на базе компа с Windows XP и платы видеозахвата ILDVR. Стоит задача доступа к серверу через интернет. Я...

Открыть удаленный доступ к базе для всех
Есть база данных, которая находится не на моем компьютере. (на hostinger.ru) Нужно сделать так, чтобы к ней можно было подключиться с...

Открыть удаленный доступ к базе для определенного ip - MySQL
Вот есть хорошая тема https://www.cyberforum.ru/mysql/thread608501.html. Но хотелось бы узнать,как сделать удаленный доступ определенному...

Доступ к базе данных на базе хранимых процедур MySQL из php
Добрый день возник вопрос по доступ к базе данных на базе хранимых процедур MySQL из php Из файла php подключаюсь к бд вот так ...

Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net
Всем привет! Нужно написать клиент-серверное приложение на основе Microsoft Sql Server 2005 Express Edition. Некое клиент-серверное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. ) В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер