从VB.NET项目访问DB2数据库的奇怪行为

时间:2013-05-24 14:05:00

标签: vb.net db2 dao

我们有一个测试环境和一个包含DB2数据库和VB.net项目的生产环境。我们最近在74列表中添加了4列,总共有78列。我们已经在测试环境中进行了一段时间的更改,但昨天刚刚添加到生产中。在我们的VB.net代码(test和prod)中,我们使用Select * FROM TABLENAME语句从数据库中获取单行并显示它。一切都在测试环境中完美运行,但是当我们运行代码并指向生产数据库时,结果中不包含四个新添加的列,当我们尝试访问该数据时会出现错误。

这是奇怪的地方。如果我们在select语句中明确命名新列,则包含它们,并且一切都很好。我知道我们应该明确地命名列,作为最佳实践,这就是我们要做的事情,但是,我必须弄清楚发生了什么。

进一步观察:

  • 如果我使用System i Navigator将Select * FROM TABLENAME查询输入到生产数据库中,则会返回所有列,包括4个新列。
  • 我们正在使用完全相同的VB.NET代码来访问测试的数据库和生产的数据库...我们运行项目只是将连接字符串从TestingDB更改为ProductionDB,因此,我们已经消除了不同数据对象版本的可能性(我认为)等等。

因此,如果我们使用System i Navigator(使用SELECT *),那么列就在那里。如果我们在VB.NET代码中明确命名它们,那么列就在那里。但是,如果我们在VB.NET代码中使用Select *,则会排除4个新列(但仅限于生产版本)。

之前有没有人见过这种行为?

1 个答案:

答案 0 :(得分:0)

尝试删除,然后重新创建ODBC连接。 似乎连接有“内存”,而源的更改则没有 反映在连接文件中。

相关问题