gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:54:11 25 4
gpt4 key购买 nike

我已经创建了一个类似于下面的存储过程(我正在使用这个简化版本来尝试找出我们的问题)。

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# 代码中,我尝试使用带有使用现有存储过程选项的查询组件将其连接到 DataTable/DataGridView 以显示结果。

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

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

有人知道吗?是否有某种提示我可以添加到某处以明确说明将返回哪种数据?

提前致谢。

最佳答案

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

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

或者,我会使用 LINQ 来使用 UDF,它确实具有显式架构。

关于c# - 如何让 C# 查询组件识别从 sql 存储过程中的临时表返回的数据列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/204155/

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