当前位置:编程学习 > C#/ASP.NET >>

高分急求oracleDataReader 读取 REF CURSOR问题!

我在。net访问oracle数据库的时候遇到一个问题
调用oracle的分页的存储过程时。可以访问到返回的数据值,但是在读取数据集时,可以读到数据集的字段,但是读不到数据集的值。
 我在pl.sql中测试存储过程是没有问题的。

代码如下:
 OracleCommand myCommand = new OracleCommand("Pk_search.Pk_search_Page", myConnection);
                // Mark the Command as a SPROC
                myCommand.CommandType = CommandType.StoredProcedure;

                myCommand.Parameters.Add("p_PageSize", OracleType.Number).Value = pageSize;
                myCommand.Parameters.Add("p_PageNo", OracleType.Number).Value = pageNo;
                myCommand.Parameters.Add("p_SqlSelect", OracleType.NVarChar).Value = sqlSelect;
                myCommand.Parameters.Add("p_SqlCount", OracleType.NVarChar).Value = sqlCount;
                myCommand.Parameters.Add("p_OutCursor", OracleType.Cursor).Direction = ParameterDirection.Output;

                myCommand.Parameters.Add("p_OutRecordCount", OracleType.Number).Direction = ParameterDirection.Output;
                
                myConnection.Open();
                
                using (OracleDataReader dr = myCommand.ExecuteReader())
                {                    
                    StringCollection fiedlname = new StringCollection();
                    for (int i = 0; i < dr.FieldCount; i++)
                    {
                        fiedlname.Add(dr.GetName(i));
                    }
                    searchSet.TitleName = fiedlname;
                    searchSet.TotalRecords = Convert.ToInt32(myCommand.Parameters["p_OutRecordCount"].Value);                    
                     
                    while (dr.Read())
                        searchSet.SearchList.Add(PopulateSearchResultFromIDataReader(dr, fiedlname));                   
                }
 myConnection.Close();



fiedlname ,TotalRecords 都能正确返回记录。
但是OracleDataReader hasrows=false
请问各位问题在哪里?
--------------------编程问答-------------------- 在线等,顶一下 --------------------编程问答-------------------- 顶一下 --------------------编程问答-------------------- 先执行dr.Read()),再判断hasrows --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 没看见你的 hasrows写在哪啊
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,