问题标签 [oledbconnection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
22472 浏览

c# - OLEDBConnection.Open() 生成“未指定错误”

我有一个应用程序将 Excel .xls 文件上传到文件系统,使用对象实例上的 .open() 方法使用 oledbconnection 对象打开文件,然后将数据存储在数据库中。将文件上传和写入文件系统工作正常,但仅在我们的生产服务器上尝试打开文件时出现错误。该应用程序在另外两台服务器(开发和测试服务器)上运行良好。

以下代码在 Exception.Message 中生成“未指定错误”。

引用:

:结束报价

服务器的 c:\\temp 和 c:\Documents and Settings\\aspnet\local settings\temp 文件夹都赋予 \aspnet 完全控制权。

我认为存在某种权限问题,但似乎无法找到上述文件夹的权限与上传 Excel 文件的文件夹/目录之间的任何区别。相同的位置用于保存文件并打开它,这些方法在我的工作站和两个 Web 服务器上运行。Windows 2000 SP4 服务器。

0 投票
3 回答
2305 浏览

asp.net - ASP.NET OleDbConnection 问题

我正在一个 ASP.NET 网站上工作,我正在使用一个 asp:repeater 并通过 VB.NET 代码隐藏文件完成分页。我在数据库连接方面遇到了问题。据我所知,分页正在工作,但我无法确定数据。

该数据库是 Microsoft Access 数据库。应该访问数据库的函数是:

ASP.NET 是:

0 投票
4 回答
9332 浏览

c# - C# 问题:我加载 .MDB 文件、对其进行更改并将更改保存回原始文件的最简单方法是什么?

我正在进行的项目即将完成。我正在加载一个 .MDB 文件,在 DataGrid 上显示内容并尝试在 DataGrid 上获取这些更改并将它们保存回 .MDB 文件。我还将创建一个函数,允许我从一个 .MDB 文件中获取表并将其保存到另一个 .MDB 文件中。当然,如果我不知道如何将更改保存回 .MDB 文件,我将无法执行任何操作。

我对谷歌进行了广泛的研究,但我的问题没有答案。我认为自己是这个特定主题的初学者,所以请不要让答案太复杂——我需要最简单的方法来编辑 .MDB 文件!请提供编程示例。

  1. 假设我已经与 DataGrid 建立了连接。如何获取 Datagrid 所做的更改?我敢肯定这个回答很简单。
  2. 然后我需要知道如何获取这个 Datatable,将它插入到它来自的 Dataset 中,然后获取该 Dataset 并重写 .MDB 文件。(如果有办法只插入已更改的表,我会更喜欢。)

提前谢谢您,如果您需要更多信息,请告诉我。这是我可能要问的关于这个话题的最后一件事……谢天谢地。

编辑:

我正在使用的 .mdb 是Microsoft Access 数据库。(我什至不知道有多个 .mdb 文件)

我知道我不能通过流写入器或任何东西直接写入 .MDB 文件,但有没有办法可以生成一个已经包含 DataSet 信息的 .MDB 文件?或者是否有一种方法可以将表添加到已加载到 DataGrid 中的 .MDB 文件中。必须有办法!

同样,我需要一种在 C# 中以编程方式执行此操作的方法。

编辑:

好的,我的项目相当大,但我使用单独的类文件来处理所有数据库连接。我知道我的设计和来源真的很草率,但它完成了工作。我只和我在互联网上找到的例子一样好。

请记住,我只是以另一种形式连接到 DataGrid。让我知道您是否需要 Datagrid 表单中的代码(不过我不知道您为什么需要它)。DatabaseHandling.cs 处理 2 个 .MDB 文件。所以你会在那里看到两个数据集。我最终将使用它从一个数据集中获取表格并将它们放入另一个数据集中。我只需要弄清楚如何将这些值保存到 .MDB 文件中。

有没有办法做到这一点?一定有办法...

编辑:

根据我的研究和阅读......我认为答案就在我的眼皮底下。使用“更新()”命令。现在,虽然这再次确保实际上有一种简单的方法可以做到这一点,但我仍然面临一个问题,即我不知道如何使用这个更新命令。

也许我可以这样设置:

我认为可能会这样做,但我不想手动插入任何东西。我想同时做这两个:

  • 获取在 Datagrid 上更改的信息并更新我从中获取的 Access 数据库文件 (.mdb)
  • 创建一个函数,允许我从另一个 Access 数据库文件 (.mdb) 中获取表,并将它们替换为辅助 Access 数据库文件 (.mdb)。这两个文件将使用完全相同的结构,但其中包含不同的信息。

我希望有人对此提出答案……我的项目已经完成,等待的只是一个简单的答案。

再次提前感谢您。

编辑:

好吧……好消息。我已经想出了如何查询 .mdb 文件本身(我认为)。这是代码,它不起作用,因为由于我尝试使用的 sql 命令而出现运行时错误。这将把我带到我的下一个问题。

DatabaseHandling.cs 新增功能代码:

如您所见,我实际上已经设法对连接本身执行查询,我相信它是实际的 Access .MDB 文件。正如我所说,我对文件执行的 SQL 查询不起作用,并且在使用时会产生运行时错误。

我试图执行的命令应该从 .MDB 文件中获取一个表并覆盖不同 .MDB 文件的相同类型的表。我在上面尝试的 SQL 命令试图直接从 .mdb 文件中获取一个表,然后直接将其放入另一个表中——这不是我想要做的。我想从 .MDB 文件中获取所有信息——将表放入数据表中,然后将所有数据表添加到数据集(我已经完成)。我想为两个 .MDB 文件执行此操作。一旦我有两个数据集,我想从每个数据集中取出特定的表并将它们添加到每个文件中,如下所示:

  • DataSetA >>>>----- [添加表(覆盖它们)] ----->>>> DataSetB
  • DataSetB >>>>----- [添加表(覆盖它们)] ----->>>> DataSetA

我想把那些数据集拿走,然后把它们放回它们来自的每个 Access .MDB 文件中。基本上保持两个数据库同步。

所以我的问题,修改后,是:

  1. 如何创建一个 SQL 查询,通过覆盖现有的同名表将表添加到 .MDB 文件。查询应该能够在运行时动态创建,该数组用我要添加的表名替换变量。
  2. 如何获取 Datagrid 对 DataTable 所做的更改并将它们放回 DataTable(或 DataSet),以便我可以将它们发送到 .MDB 文件?

我试图尽可能详细地说明......因为我相信我没有很好地解释我的问题。现在这个问题已经变得太长了。我只是希望我能更好地解释这一点。:[

编辑:

感谢下面的用户,我想我几乎找到了解决方法——关键字about。下面是我更新的 DatabaseHandling.cs 代码。我收到运行时错误“数据类型不匹配”。考虑到我正在尝试将这些表复制到另一个具有完全相同设置的数据库中,我不知道这怎么可能。

为什么我会收到此错误?两张表完全相同。我究竟做错了什么?最坏的情况,在插入具有不同值的完全相同的结构表之前,如何删除其他 Access .MDB 文件中的表?

伙计,我希望我能弄清楚这一点......

编辑:

好吧,我已经走了一段距离。我的问题已经演变成一个新问题,因此值得单独提问。我已经回答了我的问题,因为现在我知道如何直接对我打开的连接执行查询。谢谢你们!

0 投票
1 回答
5266 浏览

c# - 检查 OleDbConnection 状态的最佳方法

显然(MSDN)有时 OleDbConnection.ResetState() 什么都不做,所以即使连接失败 OleDbConnection.State 仍将设置为打开。我正在为此寻找最佳解决方法,以便在检查连接状态时可以避免引发异常(只要在上次检查和使用尝试之间连接没有失败)。

有没有比每次发送一个“无用”的sql语句只是为了查看是否抛出异常更好的了?在实际使用之前,如何确保连接已打开?

0 投票
2 回答
18573 浏览

.net - Excel 单元格值被 OLEDB-provider 截断

我正在使用 OleDbConnection 类从 Excel 2000/2003 工作簿中检索数据:

现在事实证明,工作表中长度大于 255 个字符的单元格将被截断。这是 Microsoft.Jet.OLEDB 提供程序的限制,还是我可以做些什么?

任何人?

0 投票
2 回答
782 浏览

oledb - OLE DB 异常 - 数据库/用户/密码太大

我正在尝试使用 OleDbConnection 和连接字符串连接到数据库,try-catch 语句中给出的错误是“数据库/用户/密码太大”。该语句是什么意思,我该如何解决这个问题,以便我可以连接到我的数据库?我的数据库正在使用 SQLBase 驱动程序。

0 投票
1 回答
131 浏览

ms-access - 表被其他人打开时,如何从其他计算机中选择打开的表

当 Table 被其他人打开时,如何从其他计算机中选择打开的 table?

使用 VB 6 和 Access 数据库

当表格被其他人或其他软件打开时,我想从其他计算机中选择表格。

但它显示错误:

无法使用;文件已经使用

我想访问该表,如果它已打开。

0 投票
5 回答
7873 浏览

excel - 使用 OleDbConnection 获取第一个 Excel 工作表名称

我有一个问题。我需要在工作簿中获取 excel 工作表名称,该工作簿位于最左侧的工作表选项卡上——从我的角度来看是第一个。

我正在使用这段代码:

这里的问题是它不是以视觉标签顺序返回行,而是以非常不同的顺序返回行 - 很可能是行创建日期。

如何根据标签顺序对 sheetnames 表进行排序,以便我可以轻松获得第一个 excel 工作表名称?

谢谢,卡莱姆凯基

0 投票
1 回答
482 浏览

.net - 我的 LoginPage 需要使用 Excel 表中的存储数据验证用户 ID 和密码?

我正在为我的 C# 应用程序开发登录页面。在这里,我使用 Excel 表来存储用户凭据。

  • 在这里,我要做的是,当用户提供他的凭据并单击登录按钮时:

    1. 将“USERIDS” Excel 工作表加载到 DataTable 的对象中。
    2. 现在检查给定“tbuserid”文本框和“USERIDS”表的“USER_ID”列的用户ID。
    3. 如果User Id 匹配,则检查对应匹配记录的“PASSWORD”字段,[即不是整个PASSWORD 字段需要检查] 注意:如果User Id 不匹配,则无需检查密码字段。并使用“ErrorProvider”控件显示警报消息

    4. 如果用户 ID 和密码都匹配,则关闭此登录表单并打开“Form1”表单。

  • 密码字段文本框应以“*”字符可见。

  • 问题:在提供凭据后单击“登录”按钮时收到错误消息。

顺便说一句,使用以下连接字符串语句:

0 投票
2 回答
1734 浏览

vb.net - 通过 vb.net 中的 oledbcommand 选择不接受最近的更改

我正在使用以下代码来计算访问数据库中的下一个唯一订单号。ServerDB 是一个“System.Data.OleDb.OleDbConnection”

如果我随后创建了一个 WORKORDR(使用不同的数据库连接),代码将不会获取新的“下一个订单号”。

例如

将向 iFoo 和 iFoo2 返回相同的值。

如果我关闭然后重新打开 serverDB,作为“NewOrderNo”功能的一部分,那么它可以工作。iFoo 和 iFoo2 将是正确的。

有没有办法强制“System.Data.OleDb.OleDbConnection”在这种情况下刷新数据库而不关闭并重新打开连接。例如,是否有任何等效于 serverdb.refresh 或 serverdb.FlushCache

我如何创建订单。 我想知道这是否可能是由于在创建订单后没有更新我的交易造成的。我正在使用 XSD 来创建订单,而我用来创建记录的代码是......