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

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

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

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

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

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

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

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

13
Заблокирован
07.07.2012, 11:44 2
Цитата Сообщение от 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 3
А какая разница где находится БД? Указываем путь,открываем и редактируем
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
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
07.07.2012, 12:20 4
Alex_mihail, не понятно с каким типом БД ты работаешь.
Если взять к примеру SQL Server, то рассположение БД не имеет влияния на код, главное настроить сервер на работу в сети. В локальных сетях подключение осуществляется по имени сервера, в глобальных - по IP и порту.
0
0 / 0 / 0
Регистрация: 07.07.2012
Сообщений: 5
07.07.2012, 18:46  [ТС] 5
[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
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
08.07.2012, 07:44 6
Цитата Сообщение от Alex_mihail Посмотреть сообщение
Файл mdb аксешный находиться допустим у меня на компьютере, а доступ к нету осуществляется с другого по локальной сети
БД ACCESS - локальная БД, использовать её в сетях не рекомендуется, для этого есть сетевые БД. Использовать её для работы в локальной сети можно конечно, для этого нужно расшаривать каталог в которой она лежит. Что касается использования через интернет, вообще не представляю, как это сделать. Скорее всего придется писать клиент-серверное приложение прослойку, которое будет заниматься передачей данных....
0
0 / 0 / 0
Регистрация: 07.07.2012
Сообщений: 5
08.07.2012, 10:16  [ТС] 7
Цитата Сообщение от nio Посмотреть сообщение
БД ACCESS - локальная БД, использовать её в сетях не рекомендуется, для этого есть сетевые БД. Использовать её для работы в локальной сети можно конечно, для этого нужно расшаривать каталог в которой она лежит. Что касается использования через интернет, вообще не представляю, как это сделать. Скорее всего придется писать клиент-серверное приложение прослойку, которое будет заниматься передачей данных....
"Короче, как написать, где примеры, сервер на "нэт" " - цитируя самого себя... дык и я о том же... вот и я тоже очень плохо представляю, как написать или где взять сервер, а схема такая: база данных (файл mdb) - сервер - локальная сеть - клиент). Ну не должно быть для локалки слишком уж это сложно... вот и не знаешь... то ли изучать пшпи с mySQLом (но тогда возможно и vb не нужен...), а еще вместе с операционкой устанавливается Microsoft SQL server с которым, судя по инетным данным с успехом "сотрудничает" аксес (это оно и есть?!) И как тогда туда "залезть" и что делать? Короче, не хватает, мягко говоря "образования" в этом вопросе...
0
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
08.07.2012, 11:31 8
Давай по порядку

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

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

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

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

Цитата Сообщение от Alex_mihail Посмотреть сообщение
И как тогда туда "залезть" и что делать?
Работа с подключенным уровнем ADO .NET в C#
0
0 / 0 / 0
Регистрация: 07.07.2012
Сообщений: 5
08.07.2012, 13:23  [ТС] 9
Цитата Сообщение от nio Посмотреть сообщение
Давай по порядку

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


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

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

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


Работа с подключенным уровнем ADO .NET в C#
Спасибо, конечно... То что вы предлагаете по ссылке - это начало практически любого учебника по "адо нет", с подобными вещами я знакомился и даже "выдергивал" кое-какие данные из своего файла mdb здесь у себя на компьютере... НО КАК ЭТО УВЯЗАТЬ С СЕТЬЮ!!!??? Ладно... будем пока "насыщаться" информацией - может что-нибудь и выплавет достаточно четкое...

Добавлено через 41 минуту
Думается, что не было бы особых проблем, если бы просто в строке подключения можно было бы написать примерно такое... допустим в параметре "адрес": ай пи адрес того компьютера где расположена база, далее через слеш путь к файлу в самом этом компьютере... Глупо?! Наверное... Так вот в этом-то весь и вопрос, а что касается клиента на vb здесь на этом компьютере проблем нет - пишите для объекта command запрос (во всяком случае такое начало во всех учебниках... а там дальше можно использовать dataRead или DataSet... это уже "дело техники", понять несложно, есть примеры и т.д...
Я так пока понимаю, что сквел сервер дает своих поставщиков данных с которыми в нетфрамеворк взаимодействуют свои интерфейсы (префикс спереди), а дальше пошло-поехало, как написал выше...
НО С КАКОГО БОКУ ТУТ СЕТЬ!!!??? Если сквелсервер или майсквел это серверные субд, то там, надо полагать и создаются базы данных (Как?! Там же нет похоже графического интерфейса, как в аксес), далее поскольку это субд "серверные", то там же и задаем все то, что на данный момент является загадкой, грубо говоря связь с сетью... допуски, ай-пи адреса и тому подобное... Вот такие пока мысли... Уфффф))))
0
7 / 7 / 0
Регистрация: 04.07.2012
Сообщений: 20
09.07.2012, 09:18 10
Цитата Сообщение от Alex_mihail Посмотреть сообщение
Как?! Там же нет похоже графического интерфейса, как в аксес
Там есть командная строка, в которой можешь писать запросы, тем самым создавая и наполняя базы данных и таблицы. Если хочешь графический интерфейс, то либо ставишь phpmyadmin и через него подключаешься к субд, либо используешь какую-нибудь программу типа "navicat".
0
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
09.07.2012, 09:54 11
Цитата Сообщение от 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  [ТС] 12
Конечно глупо. Зачем использовать для сети локальную базу? Конечно, при определенных шаманских телодвижениях оно работать будет, но Access имеет урезанный функционал по сравнению с SQLServer. Да и вообще любая сетевая СУБД изначально решает больше проблем касающихся администрирования, в том числе особенности многопользовательского доступа.[/QUOTE]

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

Если SQL Server в его настройках надо указывать, каким пользователям доступ разрешен и с каких машин и адресов. Так же надо использовать строку подключения для работы в совместном режиме.
1
26.02.2013, 11:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2013, 11:29
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru