Tag: ado.net

在Excel中跨页面过滤数据

我在不同的工作表中有成千上万的员工数据。 我想通过ADO.net过滤基于pipe理器名称的所有表单中的数据。 请帮我一下 提前致谢。

如何从内存Excel工作表中填充DataTable

我们的客户以Excel的HTML格式获取Excel文件(这是它到达的方式;没有人能控制这个)。然后我们需要根据文件中的数据运行一个报告。 使用ADO.NET(OleDbReader)导致“外部文件不是预期格式”exception。 如果数据转换为常规的Excel格式,则可以按OK读取。 然而,这不是一个真正的解决scheme,因为它需要采取额外的措施,而且在最好的时候也不会太电脑化。 我能想出的唯一解决scheme是使用Excel自动化来创build一个新的电子表格,用相同的数据填充它,然后读取它。 但ADO.NET似乎只能从磁盘上的文件读取。 我当然可以保存文件,并删除它,当我完成它(我已经validation将工作)。 但是我对用文件系统搞乱的想法感到不自在。 所以我的第一个问题是 – 有没有办法从一个内存的Excel工作表填充一个DataTable? 另外,我不喜欢使用自动化的整个业务。 这是非常缓慢的。 即使没有填写DataTable,操作也需要30秒。 所以一个让它变慢的解决scheme不会有什么好处。 这使我想到了第二个问题 – 有没有更好的方法来完成我在这里尝试的?

ADO.Net Excel,检查表是否存在?

我正在使用ADO.Net来处理Excel文档。 本质上,我在名为“源”的表中查找值,并创build一个名为“result”的新表,该表将填充我的查询结果。 我有一些问题.. A)如何检查表是否存在,如果不存在则创build新表? B)表格是否与Excel表格相同? 我正在从这个例子工作.. http://support.microsoft.com/kb/316934#10

读取具有ADO.net的Excel文件 – 无数据(或表)

这是我第一次尝试通过ADO.net读取Excel 2007文件,当我尝试运行查询时,我必须丢失一些b / c,我得到一个exception。 当我开始看,这是B / C表(工作表)不在那里。 有人能告诉我我做错了什么吗? 这是我的代码: string cs = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=My File.xlsx;Extended Properties=""Excel 12.0;IMEX=1;"""; using (OleDbConnection con = new OleDbConnection(cs)) { con.Open(); string query = "SELECT * FROM [Sheet1$]"; OleDbCommand cmd = new OleDbCommand(query, con); OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); DataTable dt = new DataTable(); DataTable worksheets = con.GetSchema("Tables"); adapter.Fill(dt); . . […]

使用C#读取Excel文件(希望一切都是string)

我正在读取一个使用C#代码到一个数据表的Excel文件,并将其显示到WPF数据网格。 当我从Excel文件读取date并将其显示到数据网格中时,date格式会发生变化。 我正在使用Oledb ADO.NET来读取excel文件。 我正在使用的查询是: SELECT * FROM [Sheet1$] 所以基本上我想从excel中读取数据,当用户打开一个excel的时候,用户看起来就像是用户想要在数据网格中显示的一样。 请指导我 如果您需要关于此问题的任何其他信息,请询问我。 问候,Priyank Thakkar

使用Microsoft.ACE.OLEDB.12.0加载到数据集时,Excel数据列名称发生更改

我有一个18列的Excel表。 在这5列中有相同的列名CALL_REASON 。 但是,当我加载到Excel数据集使用Microsoft.ACE.OLEDB.12.0。 数据集中的列名更改为具有相同名称的列。 它正在加载为CALL_REASON,CALL_REASON1,CALL_REASON2,CALL_REASON3,CALL_REASON4 。 它们出现在Excel CALL_REASON,CALL_REASON,CALL_REASON,CALL_REASON,CALL_REASON如CALL_REASON,CALL_REASON,CALL_REASON,CALL_REASON,CALL_REASON String properties = "Excel 8.0; HDR=YES; IMEX=1;";//properties set for connection to excel string sSourceConstr = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\uploads\" + fileName + ";Extended Properties=\"" + properties + "\""; sSourceConnection = new OleDbConnection(sSourceConstr);//creating the OLEDB connection try { //select statement to select data from the first excel sheet […]

如何强迫ADO.NET推断Excel列的types为String而不是Double?

我有一个包含string和数字的Excel文件中的列。 我通过反复试验发现,ADO.NET根据前8行单元格的types推断列的types。 当发生这种情况时,列下的所有string都不会被添加到DataTable中。 我的目标是让ADO.NET以string的forms读取该列下的值。 如何做到这一点?

从C#更新Excel 2003/2007单元格值

我有一个没有列名的Excel工作表。 我想要更新单个单元格的值而不使用WHERE条件。 例如单元格A1是空的,我想插入string值“Foo”到它。 以下是我已经尝试过,但不工作。 System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand(); string sql = null; var myConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\\Users\\MAX\\Desktop\\test.xls';Extended Properties=Excel 8.0;"); myConnection.Open(); myCommand.Connection = myConnection; sql = "UPDATE Sheet1 SET A1='Foo'"; myCommand.CommandText = sql; myCommand.ExecuteNonQuery(); myConnection.Close();

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 […]

ADO.NET c#填充Excel表格

我想用ADO.NET来实现这一点 任务:填充从0开始的excel文件中的“RowNum”列的行。每行将获得从0开始递增的值,直到存在的行数。 我想为第一行插入1,为第二行插入2,依此类推。 请帮助我使用更新命令和要插入的值。 非常感谢你。 using (OleDbConnection conn = new OleDbConnection(getExcelConnectionString(new FileInfo(fName)))) { conn.Open(); OleDbCommand cmd = new OleDbCommand("Update [ExcelFile$] SET RowNum = ? WHERE ………… ", conn); cmd.Parameters.Add("@rowNumber", OleDbType.Integer).Value = cmd.ExecuteNonQuery(); }