Как сделать не абсолютную строку подключения, чтобы моя небольшая база данных работала с моим опубликованным приложением C #? - PullRequest
1 голос
/ 19 апреля 2011

Я работаю над небольшим проектом для отслеживания информации.Это приложение C # будет принимать информацию, загруженную через CSV / Excel, и сохранять / сортировать ее.

Моя текущая строка подключения - это абсолютный путь (без большого пальца).Я беспокоюсь, что когда я опубликую его, соединение с базой данных не будет работать на компьютере случайных пользователей.

            <add name="PPP_Project.Properties.Settings.Database1ConnectionString"
        connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=E:\Other PPP Projects\PPP_Project_Test\PPP_Project\Database1.mdf;Integrated Security=True;User Instance=True"
        providerName="System.Data.SqlClient" />

Как мне установить этот набор, чтобы он работал при публикации приложения?*

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

вы можете использовать это:

Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|Customers.mdf;Integrated Security=True;User Instance=True

как описано здесь .Для приложения winform по умолчанию | DataDirectory |там же, где установлено приложение.Конечно, вы можете использовать часть более вложенного пути.Если вы хотите указать что-то еще, вы можете использовать метод AppDomain.SetData.

0 голосов
/ 19 апреля 2011

Самый простой способ манипулировать строками подключения - использовать классы ConnectionStringBuilder:

OleStringBuilder = new OleDbConnectionStringBuilder(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';");

OleStringBuilder.DataSource = MapPath(@"~\App_Datav\MyExcelWorksheet.xls");
...