System.Data.OleDb.OleDbException 未处理:不是有效路径
Posted
技术标签:
【中文标题】System.Data.OleDb.OleDbException 未处理:不是有效路径【英文标题】:System.Data.OleDb.OleDbException was unhandled: is not a valid path 【发布时间】:2013-07-30 14:15:19 【问题描述】:这是我第一次尝试从服务器访问数据库文件。如果在本地运行程序没有问题
我在服务器上存储了 ms 访问文件,并尝试从我的笔记本电脑上运行程序,但收到以下错误....
System.Data.OleDb.OleDbException was unhandled is not a valid path. Make sure that the path
name is spelled correctly and that you are connected to the server on which the file resides.
我的连接字符串看起来像这样...
myCon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=H:\name-SERVER\SHAREDFILES\FileRDB.mdb; Jet OLEDB:System Database=system.mdw");
有服务器的用户名和密码。我应该在连接字符串中包含这个吗?
Stacktrace 看起来像这样...
System.Data.OleDb.OleDbException was unhandled
is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
Source=Microsoft JET Database Engine
ErrorCode=-2147467259
StackTrace:
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at MALHRManagementSystem.FrmLogin.btnLogin_Click(Object sender, EventArgs e) in C:\Users\username\Desktop\Project\foldername\foldername\foldername\Form.cs:line 40
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at somefilename.Program.Main() in C:\Users\username\Desktop\Project\foldername\foldername\foldername\Program.cs:line 18
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
请有人告诉我如何纠正这个问题。
提前致谢
我不确定我应该为这个线程使用什么标签,但如果我在这里错了,请更正它。
db 是 MS-Access 2003 和 Visual Studio 2010
【问题讨论】:
如果您将文件路径放在文件资源管理器中,它会指向您的数据库吗? 我不确定连接字符串是如何构造的,请使用connectionstrings.com 那个H:
驱动是网络驱动吗?该驱动器映射取决于用户,因此如果您的应用程序现在以其他用户身份运行,则该映射将丢失。请改用 UNC 路径(\\server\folder)。
我没有想到文件资源管理器中的文件路径。我明天会试试,因为我不在那里。我知道的 Connectiondstrings 网站。我只是想知道在网络端是否需要做任何事情?
@HansKesting - 我不知道 H: 是否是网络驱动器?我不了解 UNC 路径(\\server\folder)。您是否可以解释这项工作,建议网站等。谢谢
【参考方案1】:
这正在工作。要在 vista/Windows 7 上映射网络驱动器。右键单击我的电脑 > 映射网络驱动器 > 选择驱动器 > 单击浏览按钮。菜单显示为 Browse For Folder -- 选择共享网络文件夹。然后选择网络名称和文件夹。完成后单击确定。这就是你所要做的。如果有人感兴趣,这里有一些有用的链接...
here
here
Vista
【讨论】:
以上是关于System.Data.OleDb.OleDbException 未处理:不是有效路径的主要内容,如果未能解决你的问题,请参考以下文章