Member 14734812 Ответов: 2

Как изменить окончательный путь к файлам базы данных


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

svo_dirInf = new DirectoryInfo(Environment.Текущей каталог);
svo_dirDBFiles = svo_dirInf.Полное имя;

svo_dirDB = svo_dirDBFiles + "DB_Files\\Allfiles.mdb";
svo_dirOS = svo_dirDBFiles + "ОС";
svo_dirDBFiles = svo_dirDBFiles + "DB_Files";

и у меня есть такая таблица доступа

Значение Имени
ОС D:\Server\Day_OS
DB_Server D:\Server\DB_Files
OS_Server D:\Server\OS
svo_File D:\Server\OS\20

Я хочу прочитать имя и установить значение

Кроме того у меня есть FolderBrowserDialog в новой открывающейся форме где в текстовых полях я хочу установить новые пути для файлов
Таким образом, текущий каталог будет изменен путь, который я задал в новой форме

Что я уже пробовал:

to change final database files path

OriginalGriff

Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы. И то, что вы напечатали, ничего не значит для меня без контекста.

Попробуйте точно объяснить, что вы имеете в качестве входных данных и что вы ожидаете получить в качестве выходных данных - это может помочь.

Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

2 Ответов

Рейтинг:
7

phil.o

Вы должны строить свои пути, используя Path.Combine метод. Он автоматически позаботится о разделителях путей для вас.

string basePath = @"C:\ProgramData";

// appDir == @"C:\ProgramData\MyApp"
string appDir = Path.Combine(basePath, "MyApp");

// dbDir == @"C:\ProgramData\MyApp\DB"
string dbDir = Path.Combine(appDir, "DB");

// osDir == @"C:\ProgramData\MyApp\OS"
string osDir = Path.Combine(appDir, "OS");

// dbFile == @"C:\ProgramData\MyApp\DB\Allfiles.mdb"
string dbFile = Path.Combine(dbDir, "Allfiles.mdb");

Также обратите внимание на дополнительные @ перед открывающейся двойной кавычкой для объявления строки. Он сообщает компилятору, что обратная косая черта не должна интерпретироваться как escape-символ, как это обычно делается, а скорее как сам литеральный символ обратной косой черты. Он позволяет указывать пути без необходимости удваивать обратную косую черту:
string basePath = @"C:\ProgramData";
// is equivalent to
string basePath = "C:\\ProgramData";


Что касается части хранилища базы данных, то вы можете сохранить любой путь или часть пути в виде строки.

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


Member 14734812

Хорошо спасибо но я хочу использовать FolderBrowserDialog в моей новой форме где я устанавливаю значение в текстовых полях а затем читаю это и обновляю таблицу доступа

phil.o

В чем же проблема?

Member 14734812

наконец я хочу преобразовать свой код так как я открываю свою форму и выбираю любой каталог который я хочу и после всего этого когда я использую programm файлы будут находиться в моем выбранном каталоге

phil.o

Что вам мешает это сделать?

Member 14734812

Во первых я не знаю как читать поля таблицы access и во время этого процесса давать значение например OS = D:\Server\Day_OS

phil.o

доступ C#
Это даст вам много материала о том, как подключиться к базе данных access из C#. Обучение вас такого рода вещам выходит далеко за рамки цели форума быстрых ответов.
Обратите внимание, что вы не можете одновременно читать и записывать данные в базу данных. Вы можете читать из него с помощью SELECT команда, и вы можете написать в нее с помощью INSERT или UPDATE например, командование. Опять же, все это довольно универсально, и вы должны иметь минимальное представление о запросах реляционной базы данных, прежде чем пытаться использовать их в своем приложении.

Рейтинг:
19

RickZeeland

Взгляните на это:
Путь Класса (Система.IO) | Microsoft Docs[^]
Класс Каталога (System.IO) | Microsoft Docs[^]

Это лучше использовать Путь.Объединять() для объединения путей: Путь.Комбинированный Метод (Система.IO) | Microsoft Docs[^]


Member 14734812

Спасибо