3

我不知道如何正确完成这个 - 我有一个存储的过程,我想将结果作为 IEnumberable 返回

  public IEnumerable GetGuids(int id)
    {
        SqlCommand _command = new SqlCommand("storedProc");
        _command.CommandType = CommandType.StoredProcedure;
        _command.Parameters.AddWithValue("@ItemID", id);

        return _command.ExecuteReader();
    }

当我运行它时,我得到:ExecuteReader: Connection property has not been initialized.

4

3 回答 3

4

您的 SqlCommand 没有相应的连接。要么使用:

_command.Connection = conn;

或使用创建 SqlCommandconn.CreateCommand(...)

于 2013-07-30T20:35:38.367 回答
1

使用 SqlConnection 初始化 SqlCommand 并确保 SqlConnection 已打开。之后 ExecuteReader 给出一个 SqlDataReader ,您必须通读阅读器并读取值

SqlDataReader reader = _command.ExecuteReader();

while(reader.Read()
{
   // readvalue of reader["columname"] and insert into a list or yield return it.
}
于 2013-07-30T20:39:01.657 回答
0

像这样传递连接对象GetGuids(int id, SqlConnection conn)

 SqlCommand cmd = new SqlCommand ("query", conn);
于 2013-07-30T20:36:55.340 回答