Sql server vb.net中的查询问题

Sql server vb.net中的查询问题,sql-server,vb.net,Sql Server,Vb.net,我得到一个错误,说列不属于表。下面是我的问题,非常直截了当 query = " SELECT A.COLUMN " " FROM TABLE_1 A, TABLE_2 B" " WHERE A.COLUMN = B.COLUMN " 为了简单起见,我将其放入一个数据集中并执行For循环,结果很好。顺便说一句,在ManagementStudio中对查询进行了测试,一切正常 这就是问题所在: dim new_val as string new_val = row(

我得到一个错误,说列不属于表。下面是我的问题,非常直截了当

query = " SELECT A.COLUMN "
        " FROM TABLE_1 A, TABLE_2 B"
        " WHERE A.COLUMN = B.COLUMN "
为了简单起见,我将其放入一个数据集中并执行For循环,结果很好。顺便说一句,在ManagementStudio中对查询进行了测试,一切正常

这就是问题所在:

dim new_val as string

new_val = row("A.COLUMN") 'ERROR
注意:当我将查询更改为:

SELECT A.COLUMN **AS COLUMN1** 
然后:

new_val = row("COLUMN1") it works.
有人知道原因吗??还忘了注意一些列具有相同的名称,这就是我使用.COLUMN的原因。

只需使用:

new_val = row("COLUMN") 
引用中没有理由有表后缀,只有列名

此外,您确实应该重新编写查询以使用内部联接:

query = " SELECT A.COLUMN "
    " FROM TABLE_1 A INNER JOIN TABLE_2 B ON A.COLUMN = B.COLUMN "

我建议您在有问题的行中设置断点,并在QuickWatch窗口中检查列的名称。在这种情况下,您将能够确定列名,从而调整代码。

值得注意的是,您正在为联接使用SQL-89语法,该语法因复杂联接上的歧义而被弃用(除其他原因外)。您应该开始使用@LittleBobbyTables描述的语法-有关更多信息,请参阅