c#winforms GetCurrentDirectory返回C:\ WINDOWS \ System32 \ design错误

时间:2018-03-29 04:54:08

标签: c# winforms visual-studio ms-access windows-forms-designer

我正在制作一个带有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

1 个答案:

答案 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