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描述的语法-有关更多信息,请参阅