繁体   English   中英

如何让C#Query组件识别从sql存储过程中的临时表返回的数据列

[英]How do I get the C# Query component to recognise columns returned data from a temporary table in a sql stored procedure

我已经创建了一个类似下面的存储过程(我正在使用这个减少版本来尝试解决我们的问题)。

CREATE PROCEDURE bsp_testStoredProc
AS
BEGIN

CREATE TABLE #tmpFiles  
(
    AuthorName NVARCHAR(50), 
    PercentageHigh INT
) 

-- Insert data into temp table

SELECT AuthorName, PercentageHigh FROM #tmpFiles 
ORDER BY PercentageHigh DESC

DROP TABLE #tmpFiles

RETURN 0
END

从我在VS2008中的C#代码中,我尝试使用Query组件和Use Existing Stored Procedure选项将其连接到DataTable / DataGridView以显示结果。

但是,因为我从临时表中进行选择,所以在查询组件属性中,Visual Studio不会显示从存储过程返回的任何列。 我认为它确定正在使用的数据类型有困难,因为SP不是基于真实模式。

连接到从实际表中选择的不同存储过程会正确显示列。

有谁知道这个吗? 是否有某种提示我可以在某处明确说明将返回哪种数据?

提前致谢。

有关信息,您可能会考虑使用“表变量”而不是临时表(即@FOO而不是#FOO) - 这可能会有所帮助,它肯定有助于一些tempdb问题。

使用临时表 - 没有办法明确声明SP模式。 我可能会建议在生成包装类时使用SP的简化版本 - 即让它对正确的形状进行简单的SELECT。

或者,我会使用LINQ消耗UDF,里面确实有明确的架构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM