Tag: oledb

有没有办法强制Microsoft.Jet.OLEDB获取date在Excel中的MM / DD / YYYY格式的列?

从Excel表格读取DateColumns时遇到问题。 有时候人们使用不同的date格式,这会带来一个问题。 让我们说,当我期望07/26/2010从Excel列我得到26-Jul-2010因为用户已更改其date格式。 我使用Microsoft.Jet.OLEDB将xls表读入DataTable 。 我可以以某种方式强制OleDb阅读器无论在XLS上设置DateFormat,将所有date转换为MM / DD / YYYY格式? 我使用这段代码来读取Excel文件: string strConn; strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + uploadedFileInfo.FullName + ";" + @"Extended Properties=""Excel 8.0;HDR=NO;"""; using (OleDbConnection connToExcel = new OleDbConnection(strConn)) { //You must use the $ after the object you reference in the spreadsheet connToExcel.Open(); string firstSheetName = ExcelUploadedFileReaderBuilder .GetFirstExcelSheetName(connToExcel); OleDbDataAdapter myCommand […]

OLEDB读取Excel的性能

以下代码在i7- * 3.4 GHz windows-7 64位计算机上需要2500毫秒的时间读取25000行和5列的Excel表格。 每个单元格大约包含一个有10个字符的string 这是正常的吗? 我怎样才能更快地读取它? Stopwatch sw1 = Stopwatch.StartNew(); var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; " + "Extended Properties=Excel 12.0;", filename); var adapter = new OleDbDataAdapter("SELECT * FROM [roots$]", connectionString); var ds = new DataSet(); adapter.Fill(ds, "roots"); sw1.Stop(); Console.WriteLine("Time taken for excel roots: {0} ms", sw1.Elapsed.TotalMilliseconds);

通过OleDB读取Excel文件时,非空单元格中的DBNull

我使用OleDB来读取一个Excel文件。 其中一列具有“通用”格式,并且包含两个字母和数字组成的string。 string值检索没有问题,但纯数值检索为DBNull 。 怎么解决? 我使用下面的连接string打开Excel 2003文件 (xls): "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\file.xls; Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\""

OleDb连接到Excel; 我如何select固定宽度,无限高度?

我使用OleDb从Excel电子表格中select数据。 每个电子表格可以包含许多小表,并可能包含标题和标签之类的家具。 所以它可能看起来像这样,我们有两张桌子和一些标题; A B C D 1。 。 。 。 2。 。 。 。 3表1。 。 。 4 Header1 HEADER2。 。 5 h huey。 。 6 d杜威。 。 7 l loius。 。 8 s sc。。 。 9。 。 。 。 10。 。 。 。 11。 。 。 。 12。 。 。 。 13。 表2 […]

使用OleDb在C#中将数据插入到Excel 2007中

我曾经作为我想要做这个网站的基地: http : //www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=8500 所以基本上,我想在我的C#Windows窗体应用程序中使用OleDb将一些数据添加到我现有的Excel电子表格中的特定单元格。 我发现所有的例子都希望我有一些types的标题单元格。 就像如果我的'A1'单元格中有“标题”,我可以使用: "INSERT INTO [SHEET1$] (Title) Values ('Book')" 问题是我的Excel电子表格没有任何标题。 我需要做的是: "INSERT INTO [SHEET1$] (A15) Values ('Book')". 有人可以帮我弄清楚如何将数据放在电子表格的特定单元格中吗?

C#/ ASP.NET Oledb – MS Excel读取“未指定的错误”

我们有一个运行在Windows Server 2003企业版的IIS 6上的C#/ ASP.NET(2.0)应用程序。 此应用程序使用OleDb读取Excel文件,但有些情况下,我们收到应用程序中抛出的“未指定的错误”exception。 该文件在打开之前通过我们的file upload代码存储在临时目录中。 由于我们在IIS中启用了匿名访问,并且因为我们也在web.config中使用模拟,所以文件夹C:\ Windows \ Temp \具有Internet访客用户帐户(IUSR_ [MachineName])的适当权限,修改和删除那里的文件。 OleDb连接string: Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\ Windows \ Temp \ tmp123.tmp.xls; Extended Properties =“Excel 8.0; HDR = Yes; IMEX = 1;” [上面的“数据源”属性会改变每个文件。] exception的堆栈跟踪是: System.Exception:FileParsingFailed —> System.Data.OleDb.OleDbException: 未指定的错误在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection连接) System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions选项, 对象poolGroupProviderInfo,DbConnectionPool池,DbConnection拥有对象)在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(的DbConnection owningConnection,DbConnectionPoolGroup poolGroup) System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection 拥有连接) System.Data.ProviderBase.DbConnectionClosed.OpenConnection(的DbConnection outerConnection,DbConnectionFactory […]

SQL Server,当插入Excel“链接服务器”时出现“列名无效”错误

我有一个简单的Excel电子表格文档(运行Office 2013),用作使用“Microsoft Office 15.0 Access数据库引擎OLE DB提供程序”的数据库。 我可以使用MS SQL Server Management Studio 2012连接到这个,我甚至可以从命名范围“Employee”中select数据。 SELECT * FROM [X]…[Employee] GO 结果: ID Name Description Salary 1 Rob Cool 1 2 Bob Awesome 2 3 Robert DUDE! 3 现在我想在这里插入数据。 所以我写道: INSERT INTO [X]…[Employee] ([ID] ,[Name] ,[Description] ,[Salary]) VALUES (4 ,"John" ,"Boss" ,500) 这实际上主要是由SQL Server Management Studio生成的。 当我运行这个时,我得到: Msg 207, […]

Excel数据提取 – 发布列数据types

我正在写一个C#库来读取Excel文件(xls和xlsx),我遇到了一个问题。 与此问题中所expression的内容完全相同,如果我的Excel文件的列有string值,但在第一行有一个数字值,则OLEDB提供程序将该列假设为数字,并返回NULL不是数字的列。 我知道,正如在提供的答案 ,我可以在registry中进行更改,但由于这是一个图书馆,我打算在许多机器上使用,并不想改变每个用户的registry值,我想知道如果有是更好的解决scheme。 也许除了ACE.OLEDB以外的数据库提供者(似乎JET已经不再被支持,不足以被考虑)? 另外,由于这需要在XLS / XLSX上运行,所以诸如EPPlus / XML阅读器之类的选项将不适用于xls版本。

System.Data.OleDb.OleDbException:无效的Internet地址。 如何使用OleDb连接到位于Web服务器上的excel文件

我试图创build一个OleDb连接到位于SharePoint服务器上的Excel文件。 我正在玩的例子代码抛出一个OleDbexception“无效的互联网地址”: public static void ConnectToRemoteExcelFile() { string connectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;\";", "http://horde.servername.co.uk/Docs/Documents/Sales.xlsx"); using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); } } 任何人都知道如何连接到Web服务器上的Excel电子表格? 更新 微软的支持已经回到我的身边,并同意不可能连接到位于Web服务器上的Excel文件。 Jet .40和新闻ACE(Access Connectivity Engine)都不支持这种操作模式。 他们引用了KB文章“在Access 2000,Access 2002,Access 2003和Access 2007中,FTP或HTTP服务器上的导入/链接数据帮助主题不正确”

改变OleDb性能?

我目前正在尝试使用OleDb / JET将SQL Server数据导出到Excel 2003文件。 我最初在一个控制台应用程序中编码导出,并且它工作得足够快。 但是,在ASP.Net请求期间运行相同的代码需要大约三倍的时间。 具体来说,在调用OleDbCommand.ExecuteQuery的过程中,速度会变慢,这会将logging插入到Excel文件中。 两者之间唯一的区别在于,一个在控制台应用程序中运行,另一个在IIS中运行。 除此之外,这两个应用程序是: 运行在我的开发机器上 从两个应用程序引用的共享dll运行相同的代码 使用相同的连接string连接到同一个数据库 使用相同的确切的select语句具有相同的确切参数值 在我的开发机器上的相同位置创build一个全新的文件并写入它 生成逐字节的相同文件 在ASP.Net中使用OleDb时,有什么本质上很慢,我不知道? 更新:这是有问题的代码。 控制台应用程序和ASP.Net站点中使用的导入命令是相同的。 他们都连接到我的机器本地的数据库,并且这两个应用程序都在我的机器上运行。 public void Convert(IDbCommand importCommand, string savePath, string sheetName) { var excelConnString = new OleDbConnectionStringBuilder(); excelConnString.Provider = "Microsoft.ACE.OLEDB.12.0"; excelConnString.DataSource = savePath; excelConnString["Extended Properties"] = "Excel 8.0;HDR=Yes"; using (var dr = importCommand.ExecuteReader()) { var columnCount = dr.FieldCount; […]