如何从.NET中具有重复列名的连接表中读取SELECT*的结果

jty*_*ann 3 c# join

我是一名PHP/MYSQL开发人员,慢慢地进入C#/ MSSQL领域,当我在阅读连接两个表的MSSQL查询时遇到C#问题.

给出两个表:

表A:

int:id
VARCHAR(50):name
int:b_id
Run Code Online (Sandbox Code Playgroud)

表B:

int:id
VARCHAR(50):name
Run Code Online (Sandbox Code Playgroud)

并给出了查询

SELECT * FROM TableA,TableB WHERE TableA.b_id = TableB.id;
Run Code Online (Sandbox Code Playgroud)

现在在C#中我通常以下列方式读取查询数据:

SqlDataReader data_reader= sql_command.ExecuteReader();
data_reader["Field"];
Run Code Online (Sandbox Code Playgroud)

除了在这种情况下,我需要区别于TableA的名称列和TableB的名称列.

在PHP中,我只是相应地要求字段"TableA.name"或"TableB.name",但是当我尝试类似的东西时

data_reader["TableB.name"];
Run Code Online (Sandbox Code Playgroud)

在C#中,我的代码错误了.现在我知道这可以通过谷歌搜索或在这个网站上搜索来解决,但我最难找到适当的搜索词找到答案.

那么有人可以指点我的写作方向,或者给我一个关于如何在C#中读取多个表的查询的建议?

Cod*_*ick 5

结果集仅查看返回的数据/列名称,而不是基础表.将您的查询更改为类似的内容

SELECT TableA.Name as Name_TA, TableB.Name as Name_TB from ...
Run Code Online (Sandbox Code Playgroud)

然后你可以参考这样的字段:

data_reader["Name_TA"];
Run Code Online (Sandbox Code Playgroud)