【问题标题】:c# winforms GetCurrentDirectory returns C:\WINDOWS\System32\ design errorc# winforms GetCurrentDirectory 返回 C:\WINDOWS\System32\ 设计错误
【发布时间】:2018-03-29 04:54:08
【问题描述】:

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

【问题讨论】:

  • 到底是什么问题?
  • 它在设计时返回 C:\WINDOWS\System32,所以消息框不断弹出
  • 启动设计器时怎么会出现错误???你为什么不从项目中排除数据库并将其保存在应用程序文件夹中....应该修复它:)

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


【解决方案1】:

不知道为什么会这样,但你可以试试:

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

【讨论】:

  • 哪一个最好更可靠?
  • 都返回相同的结果,看看哪一个有效
  • 以上这些都不起作用:(它现在给了我visual studio的程序文件路径
  • 在 Visual Studio 外运行并告诉我结果
  • 如果我运行它就可以工作,但是如果我打开设计器,会从我的异常处理中弹出一堆消息框,它说数据库的路径错误并且消息框一直弹出所以我什么都做不了
猜你喜欢
  • 2012-04-17
  • 2019-06-30
  • 2015-12-14
  • 1970-01-01
  • 1970-01-01
  • 2019-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
相关资源
最近更新 更多