命令对象SqlCommand(三)执行命令,返回多个结果

对于期望返回多行和多列的查询,应该使用命令的ExecuteReader()方法.这方法返回一个数据读取器,它是SqlDataReader类的一个实例。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace CommandReader
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection conn = new SqlConnection(@"Data Source=PC2012032219VBB;Initial Catalog=Northwind;Integrated Security=True");
            string sql = @"select firstname,lastname from employees";
            SqlCommand cmd = new SqlCommand(sql,conn);
            try
            {
                conn.Open();
                SqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    Console.WriteLine("Employee name:{0} {1}", rdr.GetValue(0), rdr.GetValue(1));
                }
            }
            catch (SqlException ex)
            {
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                conn.Close();
                Console.WriteLine("Connection Closed.");
            }
            Console.ReadKey();
        }
    }
}

SqlDataReader对象拥有Read和GetValue方法,前者依次提取每一行,后者获取行中一列的值。检索某个值所在的列通过整型参数指定,该参数表示列的索引。注意,GetValue使用基于0的索引,所以第一列的索引是0,第二列的索引是1,依此类推。

posted on 2012-07-17 22:58  流星落  阅读(905)  评论(0编辑  收藏  举报

导航