Tag: oledb

在C#中的Excel文件中读取问题

我正在使用此代码阅读OLDB连接的Excel文件 var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName); var fileName = string.Format("{0}\\s23.xls", Directory.GetCurrentDirectory()); var adapter = new OleDbDataAdapter("SELECT * FROM [TEJ3$] ", connectionString); DataTable dt=new DataTable(); adapter.Fill(dt, "Table1"); 并运行此代码后,我的数据表被填充。 但是我有一个有很多string单元格和很less空单元格的列; 在Excel文件中,这个单元格有数字值。 有人有一个想法?

在C#中使用非数字数据更新Excel单元

我有一个查询是 ExcelQuery = "Update [Sheet1$] " +"set CITIZEN_ID = #" + value + " where CITIZEN_ID = " + value; 正如你所看到的,我基本上只是在CITIZEN_ID字段前加一个“#”。 值是一个整数/数值。 所以如果我在CITIZEN_ID列中有“256”,它会被转换成“#256” 当我执行此操作时,我Syntax error in date in query expression得到了一个OleDbException Syntax error in date in query expression所以我用这样的单引号包围了部分查询, ExcelQuery = "Update [Sheet1$] " +"set CITIZEN_ID = '#" + value + "' " +"where CITIZEN_ID = " […]

在列名中使用#创buildExcel文件

我有问题使用Jet创buildExcel文件。 当我创build一个表并给它一个列名为 CreateTable [Sheet1] ([ColumnName#] String) 它用replace标题列 ColumnName. 有没有一种方法,我可以使excel给列标题一个名字与我可以在其中有什么字符冲突? 有没有可以在列名中使用的转义字符? 有一个便宜的(~50美元)/免费的.NET库,可以让我更好地控制Excel文件,使我可以创buildXLS和XLSX文件没有安装Excel的? 基本上我试图完成的是有一个DataTable被转储到一个Excel文件,并且列名出现就像他们在DateTable中做的一样。

OleDb对象无效或不再设置

我正在尝试使用OleDb阅读器读取excel文件,我无法debugging代码,因为此错误只在生产服务器上出现。 这对我来说真的没有意义,有人能帮助我吗? 从日志中发现错误为: System.Data.OleDb.OleDbException:对象无效或不再设置。 System.Data.OleDb.OleDb.OleDbConnectionInternal.ProcessResults(OleDbHResult hr)在System.Data.OleDb.OleDbConnectionInternal.GetSchemaRowset(Guid schema,Object [] constraints)在System.Data.OleDb.OleDbConnection.GetOleDbSchemaTable(Guid schema,Object []限制)在System.Data.OleDb.OleDbMetaDataFactory.PrepareCollection(String collectionName,String []限制,DbConnection连接)在System.Data.ProviderBase.DbMetaDataFactory.GetSchema(DbConnection连接,stringcollectionName,String []限制)在System.Data (System.Data.OleDb)上的System.Data.OleDb.OleDbConnection.GetSchema(String collectionName,String [] restrictionValues).ProviderBase.DbConnectionInternal.GetSchema(DbConnectionFactory factory,DbConnectionPoolGroup poolGroup,DbConnection outerConnection,String collectionName,String [] restrictions) OleDbConnection.GetSchema(String collectionName) 另外,在这个错误出现之前的一段时间,我有一个 System.AccessViolationException:试图读取或写入受保护的内存。 这通常表示其他内存已损坏。 System.Data.Common.UnsafeNativeMethods.IDBSchemaRowset.GetRowset(IntPtr pUnkOuter,Guid&rguidSchema,Int32 cRestrictions,Object [] rgRestrictions,Guid&riid,Int32 cPropertySets,IntPtr rgPropertySets,IRowset&ppRowset)System.Data.OleDb.OleDbConnectionInternal.GetSchemaRowset在System.Data.OleDb.OleDbMetaDataFactory.PrepareCollection(String collectionName,String []限制,DbConnection连接)在System.Data.OleDb.OleDbConnection.GetOleDbSchemaTable(Guid架构,对象[]限制)Guid架构,对象[]限制) System.Data.ProviderBase.DbMetaDataFactory.GetSchema(DbConnection连接,stringcollectionName,string[]限制)在System.Data.ProviderBase.DbConnectionInternal.GetSchema(DbConnectionFactory工厂,DbConnectionPoolGroup poolGroup,DbConnection外部连接,stringcollectionName,string[]限制)在System.Data.OleDb.OleDbConnection.GetSchema(String collectionName,String [] restrictionValues)at System.Data.OleDb.OleDbConnect ction.GetSchema(String collectionName) 也是例外。 我不知道他们是否有关系。 任何人都可以指向正确的方向吗? 我用来读取文件的代码是 DateTime start = DateTime.Now; IEnumerable<string> […]

不带标题的Excel上的OLEDB查询:如何指定列?

我需要能够处理Excel文件版本97 – 2010年,还有那些有和没有标题信息。 不需要帮助连接string:工作。 我所需要的帮助是查询没有标题信息的工作表,即第一行没有列数据的描述符。 如何在OLEDB查询中引用这些列? 我试过以下 "Select [Sheet2$A] from [Sheet2$]" //selecting Column A "Select [Sheet2$A$] from [Sheet2$]" //selecting Column A

使用OleDB将单元格插入/更新为.xls的BLANK值

我正在阅读显示在GridView中的Excel电子表格中的时间值。 用户可以更新这些值。 当调用OleDB UPDATE ,我以3:00 PM的格式传递。 如果用户从GridView中删除了一个时间(实质上是将""传递给我的更新方法),我希望Excel文件显示一个空白单元格。 但是,我不断收到Data type mismatch in criteria expression.的Data type mismatch in criteria expression. 尝试用""更新单元格时出错。 传递null时也会引发错误。 到目前为止,我发现的所有内容都涉及读取空白值。 我该怎么UPDATE / INSERT单元格,使其显示为空白?

不知道为什么我得到Excel文件的System.Data.OleDb.OleDbException

OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*"; openFileDialog1.FilterIndex = 2; openFileDialog1.RestoreDirectory = true; // Show the dialog and get result. DialogResult result = openFileDialog1.ShowDialog(); if (result == DialogResult.OK) // Test result. { labelFilePath.Text = openFileDialog1.FileName; string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + labelFilePath.Text.Trim() + ";Extended Properties=\"Excel 8.0;HDR=YES\""; using (var conn = […]

OLEDB – 无法从PowerShell中读取Excel表格

我试图从Excel(xls)工作表中读取数据。 我正在运行Windows 7 64位,Office 2007(无需访问)和Visio 2010.我安装了Microsoft Access Database Engine 2010 Redistributable 32-bit (我尝试安装64位版本,但安装程序说,我使用32位所以它不能安装)和2007 Office System Driver: Data Connectivity Components和我的连接string是: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=`"$filePath`";Extended Properties=`"Excel 12.0;HDR=YES`"; 但是我得到提供程序'Microsoft.ACE.OLEDB.12.0'未在本地计算机上注册的错误。 我遇到的解决scheme说,应该用x86重新编译项目,但我试图从PowerShell的。

用VB中的Excel数据填充DataGrid列

好吧,我终于得到这个代码工作几个小时后,工作: Dim path As String = OpenFileDialog1.FileName Dim myDataset As New DataSet() Dim strConn = New OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=" & path & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""") Dim myData As New OleDb.OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn) myData.Fill(myDataset) DataGridView1.DataSource = myDataset.Tables(0).DefaultView 现在我明白了,我将尝试将数据放在特定的位置。 在我的应用程序,我有一个datagridview设置4列。 我想要做的是将excel文件的列A放在datagridview的第一列和datagridview的第二列中的Excel文件的C列下。 所以replace: DataGridView1.DataSource = myDataset.Tables(0).DefaultView 有: DataGridView1.columns(0) = myDataset.Tables(0).columns(0) DataGridView1.columns(1) = myDataset.Tables(0).columns(2) 显然这不工作,有些东西告诉我,我可能需要一个for循环导入数据,但我从来没有从Excel文件导入信息之前,使情况变得更糟,我从来没有与datagridviews之前,所以我不知道如何去做这个。 我想这样做,如果我能: For x […]

如何使用.NET更改XLS列数据types

我正在试图将一个数据表导出到一个xls文件。 以下是我的代码: using ExcelIt = Microsoft.Office.Interop.Excel; protected void Export2xlsWorkBook(string filename) { if (filename != string.Empty) { if (filename.EndsWith(".xls")) filename = txtNewFileName.Text + ".xls"; } else filename = "NewFile.xls"; filename = "C:\\Documents and Settings\\My Documents\\Exported XLS\\" + filename; ExcelIt.Application objXL = new ExcelIt.Application(); ExcelIt.Workbook oWB; ExcelIt.Worksheet oSheet; ExcelIt.Range oRange; objXL.Visible = true; objXL.DisplayAlerts = false; oWB […]