Returning Ref_cursor to dataview

I am trying to get the data grid (MyDataGrid) to populate.  I run the page with no errors.  Just for grins, I sent an invalid Oracle command, and sure enough, I got an oracle error returned - So I know the code is passing through to the Oracle DB.

I can't get the datagrid to populate/draw though.  I've tested my Stored Procedure otherwise (via SQL/Plus and Excel VBA) and it works fine.

Can somebody help me understand why MyDataGrid isn't showing up on my aspx page?

<%@ Page Language="c#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="Oracle.DataAccess.Client" %>
<%@ import Namespace="System.Data.OleDb" %>
<%@ Assembly Name="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" %>
<script runat="server">
 
    protected void Page_Load(Object sender, EventArgs e)
    
    {
    
      OracleConnection con = new OracleConnection("data source=myDatabase;user id=MyuserID;password=myPass;");
    
      con.Open();
    
      OracleCommand cmd = new OracleCommand("Pkg_CPU_Reports.Report_CPU_Histogram",con);
    
      OracleParameter oparam = cmd.Parameters.Add("ResultCursor", OracleDbType.RefCursor);
    
      oparam.Direction = ParameterDirection.Output;
    
       cmd.CommandType = CommandType.StoredProcedure;
    
      OracleDataAdapter adapter = new OracleDataAdapter(cmd);
    
      DataSet myset = new DataSet("ResultCursor");
    
      adapter.Fill(myset);
	  
	  DataGrid MyDataGrid = new DataGrid();
    
      MyDataGrid.DataSource=myset;
    
       MyDataGrid.DataBind();	
 
    }
</script>
<html>
 
 
 
<body>
 
<H1>Result Set</H1>
 
<form runat="server">
 
<asp:datagrid id="MyDataGrid" runat="Server"/>
 
</form>
 
</body>
 
</html>

Open in new window

LVL 1
tscotttAsked:
Who is Participating?
 
tscotttAuthor Commented:
I found the problem.  I was declaring the datagrid (or, in more recent code, the dataview) in the inline C# script - Line 30 in the code above. That's a no-no, as it goes out of scope.

Thanks for keeping me plugging away. :)
0
 
Bob LearnedCommented:
How many DataTable and rows does the DataSet have?
0
 
tscotttAuthor Commented:
About 10.
0
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

 
Bob LearnedCommented:
You didn't define any columns for the DataGrid.  If you are using ASP.NET 2.0, then I would suggest using the GridView, which can auto-generate columns from the data source.
0
 
tscotttAuthor Commented:
You're a champ for helping me!  I changed it to a GridView, but it still doesn't show a control (much less populate it with data).

As an experiment I changed : asp:GridView id="MyDataGrid"

to

asp: GridView id="nothing really"

And it behaved the same.  It's as if the MyDataGrid binding in the C## inline script isn't being recognized by the ASP:GridView.

 I also tried explicitly setting DataSourceID="myset" (the variable from the script) and DataSourceID="MyDataGrid", and neither of those worked.  At least they threw errors, though.

I'm probably missing something simple about how to bind my asp control to the control of the same name in the script.
0
 
Bob LearnedCommented:
Set the GridView's AutoGenerateColumns property to True.  DataSourceID is used with an SqlDataSource, ObjectDataSource, XmlDataSource, etc.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.