无法通过 ODBCDataAdapter/CommandBuilder 更新进度表

本文关键字:CommandBuilder 更新 进度表 ODBCDataAdapter | 更新日期: 2023-09-27 18:34:07

我正在用 C# 为我们数据库中的任何单个表制作一个简单的 CRUD 应用程序,通过 ODBC 连接与 Progress 数据库接口。我正在使用一个附加了OdbcCommandBuilder的OdbcDataAdapter。

OdbcCommandBuilder 似乎从不设置我更改的行中的所有值,从而向 DataAdapter 提供不正确的 SQL 语句。

例如,在 Brown 表中,我更改了"名称"列,但获取了未设置任何内容的"更新 SQL":

"UPDATE '"PUB'".'"brown'" WHERE (('"cust-num'" = ?) AND ('"cust-seq'" = ?))"

在代理 d 表中,我更改了父名称列,但获取更新 SQL 以更改代理编号:

"UPDATE '"PUB'".'"agent-d'" SET '"agent'" = ? WHERE (('"agent'" = ?) AND ('"parent-num'" = ?) AND ('"cust-num'" = ?))"

为什么我没有从 OdbcCommandBuilder 获得合适的 SQL?

无法通过 ODBCDataAdapter/CommandBuilder 更新进度表

发现 Progress/OpenEdge DB 和 ODBC 命令生成器不能很好地协同工作,这就是我得到愚蠢的更新语句的原因。