假设我们的数据库中有两个表,
我使用以下SQL语句执行查询:
执行后,我尝试使用字符串索引器
我需要解决的问题是重复的名称:例如,
属性
在这种情况下,我是否有可能按名称读取列?还是使用两个查询或SQL的'as'运算符是唯一的方法?
user
(外键 id_role)和 role
(主键 role)。我们需要读取关于用户及其权限的信息。我使用以下SQL语句执行查询:
SELECT *
FROM [user]
INNER JOIN role ON [user].id_role = role.id
WHERE login = @login
执行后,我尝试使用字符串索引器
reader[string name]
读取阅读器中的值。我需要解决的问题是重复的名称:例如,
user
和role
都包含字段id
,我能够读取用户的id
(使用reader["id"]
),但无法读取角色的id
(使用reader["role.id"]
)。属性
FieldCount
返回12,这意味着已读取所有必需的字段(user
包含6个字段,role
也是如此)。在这种情况下,我是否有可能按名称读取列?还是使用两个查询或SQL的'as'运算符是唯一的方法?
SELECT
语句中,需要定义列别名或按序号位置读取(Reader[index]
),但这当然容易出现其他问题(比如User
表增加了一个属性,那么你所有的订单都会偏移1) - 这些问题可以通过不使用SELECT *
而明确列出你真正需要和想要从这两个表中选择的所有列来解决... - marc_s