我正在制作一个带有winforms项目的收银员应用程序,我需要使用访问数据库,我使用System.IO.GetCurrentDirectory()
。但是它在设计时返回C:\WINDOWS\System32
,所以当我使用设计器时它会不断弹出消息框。
当我运行它时,它也会返回正确的目录。
以下是我的连接字符串示例:
OleDbConnection conn = new OleDbConnection();
string dataPath = System.IO.Directory.GetCurrentDirectory();
conn.ConnectionString = @"
Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=" + dataPath + "/Data/Databases/database.accdb;Persist Security Info=False";
任何帮助都会得到满足。
编辑:
当我尝试打开设计师时会发生什么: https://i.stack.imgur.com/HQjHa.png
答案 0 :(得分:0)
不确定为什么会这样,但你可以尝试:
System.Environment.CurrentDirectory
//or
Application.StartupPath
//or
System.IO.Path.GetDirectoryName(Application.ExecutablePath);
//or
System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
//or
System.AppDomain.CurrentDomain.BaseDirectory