您的位置:首页 > 数据库 > Oracle

Oracle:Oracle分页储存过程的实现

2013-04-10 16:52 435 查看
本示例采用控制台应用测试效果:

View Code

int p_curPage = 1;
int p_pageSize = 10;
OracleConnection conn = new OracleConnection(@"Data Source=服务器;User Id=用户名; Password=密码; Unicode=True");
OracleCommand cmd = new OracleCommand("Vic_FY.GetDataByPage", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("p_tableName", OracleType.VarChar).Value = "xm_xm";
cmd.Parameters.Add("p_fields", OracleType.VarChar).Value = "mc,bm";
cmd.Parameters.Add("p_filter", OracleType.VarChar).Value = "";
cmd.Parameters.Add("p_sort", OracleType.VarChar).Value = "mc";
cmd.Parameters.Add("p_curPage", OracleType.Number).Value = p_curPage;
cmd.Parameters.Add("p_pageSize", OracleType.Number).Value = p_pageSize;
cmd.Parameters.Add("p_cursor", OracleType.Cursor).Direction = ParameterDirection.Output;
cmd.Parameters.Add("p_totalRecords", OracleType.Number).Direction = ParameterDirection.Output;
conn.Open();
OracleDataReader dr = cmd.ExecuteReader();
for (int i = 0; i < dr.FieldCount; i++) {
Console.Write(dr.GetName(i).PadLeft(10));
}
Console.WriteLine();
Console.WriteLine("-------------------------------------------");
while (dr.Read()) {
for (int i = 0; i < dr.FieldCount; i++) {
Console.Write(dr[i].ToString().PadLeft(10));
}
Console.WriteLine();
}
Console.WriteLine("-------------------------------------------");
Console.WriteLine("当前第 "+p_curPage+" 页 | 每页 "+p_pageSize+" 条 | 共 "+cmd.Parameters["p_totalRecords"].Value.ToString()+" 条记录");

conn.Close();
Console.ReadKey();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: