2008-10-24 15 views
2

Nous avons une procédure dans Oracle avec un paramètre de sortie SYS_REFCURSOR qui renvoie les données que nous voulons lier à un contrôle GridView ASP.NET. J'ai vu cela déjà fait mais je ne trouve pas la référence originale que j'ai utilisée pour résoudre le problème.Liaison d'ASP.NET GridView à Oracle SYS_REFCURSOR

Voici ce que la procédure ressemble à:

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

Et pour l'instant le GridView est seulement bare-bones:

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

Répondre

1

Essayez quelque chose comme: (n'a pas précisé quelle langue)

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

Ceci est la bonne solution. Pour lier ces données à GridView, il suffit de définir DataSource = RtnTable de GridView et d'appeler DataBind(). – jamminjulia

-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()