ADO.NET的ExecuteReader()方法(标准)
来源:互联网 发布:在淘宝网能买汽车吗 编辑:程序博客网 时间:2024/05/22 03:31
ExecuteReader() 方法
解释1:将SQL语句发送到指定连接 生成一个SqlDataReader对象
解释2:当ExecuteReader()执行后返回一个SqlDataReader对象
两种解释实际上都在说明些方法就是给SqlDataReader对象一个可以访问查询到的结果的渠道。
程序执行分析
1、首先需要new一个SqlDataReader对象。接收ExecuteReader()执行后返回的SqlDataReader对象。
2、SqlDataReader的HasRows属性可以判断SqlDataReader中是否有(一行或多行)数据,返回bool值,有数据时为true,程序向下执行,开始进入读取数据环节。
3、SqlDataReader的Read方法可以使SqlDataReader前进到下一条记录,同样返回bool值,当下一条无记录返回false,则表示记录读取完毕;当下一条有数据时为true,将读取到的数据(当前的一条记录)暂存在SqlDataReader中。
4、SqlDataReader的一系列get方法可以获取SqlDataReader中不同类型的值,保存到指定的变量中。
注:get方法参数为列数,即第几列。
还有一点很重要,DataReader必须保证SqlConnection处于连接状态。
练习:
从SQL Server数据表Student中读取所有记录打印到屏幕:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 string constr = @"server=.\SQLEXPRESS;database=MyDataBase;uid=sa;pwd=sa"; 6 //string constr = @"server=.\SQLEXPRESS;database=MyDataBase;Integrated Security=True"; 7 8 9 10 using (SqlConnection sqlconn = new SqlConnection(constr))11 {12 string cmdstr = @"select * from Student";13 using (SqlCommand cmd = new SqlCommand(cmdstr, sqlconn))14 {15 if (sqlconn.State == ConnectionState.Closed)16 {17 sqlconn.Open();18 }19 SqlDataReader reader= cmd.ExecuteReader();20 21 if (reader.HasRows)//HasRows判断reader中是否有数据22 {23 while(reader.Read()) //Read()方法读取下一条记录,如果没有下一条,返回false,则表示读取完成24 {25 int id = reader.GetInt32(0);26 string name = reader.GetString(1);27 string gender = reader.GetBoolean(3) == true ? "男" : "女"; //运用了三元表达式28 int age = reader.GetInt32(2);29 30 Console.WriteLine("\t{0}\t{1}\t{2}\t{3}\r\n",id,name,gender,age);31 }32 33 Console.ReadKey();34 }35 36 }37 38 }39 }40 }
1 //reader的第二种输出(遍历)方式,使用索引,效率会稍微低点,因为通过索引得到的为对象(object) 2 //while (reader.Read()) 3 //{ 4 5 // Console.WriteLine("\t{0}\t{1}\t{2}\t{3}\r\n", reader[0], reader[1], reader[2], reader[3]); 6 //} 7 //第三种,也是索引 ,方括号内指定数据库中的列名 8 //while (reader.Read()) 9 //{10 11 // Console.WriteLine("\t{0}\t{1}\t{2}\t{3}\r\n", reader["sId"], reader["sAge"], reader["sName"], ((bool)reader["sGender"] == true ? "男" : "女"));12 //}
//第二种输出方式,使用索引,效率会稍微低点,因为通过索引得到的为对象(object)
//while (reader.Read())
//{
// Console.WriteLine("\t{0}\t{1}\t{2}\t{3}\r\n", reader[0], reader[1], reader[2], reader[3]);
//}
//第三种,也是索引 ,方括号内指定数据库中的列名
//while (reader.Read())
//{
// Console.WriteLine("\t{0}\t{1}\t{2}\t{3}\r\n", reader["sId"], reader["sAge"], reader["sName"], ((bool)reader["sGender"] == true ? "男" : "女"));
//}
- ADO.NET的ExecuteReader()方法(标准)
- 复习ADO.NET的ExecuteReader()方法
- ADO.NET中的ExecuteNonQuery()方法、ExecuteReader()方法、ExecuteScalar()方法使用小实例
- ADO.Net ExecuteScalar、ExecuteReader不只是我想的这样的用处。
- ADO.NET常用的方法
- 一个疑问 sqlcommand对象的ExecuteReader方法
- ExecuteNonQuery(),ExecuteScalar(),ExecuteReader方法的区别
- ADO.NET的DataAdapter对象的方法
- ADO.NET中Command的三个方法
- ExecuteNonQuery方法和ExecuteScalar方法和ExecuteReader方法的区别
- ExecuteNonQuery方法、ExecuteScalar方法、ExecuteReader方法的区别
- ADO.net事务处理方法。
- 指定命令的行为(ExecuteReader())
- ExecuteReader方法中CommandBehavior.CloseConnection的一些注意事项
- ExecuteReader方法中CommandBehavior.CloseConnection的一些注意事项
- ExecuteReader方法中CommandBehavior.CloseConnection的一些注意事项
- C#中ExecuteReader()、ExecuteNonQuery()、ExecuteScalar()方法的作用
- 关于ExecuteReader()获得参数值和返回值的方法
- CSDN代码片高亮显示,让你的博客更加靓丽~~
- 163
- 164
- 165
- 166
- ADO.NET的ExecuteReader()方法(标准)
- 167
- 168
- 169
- 8.7
- 关于验证码
- logstash配置文件多输入和多输出
- Graph Valid Tree
- BBC推自家新字体:小屏幕更易读、还省下了授权费