我目前在“c:\ temp”中绑定了一个sqlite数据库的DataGridView。我使用VS2008 GUI绑定它。我希望它绑定到运行应用程序的任何目录中的数据库。我可以看到路径被硬编码到“c:\ temp \ myapp.db”的位置,但是如果我在生成的代码中更改它,那么当我重新编译时它会被覆盖吗?
如何设置它以便DataGridView连接到应用程序所在目录中的sqlite db文件?
我对Winforms编程非常陌生,所以一步一步的细节将不胜感激。
更新
我想我知道如何获得cwd(见下文);问题是当VS生成db访问代码时,让DataGridView使用它。
string cwd = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
也许无法做到? 也许我需要写一个DAL,我打算这样做 - 如果有的话,现在只想快速解决。
答案 0 :(得分:0)
将应用程序的启动路径与预期的文件名结合起来:
string filename = System.IO.Path.Combine(Application.StartupPath, "datafile.db");
这将包括可执行文件的运行路径。 然后,您可以将此filename变量用作SQLiteConnection对象上的Database属性:
System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();
// ... your connection setup code here
conn.Database = filename;
更新:要通过代码绑定网格,请参阅this MSDN article。它适用于MSSQL,但SQLite从Data命名空间类继承到对象是可以互换的。