前台页面放置两个Datagrid:gridMain和gridMain2,通过一个存储过程返回两个结果集,绑定到Datagrid中
1.Oracle返回结果集
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(); } } }
(3)存储过程ZQDZ_test
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(); } }
(2)存储过程ZQDZ_test
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。