我们有一个测试环境和一个包含DB2数据库和VB.net项目的生产环境。我们最近在74列表中添加了4列,总共有78列。我们已经在测试环境中进行了一段时间的更改,但昨天刚刚添加到生产中。在我们的VB.net代码(test和prod)中,我们使用Select * FROM TABLENAME
语句从数据库中获取单行并显示它。一切都在测试环境中完美运行,但是当我们运行代码并指向生产数据库时,结果中不包含四个新添加的列,当我们尝试访问该数据时会出现错误。
这是奇怪的地方。如果我们在select语句中明确命名新列,则包含它们,并且一切都很好。我知道我们应该明确地命名列,作为最佳实践,这就是我们要做的事情,但是,我必须弄清楚发生了什么。
进一步观察:
Select * FROM TABLENAME
查询输入到生产数据库中,则会返回所有列,包括4个新列。因此,如果我们使用System i Navigator(使用SELECT *
),那么列就在那里。如果我们在VB.NET代码中明确命名它们,那么列就在那里。但是,如果我们在VB.NET代码中使用Select *
,则会排除4个新列(但仅限于生产版本)。
之前有没有人见过这种行为?
答案 0 :(得分:0)
尝试删除,然后重新创建ODBC连接。 似乎连接有“内存”,而源的更改则没有 反映在连接文件中。