使用访问2016和VS 2017时找不到ACE.12提供程序

问题描述 投票:0回答:1

我有一个Access数据库,我连接到VS 2017.我得到“提供商未注册” - 试图建立连接的错误。我尝试过数据库引擎2010和2007运行时的驱动程序。没有任何效果。

使用新数据库连接有效。我已经通过将数据网格视图和数据详细信息拖到表单中来编写我的程序,并尝试使用默认按钮进行保存,但会出现连接错误消息。此按钮使用的代码(默认由VS提供):

private void btnSave(object sender, EventArgs e)
        {
            this.Validate();
            this.reser_detsBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.resevation_fDataSet1);
        }

加载此部分中的详细信息视图存在一个问题:

private void Make_booking_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'resevation_fDataSet1.Reser_dets' table. You can move, or remove it, as needed.
            //this.reser_detsTableAdapter.Fill(this.resevation_fDataSet1.Reser_dets);

        }

我评论它并且程序有效,除了它无法保存。

at System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper)
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at HManagement1.Resevation_fDataSet1TableAdapters.TableAdapterManager.UpdateAll(Resevation_fDataSet1 dataSet) in C:\Users\ErickDaniel\source\repos\HManagement1\HManagement1\Resevation_fDataSet1.Designer.cs:line 2559
at HManagement1.Make_booking.btnSave(Object sender, EventArgs e) in C:\Users\ErickDaniel\source\repos\HManagement1\HManagement1\Make_booking.cs:line 72
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.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.Form.ShowDialog(IWin32Window owner)
at HManagement1.Form1.CreatNew_R(Object sender, EventArgs e) in C:\Users\ErickDaniel\source\repos\HManagement1\HManagement1\Form1.cs:line 31
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.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 HManagement1.Program.Main() in C:\Users\ErickDaniel\source\repos\HManagement1\HManagement1\Program.cs:line 19
c# database ms-access visual-studio-2017
1个回答
0
投票

如果操作系统是64位,那么一切都必须从数据库引擎到Office。对于32位操作系统也是如此。只是不要混搭; Office默认安装32位(卸载并安装64位版本)。

© www.soinside.com 2019 - 2024. All rights reserved.