Novice12 Ответов: 3

Я новичок в использовании VB.NET, есть ли код, как автоматически найти базу данных ms access при установке на другой компьютер?


Я попробовал приведенный ниже код для добавления и сохранения
Но когда я устанавливаю его с другого компьютера
Он говорит .. не может найти обновляемый запрос

Это хороший код кнопки добавления?

Я до сих пор не знаю, как использовать вставку в запрос
Не могли бы вы привести мне несколько примеров??

Что я уже пробовал:

* добавить кнопку
ElementaryBindingSource.AddNew()
Update()

* Кнопка сохранения
Dim con as oledbConnection = new OledbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source = C:\Users\Acer\Documents\school.accdb")
con.Open()
Try
ElementaryBindingSource.EndEdit()
ElementaryTableAdapter.Update(SchoolDataSet.Elementary)
Update()
MessageBox.Show("Data Saved")
Catch ex As Exception
MessageBox.Show(ex.Message)
End try

RickZeeland

А как вы определяете ElementaryBindingSource ?

3 Ответов

Рейтинг:
2

Dave Kreskowiak

Нет такого понятия, как "автоматически". Вы должны предоставить какой-то метод, чтобы сделать местоположение базы данных известным. Обычно для базы данных Access это находится в известной папке под C:\ProgramData-хорошо известное место.

Либо это, либо вы спрашиваете пользователя, где находится база данных.

Не помещайте базу данных в любое место под C:\Program файлы. Пользователи не имеют доступа на запись к файлам в этой папке.


Maciej Los

5ed!

Novice12

Может ли база данных ms access по-прежнему обновляться, если она зашифрована?

Спасибо

Dave Kreskowiak

Это зависит от того, что вы подразумеваете под "зашифрованным". Если вы используете пароль базы данных, не делайте его длиннее 14 символов и сохраняйте выбор буквенно-цифровых символов. Пароль также должен быть указан в строке подключения в виде обычного текста.

Чтобы добавить пароль базы данных в строку подключения, просто добавьте следующее в конец существующей строки подключения:

;Jet OLEDB:Database Password=password;


Если вы хотите обеспечить безопасность базы данных, не используйте базу данных Access. Вместо этого используйте SQL Server.

Рейтинг:
2

Maciej Los

В дополнение к решению №1 по Давекресковяк и решение № 2 по RickZeeland
Не храните строку подключения в коде! Воспользуйся app.config файл (или аналогичный файл), то вы сможете легко изменить его или настроить во время установки вашего приложения на клиентский компьютер!

Для получения более подробной информации, пожалуйста, смотрите:
Строки подключения и конфигурационные файлы - ADO.NET | Microsoft Docs[^]
Как хранить и извлекать пользовательскую информацию из файла конфигурации приложения с помощью Visual C#[^]
Настройка приложений с помощью файлов конфигурации | Microsoft Docs[^]


Novice12

Есть ли способ, чтобы код, чтобы исправить
То
Операция должна использовать обновляемый запрос?
Когда вы преобразовали его в установщик
И установил его в новый компьютер

Maciej Los

Пожалуйста, прочтите, что я сказал...
Вам нужно получить строку подключения из конфигурационного файла. Во время установки вам необходимо записать необходимые данные в конфигурационный файл (включая имя файла базы данных).
Видеть:
Измените настройки приложений app.config во время установки[^]
Создайте пользовательскую настройку для изменения файла App.config[^]

Кстати: вы должны добавить пустой файл базы данных в установщик, чтобы иметь возможность установить его.

Рейтинг:
0

RickZeeland

Если вы хотите использовать .# то # затем на каждой машине должен быть установлен компонент Access Database Engine ("ACE"). Установщик доступен для скачивания здесь:
Загрузите распространяемый пакет Microsoft Access Database Engine 2010 из официального центра загрузки Microsoft[^]

Еще одна идея, если вам не нужны конкретные функции Access 2010:
преобразуйте ваш файл .accdb в файл .mdb и используйте Jet database engine это уже установлено на всех машинах Windows.
Чтобы это работало, ваше приложение должно быть 32-битным (x86).


Maciej Los

5ed!