2016-04-02 5 views
0

у меня есть доступ к базе данных, подключенные к моей коде с помощью строки соединения, как показано:строки «Dynamic» соединение для MS-Access C#

connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Me\Documents\Visual Studio 2013\Projects\Computing Project\Database.accdb; 
Persist Security Info=False;"); 

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

+0

Чтение значения из вашего конфигурационного файла вместо жесткого его кодирования? – Steve

ответ

0

Добавить App.config в раствор с последующим содержанием

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" /> 
    </startup> 
    <connectionStrings> 
    <add name="MyCon" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Me\Documents\Visual Studio 2013\Projects\Computing Project\Database.accdb; Persist Security Info=False;"/ > 
    </connectionStrings> 
</configuration> 

Затем в коде,

connection = new OleDbConnection(ConfigurationManager.ConnectionStrings["MyCon"].ToString()); 

PS: ConfigurationManager класс находится в сборке System.Configuration. Поэтому, пожалуйста, добавьте ссылку на эту сборку перед ее использованием.

+0

Я добавил ссылку System.Configuration, но когда я использую этот код, он говорит, что у меня есть недопустимые аргументы? Я использую имя моей строки подключения вместо вашей, и она по-прежнему не работает. –

+0

Я пропустил преобразование в строку. Пожалуйста, проверьте обновленный ответ –

+0

Это сработало спасибо! Где было бы лучше всего разместить базу данных (папка мудрая), когда дело доходит до построения решения? –