问题标签 [oledbdataadapter]

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 投票
2 回答
2484 浏览

c# - Excel 与 .NET 中的 ACE 超时使用数据适配器更新

我在将数据从数据集写入 Excel 电子表格时遇到超时问题。这是我目前的连接字符串:

提供程序似乎不支持 Connect Timeout 属性。Connection Timeout、Timeout、ConnectionTimeout、ConnectTimeout 等也不是。我的代码创建了一个 Data Adapter 和 InsertCommand,并从数据集进行更新。除非更新命令本身花费超过 15 秒(这是默认的 OleDb 超时),否则这非常有效。这就是为什么我试图在连接字符串中设置它。我已经从默认的 30 增加了 CommandTimeout,但这真的无关紧要。以下是我的代码:

我省略了实际构建插入命令的内容和参数的循环等。相信我,一切正常。2200+ 条记录工作正常。

在我添加计时器之后,我发现问题是超时。处理 2221 条记录时,需要 14.95 秒,并且在电子表格中显示得很好。处理 2260 条记录时,需要 15.21 秒,但没有任何显示。没有任何错误。我检查了所有行更新后的行状态,它们都没有显示失败。

底线,由于 ConnectionTimeout 属性是只读的,并且提供程序似乎不支持连接字符串中的超时,该怎么办....

谢谢。

0 投票
1 回答
695 浏览

excel - OleDbDataAdapter.Update 返回行,但没有行添加到 Excel 电子表格

我可以一次将一行添加到我的 Excel 电子表格中,但是速度非常慢(400 条记录需要 1 分钟,即使使用 Prepare 也是如此)。所以,我知道 Sql 是有效的并且 DataTable 是好的。

有效的代码:

当我尝试使用 DataAdapter 做同样的事情时,它说它返回 458 行,但电子表格中没有新行。失败的代码:

接着:

为什么我会得到 intRows = 458,但 Excel 文件中没有新行?

编辑:我刚刚做了一个测试,看看如果我导出到 Microsoft Access .mdb(而不是 Excel)会发生什么,结果告诉我一些事情。我得到 458 个空白行。所以,我怀疑我在 Excel 中得到了 458 个空白行。所以,现在的问题是为什么这些行都是空白的。

0 投票
2 回答
754 浏览

asp.net-mvc-3 - 导入前导零的 3 位字段

ASP.NET、C#、MVC 3、代码优先项目

我正在尝试从 Excel 电子表格中导入数据。我已将所有单元格格式化为文本。
导入工作表中的示例行如下。

当我在调试中运行并深入了解 ds DataSet 时,Account 和 Card 列作为字符串导入,3-Digit 和 Route 列作为双精度导入。问题出现在数据行 3 中以 0 (082) 开头的 3 位数字。它作为 System.DBNull 导入并且为空。我需要能够导入带前导零的 3 位代码。有没有办法强制导入为所有字符串或解决此问题的另一种方法?我在网上搜索并没有找到解决方案。这将从浏览器运行,因此与本地计算机上的注册表、dll 或 ini 文件无关。导入代码如下。预先感谢您的任何帮助。

0 投票
0 回答
449 浏览

excel - 通过 OleDbDataAdapter 将 excel 数据导入数据表将方括号替换为圆括号

我正在使用此代码导入 excel (.xls) 数据,但列中的所有方括号都替换为圆括号。例如列 dm[kg]:

进口前:dm[kg]

进口后:dm(kg)

我会很感激任何帮助。

0 投票
1 回答
126 浏览

oracle - 在.net中的oracle中创建表,参数错误

我正在使用 Oracle 10 G 数据库

当我使用它时SET parameter X VALUE IN .NET with OleDbDataAdabtor

我得到的错误是ORA-01036: illegal variable name/number

这是我的职责。Query is upper is query Para 是保持参数值的结构 public DataTable GetTable(String Query,AsycudaParameter[] Para) {

0 投票
2 回答
585 浏览

vb.net - vb.net oledbdataadapter 将字段格式为整数而不是双精度

我在 Visual Studio 2005 中使用 oledbdataadapter 加载 CSV 文件。我遇到的问题是,如果任何给定字段的第一行的值为 0,则 oledbdataadapter 会将此字段转换为整数。它将所有后续值四舍五入为一个整数,去除小数点。作为测试,我用记事本手动打开 csv 并将第一行更改为 0.0 而不是仅 0,然后文件正确打开,使该字段成为双倍。打开 CSV 和格式字段加倍的正确方法是什么?

这是打开代码:

0 投票
1 回答
2520 浏览

asp.net - 执行带参数的查询时 SqlCommand 很慢

DbDataAdapter.Fill() 在执行参数时非常慢!

我有一个内部有 2 个参数的查询,当我将这些参数硬编码到查询中时,执行需要 1 秒(在 470k 表行中,仅返回 20 行)。

我在这里发现了许多类似的帖子,我尝试了所有这些解决方案(设置 arithabort、选项重新编译、选项优化……),但没有成功。

我只是执行查询(sql server 2008)而不是存储过程,所以使用 arithabort 的查询是这样的:

我也尝试在同一个事务中调用 set arithabort 但首先执行该查询..

我不知道我是否做错了什么,但感觉是当我在 ado.net 上定义参数时,ado.net 在 ado.net 中执行了一个非常糟糕的执行计划。

由于这个错误的选择,SSMS 中的执行时间是 1 秒(缓存后),但在 asp 中是 9 秒!

查询是这样的:

strSQL @=" select *
from Table1 where Name like @name";

接着:

编辑 14/01/2013 (18:44)

我不再从 DbProviderFactory 检索连接,而是直接使用 SqlConnection 和 SqlCommand。我知道 DbCommand 和 DbProvider 是一个基类......但我认为那里还有更多......因为性能急剧提高了 300%!

这不是填充方法,因为我已经尝试过之前显示的代码..

无论如何,我不知道为什么但是使用 SqlConnection 更快!任何想法?也许之前没有制定过那么糟糕的执行计划?

任何帮助将不胜感激,

谢谢,

0 投票
3 回答
1287 浏览

c# - 选择语句忽略参数?

当我使用此代码时,它会返回表中的每一行,我不知道为什么。

我什至将员工姓名列中的一个值复制粘贴到文本框中,以验证我使用的是有效的员工姓名。如果语句不正确,我希望什么都不会返回,而不是一切。

更新:我还尝试删除命名参数“@EmployeeName”并输入用单引号括起来的硬线名称。然而,仍然声明返回员工信息中的所有内容

0 投票
1 回答
6488 浏览

c# - 从 OleDbDataAdapter 填充数据集

我正在使用 OleDbDataAdapter 读取数据集中 Excel 工作表的内容。Excel 表由 20391 行组成,数据集在我的本地计算机上运行时读取总行数,但在 IIS7.5 服务器上运行代码时,它只读取 FIRST 12463!!

我的连接字符串:

有没有办法将 da.Fill 结果划分为多个数据表?

0 投票
1 回答
646 浏览

asp.net - 为什么 oledb dataadapter 没有从 vb.net 中的 access 数据库中获取任何数据?

我遇到了一个非常特殊的问题。我正在使用 ms access 2007 在 asp .net vb 中工作

为了获取数据,我使用以下代码片段

当我使用没有 where 子句的查询时,它可以工作。即 IT 获取所有行并填充数据表。但是当 sQuery 带有 where 子句时,dt.Rows.Count 总是给出 0。即没有从数据库中获取数据。我说这是一个更特殊的问题,因为在调试时我复制了带有 where 子句的 sQuery 并在 ms 访问中运行,它正在返回数据。我不明白我错过了什么。我正在显示为 sQuery 生成的查询

但是当 sQuery 有

它在 ms 访问中获取行,但是 adapter.Fill(dt) 行不会用任何行填充数据表

我被这个问题困住了,提前感谢任何建议和解决方案。