как создать настройку в vb.net? ? с примером - PullRequest
0 голосов
/ 17 ноября 2010
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\solutionvs10\test\test\bin\Debug\db2.mdb;**Jet OLEDB:Database Password=secret**")

cn.Open()
''# codes
cn.Close()

Я использовал V S 2010 Выше мой код ...... вы можете видеть, что это Ms Access DataBase .... (защита паролем) Как я могу создать настройку ..... которая может быть простой установить другой компьютер .........

Могу ли я создать такую ​​настройку ???

Ответы [ 4 ]

3 голосов
/ 17 ноября 2010

Прежде всего, этот код, который вы разместили, является неверным:

cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\solutionvs10\test\test\bin\Debug\db2.mdb;**Jet OLEDB:Database Password=secret**")

cn.Open()
''# codes
cn.Close()

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

Теперь я знаю, что вы думаете: "Да, я закрываю свои связи. Разве вы не видите cn.Close()?" Да, я вижу это. Но этого недостаточно. Есть несколько случаев (исключения являются большими), которые могут заставить этот код не работать. Правильный способ написания этого кода выглядит так:

cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\solutionvs10\test\test\bin\Debug\db2.mdb;**Jet OLEDB:Database Password=secret**")
Try
    cn.Open()
    ''# codes
Finally
    cn.Close()
End Try

И в VB.Net есть сокращенный синтаксис, который выглядит следующим образом:

Using cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\solutionvs10\test\test\bin\Debug\db2.mdb;**Jet OLEDB:Database Password=secret**")  
    cn.Open()
    ''# codes
End Using ''# No need to call .Close() any more, the Using structure takes care of it

Теперь перейдем к актуальному вопросу развертывания.

Вам необходимо добавить проект установки в то же решение, в котором находится проект приложения. После этого вы сможете использовать выходные данные вашего основного проекта в качестве пакета для проекта установки и включить исходный файл базы данных в качестве ресурса содержимого. Больше ничего не нужно включать в проект установки; Windows включает ядро ​​базы данных Jet, используемое для доступа из коробки. Возможно, вы захотите потратить некоторое время на то, чтобы убедиться, что соответствующая среда выполнения .Net Framework будет также установлена ​​как зависимость.

2 голосов
/ 17 ноября 2010

Как указал Уилл, включение файла .mdb в ваш проект, вероятно, то, что вы ищете. Вы можете сделать это в диспетчере проектов, а затем настроить свойства так, чтобы файл был опубликован в папке приложения (Копировать в выходной каталог = Копировать всегда).

В коде вы должны ссылаться на базу данных как

cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & My.Application.Info.DirectoryPath & "\db2.mdb;**Jet OLEDB:Database Password=secret**")

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

С другой стороны, вы можете убедиться, что публикуете свое приложение как 32-битное приложение, поскольку Jet4.0 не работает для 64-битных приложений (см. http://connect.microsoft.com/VisualStudio/feedback/details/123311/win-xp-x64-jet-v4-0)

2 голосов
/ 17 ноября 2010

Для простой установки на другом компьютере я рекомендую SQLite или SQL Server Compact. Конфигурация также может быть более сложной с доступом, чем sqlite или mssql compact.

Кроме того, я бы рекомендовал развернуть приложение с помощью ClickOnce. Документация здесь .

1 голос
/ 17 ноября 2010

Я думаю, что создание файла MDB как части вашего проекта и установка правильного свойства для его копирования в папку приложения поможет вам.

С другой стороны, вам придется сделатьубедитесь, что вы установили MDAC 2.8 в качестве одной из зависимостей вашего проекта, чтобы ваши пользователи либо были проинформированы, либо обязаны загрузить и установить его на свои компьютеры.

Я думаю, что вы можете выполнить развертывание черезClickOnce, в противном случае создайте SetUp project, это выполнимо.

...