C #: привязать DataGridView к файлу базы данных в каталоге приложения - PullRequest
0 голосов
/ 30 марта 2011

В настоящее время у меня есть DataGridView, связанный с базой данных sqlite в "c: \ temp".Я связываю это, используя графический интерфейс VS2008.Я хотел бы, чтобы он связывался с базой данных в любом каталоге, из которого запускается приложение.Я могу видеть, где путь был жестко задан как «c: \ temp \ myapp.db», но если я изменю его в сгенерированном коде, он будет перезаписан, как я думаю, после перекомпиляции?

Как мне настроить его так, чтобы DataGridView подключался к файлу sqlite db в любом каталоге, в котором находится приложение?

Я очень новичок в программировании Winforms, так что пошаговые подробности будутс благодарностью.

ОБНОВЛЕНИЕ

Мне кажется, я знаю, как получить CWD (см. ниже);проблема в том, чтобы заставить DataGridView использовать его, когда VS генерирует код доступа к БД.

string cwd =    System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);

Возможно, это невозможно сделать?Возможно, мне нужно написать DAL, что я и планировал сделать - просто хотел быстрое решение, если оно есть.

1 Ответ

0 голосов
/ 30 марта 2011

Объедините путь запуска приложения с ожидаемым именем файла:

string filename = System.IO.Path.Combine(Application.StartupPath, "datafile.db");

Это будет включать путь к исполняемому файлу, где бы он ни запускался. Затем вы можете использовать эту переменную имени файла в качестве свойства базы данных объекта SQLiteConnection:

        System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();
        // ... your connection setup code here
        conn.Database = filename;

Обновление: Чтобы связать сетку с помощью кода, см. эту статью MSDN . Это относится к MSSQL, но SQLite наследует от классов пространства данных Data, чтобы объекты были взаимозаменяемыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...