即使存储过程执行,SqlDataReader也不显示返回行

时间:2017-09-27 08:46:31

标签: sql-server ado.net

我正在尝试使用SqlDataReader获取数据。当我查看结果时,我确实看到列的数量,但是行丢失了,我只看到“枚举没有产生结果”的空白。

花了很多时间在网上遇到类似的问题后,我无法解决我的问题。然后我尝试了相同的存储过程,但使用了DataAdapter。使用DataAdapter,返回所有行。我不确定是什么导致了这个问题。我尝试以不同的方式重写我的方法,但没有用。

public static SqlDataReader ExecuteDataReader(string connection, string storedProcedure)  
{       
    using (var sqlCon = new SqlConnection(connection))
    {
        //  sqlCon.Open();
        var cmd = new SqlCommand(storedProcedure, sqlCon)
            {
                CommandType = CommandType.StoredProcedure
            };


        sqlCon.Open();

        using (var reader = cmd.ExecuteReader())
        {
            var count = reader.FieldCount;

            while (reader.Read())
            {
                    for (var i = 0; i < count; i++)
                    {
                        Console.WriteLine(reader.GetValue(i));
                    }
            }
        }

        //reader.Close();
        return null;  // for testing purpose
    }
}

- 存储过程。 (保持简单)

Create PROC [dbo].GetTheData  

As   

select     '1' AS one,'2' as two,'3' as three,'4' as four,'5'as five

0 个答案:

没有答案