我有一个从配置文件中获取的SQL查询,该查询通常包含3-6个联接。
我需要在运行时基于SqlDataReader表示的结果集查找表,以查找每列的名称。
这是一些行不通的事情:
我在控制台应用程序中使用.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/