2016-03-10 4 views
-1

enter image description here Я новичок в VB.Net, и я застрял в использовании относительного пути для файла xls в vb.Net. Я попытался использовать метод файла ресурсов, но напрасно. Может кто-нибудь, пожалуйста, помогите мне.Относительный путь для файла xls в приложении Windows Form vb.Net

У меня есть приложение VB.NET Windows Form, для которого я использую файл Excel в качестве моей БД. В моей локальной системе я могу получить доступ к этому файлу, указав полный путь. Но если мне нужно запустить его в другой системе, мне нужен относительный путь к файлу excel.

Как я могу получить доступ к файлу Excel, указав его относительный путь в приложении VB.NET?

+0

http://stackoverflow.com/questions/2216141/get -programs-path –

ответ

0

Я бы рекомендовал использовать следующий метод: используйте комбинацию, которая добавит разделитель каталогов для вас и AppDomain.CurrentDomain.BaseDirectory вместо Application.StartUpPath, потому что он недоступен при перемещении кода в проект класса. Конечно, пример кода ниже предполагает, что файл находится в папке приложения, если в другом месте сообщите нам об этом.

Dim fileName As String = IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "MyFileName.xls") 
If IO.File.Exists(fileName) Then 
    ' do work 
End If 

Пример

Dim Builder As New OleDbConnectionStringBuilder 
Builder.Provider = "Microsoft.Jet.OLEDB.4.0" 
Builder.Add("Extended Properties", "Excel 8.0;IMEX=1;HDR=Yes;") 
Builder.DataSource = IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Explanaation_notes.xls") 
Dim con As New OleDbConnection(Builder.ConnectionString) 

Вот модифицированный пример, чтобы пойти с вашим последним вопросом для "Files" папка

Dim fileName As String = IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "Explanaation_notes.xls") 
If IO.File.Exists(fileName) Then 
    Dim Builder As New OleDbConnectionStringBuilder 
    Builder.Provider = "Microsoft.Jet.OLEDB.4.0" 
    Builder.Add("Extended Properties", "Excel 8.0;IMEX=1;HDR=Yes;") 
    Builder.DataSource = fileName 
    Dim con As New OleDbConnection(Builder.ConnectionString) 
End If 
+0

Большое вам спасибо за ваше время Karen.I пробовал описанный выше метод, но когда я использую строку в своем источнике данных в функции oledb, я получаю сообщение об ошибке. Когда я отлаживаю, я вижу, что источник данных имеет значение «filename.XLS». Я добавил свой лист excel в папку bin/debug. Не могли бы вы мне помочь. [Это ошибка, которую я получаю] [1] [1]: http://i.stack.imgur.com/Pz1WO.png –

+0

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

+0

Большое спасибо Карен, она отлично работает :) Последний вопрос, мне было интересно, если бы у меня была отдельная папка под названием FILES и хранилась там все мои файлы excel, тогда можно позвонить файл excel из папки FILES? –