通过存储过程返回结果集
发布时间:2020-12-12 14:50:46 所属栏目:MsSql教程 来源:网络整理
导读:? 前台页面放置两个Datagrid:gridMain和gridMain2,通过一个存储过程返回两个结果集,绑定到Datagrid中 1.Oracle返回结果集 (1)调用方法绑定Datagrid ExecProcMgr manager = new ExecProcMgr();manager.ZQDZ_UNDOREAD(gridMain,gridMain2); (2)放置方法
?
(1)调用方法绑定Datagrid ExecProcMgr manager = new ExecProcMgr(); manager.ZQDZ_UNDOREAD(gridMain,gridMain2); (2)放置方法的类 引用System.Data.OracleClient.dll using System.Collections; using System.Data.OracleClient;
public class ExecProcMgr { private string _zbbh; private string _zbmc; private string _dwbh; private string _smsj; public string ZBBH { get { return _zbbh; } set { _zbbh = value; } } public string ZBMC { get { return _zbmc; } set { _zbmc = value; } } public string DWBH { get { return _dwbh; } set { _dwbh = value; } } public string SMSJ { get { return _smsj; } set { _smsj = value; } } public void ZQDZ_UNDOREAD(DataGrid dataGrid1,DataGrid dataGrid2) { //string constr = "Provider=MSDAORA.1;Data Source=zqorcl;Persist Security Info=True;User ID=lc029999;Password=htscwyj;Unicode=True"; string constr = "Data Source=zqorcl;User ID=lc;Password=aaaaaa"; OracleConnection con = new OracleConnection(); con.ConnectionString = constr; con.Open(); //OracleTransaction trans = con.BeginTransaction(); OracleCommand cmd = con.CreateCommand(); //cmd.Transaction = trans; cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = "ZQDZ_test";//存储过程名称 //存储过程参数设置 System.Data.OracleClient.OracleParameter p; p = new OracleParameter("userid",System.Data.OracleClient.OracleType.VarChar,20); cmd.Parameters.Add(p); p.Direction = System.Data.ParameterDirection.Input; p.Value = "zzx"; p = new OracleParameter("re_cursor1",System.Data.OracleClient.OracleType.Cursor); cmd.Parameters.Add(p); p.Direction = System.Data.ParameterDirection.Output;//设置为Output p = new OracleParameter("re_cursor2",System.Data.OracleClient.OracleType.Cursor); cmd.Parameters.Add(p); p.Direction = System.Data.ParameterDirection.Output;//设置为Output ArrayList list1 = new ArrayList(); ArrayList list2 = new ArrayList(); IDataReader reader = null; try { reader = cmd.ExecuteReader(); while (reader.Read()) { ExecProcMgr execProc = new ExecProcMgr(); execProc.ZBBH = Convert.ToString(reader.GetValue(0)); execProc.ZBMC = Convert.ToString(reader.GetValue(1)); execProc.DWBH = Convert.ToString(reader.GetValue(2)); execProc.SMSJ = Convert.ToString(reader.GetValue(3)); list1.Add(execProc); } reader.NextResult(); while (reader.Read()) { ExecProcMgr execProc = new ExecProcMgr(); execProc.ZBBH = Convert.ToString(reader.GetValue(0)); execProc.ZBMC = Convert.ToString(reader.GetValue(1)); execProc.DWBH = Convert.ToString(reader.GetValue(2)); execProc.SMSJ = Convert.ToString(reader.GetValue(3)); list2.Add(execProc); } dataGrid1.DataSource = list1; dataGrid1.DataBind(); dataGrid2.DataSource = list2; dataGrid2.DataBind(); //trans.Commit(); } catch (Exception ex) { throw ex; } finally { if (reader != null) reader.Close(); } } }
CREATE OR REPLACE Procedure ZQDZ_test ( userid varchar2,re_cursor1 OUT sys_refcursor,re_cursor2 OUT sys_refcursor ) is vSql varchar2(3000); begin vSql:='SELECT distinct ZWPZK_PZBH,ZWPZFL_FLBH,ZWPZFL_KMBH,ZWPZK_PZRQ FROM ZWPZK2011,ZWPZFL2011 WHERE ZWPZK_DWBH=ZWPZFL_DWBH AND ZWPZK_PZNM=ZWPZFL_PZNM AND ZWPZFL_DWBH=''010101'''; open re_cursor1 for vSql; vSql:='SELECT distinct ZWPZK_PZBH,ZWPZFL2011 WHERE ZWPZK_DWBH=ZWPZFL_DWBH AND ZWPZK_PZNM=ZWPZFL_PZNM AND ZWPZFL_DWBH=''010101'' AND ZWPZFL_FLNM=''1'''; open re_cursor2 for vSql; end ZQDZ_test;
2.SQL Server返回结果集 (1) public void ZQDZ_SqlServer(DataGrid dataGrid1,DataGrid dataGrid2) { string constr = "Data Source=(local); Initial Catalog=Text;User ID=sa;Password=sa; Persist Security Info=False"; SqlConnection con = new SqlConnection(); con.ConnectionString = constr; con.Open(); //OracleTransaction trans = con.BeginTransaction(); SqlCommand cmd = con.CreateCommand(); //cmd.Transaction = trans; cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = "ZQDZ_test"; SqlParameter p; p = new SqlParameter("@userid",System.Data.SqlDbType.VarChar,20); cmd.Parameters.Add(p); p.Direction = System.Data.ParameterDirection.Input; p.Value = "zzx"; ArrayList list1 = new ArrayList(); ArrayList list2 = new ArrayList(); IDataReader reader = null; try { reader = cmd.ExecuteReader(); while (reader.Read()) { ExecProcMgr execProc = new ExecProcMgr(); execProc.ZBBH = Convert.ToString(reader.GetValue(0)); execProc.ZBMC = Convert.ToString(reader.GetValue(1)); execProc.DWBH = Convert.ToString(reader.GetValue(2)); execProc.SMSJ = Convert.ToString(reader.GetValue(3)); list1.Add(execProc); } reader.NextResult(); while (reader.Read()) { ExecProcMgr execProc = new ExecProcMgr(); execProc.ZBBH = Convert.ToString(reader.GetValue(0)); execProc.ZBMC = Convert.ToString(reader.GetValue(1)); execProc.DWBH = Convert.ToString(reader.GetValue(2)); execProc.SMSJ = Convert.ToString(reader.GetValue(3)); list2.Add(execProc); } dataGrid1.DataSource = list1; dataGrid1.DataBind(); dataGrid2.DataSource = list2; dataGrid2.DataBind(); //trans.Commit(); } catch (Exception ex) { throw ex; } finally { con.Close(); if (reader != null) reader.Close(); } }
create procedure ZQDZ_test ( @userid varchar(20) ) as begin declare @vSql varchar(1000) set @vSql=' select age,name,salary,department from employees' exec(@vSql) set @vSql=' select popid,popname,FlId,fconectid from tresj' exec(@vSql) end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |