问题标签 [oledbcommand]

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 投票
4 回答
5759 浏览

c# - 执行 OleDbCommand 时出错。“必须声明标量变量“@MaxID”。”

0 投票
1 回答
1512 浏览

c# - 如何在 OLDEB sql 选择命令中检查字段值是否为特定字符长度?

我正在使用 C# OleDB 连接从访问数据库中读取数据。我不想要任何长度小于三个字符的结果。

我当前的代码显示“无效的模式字符串”错误。为什么我会收到此错误,我该如何解决?

没有((Len(CALLNO))>=3)此代码可以正常工作。一旦我添加了该行,一旦它执行阅读器,我就会得到一个“无效的模式字符串”异常。

我尝试了几件事:

而不是((Len(CALLNO))>=3)use (CALLNO not like ''),这不会导致任何错误,所以我不会缺少括号。

尝试使用单字符通配符,例如,'_'而不是我使用,这会导致相同的“无效模式字符串”错误。事实上,我发现唯一不会引发错误的是空字符串和完整的通配符。'_ _''_ _ _'((Len(CALLNO))>=3)(CALLNO not like '_')'''%'

我还直接在访问中从查询字符串运行查询,并且我没有收到任何类型的错误。

感谢您提供任何信息,

LMB

0 投票
1 回答
1787 浏览

.net - DbCommandBuilder 未按预期工作

我想从数据库表中获取数据对其进行修改和更新,而不依赖于数据库提供程序和数据库结构,因为它将是库的一部分。

我的第一次尝试如下:

这不起作用,因为CommandBuilder没有生成Update-,Insert-并且DeleteCommand自动生成,尽管文档说它应该这样做。

但即使我添加

那没起效。经过进一步调查,我发现Commands生成CommandBuilder的文件没有用,因为它是 insert?而不是@param1for all Parameters。它产生了类似INSERT INTO tbl1 (field1, field2, field3) VALUES (?, ?, ?)的东西InsertCommand

我真的很想使用 CommandBuilder,因为它很简单,而且我没有像JOINS.

0 投票
3 回答
4220 浏览

c# - 数据库命令对象的参数顺序真的很重要吗?

我正在调试数据库操作代码,我发现正确的 UPDATE 从未发生,尽管代码从未失败过。这是代码:

但经过一些调整后,这奏效了:

  1. 为什么在 OleDb 连接的情况下必须将 WHERE 子句中的参数放在最后一个如此重要?之前使用过 MySQL,我可以(并且通常会)首先编写 WHERE 子句的参数,因为这对我来说更合乎逻辑。

  2. 一般查询数据库时参数顺序是否重要?一些性能问题还是什么?

  3. 对于 DB2、Sqlite 等其他数据库,是否需要维护特定的顺序?

更新:我删除?并包含了带有和不带有@. 顺序真的很重要。在这两种情况下,只有最后提到 WHERE 子句参数时,才会发生实际更新。更糟糕的是,在复杂的查询中,我们很难知道 Access 期望哪个顺序,并且在所有顺序发生更改的情况下,查询都不会在没有警告/错误的情况下完成其预期的任务!

0 投票
1 回答
3838 浏览

c# - OleDbDataAdapter.Update() 与 OleDbCommandBuilder

我正在使用 C# 和 OleDb 访问 Oracle 数据库,我已成功从查询中提取数据,但我无法使用更新数据库OleDbAdapter.Update(),我的更新代码如下。(“适配器”是对OleDbAdapter用于成功从数据库中提取数据的对象的引用。)

我目前收到“未准备好命令”。上述代码第一行的错误。任何建议,我将不胜感激。

(编辑: ds 是数据集)

0 投票
2 回答
1706 浏览

c# - UPDATE 语句中的语法错误 Visual Studio C#.net

在 C#.net 中编码和使用 OleDbCommand 时,我一直在尝试找出 UPDATE 语句的正确语法。我觉得我所拥有的是正确的,但这绝对不是因为我仍然收到错误:“UPDATE 语句中的语法错误”。我的代码发布在下面,用于我的更新按钮。我检查了许多站点(包括 Stackoverflow)以了解创建 SQL 语句的正确语法和标准,但仍然没有找到不会给我语法错误的站点。任何的意见都将会有帮助。谢谢!

0 投票
2 回答
5793 浏览

c# - MS Access 的 INSERT INTO 语句中的语法错误

我有一个在正常条件下工作的 SQL Insert Into 命令。这意味着如果我填写每个文本框,数据将发送到数据库(访问数据库)。

但是当我“忘记” 1 个文本框时,我收到“INSERT INTO 语句中的语法错误”。你怎么能避免这种情况?

当每个文本框都有一个值时,就没有问题。只有当我将 1 或 2 个文本框留空时,错误消息才会显示:INSERT INTO 语句中的语法错误

0 投票
1 回答
660 浏览

excel - 使用 WHERE 子句读取带有空白行的 Excel 文件的未知错误

因此,客户将 Excel 文件上传给我们,我们有一个 Windows 服务,它会定期抓取新文件并将内容批量加载到我们的 SQL 服务器,如下所示:

大多数时候都很好用,即使底部有一些空白行(WHERE 子句负责处理)。但有时我们会得到这些奇怪的文件,底部有很多(大约一百万)空白行,我们会得到一个带有 Unknown 的异常作为消息。如果我从 OleDbCommand 声明中删除 WHERE 子句,文件加载正常,但我们也会插入一百万行空白行。关于如何处理这个问题的任何想法?

0 投票
2 回答
2654 浏览

c# - 如何使用 OleDbDataAdapter Fill 方法仅添加确定数量的行?

我想在 DataSet 中添加行,但只添加特定数量的行(为了避免“定义的字段过多。”异常)。这是我到目前为止所尝试的:

例外:SELECT 语句包含拼写错误或丢失的保留字或参数名称,或者标点符号不正确。

例外:FROM 子句中的语法错误。

我也试过这个我从另一个网站得到的

例外:定义的字段过多。

我不知道还有什么可以尝试的,有什么建议吗?

0 投票
2 回答
1105 浏览

sql-server - 防止在 SSIS 中并行执行 OLE DB 命令

我的第一个“高级”SSIS 包存在并行性问题。

首先,这是包装的结尾: SSIS 包

这个包是什么:

  • 从 Excel 加载数据并执行一些操作/聚合/控制
  • 基于控件,它确定是否应该集成行(左分支)或不集成(右分支)
  • 如果没问题,则执行一些计算,添加行并写入一些统计信息(这是左分支的 OLE DB 命令)
  • 如果该行被拒绝,则将其添加到拒绝文件中,并在日志中写入一些统计信息(右侧分支的 OLE DB 命令)

每个文件加载只生成一个日志行,因此成功和失败日志信息写入同一行(由执行 guid 和导入的文件名标识,因为它可以在同一执行期间导入多个文件),但填充的列不一样.

两个 OLE DB 命令调用相同的存储过程:

  • 检查行是否存在
  • 如果不存在,则添加一个新行
  • 否则它会更新正确的列

在有人提出问题之前,这工作得很好:有时执行会生成 2 行:一行包含成功信息,另一行包含被拒绝的信息。
经过分析,我注意到可能会同时执行两个 OLE DB 命令,因此两者都看不到现有行并都插入了新行。

我想知道是否有办法阻止 OLE DB 命令同时执行。性能在这里不是问题,所以我不在乎它是否会产生更高的执行时间。

我看到的唯一解决方案是在表上添加一个唯一约束并捕获错误,但我不确定这是一个真正“优雅”的解决方案(我不喜欢复制 UPDATE 语句的想法,即“正常”一个和“异常”之一)所以我正在寻找一种不涉及捕获异常的解决方案!
当然,如果没有更好的解决方案,我想我会这样做。