命令对象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,依此类推。