我目前正在编写一个小型应用程序,它接收由SQL存储过程提供的数据,并使其可供非技术精明的用户轻松导出。我试图尽可能通用,因为您应该可以插入任何SP,并按照我的模板创建导出实用程序。我想在从SP本身运行SP之前添加一种获取列名的方法。我曾经假设你可以用不可能的值运行SP,因此不会返回任何内容,然后从得到的VB.NET DataTable中获取列。但是,如果没有返回数据,则列名也不会返回。我如何从SP获取列名而不必对它们进行硬编码?从空白存储过程数据集中获取列名称
2
A
回答
2
是Table-Valued User-Defined Functions的一个选项吗?
否则:
SELECT Column_Name
from INFORMATION_SCHEMA.COLUMNS
WHERE Table_Schema = 'dbo' and Table_Name = 'Table_Name'
http://msdn.microsoft.com/en-us/library/ms188348.aspx
编辑:
即使是空的数据集,通过列的SqlDataReader对象。 因此,如果您从SqlCommand对象中获取读取器,则 会在读取器上调用GetSchemaTable()以获取包含列元数据的DataTable 。 每行的第一列是返回列的名称。
+0
解决了它,但我无法发布自己的答案!即使是空数据集也会将列传递给SqlDataReader。因此,如果您从SqlCommand对象中获取读取器,请在读取器上调用GetSchemaTable()以获取DataTable with column metadata。每一行的第一列是返回列的名称 – wrsenn
+0
@wrsenn:我已经编辑了我的答案,很高兴听到你的解释。 –
相关问题
- 1. 从java中获取存储过程参数名称
- 2. 如何获取调用存储过程的数据库名称?
- 3. 从存储过程名称查找数据库名称
- 4. 如何从存储过程中获取数据库服务器的名称?
- 5. 如何从PostgreSQL 9.0获取数据集函数(“存储过程”)
- 6. 获取存储过程的列名
- 7. 从名称存储在表中的表中获取数据?
- 8. 如何在c#中获取存储过程的参数名称
- 9. 使用反射从实体数据模型获取存储过程名称。
- 10. 从存储过程中获取参数
- 11. 如何在调用sql存储过程时获取列名称
- 12. 使用BCP QueryOut获取存储过程的列名称
- 13. 在Oracle中获取别名名称存储过程
- 14. 如何从数据集中的存储过程返回表名称
- 15. SSRS在数据集字段中从CTE获取列名称
- 16. 我需要从SQL Server存储过程中获取列名
- 17. 从谷歌plus api获取空白名称(显示名称)
- 18. 通过存储名称和跳过空白循环
- 19. 从列名称获取数据类型
- 20. 从列计数中获取列名称
- 21. Oracle存储过程名称
- 22. 流星从集合中获取空白数据
- 23. 使用存储过程从数据库获取数据
- 24. 获取从存储过程返回的列名/类型
- 25. 如何获取在SQL存储过程返回数据集
- 26. 与存储过程中的数据集
- 27. 获取程序集名称
- 28. 数据列表从存储过程
- 29. 如何从存储过程中获取数据
- 30. 无法从存储过程中获取数据
表值用户定义函数 是一个选项吗? http://msdn.microsoft.com/en-us/library/ms191165.aspx否则:'从INFORMATION_SCHEMA.COLUMNS WHERE Table_Schema ='dbo'和Table_Name ='TableName'' SELECT Column_Name –
不幸的是,在这种情况下不是:( – wrsenn