当我尝试通过MSSQL Server数据导入连接到任何Excel时出现此错误,即SSIS包"Microsoft.ACE.OLEDB.16.0"提供程序未在本地计算机上注册.(System.Data)它不是相同的版本我认为需要其他修补
我有一个带有两个项目的Visual Studio 2008解决方案(一个Word-Template项目和一个用于测试的VB.Net控制台应用程序).这两个项目都引用一个数据库项目,该项目打开与MS-Access 2007数据库文件的连接,并引用System.Data.OleDb.在数据库项目中,我有一个函数,它按如下方式检索数据表
private class AdminDatabase
' stores the connection string which is set in the New() method
dim strAdminConnection as string
public sub New()
...
adminName = dlgopen.FileName
conAdminDB = New OleDbConnection
conAdminDB.ConnectionString = "Data Source='" + adminName + "';" + _
"Provider=Microsoft.ACE.OLEDB.12.0"
' store the connection string in strAdminConnection
strAdminConnection = conAdminDB.ConnectionString.ToString()
My.Settings.SetUserOverride("AdminConnectionString", strAdminConnection)
...
End Sub
' retrieves data from the database
Public Function getDataTable(ByVal sqlStatement As String) As DataTable
Dim ds As New DataSet
Dim …Run Code Online (Sandbox Code Playgroud) 我有一个Excel电子表格,我想将选择列导入我的SQL Server 2008数据库表.该向导没有提供该选项.
是否存在任何简单的代码选项?
自从我使用Classic ASP和Microsoft Access进行一些编程以来,我们使用"Microsoft.Jet.Oledb"驱动程序来访问和显示数据已经很多年了.
我被要求使用"Microsoft.Ace.Oledb"访问MS Excel数据.我发现这是"Microsoft Access 2010引擎可再发行组件"下载的一部分.
我想知道"Microsoft.Jet.OleDb"是否已取代"Microsoft.Ace.Oledb"驱动程序并且基本相同或者它们是完全不同的东西?
另外,购买MS Access 2010时,您通常会获得"Microsoft.Ace.Oledb"驱动程序吗?
我们目前使用Microsoft Access数据库引擎2010有一个主要问题.引擎有64位和32位形式,这很好.但是,如果主机进程始终是32位,显然您需要始终安装32位版本.好的,我们可以做到这一点.
我们的软件处理许多32位的遗留组件,其中大部分是VB6代码,它生成32位汇编.因此,我们假设驱动程序也必须安装为32位.实际上,当我们在64位计算机上安装32位驱动程序并运行我们的32位应用程序时,它可以正常工作.
但是,问题在系统上安装Office 2010 64位时开始.相信我,我们试图教育用户64位Office在很大程度上是不必要的,但无济于事.随着安装了64位版本的计算机下线,当我们的软件出现故障时,我们无法跟上支持请求.64位Office破坏了我们的安装,或者我们的安装破坏了他们的Office版本,但它不是两种方式.另一个问题是非传统软件有时会安装64位驱动程序(正如他们应该的那样),并且这两个版本根本不以任何合理的方式共存.要么我们的软件中断,要么他们的软件中断.
那么,有没有人设法找到一种方法使32位驱动程序与64位安装共存?我已经看到使用/passiveflag 安装允许安装两个,我们的安装程序确实使用被动.两者都在安装,但一旦在系统上,我们的软件不再工作,或Office不断修复其安装.有没有合理的方法来完成这项工作?
我想通过c#中的windows表单应用程序上传excel文件,并希望将数据导入数据库(Mysql服务器).我怎样才能做到这一点???我创建了一个表单,要求我将excel文件上传到mysql数据库.它是一个批量插入数据到数据库表.
我的Excel文件包含userid,password,first_name,last_name,user_group和MySql Database表(aster_users)等列,包含许多列,如userid,password,first_name,last_name,user_group,queue,active,created_date,created_by,role ..
我需要将该excel文件上传到我的数据库,其他列将变为空或null,这不是问题.
这是我的c#代码:
using MySql.Data.MySqlClient;
using System;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace UploadFileToDatabase
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
String MyConString = "SERVER=******;" +
"DATABASE=dbs;" +
"UID=root;" +
"PASSWORD=pwsd;" + "Convert Zero Datetime = True";
private void BtnSelectFile_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Text files | *.csv";
if (dlg.ShowDialog() == DialogResult.OK)
{
string fileName;
fileName = dlg.FileName;
txtfilepath.Text = fileName;
}
}
private …Run Code Online (Sandbox Code Playgroud) 我需要帮助部署到localhost的SSRS报告,该报告使用ODBC数据源从excel文件中检索数据.当通过BIDS 2008预览相同的报告时,它会按预期显示结果.但是,在将报告部署到运行BIDS的同一台计算机(localhost)上的报告服务器之后,会出现以下错误.
错误:抛出Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:,Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:无法创建与数据源"dsInvoice"的连接.---> System.Data.Odbc.OdbcException:ERROR [IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序
我尝试过共享数据源以及自定义数据源,但两者都不起作用.当我查找此错误时,它提到我需要在%windir%\ SysWOW64\odbcad32.exe下使用32位ODBC管理器工具,这就是我正在使用的但是也没有用.我是本地机器的管理员.
以下是有关该机器的一些信息:
重现错误的步骤:
创建Microsoft Excel驱动程序用户DSN - Test_Excel_Driver - 在%windir%\ SysWOW64\odbcad32.exe下
使用BIDS 2008创建SSRS报告,并选择数据源作为ODBC嵌入式连接,并使用以下连接字符串 - Dsn = Test_Excel_Driver; dbq = C:...\Test Excel.xlsx; defaultdir = C:... \; driverid = 1046; fil = excel 12.0; maxbuffersize = 2048; pagetimeout = 5
在BIDS中预览报告 - 工作正常!
使用完全权限将报告部署到localhost SSRS Report Server.单击报表管理器中的报表并获取上述错误.
我使用ms访问作为数据库.mdb文件
如何获取ms访问驱动程序2007.
我收到错误:'Microsoft.ACE.OLEDB.14.0'提供程序未在本地计算机上注册.
我正在阅读一个 excel 文件,我想访问它的内容。我正在使用这个连接字符串:
connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", Server.MapPath(fileName));
Run Code Online (Sandbox Code Playgroud)
但我看到这个错误:
“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。
我的服务器在 64 位操作系统上运行。我已经在上面安装了 Microsoft Office Professional Plus 2010(32 位)和 Microsoft Access 数据库引擎 2010。
问题是什么?
论坛上有一些关于Microsoft.ACE.OLEDB.12.0提供商未在本地计算机上注册的问题(以及不需要的答案),例如这个。问题的要点,我的理解是,应用程序将在与应用程序运行的平台相同的平台上寻找提供者。因此,如果您的计算机是 64 位,而提供程序是 32 位,那么如果您不将应用程序编译为在 32 位模式下运行,就会出现不匹配的情况。
大多数答案通过为当前平台安装适当的数据组件来有效地解决这个问题。其他建议是针对数据组件可用的任何平台进行编译。
我正在使用运行 Windows 7、8 和 10 的电脑(均为 64 位)开发一个应用程序,具体取决于我所在的位置,但有些电脑具有较旧版本的 Office,其他电脑则具有较新版本。这导致我必须根据我当前使用的 PC 更改编译平台。虽然这对我来说不是问题,但就我个人而言,我预计这会给最终用户带来无法运行该程序的麻烦。
尽量避免要求用户在其计算机上安装其他组件;有没有办法让程序检查数据库提供程序的平台可用性,然后在该模式下运行?是否可以创建数据库模块的 32 位和 64 位扩展并加载适当的扩展,而不管主程序运行的模式如何?
编辑:
我只是尝试在不同平台上编译我的数据库扩展,无论哪一个与应用程序不是同一平台,都会在加载时引发异常,表示我正在尝试从不同平台加载程序集。所以我想我的选择2不走运......
我尝试将 .accdb 文件作为数据源连接到 Visual Studio 中的 Windows 窗体应用程序。它一直说 Microsoft.ACE.OLEDB.12.0 提供程序未在本地计算机上注册。
我已经在标记为接受/工作的相关答案上安装了所有推荐的运行时:
但仍然是同样的问题。
在 Windows 窗体项目中设置 x86/x64 平台没有帮助。
设置:
我得到以下异常
'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine
Run Code Online (Sandbox Code Playgroud)
虽然我已安装
'Microsoft.ACE.OLEDB.12.0'
Run Code Online (Sandbox Code Playgroud)
怎么了?