2008-10-24 56 views
2

我们在Oracle中,返回我们要绑定到ASP.NET GridView控件的数据SYS_REFCURSOR输出参数的过程。我以前见过这个,但是我找不到我用来解决问题的原始参考。绑定ASP.NET的GridView到Oracle SYS_REFCURSOR

下面是该过程的样子:

create or replace PROCEDURE GETSOMEDATA 
(
    P_Data OUT SYS_REFCURSOR 
) 
AS 
BEGIN 
    OPEN P_Data FOR SELECT * FROM SOMETABLE; 
END GETSOMEDATA; 

而对于现在的GridView的只是裸机:

<asp:GridView ID="grdData" runat="server" AutoGenerateColumns="true"></asp:GridView> 

回答

1

尝试类似:(没有指定哪一种语言)

Public Function GetSomeData() as DataTable 
     Dim OrclConn as New OracleConnection("Connectionstring") 
     Dim OrclCmd as New Oraclecommand("GETSOMEDATA", OrclConn) 
     OrclCmd.CommandType = CommandType.StoredProcedure 
     OrclCmd.Parameters.Add("P_Data", OracleType.Cursor).Direction = ParameterDirection.Output 'Or ParameterDirection.ReturnValue 

     Dim OrclDA as New OracleDataAdapter(OrclCmd) 
     Dim RtnTable as DataTable 
     OrclConn.Open 
     OrclDA.Fill(RtnTable) 
     OrclConn.Close 

     Return RtnTable 
    End Function 
+0

这是正确的解决方案。要将此数据绑定到GridView,只需设置GridView的DataSource = RtnTable并调用DataBind()。 – jamminjulia 2008-11-03 19:27:45

-1
Dim oracon As New OracleConnection("User Id=developer;Password=developer;Data Source=orcl;") 
     Dim ds As New Data.DataSet 
     Dim qry As String 
     oracon.Open() 
     qry = "select * from Employee" 
     Dim adp As New OracleDataAdapter(qry, oracon) 
     adp.Fill(ds) 
     GridView1.DataSource = ds 
     GridView1.DataBind() 
     oracon.Close()