command对象与DataReader对象
command对象
DataReader对象
command对象的ExecuteReader方法
DataReader对象的操作
read方法
DataReader对象.Read()
效果
焦点转移到下一条数据
对于首次让datareader对象执行Read方法的时候
焦点是在第一行的数据的
获取当前焦点行的指定列所对应的值
DataReader对象[列名称]
例子
焦点行是第五行,指定列是attack列
所以通过
DataReader[“attack”] 拿到的值就会是94
Read方法的返回值
bool res = DataReader对象.Read()
如果,下一个焦点行是存在的
返回值是true
访问所有的数据行
我们可以通过循环的方式,把所有的数据行都访问一遍
while(DataReader对象.Read()){
对当前焦点行的操做;
}
参考代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
namespace ConsoleApplication13
{
class Program
{
static void Main(string[] args)
{
// 连接字符串
String connStr = "Data Source=.;Initial Catalog=dbok;Integrated Security=True";
// 生成连接对象
SqlConnection conn = new SqlConnection(connStr);
// 打开连接对象
conn.Open();
// 主要的操做
String sql = "select * from sanguo";
// 实例化一个执法者
SqlCommand cmd = new SqlCommand(sql, conn);
// 执法者调用方法获得datareader对象
SqlDataReader reader=cmd.ExecuteReader();
// 通过datareader对象的自身的方法,返回数据
Console.WriteLine(reader.Read());
while(reader.Read()){
// 当前焦点的操做
String con = String.Format("姓名{0},功击力{1},国家{2}",reader["name"],reader["attack"],reader["country"]);
Console.WriteLine(con);
}
Console.WriteLine("数据获取完毕");
// 关闭连接对象
conn.Close();
// 暂停
Console.ReadKey();
}
}
}