C# - 使用TableAdapter从存储过程返回单个值返回null

时间:2011-03-23 18:31:00

标签: c# stored-procedures tableadapter

我不明白,但我添加到表适配器的存储过程只返回null值。它应该返回一个简单的整数值。在我使用数据集desinger的预览中,我可以清楚地得到我想要的整数值。但由于某种原因,我无法从我的代码中获得价值。

我按照MSDN库的说明操作: http://msdn.microsoft.com/en-us/library/37hwc7kt(VS.80).aspx

我的c#代码是:

humansDataSetTableAdapters.ProfilesTableAdapter tableAdapter 
= new humansDataSetTableAdapters.ProfilesTableAdapter(); 

int returnValue = (int)tableAdapter.getSample();

Console.Write(returnValue);

我的存储过程getSample代码是:

DECLARE @r int
SET @r = 7
RETURN @r

任何人都可以告诉我如何解决这个问题? 任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:3)

Scalar期待结果,而不是回报。定义,它寻找第一列,第一行。 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.aspx

尝试

DECLARE @r int
SET @r = 7
SELECT @r

答案 1 :(得分:1)

如果存储过程返回单个值,我建议您使用ExecuteScalar而不是寻求此解决方案。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.aspx

答案 2 :(得分:0)

您使用的是类型化数据集吗?如果是这样,请确保将存储过程设置为返回标量值。