2008-10-24 2 views
2

У нас есть процедура в Oracle с выходным параметром SYS_REFCURSOR, который возвращает данные, которые мы хотим привязать к элементу управления GridView ASP.NET. Я видел это раньше, но я не могу найти исходную ссылку, которую я использовал для решения проблемы.Связывание 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

Try что-то вроде: (не указано, на каком языке)

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, просто установите DataSource = RtnTable GridView и вызовите 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() 
Смежные вопросы