How to read the result of SELECT * from joined tables with duplicate column names in .NET
c#, join
Solution
The result set only sees the returned data/column names, not the underlying table. Change your query to something like
SELECT TableA.Name as Name_TA, TableB.Name as Name_TB from ...
Then you can refer to the fields like this:
data_reader["Name_TA"];
Problem
I am a PHP/MySQL developer, slowly venturing into the realm of C#/SQL Server and I am having a problem in C# when it comes to reading an SQL Server query that joins two tables. Given the two tables: TableA: ``` int:id VARCHAR(50):name int:b_id ``` TableB: ``` int:id VARCHAR(50):name ``` And given the query ``` SELECT * FROM TableA,TableB WHERE TableA.b_id = TableB.id; ``` Now in C# I normally read query data in the following fashion: ``` SqlDataReader data_reader= sql_command.ExecuteReader(); data_reader["Field"]; ``` Except in this case I need to differentiate from TableA's name column, and TableB's name column. In PHP I would simply ask for the field "TableA.name" or "TableB.name" accordingly but when I try something like ``` data_reader["TableB.name"]; ``` in C#, my code errors out. How can fix this? And how can I read a query on multiple tables in C#?