我有一个带有c#和Microsoft SQL Server的项目,我想用存储过程填充我的gridview。
这个过程中有一个表声明(我需要这个@temptable来从另一个数据库中获取一些带有opendatasource的数据)。
在SQL Server Management Studio中没关系,但是当我的程序减速@tempTable时,它不会填充我的gridview(在c#项目中)(即使我不使用它)。
如何在程序中使用@tempTable在gridview中使用它?
P.S。我也试过@tmp,#tmp,## tmp表。
答案 0 :(得分:1)
简单的答案是,除非创建临时表并将其保留在数据库中,否则无法像普通表那样连接到临时表。 @temptable是本地参考。
如果你知道表定义,你可以设置一个合适的数据对象;从过程中传回临时表的所有行;将结果存储在数据对象的集合中,并使该集合成为网格的数据源。
这意味着您无法使用Server Explorer中的任何拖放功能,但需要编写自己的SQL命令来检索该数据并填充该集合。
答案 1 :(得分:0)
导致连接类型的问题。它是oledbconnection并且我将它更改为sqlconnection,现在我可以在存储过程中使用表变量来在网格中选择它