Tag: oledb

在Excel单元格中有大量文本的ACE OLEDB“外部表格不是预期的格式”

我正在尝试使用System.Data.OleDb和Microsoft ACE OLEDB提供程序读取碰巧有一个非常大的文本单元格(大约8900个字符)的.xls文件。 我无法控制.xls文件的内容。 尝试.Open() OleDbConnection时,我得到以下exception: Exception thrown: 'System.Data.OleDb.OleDbException' in System.Data.dll Additional information: External table is not in the expected format. 我已经最小化.xls文件,似乎文本单元格是什么导致exception。 我有安装在x64操作系统上的MS Office 2010 x86。 我已经尝试了以下所有内容,但都没有解决问题: ACE 12.0 x86 ACE 12.0 x64 ACE 15.0 x32 registry调整设置TypeGuessRows = 0 连接stringIMEX = 1 连接string扩展属性=“Excel 8.0;” 连接string扩展属性=“Excel 12.0;” 从我的研究看来,旧的JET提供程序用于截断字段为255个字符。 我不能让ACE读取文件而不抛出exception。

Microsoft ACE OLE DB 12.0未在本地计算机上注册 – 但它是

我知道这是一个常见的错误信息,修复通常是安装此下载 ,但是,我的最终用户已经这样做了。 我有2个这个程序的最终用户,除了我自己。 我有一个64位的Windows 10电脑,第一个最终用户也有一个64位的Windows 10电脑。 这个用户有没有安装Ole DB 12.0的问题,所以我给他们发送了这个链接,并且,哇巴姆,谢谢老师,问题解决了。 然而 ,第二个最终用户正在运行一个64位的Windows 7电脑 – 我给他发送完全相同的链接,他安装了它(或者他说),但错误仍在发生…是不是与Windows 7兼容,尽pipe在下载的细节下说,这是? 还有什么可能导致这个问题? 该程序正试图从Excel导入到Access,使用以下连接path; If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then txtFile.Text = ofd.FileName fi = New FileInfo(ofd.FileName) fileName = ofd.FileName excel = fi.FullName eCon = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & excel & ";Extended Properties=Excel 10.0;") eCon.Open()

将数据发送到接收数据库

我试图发送数据到访问数据库,但它不断给出相同的错误(ExecuteNonQuery:连接属性尚未初始化),我试图find相关的主题的答案,但我似乎没有看到问题的地方,请帮助, 谢谢。 代码如下: public static string[] questions = new string[7]; private void SaveData_Load(object sender, EventArgs e) { //Selecting data from login string fileName = @"U:\Projects\Visual Studio\Extras resources\login.xlsx"; string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName); using (OleDbConnection cn = new OleDbConnection(connectionString)) { try { cn.Open(); OleDbCommand command = new OleDbCommand("select * from [lineAudit$]", […]

C#Excel查询问题

此代码正常工作。 但是当我想改变范围,给OleDBException。 OleDbCommand dates = new OleDbCommand("SELECT date FROM ["Sheet1$A1:B150"] ", baglanti); OleDbDataReader reader= dates.ExecuteReader(); while (reader.Read()) { list.Add(reader["date"]); } 范围更改版本: OleDbCommand dates = new OleDbCommand("SELECT date FROM ["Sheet1$A250:B350"] ", baglanti); OleDbDataReader reader= dates.ExecuteReader(); while (reader.Read()) { list.Add(reader["date"]); } 例外是: System.Data.OleDb.OleDbException was unhandled by user code ErrorCode=-2147217904 HResult=-2147217904 Message=No value is entered for one or […]

用OleDbAdaptor打开Excel工作表并查询参数

这是我之前打开excel表格的方法: public static System.Data.DataTable GetEntireSheet(string fileName, string sheetName) { string connectionString = GetConnectionString(fileName); System.Data.DataTable excelTable = new System.Data.DataTable(); excelTable.Locale = CultureInfo.InvariantCulture; using (OleDbConnection connection = new OleDbConnection(connectionString)) { using (OleDbDataAdapter adaptor = new OleDbDataAdapter( string.Format(CultureInfo.InvariantCulture, "Select * from [{0}$]", sheetName), connection)) { adaptor.Fill(excelTable); } } return excelTable; } 这工作正常,但它也产生代码分析警告: CA2100在“ExcelWrapper.GetEntireSheet(string,string)”中传递给“OleDbDataAdapter.OleDbDataAdapter(string,OleDbConnection)”的查询string可能包含以下variables:string.Format(CultureInfo.InvariantCulture,“SELECT * FROM [{0} $ ]“,sheetName)'。 […]

尝试通过VBA和OLEDB在Excel中创build一个表

我正在尝试在Excel中使用VBA和ADODB创build表(选项卡)。 你能告诉我我要去哪里吗? 在comm.CommandText = "create table [temptable]([AA] VARCHAR(40));"之后,我在comm.Execute处得到一个错误comm.CommandText = "create table [temptable]([AA] VARCHAR(40));" 线: Microsoft Access数据库引擎找不到该对象“temptable”。 在表名尾加一个$或在开头加一个#似乎没有帮助。 Sub sqlquery2() Dim rs As ADODB.Recordset Dim conn As String Dim conObj As ADODB.Connection Dim comm As ADODB.Command Dim fileName As String Set conObj = New ADODB.Connection Set comm = New ADODB.Command fileName = ThisWorkbook.FullName conn = "Provider=Microsoft.ACE.OLEDB.12.0;" […]

即使IMEX = 1,Excel驱动程序也不以文本forms读取数据

我正在尝试使用以下连接string使用OleDB驱动程序以文本forms读取.xlsx文件: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myFile.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1;" 但仍然获得数量和date作为数量和date。 在这个上杀了几个小时。 我究竟做错了什么?

使用ACE.OLEDB.12.0和IMEX = 1读取Excel工作表不起作用

我使用下面的连接string与ACE.OLEDB.12.0从XLSX电子表格读取数据,但我设置IMEX = 1,它不起作用,而当我完全删除IBEX = 1时,它工作正常。 "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Working Folder\ICDE\Ramsden 4.xlsx;Extended Properties=""Excel 12.0 xml;HDR=No;IMEX=1;""" 任何人都可以解释为什么,因为我有一个印象IMEX = 1作为文本读取所有数据,所以它更安全! 谢谢 J.P

OLEDB外部表不在扩展名格式/文件格式不同

我有一个奇怪的问题,我从网站检索一个Excel文件(.xls),然后公开数据为JSON,所有工作文件与虚拟文件,直到我开始testing真实的数据,如果我下载文件,并运行我的代码打开之前在Excel中我得到:“外部表格不是所需的格式”,当我在Excel中打开文件时,Excel中给我一个警告,“该文件是不同于扩展名指定的格式”,但如果我用Excel(2010)保存它,并select保持相同的格式和扩展它的工作后选项。 我想到的解决方法是在每个下载周期后自动运行excel来打开和保存文件,但是我希望find一个真正的解决scheme。 代码: var pathToExcel = @"\source\repos\Rica2.0\reports\DataExport.xls"; var sheetName = "Export"; var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", pathToExcel); var pathToExcel = @"\source\repos\Rica2.0\reports\DataExport.xls"; var sheetName = "Export"; var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", pathToExcel);

Excel DateTime作为DBNull返回

我有一些使用OLEDB( Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0; )的Excel文件阅读代码,它工作正常,但我一直遇到一个问题,从而返回某些date作为DBNull。 在原始的XLS文档中,工作date的格式(en-GB语言环境)是: "02/04/2009 17:00:00" // returned as a System.DateTime 以下风格失败: "08/Jan/09 11:24 AM" // returned as DBNull Excel知道他们都是date(尽pipe我不能强制他们的样式正确),因为以下正确显示date: =DATE(YEAR(c),MONTH(c),DAY(c)) // where c = cell reference. 有没有办法, 而不改变自动生成的原始 ,获得数据? 编辑参考,这里是我的读取数据的方法(假设一个dbAdapter已经build立 – 注意DBNull不来自没有被解雇的捕获): public List<List<string>> GetData(string tableName, int maxColumns) { List<List<string>> rows = new List<List<string>>(); DataSet ExcelDataSet = new DataSet(); dbCommand.CommandText = […]