Tag: oledb

如何使用oledb c#.net在excel中插入新行

我正在尽我所能在Excel文件中插入一个新的数据行。 请看一看。 我正在面对这个问题使用C#.net框架(3.5) 码: try{ string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\rising rent\\csharp-Excel.xls;Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;MAXSCANROWS=15;READONLY=FALSE;ImportMixedTypes=Text'"; OleDbConnection conn = new OleDbConnection(ConnectionString); conn.Open(); OleDbCommand cmd = new OleDbCommand("INSERT INTO [Inventory$] (C_DATE) VALUES('555')",conn); cmd.ExecuteNonQuery(); conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } 错误是这个请看看,分享你的看法 “System.Data.OleDb.OleDbException:操作必须使用系统上System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams,Object&executeResult)System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)上的可更新查询。 Data.OleDb.OleDbCommand.ExecuteCommandText(Object&executeResult)System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior,String method)System.Data.OleDb.OleDbCommand.ExecuteNonQuery()at RisingRentACar.Inventory.button1_Click(Object sender, EventArgs e)在C:\ Users \ Hamza Hafeez \ Documents \ […]

C#使用oledb读取excel数据并以指定格式格式化并插入到SQL Server数据库中

networking和C#。 我需要编写一个程序来浏览和读取一个Excel,然后parsing它以指定的格式,最后插入到SQL Server数据库。 我已经使用oledb读取excel,并从excel创buildDataTable。 现在我有麻烦来parsing它在所需的格式。 这里是什么是Excelinput的图片链接,以及什么是预期的格式插入到数据库。 input和预期的输出格式 现在我正在用简单的数据在将来我需要做的大型Excel数据(3000列)parsing成250000条logging。 在性能方面也请给我build议。 现在我使用oledb是好的,还是我需要使用其他任何东西。 这里是我的示例代码C#代码文件 OleDbConnection Econ; SqlConnection con; string constr, Query, sqlconn; protected void Page_Load(object sender, EventArgs e) { } // excel connection private void ExcelConn(string FilePath) { constr = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES;""", FilePath); Econ = new OleDbConnection(constr); } // sql connection private void connection() { […]

Access数据库引擎找不到对象 – 对象是Excel命名的范围

这是让我绕圈子转了一会儿,基本上所有我想要做的是将一个Exceldynamic范围的值插入到Access表中。 例如,我已经通过引用范围成功地做到了这一点,但是为了让事情更自我一点,我更愿意使用dynamic范围。 我有的代码如下: Sub ExportDistDatatoSql() Dim cn As ADODB.Connection Dim STRQUERY As String Set cn = New ADODB.Connection With cn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\uMyDB.accdb;" .Open End With ssql = "INSERT INTO Crude_Prods_DB Select * from [Excel 12.0;HDR=YES;DATABASE=C:\TEST\mysheet.xlsm].[n_range]" cn.Execute ssql End Sub 我看到的错误是附加的,我检查了[n_range]确实存在于工作簿中。 [尝试从Excel命名范围中将数据插入访问表时出现错误] 任何build议将不胜感激。

Excel / ADO:访问logging集时出错

我通常可以运行下面的代码而没有问题,但有时候在logging集中找不到任何logging。 文件本身很大 – 超过200k行。 此外,它有一些合并的单元格,列宽不够宽,无法自动拟合查看数据(我不确定是否可能是一个促成因素)。 我还想补充一点,没有logging被发现的时间主要在运行Excel 2010的计算机上,而成功的实例已经在运行Excel 2013的计算机上。 这是我的代码: Dim oConn As New ADODB.Connection Dim oRS As New ADODB.Recordset Dim sPath Dim sSQL As String Dim fd As Office.FileDialog Dim fr11 As String Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "FR11". sSQL = "select F3,F6,F8,F9,F10,F18,F22,F23,F28 from [Natural Detail $] where F18 = '0000121046' or F25 = 'Natural GL Acct Nbr'" […]

如何在没有安装Office或任何第三方依赖项的情况下构buildExcel文件?

Windows窗体应用程序(C#),我们已经得到了基于.xlsx文件的导入文件。 我负责编写一个自动生成电子表格的新部分。 为它创build数据很容易(并完成)。 我有任何额外的信息,我需要创build电子表格,除了… 他们在第11个小时告诉我,Microsoft Office没有安装在服务器上,所以Microsoft.Office.Interop等不是解决scheme。 我同时发现,目标是以最小的影响做到这一点……所以如果我可以避免添加任何引用,那将是可取的; 它听起来不像在服务器上安装任何东西是一个选项。 我能够很好地parsing出一个.csv文件,但是事实certificate,select文件的代码只能查找.xlsx文件。 所以,即使我可以在Excel中打开它没有问题,这实际上并没有提供一个解决scheme。 因此,对于我所有的研究,我还没有find“我可以手动创build.xlsx文件吗?”这个问题的答案。 我想我最接近的是实际使用的oledb,但由于电子表格不存在于门外,所以每次我都去conn.open(); 在下面的代码中,它失败了。 有我自己创build这个文件的简单方法吗? 我知道.xlsx基本上是压缩XML,但我找不到任何参考,我可以看到什么标签我需要放在一个文件,然后如何正确地压缩它? string cnStr = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + filePathAndName + ";Persist Security Info=True;"; using (System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(cnStr)) { conn.Open(); System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(); cmd.CommandText = "CREATE TABLE [" + worksheetCategory + "] (SKU VARCHAR, […]

指向SQL语句

我必须从列标题中有一个点的Excel工作表中拉出数据列表。 如果我删除了一切完美的作品,但如果我保持这一点,那么我会得到一个错误消息。 工作: SELECT DISTINCT Ty FROM dbStock 不工作: SELECT DISTINCT Ty. FROM dbStock SELECT DISTINCT Ty. FROM dbStock System.Data.OleDb.OleDbException(0x80040E14):查询expression式“Ty。”中的语法错误(缺less运算符)。 我在互联网上search,但没有find任何关于这个。 我试图把Ty. 之间'' , ""和[] ,但没有运气。 任何想法?

使用ODBC从Excel连接到SQL Server的任何缺点

我使用SQL Server的数据创build了许多Excel报表(Excel 2010向上)。 我第一次使用OLEDB连接罚款,然后被迫切换到ODBC,因为OLEDB不支持从Excel 传递参数查询或存储过程。 我被禁止使用macros。 唯一的select是使用与参数很好的ODBC。 然而,由于我使用了ODBC,所以在那段时间里我们需要创build一个DSN,并且每个PC上都需要存在这个文件才能使用这个连接。 我的Excel报告将被Sharepoint的许多用户访问。 所以无法在任何地方复制DSN文件。 所以我想知道如果ODBC连接比以前更容易使用。 如果我在使用Windows身份validation的Excel文件中使用它,并将其部署到Sharepoint,用户是否可以像访问OLEDB那样访问它? 我没有find关于这个的很多信息,或者我可能不知道在哪里寻找这个。 我希望有人能帮帮忙。 谢谢

C#WinForm Excel检查空表function,但太慢(15张30秒)

我有一个工作函数,检查如果表格从Excel文件是空的。 每个工作表都会调用这个函数。 该function完美地工作。 唯一的问题是,如果我的Excel文件有50张,调用这个函数需要30秒,这太多了。 我可以做些什么来优化这个function,所以在excel中所有表单调用一次? 我应该使用LINQ还是OLEDB。 PS我不会使用Interlop,因为它将三倍的时间检查。 这是我的function public static bool isEmptySheet2(string nameSheet) { string filePath = Properties.Resources.ResourceManager.GetString("FilePath"); string fileName = Properties.Resources.ResourceManager.GetString("FileName"); string fileLocation = filePath + fileName; try { DataTable dt = new DataTable(); string connstr = @"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileLocation + ";" + "Extended Properties=" + "\"" + "Excel 12.0 Xml;IMEX=1;HDR=NO;" […]

将数据集导出到excelsheet

我是C#中的Excel自动化新手,所以我对此感到困惑。 我已经在数据集中导入了一个excel,并根据我的要求在数据集中进行了一些更新。 现在我想将该数据集导出到该input表,以便可以看到数据表中反映的数据集中所做的更新。 将数据集导出为ex​​cel的最佳方法是什么? 下面是我如何打开Excel表的代码: string sConnection = null; OleDbConnection oleExcelConnection = default(OleDbConnection); sConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\input.xls;Extended Properties=\"Excel 12.0;HDR=No;IMEX=1\""; oleExcelConnection = new OleDbConnection(sConnection); oleExcelConnection.Open(); string sqlquery = "Select * From [c:\input.xls]"; DataSet ds = new DataSet(); OleDbDataAdapter da = new OleDbDataAdapter(sqlquery, oleExcelConnection); da.Fill(ds); System.Data.DataTable dt = ds.Tables[0]; /* 10 to 12 linq queries on dt*/ […]

如何将date与行匹配,然后使用EPPlus获取最终的列值?

到目前为止,我可以从电子表格中轻松获取数据,只是获取参考号码行,但是我目前不知道如何在获取正确的数据之前将行匹配到数据部分。 我目前不得不从下面的Excel电子表格中提取一些数据: Start date Ref number 29/07/2015 2342326 01/07/2016 5697455 02/08/2016 3453787 02/08/2016 5345355 02/08/2015 8364456 03/08/2016 1479789 04/07/2015 9334578 主要的问题是,是否可以从设定的date读取数据,从行中获取参考号码,例如开始date。 例如,如果我只是想从date设置的数据上个月1日以上。 这将如何最好地实施。 使用基本的OleDb获取列的当前代码示例: using System; using System.Data.OleDb; using System.Text.RegularExpressions; namespace Number_Cleaner { public class NumberCleanerReport { public void runExcel_Report() { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("[*][START OF: NumberExt.xls, Number Extraction]"); Console.ResetColor(); string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NumberExt.xls;" […]