Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2013, 17:21   #1
Rio309
Форумчанин
 
Регистрация: 06.02.2008
Сообщений: 140
По умолчанию Перенос программы с базой данных на другой компьютер

Добрый день.
Есть программа, которая связана с базой данных на SQL Server 2008.
На моем компьютере с установленными Visual Studio и SQL Server 2008 все работает, но как перенести эту программу на дугой компьютер?
Чисто логически, нужно установить SQL Server 2008 на компьютер и перекинуть туда ехешник и базу данных.
Но...подключение к базе данных прописано в коде таким образом:
Код:
SqlConnection con = new SqlConnection("Server=RIO-PC\\SQLEXPRESS;Database=KashtanTrophy;Integrated Security = true");
И поле server может меняться в зависимости от настроек SQL Server'а при установке.
Смысл вопроса:
Как сделать эту программу полностью автономной от программиста, чтоб она настраивалась сама. Возможно и сделать какой-то инсталятор, который бы установил SQL Server, перенес туда базу и скопировал ехешник.
Rio309 вне форума Ответить с цитированием
Старый 19.01.2013, 18:08   #2
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

можно добавить к проекту файл App.config и в нем прописать параметры подключения к базе данных. А в программе считывать данные с этого файла.

Вот пример такого файла

Код:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="localdb" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\\..\\PersonDatabase.mdb;Persist Security Info=True" providerName="Microsoft.Jet.OLEDB.4.0"/>
  </connectionStrings>
</configuration>
а вот так можно достать эту информацию.

Код:
 public string conString = ConfigurationManager.ConnectionStrings["localdb"].ConnectionString;

Последний раз редактировалось rUs_LAN; 19.01.2013 в 18:11.
rUs_LAN вне форума Ответить с цитированием
Старый 19.01.2013, 23:01   #3
Rio309
Форумчанин
 
Регистрация: 06.02.2008
Сообщений: 140
По умолчанию

Как в App.config будет попадать правильная информация? Пользователь сам должен будет изменять этот файл?
Rio309 вне форума Ответить с цитированием
Старый 19.01.2013, 23:10   #4
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

Да, ему нужно будет самому изменить этот файл. Вручную или с помощью вашей программы это уже другой вопрос. Я думаю если пользователь поставит себе sql сервер то ему уже ничего не будет страшно

Хотя если честно я не понимаю действительно вам нужна эта возможность. Если у вас только ваша программа работает с базой данных то можно прикрутить
SQL Server Database Primary Data File (.mdf)
Если вашу базу использует большое количество людей, я думаю нужно будет подумать на счет какого нибудь удаленного sql сервера.
rUs_LAN вне форума Ответить с цитированием
Старый 20.01.2013, 01:12   #5
Rio309
Форумчанин
 
Регистрация: 06.02.2008
Сообщений: 140
По умолчанию

Цитата:
Хотя если честно я не понимаю действительно вам нужна эта возможность. Если у вас только ваша программа работает с базой данных то можно прикрутить
SQL Server Database Primary Data File (.mdf)
О...вот это я думаю мне и нужно.
Вообще надо ли устанавливать SQL Server для работы программы или достаточно .mdf файла? По идее надо, но может есть какая-то ужатая версия, чисто для того, чтоб программа могла работать с базой в файле .mdf. И как это реализовать?
Rio309 вне форума Ответить с цитированием
Старый 20.01.2013, 11:18   #6
Rio309
Форумчанин
 
Регистрация: 06.02.2008
Сообщений: 140
По умолчанию

Вроде решил проблему путем добавления файла .mdf в проект и использования Visual Studio publish для создания установочного файла. Но осталась маленькая неприятная деталь.
1. Setup устанавливает программу куда-то очень далеко в локальные документы и я не нашел как изменить путь куда оно будет все ставить.
2. Для работы нужно установить драйвера .Net 3.5 и SQL Server 2008 Express. С помощью Setup.exe оно ищет их в нете и устанавливает. Но лучше бы, чтоб эти файлы тоже были локально с утановочным файлом. Не всегда инет есть. Скачал с сайта Микрософт нечто похожее, не подходит. Работает только если качать с помощью сетапа.
Rio309 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос БД MySQL на другой компьютер Montysson БД в Delphi 10 13.06.2012 12:25
Перенос программы на другой компьютер Studentka2011 БД в Delphi 11 11.06.2011 03:33
перенос программы на другой компьютер kinnder Помощь студентам 2 07.03.2010 14:05
Почему не работает?? (Перенос программы на другой компьютер) HunterMan Win Api 9 04.06.2008 01:31
Перенос xml БД на другой компьютер. Chaos0xff БД в Delphi 0 11.03.2008 19:58