0

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

问题是我在前端有一个 ListView 和一个 EmptyDataTemplate,它没有显示出来。当我在查询分析器中运行查询时,我看到它返回 0 而不是 NULL。

存储过程有一个简单的 'SELECT * FROM WHERE' 和一个 INT 参数(非输出)。在查询分析器中运行它,我没有得到任何输出,正如预期的那样。

这是怎么回事?

4

2 回答 2

1

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

  1. Reader - 返回数据行
  2. 标量 - 返回单个值
  3. NonQuery - 返回一个包含受影响行数的 int

还要检查参数集合以获取返回值参数。它应该具有属性 AllowDBNull(如果允许空值,则为 true),Direction(ReturnValue)。这个参数应该保存你的 SP 的结果。在您的示例中,它将为 null,因为没有返回任何记录。

于 2009-08-27T19:34:53.033 回答
1

看起来存储过程正在返回结果。所有存储过程都返回一个结果代码。最有可能的是这个。

于 2009-07-03T22:18:41.447 回答