快速业务通道

ASP.NET 2.0中执行数据库操作命令之二

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
r.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()方法一一读取每条记录。

执行结果:

ASP.NET 2.0中执行数据库操作命令之二

每次程序执行命令时,都要将相应的命令通过网络传递到数据库中,并在数据库进行执行,然后将结果返回到程序中,从而产生大量的网络通信流。我们可以使用ExecuteReader()方法同时执行多条SELECT语句查询减少重复的数据传递。

下面的实例是使用ExecuteReader()方法同时查询三个表中的数据,并将返回的三个结果集显示在页面上。

范例程序代码如下:

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   SqlCommand cmd = con.CreateCommand();
09   cmd.CommandText = "SELECT TOP 3 ProductID,ProductName
10   FROM Products ORDER BY ProductID;" +
11    "SELECT TOP 3 CustomerID,CompanyName
12    FROM Customers ORDER BY CustomerID;" +
13     "SELECT TOP 3 OrderID,CustomerID
14     FROM Orders ORDER BY OrderID;";
15   con.Open();
16   SqlDataReader reader = cmd.ExecuteReader();
17   StringBuilder htmStr=new StringBuilder("");
18   int i = 0;
19   do
20   {
21    htmStr.Append("结果集");
22    htmStr.Append(i.ToString());
23    htmStr.Append("<br>");
24    while (reader.Read())
25    {
26     htmStr.Append("reader[0]=" + reader[0]);
27     htmStr.Append("<br>");
28     htmStr.Append("reader[1]=" + reader[1]);
29     htmStr.Append("<br><br>");
30    }
31    htmStr.Append("<hr>");
32    i++;
33   } while (reader.NextResult());
34   reader.Close();
35   con.Close();
36   HtmlContent.Text = htmStr.ToString();
37  }
38 }

程序代码说明:在上述语法范例的程序代码中,第9行到第14中定义了3个查询语句,各语句之间用分号进行间隔。第16行调用ExecuteReader()方法,并返回SqlDataReader对象,并且对三条不同

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号