Tag: oledbconnection

查询值和目标字段的数量不是相同的错误

我在将数据插入数据库时​​遇到错误。 错误是: “查询值和目标字段的数量不相同”。 插入代码: OleDbConnection vconn = new OleDbConnection(“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Mutyyba\\Documents\\Database1.accdb”); vconn.Open(); string name = textBox1.Text; string address = textBox3.Text; int rollno = Convert.ToInt32(textBox2.Text); string vquery = “insert into Table1 values(@vname,@vrollno,@vaddress)”; OleDbCommand vcomm = new OleDbCommand(vquery, vconn); vcomm.Parameters.AddWithValue(“@vname”, name); vcomm.Parameters.AddWithValue(“@vrollno”, rollno); vcomm.Parameters.AddWithValue(“@vaddress”, address); vcomm.ExecuteNonQuery(); MessageBox.Show(“your record has been recorded sucessfully!”); vconn.Close(); 我究竟做错了什么?

OledbConnection.Dispose()是否关闭连接?

可能重复: 如果使用using子句,是否需要关闭DbConnection? OledbConnection.Dispose()是否关闭连接? 我知道SqlConnection做但是OledbConnection呢?

检查OleDbConnection状态的最佳方法

显然( MSDN )有时候OleDbConnection.ResetState()什么都不做,所以即使连接失败,OleDbConnection.State仍然会被设置为Open。 我正在寻找最好的解决方法,以便当我检查连接状态时,我可以避免引发exception(只要连接在上次检查和使用尝试之间没有失败)。 没有什么比每次只是为了查看是否抛出exception而发送“无用的”sql语句更好的了吗? 在实际使用之前,如何确保连接已打开?

使用OLEDB Connection选择Excel工作表使用范围

有没有办法通过OLEDB Command对象选择Excel工作表使用范围? 因为我有一个包含400行的Excel文件,但是当我删除200行并尝试再次选择工作表时,它再次选择最多400行而不是选择200行。 这是我为选择工作表而编写的代码: oledbConn = new OleDbConnection(connectionString); oledbCmd = new OleDbCommand(“select * from [Sheet1$]”, oledbConn); oledbConn.Open(); oledbDr = oledbCmd.ExecuteReader(); while(oledbDr.Read()) { }

OleDbConnection.Open()仅在一个项目中抛出exception,相同的代码在其他项目中起作用

The ‘Microsoft.ACE.OLEDB.12.0’ provider is not registered on the local machine. 我知道安装的常见修复: Microsoft Access数据库引擎2010可再发行组件 要么 2007 Office System驱动程序:数据连接组件 两者都安装在我的本地PC上。 这是我的代码 OleDbConnection conn = new OleDbConnection(); string fileName = “test.xlsx”; try { string connectString = String.Format( “Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=’Excel 12.0 Xml;HDR={1};'”, fileName, “YES”); conn.ConnectionString = connectString; conn.Open(); //exception is thrown here !!! OleDbCommand comm = new OleDbCommand(); […]

OLEDBConnection.Open()生成’未指定的错误’

我有一个应用程序将Excel .xls文件上传到文件系统,使用对象实例上的.open()方法打开带有oledbconnection对象的文件,然后将数据存储在数据库中。 将文件上载和写入文件系统工作正常,但在尝试仅在生产服务器上打开文件时出现错误。 该应用程序在另外两台服务器(开发和测试服务器)上运行良好。 以下代码在Exception.Message中生成“未指定的错误”。 引用: System.Data.OleDb.OleDbConnection x = new System.Data.OleDb.OleDbConnection(@”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + location + “;Extended Properties=’Excel 8.0;HDR=Yes;IMEX=1′”); try { x.Open(); } catch (Exception exp) { string errorEmailBody = ” OpenExcelSpreadSheet() in Utilities.cs. ” + exp.Message; Utilities.SendErrorEmail(errorEmailBody); } :结束报价 服务器的c:\\ temp和c:\ Documents and Settings \\ aspnet \ local settings \ temp文件夹都提供\ aspnet完全控制。 我相信存在某种权限问题,但似乎找不到所述文件夹的权限与上载Excel文件的文件夹/目录之间的任何差异。 相同的位置用于保存文件并打开它,这些方法可以在我的工作站和两个Web服务器上运行。 Windows […]

System.Data.OleDb.OleDbConnectionInternal..ctor:未指定的错误

使用.mdb文件作为后端运行multithreading(.NET Framework 3.5 SP1 WinForms)桌面应用程序几个小时(约6小时Win7 64位,~24小时WinXP)后,我收到以下运行时错误: 例外 – > 未指定错误 StackTrace – > 在System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr,OleDbConnection连接) 在System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions选项,Object poolGroupProviderInfo,DbConnectionPool池,DbConnection owningObject) 在System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection,DbConnectionPoolGroup poolGroup) 在System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 在System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory) 在System.Data.OleDb.OleDbConnection.Open() 在NetworkManager.SearchInputFileHandler.GetInputRows(SearchProgramTypeEnumeration programType,Int32 startRowNum,Int32 rowsQty,Boolean setupInProgress,Boolean filterOutUninitializedRows) 看起来这是一个OleDbProvider错误。 你见过/经历过这样的事吗? 语境: (1)我专门使用 使用(OleDbConnection cnn = new OleDbConnection(“{{mymdbConnectionStringHere}}”)){ cnn.Open(); … } (2)我在一些select SQL表达式中使用IN子句指向外部MDB表。 我猜问题是由案例(2)引起的。 虽然这仍然是一个假设在这里检查(我的应用程序的核心代码中需要一些代码修复,我现在考虑将值得修复,或者我应该更好地切换到MS SQL后端。) 谢谢。

从Excel读取:64位系统上的Microsoft.Jet.OLEDB.4.0错误

我在我的应用程序中使用以下内容读取excel表的内容: OleDbConnection con = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + fileName + “;Extended Properties=Excel 8.0″); _myDataSet = new DataSet(); OleDbDataAdapter myCommand = new OleDbDataAdapter(” SELECT * FROM [” + “My Sheet” + “$]”, con); myCommand.Fill(_myDataSet); con.Close(); 这在64位系统中失败并出现错误: Microsoft.Jet.OLEDB.4.0’提供程序未在本地计算机上注册 如何在64位机器上工作?

使用行选择将DataBase(.mdb / .accdb)导出到.csv

我应该做什么: 我需要加载数据库,搜索条目和导出选定的列。 问题: 我有一个DataGrid (没有DataGridView )列表并选择数据库条目,我无法得到任何解决方案只导出所选行; 作为分隔符。 编码我如何加载和列出数据库 using (OleDbConnection ODC = new OleDbConnection(“Provider = Microsoft.Jet.OLEDB.” + iOledDBVersion + “; Data Source = ” + connectionString)) { OleDbCommand ODCmd = new OleDbCommand(insertSQL); ODCmd.Connection = ODC; ODC.Open(); ODCmd.ExecuteNonQuery(); //Data-Adapter erstellen OleDbDataAdapter OleDbDataAdapter_Temp = new OleDbDataAdapter(insertSQL, ODC); OleDbCommandBuilder OleDbCommandBuilder_Temp = new OleDbCommandBuilder(OleDbDataAdapter_Temp); //Daten aus der Datenbank in […]

OleDbConnection获取“外部组件抛出exception”。

我正在使用Windows窗体应用程序将数据导出到Excel。 应用程序是x64和x86构建的。 因此,必须安装两个版本的Microsoft Access数据库引擎才能在同一台计算机上运行该应用程序。 首先安装AccessDatabaseEngine.exe,并且AccessDatabaseEngine_x64.exe被动安装。 x64版本的应用程序正在运行 但x86版本正在增加 SEHException: “External component has thrown an exception.” at System.Data.Common.UnsafeNativeMethods.IDBInitializeInitialize.Invoke(IntPtr pThis) at System.Data.OleDb.DataSourceWrapper.InitializeAndCreateSession(OleDbConnectionString constr, SessionWrapper& sessionWrapper) at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.OleDb.OleDbConnection.Open() 代码部分如下; var accessConnection = […]