代码之家  ›  专栏  ›  技术社区  ›  David Seiler

为什么IDbCommand可能。当IDbCommand执行时,ExecuteReader()失败。ExecuteScalar()成功吗?

  •  0
  • David Seiler  · 技术社区  · 16 年前

    我有一些C#代码,可以动态生成SQL查询并通过IDbCommand执行它。执行标量()。这工作得很好;数据库中只有一个结果与我的查询匹配,并且总是返回该结果。

    我知道数据还在;当我切换回ExecuteScalar()时,一切正常。这怎么可能?

    2 回复  |  直到 16 年前
        1
  •  1
  •   adrianbanks    16 年前

    确保您拨打的是 Read() IDataReader ExecuteReader() 在尝试访问它之前。呼叫 Read() 在访问之前 IDataReader ,你会得到一个 InvalidOperationException

        2
  •  0
  •   codeulike    16 年前

    因为ExecuteScalar()不会出现这个问题,但一旦你开始使用ExecuteReader(),你需要确保同一连接上的所有先前DataReader都已关闭(例如,通过使用“using”块)

    InvalidOperationException的错误消息是什么?