SqlDataReader类
可以用SqlDataReader类对象从SQL Server数据库中读取行;用OleDbDataReader类对象从支持OLE DB的数据库中读行,如Oracle与Access;用OdbcDataReader类对象从支持ODBC的数据库中读取行。
DataReader对象允许你以向前的,只读的方式读取数据,有时候DataReader对象也称为消软管游标。DataReader对象采用了一种简化的数据读取方式,但是提高了性能的同时也牺牲了很多特性。例如在DataSet中支持的排序,分页等功能。这些功能将在以后的章节进行详细的介绍。
SqlDataReader的属性
| 属性 | 说明 |
| Depth | 其返回类型为int,取得表示当前行嵌入深度的值 |
| FieldCount | 其返回类型为int,取得当前行的列数 |
| IsColsed | 其返回类型为bool,取得一个布尔值,表示是否关闭数据读取 |
| RecordsAffected | 其返回类型为int, 取得执行SQL语句增加、修改或删除的行数。 |
SqlDataReader的方法
| 方法 | 说明 |
| Reader() | 其返回类型为bool,将数据阅读器移到结果集的下一行并读取该行。这个方法返回的布尔值表示结果集中是否有多行 |
| GetValue() | 其返回类型为object, 返回指定列的值 |
| GetValues() | 其返回类型为int,将当前行中所有列的值复制到指定对象数组。这个方法返回的int是数组元素的个数 |
| NextResult() | 其返回类型为bool,将数据阅读器移到结果集的下一行。这个方法返回的布尔值表示结果集中是否有多行 |
| Close() 关闭 | SqlDataReader 对象 |
| GetInt32(),GetChar(), GateDataTime(),Get×××() |
返回指定列的值,并且返回的类型为相应的数据类型。例如GetInt32()返回整型的数值。注意,如果你将返回值赋予一个类型不匹配的变量时,将会抛出一个InvalidCastException异常 |
用ExecuteReader()方法执行查询
下面是一个用ExecuteReader()方法执行SELECT语句的范例。这个方法用DataReader对象返回结果集,然后可以用此对象读取数据库返回的行。
范例程序代码如下:
| 01 public partial class _Default : System.Web.UI.Page 02 { 03 protected void Page_Load(object sender, EventArgs e) 04 { 05 string connectionString = 06 ConfigurationManager.ConnectionStrings["Northwind"].ConnectionString; 07 SqlConnection con = new SqlConnection(connectionString); 08 string sql = "SELECT top 5 CustomerID,CompanyName,ContactName,Address 09 FROM Customers"; 10 SqlCommand cmd = new SqlCommand(sql, con); 11 con.Open(); 12 SqlDataReader reader = cmd.ExecuteReader(); 13 StringBuilder htmlStr = new StringBuilder(""); 14 while (reader.Read()) 15 { 16 htmlStr.Append("CustomerID:" + reader["CustomerID"] + "<br>"); 17 htmlStr.Append("CompanyName:" + reader["CompanyName"] + "<br>"); 18 htmlStr.Append("ContactName:" + reader.GetString(2) + "<br>"); 19 htmlStr.Append("Address:" + reader.GetString(3) + "<br>"); 20 htmlStr.Append("<hr>"); 21 } 22 reader.Close(); 23 con.Close(); 24 HtmlContent.Text = htmlStr.ToString(); 25 } 26 } |
程序代码说明:在上述语法范例的程序代码中,第5到12行代码生成所要的对象并执行SELECT语句,从Customers表中读取前5条记录。cmd返回的结果集存放在reader对象中,然后你可以用Reader()方法读取reader对象的记录。这个方法在有另一个可读的行时返回布尔真值,否则返回布尔假值。可以从reader对象中读取一个记录的各个列值,只要在方括号中传入列名即可。如第16和17行所示,我们用reader[“CustomerID”]读取CustomerID列的各项内容。你也可以直接在方括号中传入数字值指定想要列的索引。如第18和19行代码所显示,由于我们在用SELECT进行数据查询的时,ContactName和Address分别位于第3和第4列,而相应的索引值则为2和3,所以我们可以用reader.GetString(2)和reader.GetString(3)读取ContactName和Address列的数据。如第14行代码所示,我们可以在While循环中用Reader()方法一一读取每条记录。
执行结果:
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
·Linux命令简介 (8871篇文章)
·数据库专栏 (4553篇文章)
·数据库处理专题 (7528篇文章)
·城域网专题 (6839篇文章)
·数据库安全技术专题 (11412篇文章)
·数据库安装与卸载 (9189篇文章)
·.NET移动与嵌入式技术 (5126篇文章)
·.NET开发手册 (4902篇文章)
·ASP.NET教程 (6902篇文章)
·Linux数据库宝典 (11765篇文章)
·数据库专栏 (4553篇文章)
·数据库处理专题 (7528篇文章)
·城域网专题 (6839篇文章)
·数据库安全技术专题 (11412篇文章)
·数据库安装与卸载 (9189篇文章)
·.NET移动与嵌入式技术 (5126篇文章)
·.NET开发手册 (4902篇文章)
·ASP.NET教程 (6902篇文章)
·Linux数据库宝典 (11765篇文章)
·asp.net 实现购物车详细代码 (9911次浏览)
·从零开始学ASP.NET(基础篇) (7785次浏览)
·ASP.NET 2.0中Gridview控件高级技巧 (6024次浏览)
·ASP.NET2.0连接SQL Server数据库详解 (3363次浏览)
·ASP.NET 2.0移动开发入门之基础 (1211次浏览)
·面试ASP.NET程序员的笔试题和机试题 (623次浏览)
·为Asp.net应用程序设置构建Web服务 (617次浏览)
·ASP.NET Web Matrix开发工具简介 (575次浏览)
·技巧:ASP.NET热点问题解答14个 (451次浏览)
·详细介绍ASP.NET状态保存方法 (396次浏览)
·从零开始学ASP.NET(基础篇) (7785次浏览)
·ASP.NET 2.0中Gridview控件高级技巧 (6024次浏览)
·ASP.NET2.0连接SQL Server数据库详解 (3363次浏览)
·ASP.NET 2.0移动开发入门之基础 (1211次浏览)
·面试ASP.NET程序员的笔试题和机试题 (623次浏览)
·为Asp.net应用程序设置构建Web服务 (617次浏览)
·ASP.NET Web Matrix开发工具简介 (575次浏览)
·技巧:ASP.NET热点问题解答14个 (451次浏览)
·详细介绍ASP.NET状态保存方法 (396次浏览)
·ASP.net中使用C++和J# 10-31
·Asp.net中实现单点登陆 10-31
·ASP.NET中的蝴蝶效应 10-31
·ASP.NET中的MVC模式应用 10-31
·Asp.net中操作EXCEL文件(C#) 10-31
·Asp.net中Treeview解决方案 10-31
·ASP.NET中NHibernate的最佳实践 10-31
·ASP.NET在VS2008与.NET FX 3.5中增强的功能 10-31
·ASP.NET应用程序性能优化 10-31
·ASP.NET应用程序的成员管理与安全 10-31
·Asp.net中实现单点登陆 10-31
·ASP.NET中的蝴蝶效应 10-31
·ASP.NET中的MVC模式应用 10-31
·Asp.net中操作EXCEL文件(C#) 10-31
·Asp.net中Treeview解决方案 10-31
·ASP.NET中NHibernate的最佳实践 10-31
·ASP.NET在VS2008与.NET FX 3.5中增强的功能 10-31
·ASP.NET应用程序性能优化 10-31
·ASP.NET应用程序的成员管理与安全 10-31
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容




