TableAdapter在ASP.NET中返回幻像结果

时间:2009-07-03 21:45:52

标签: asp.net sql-server stored-procedures tableadapter

我有一个从stored procedure获取行的TableAdapter。出于某种原因,当没有结果时,TableAdapter返回值为0而不是NULL的INT。存储过程具有NOCOUNT ON

这个问题是我在前端有一个带有EmptyDataTemplate的ListView,它没有显示。当我在查询分析器中运行查询时,我发现它返回0而不是NULL。

存储过程有一个简单的'SELECT * FROM WHERE',带有一个INT参数(NOT Output)。在查询分析器中运行它,我没有按预期输出。

发生了什么事?

2 个答案:

答案 0 :(得分:1)

看起来存储过程正在返回结果。所有存储过程都返回结果代码。这很有可能。

答案 1 :(得分:1)

检查tableAdapter的ExcuteMode属性以查询查询。确保将其设置为“Reader”。 ExecuteMode有3个选项:

  1. Reader - 返回数据行
  2. 标量 - 返回单值
  3. NonQuery - 返回包含受影响行数的int
  4. 同时检查Parameters Collection以获取返回值参数。它应该具有AllowDBNull(如果允许空值,则为true),Direction(ReturnValue)。此参数应保存SP的结果。在您的示例中,它将为null,因为没有返回记录。