sql NextResult()多个结果集

转自  http://blog.csdn.net/limlimlim/article/details/8626898

注意:当SQL语句中出现两条Select语句,例如:string sql = "select * from Employees;select * from TblClass";
可以用SqlDataReader的NextResult()来接收多个结果集
使用
do
{
}
while(reader.NextResult())

static void Main(string[] args)
        {

string constr = "Data Source=zxtiger;Initial Catalog=itcastcn;Integrated Security=True";
            using (SqlConnection con = new SqlConnection(constr))
            {
                string sql = "select * from Employees;select * from TblClass";
                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    con.Open();
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        do
                        {
                            if (reader.HasRows)
                            {
                                while (reader.Read())
                                {
                                    //循环列
                                    for (int i = 0; i < reader.FieldCount; i++)
                                    {

//根据索引,获取列名
                                        //reader.GetName(i);
                                        //获取当前列的数据类型
                                        string dbType = reader.GetDataTypeName(i);
                                        switch (dbType)
                                        {
                                            case "varchar":
                                            case "nvarchar":
                                            case "char":
                                            case "nchar":
                                                Console.Write(reader.GetString(i) + "\t");
                                                break;
                                            case "int":
                                                Console.Write(reader.GetInt32(i) + "\t");
                                                break;
                                        }
                                    }
                                    Console.WriteLine();
                                }
                            }
                        } while (reader.NextResult()); //当多个结果集的时候可以调用NextResult

}
                }
            }
            Console.WriteLine("ok");
            Console.ReadKey();
        }

时间: 2024-10-06 07:34:17

sql NextResult()多个结果集的相关文章

关于hibernate的session.createSQLQuery(sql)直接调用底层SQL后,返回结果集的问题

数据库中有如下信息name,sex张三.男李四.女通过Hibernate的  createSQLQuery 可以直接调用底层SQL语句如下:List list = (List)getHibernateTemplate().execute(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException,SQLException { Query query = sessio

SQL语句执行与结果集的获取

title: SQL语句执行与结果集的获取 tags: [OLEDB, 数据库编程, VC++, 数据库] date: 2018-01-28 09:22:10 categories: windows 数据库编程 keywords: OLEDB, 数据库编程, VC++, 数据库,执行SQL, 获取结果集 --- 上次说到命令对象是用来执行SQL语句的.数据源在执行完SQL语句后会返回一个结果集对象,将SQL执行的结果返回到结果集对象中,应用程序在执行完SQL语句后,解析结果集对象中的结果,得到具

在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群

需要说明的是我们搭建的SQL Server故障转移集群(SQL Server Failover Cluster)是可用性集群,而不是负载均衡集群,其目的是为了保证服务的连续性和可用性,而不是为了提高服务的性能. SQL Server始终在负载均衡集群方面都缺少自己的产品,多由第三方厂家提供,但SQL Server故障转移集群却由来已久,在SQL Server 2012还提供了一个可用性组(AlwaysOn High Availability Groups)的新特性,我们知道微软的故障转移集群(W

Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1

第一篇:官方文档的处理方法,摘自官方 在迁移原先用JDBC/SQL实现的系统,难免需要采用hibernat native sql支持. 1.使用SQLQuery hibernate对原生SQL查询执行的控制是通过SQLQuery接口进行的. Session.createSQLQuery(); 1.1标量查询 最基本的SQL查询就是获得一个标量(数值)的列表. sess.createSQLQuery("SELECT * FROM CATS").list(); sess.createSQL

多条SQL语句对查询结果集的垂直合并

首先我们先看一个需求 你有一个表用户表A 和一个用户详情表B 和一个销售单表C A---->B 一对多关系   A---->C一对多关系 如果你select A  join B on(B和A的外键) 查询出2条记录结果集 如果你select A  join C on(C和A的外键) 查询出3条记录结果集 那你 如果你select A  join B on(B和A的外键)  join C on(C和A的外键) 查询出2*3=6条记录结果集 这个时候 如果select语句中有聚合函数(sum co

sql server中查询结果集顺序问题

因为优化器可能会选择并行处理,或者在多文件情况下不按“期待”顺序扫描数据,所以无法保证数据的顺序.唯一能确保顺序的只有order by. 并行处理的过程导致顺序不一致,单核上不存在并行,而双核,可能使用并行的机会及其少,多核的服务器上结果集顺序每次都可能不同. (转自 http://bbs.csdn.net/topics/390756833 不同网友观点)

SQL 合并两个结果集 一个倒序,一个正序

要求状态正常的按end_time 升序排, 后面跟着 过期的 数据,按end_time 倒序排 select * from (SELECT * FROM table where status='正常' order by end_time asc) a union all select * from (SELECT *  FROM table where status='到期' order by end_time desc)  b 必须外面包一层,直接两个结果集 union 发现正常的在上面,到期

SQL中合并查询结果集

最近遇到点棘手的问题,大致如下: 1.数据局格式: 企业名称 排口名称 监测时间  监测因子 a b c    pH值 a b c   氨氮 a b c    化学需氧量(COD) 企业名称.排口名称数据都一样,需求是把企业名称列相同的数据显示一行,开始觉得很简单,做着做着觉得拼接数据太烦,然后就想能不能用sql操作. 纠结了小半天没有写出一个适合的sql,然后去百度了(谷歌最近大姨妈了,上不去,也没研究咋回事),然后找到了N多种方案,最后找到一个方案.写sql函数, sql函数的语法 大致 这

oracle 存储过程执行可输入sql语句并返回结果集

1.建立测试表: create table AAA ( aa NVARCHAR2(100), bb NVARCHAR2(100), cc NVARCHAR2(100), dd NVARCHAR2(100) ) 并导入测试数据insert into aaa values('1','1','1','1'); 2.测试可行性: DECLARE v_cursor NUMBER; v_stat NUMBER; aa VARCHAR(100); bb VARCHAR(100); cc VARCHAR(100