Application.StartupPath 问题
string connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + Application.StartupPath + @ "\database\xcrs.mdb ";
这句在窗体中调用时候路径正确指示到软件数据库地址:H:\WebSun\database\xcrs.mdb
但在用户控件的cs文件中调用此数据库连接,再把该用户控件拖到某个窗体上调试,就显示错误: 'H:\Microsoft Visual Studio 8\Common7\IDE.\database\xcrs.mdb '不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
请问为何在窗体中直接调用跟在用户控件中调用,得到的地址截然不同的???究竟错了哪里?
------解决方案--------------------用这个属性看看
Application.ExecutablePath;
------解决方案--------------------System.IO.Directory.GetCurrentDirectory()
用这个获取当前程序所在的绝对路径
Application.StartupPath获得是程序起使执行的路径
你如果用的快捷方式打开的程序回返回给你快捷方式的所在路径的
------解决方案--------------------asp.net应该是Server.MapPath(null)
这样获取的是网站根的绝对路径
Server.MapPath(null) + "根下的数据库路径\数据库名称 "
------解决方案--------------------using System.IO;
string connstr = string.Format(
@ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " "{0}\database\xcrs.mdb " " ",
Path.GetDirectoryName(Application.ExecutablePath));
//or
string connstr = string.Format(
@ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}\database\xcrs.mdb ",
Path.GetDirectoryName(Application.ExecutablePath));