end dotnetpagerecordscount;
--**************************************************************************************
end dotnot;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------![]()
以下是在.net中调用oracle分页存储过程的步骤。(vb.net)
在.net调用返回记录集的存储过程,需要用到datareader,但是datareader不支持在datagrid中的分页,因此需要利用datagrid
自定义分页功能。
protected withevents datagrid1 as system.web.ui.webcontrols.datagrid
dim conn as new oracleclient.oracleconnection()
dim cmd as new oracleclient.oraclecommand()
dim dr as oracleclient.oracledatareader
private sub gridbind(byval pindex as integer, byval psql as string, optional byval psize as integer = 10)
conn.connectionstring = "password=gzdlgis;user id=gzdlgis;data source=gzgis"
cmd.connection = conn
cmd.commandtype = commandtype.storedprocedure
conn.open()
'------------------------------------------------------------------------------------
cmd.commandtext = "dotnot.dotnetpagerecordscount"
'------------------------------------------------------------------------------------
cmd.parameters.add("psqlcount", oracletype.varchar).value = psql
cmd.parameters.add("prcount", oracletype.number).direction = parameterdirection.output
cmd.executenonquery()
me.datagrid1.allowpaging = true
me.datagrid1.allowcustompaging = true
me.datagrid1.pagesize = psize
me.datagrid1.virtualitemcount = cmd.parameters("prcount").value
cmd.parameters.clear()
'------------------------------------------------------------------------------------
cmd.commandtext = "dotnot.dotnetpagination"
'------------------------------------------------------------------------------------
cmd.parameters.add("pindex", data.oracleclient.oracletype.number).value = pindex
cmd.parameters.add("psql", data.oracleclient.oracletype.varchar).value = psql '"select rownum rn,t.* from cd_ssxl t"
cmd.parameters.add("psize", data.oracleclient.oracletype.number).value = psize
cmd.parameters.add("v_cur", data.oracleclient.oracletype.cursor).direction = parameterdirection.output
cmd.parameters.add("pcount", data.oracleclient.oracletype.number).direction = parameterdirection.output
dr = cmd.executereader()
me.datagrid1.datasource = dr
me.datagrid1.databind()
dr.close()
conn.close()
response.write("总计页数 " & cmd.parameters("pcount").value)
end sub
----------------------------------------------------------------------------------------------------------------------------------------------------------------![]()
private sub page_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
if not page.ispostback then
dim psql as string = "select rownum rn,t.* from cd_ssxl t"
gridbind(0, psql, 20)
end if
end sub