gpt4 book ai didi

c# - 如何从 SqlDataReader 获取列的表名

转载 作者:太空狗 更新时间:2023-10-29 18:14:23 24 4
gpt4 key购买 nike

我有一个从配置文件中获取的 SQL 查询,该查询通常包含 3-6 个连接。

我需要在运行时查找,根据SqlDataReader表示的结果集,找到每一列的表名。

这里有一些不起作用的东西:

  • SqlDataReader.GetName 返回列名而不是表名。
  • SqlDataReader.GetSchemaTable 返回包含列信息的数据表 - 但所有表名均为空。
  • 查询 information_schema 没有帮助,因为我需要有关当前查询结果的数据(并且列名不是唯一的 - 在不同的表中存在具有相同名称的列)。

我在控制台应用程序中使用 .net 3.5SP1/C#/SQL Server 2008。

编辑:我知道这在所有情况下都是不可能的,因为“列”可以从多个表、一个函数甚至一个常量表达式组合 - 我正在寻找适用于简单的情况。

编辑 2:找出它不起作用的原因 - 您可以使用 SqlDataReader.GetSchemaTable 获取表信息,但您必须将 CommandBehavior 设置为 KeyInfo,您可以在 ExecuteReader 调用中执行此操作:

reader = cmd.ExecuteReader(CommandBehavior.KeyInfo);

最佳答案

您可以使用 SqlDataReader.GetSchemaTable 获取表信息,但您必须将 CommandBehavior 设置为 KeyInfo,您可以在 ExecuteReader 调用中执行此操作:

reader = cmd.ExecuteReader(CommandBehavior.KeyInfo);

关于c# - 如何从 SqlDataReader 获取列的表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3102902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com