Как источники данных связаны в скомпилированных приложениях Visual Basic .NET? - PullRequest
2 голосов
/ 18 июня 2009

Когда я пытаюсь добавить новый источник данных в свой проект, я получаю сообщение: «Выбранное вами соединение использует локальный файл данных, который не является частью текущего проекта. Хотите скопировать файл в свой проект и изменить соединение? "

Это звучит довольно неясно для меня, так как я новичок в VB.NET и программирую не скриптовые приложения в целом. В этом случае источником данных является файл .sdf SQL CE.

Вопрос 1: Если я скажу, что хочу скопировать базу данных в проект, что произойдет после компиляции приложения, где будет база данных? (как я буду редактировать его из другого приложения?)

Вопрос 2. Если я не включу его, как источник данных будет по-прежнему оставаться связанным? Могу ли я связать, используя переменные среды файловой системы, такие как % ProgramFiles% \ MyAppDir?

Вопрос 3: Могу ли я просто сказать ему использовать доступный только для чтения (просто нужно прочитать) источник данных в сети, как на FTP?

Спасибо за помощь заранее! =)

1 Ответ

2 голосов
/ 18 июня 2009

Visual Studio просто пытается разместить все ваши файлы в одном месте, а остальные - в папке проекта.

Q1 - База данных SQL Ce может быть где угодно, вы используете раздел настроек ConnectionStrings в вашем app.settings. SQL Ce - это просто файл, не более, не менее, поэтому доступный из любого приложения. Он не скомпилирован в ваше приложение, он просто путешествует с ним при развертывании и т. Д.

Чтобы ответить на вопрос 2 - вы, вероятно, можете, но я не уверен, что он будет работать автоматически для вас.

Q3 - читать из ftp, вероятно, нет, если вы не включили поддержку ftp-клиента в свое приложение и не загрузили его в фоновом режиме. Другим решением будет сопоставление ftp локальному диску и доступ к нему оттуда.

Например, сохранение строки подключения в app.config (отрывок из app.config):

<connectionStrings>
   <add name="db" connectionString="Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0; data source=c:SomePathToSDFfile" />
</connectionStrings>

Позже в вашем приложении вы получаете доступ к этой строке подключения следующим образом: (добавить ссылку на System.Configuration)

  Dim c As Configuration.ConnectionStringSettingsCollection
  Dim cn As SqlClient.SqlConnection

  c = Configuration.ConfigurationManager.ConnectionStrings
  cn = New SqlClient.SqlConnection
  cn.ConnectionString = c.Item("db").ConnectionString
  cn.Open()
...