¡¡¡¡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"] + "
");
17 ¡¡¡¡¡¡HTMLStr.Append("CompanyName£º" + reader["CompanyName"] + "
");
18 ¡¡¡¡¡¡HTMLStr.Append("ContactName£º" + reader.GetString(2) + "
");
19 ¡¡¡¡¡¡HTMLStr.Append("Address£º" + reader.GetString(3) + "
");
20 ¡¡¡¡¡¡HTMLStr.Append("
");
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()·½·¨Ò»Ò»¶ÁȡÿÌõ¼Ç¼¡£
¡¡¡¡Ö´Ðнá¹û£º

¡¡¡¡Ã¿´Î³ÌÐòÖ´ÐÐÃüÁîʱ£¬¶¼Òª½«ÏàÓ¦µÄÃüÁîͨ¹ýÍøÂç´«µÝµ½Êý¾Ý¿âÖУ¬²¢ÔÚÊý¾Ý¿â½øÐÐÖ´ÐУ¬È»ºó½«½á¹û·µ»Øµ½³ÌÐòÖУ¬´Ó¶ø²úÉú´óÁ¿µÄÍøÂçͨÐÅÁ÷¡£ÎÒÃÇ¿ÉÒÔʹÓÃ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("
");
24 ¡¡¡¡¡¡while (reader.Read())
25 ¡¡¡¡¡¡{
26 ¡¡¡¡¡¡¡¡htmStr.Append("reader[0]=" + reader[0]);
27 ¡¡¡¡¡¡¡¡htmStr.Append("
");
28 ¡¡¡¡¡¡¡¡htmStr.Append("reader[1]=" + reader[1]);
29 ¡¡¡¡¡¡¡¡htmStr.Append("
");
30 ¡¡¡¡¡¡}
31 ¡¡¡¡¡¡htmStr.Append("
");
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¶ÔÏ󣬲¢ÇÒ¶ÔÈýÌõ²»Í¬µÄSELECTÓï¾ä¸÷·µ»ØÒ»¸ö½á¹û¼¯¡£Òª¶ÁÈ¡µÚÒ»¸ö½á¹û¼¯µÄ»°£¬¿ÉÒÔÓÃSqlDataReader¶ÔÏóµÄReader()·½·¨¡£Reader()·½·¨ÔÚûÓÐÆäËûµÄ¿É¶ÁÐÐʱ½«·µ»ØÒ»¸öfalseÖµ¡£µ±Ò»¸ö½á¹û¼¯µÄËùÓмǼ¶¼¶ÁÈ¡Íê±Ïºó£¬¿ÉÒÔµ÷ÓÃSqlDataReader¶ÔÏóµÄNextResult()·½·¨£¬È»ºóÔÚ¶ÁÈ¡ÏÂÒ»¸ö½á¹û¼¯£¬ÔÚûÓÐÆäËûµÄ½á¹û¼¯Ê±£¬Ò²·µ»ØÒ»¸öfalseÖµ¡£
¡¡¡¡Ìáʾ£ºÍâÑ»·do¡while²âÊÔ½áβµÄreader. NextResult()µÄ·µ»ØÖµ¡£ÓÉÓÚdo¡whileÑ»·Ä©Î²¼ì²âÕâ¸öÌõ¼þ£¬ÕâÑù¾Í±£Ö¤ÁËdo¡whileÑ»·ÖÁÉÙÖ´ÐÐÒ»´Î¡£Ö®ËùÒÔÔÚĩβ²Åµ÷ÓÃNextResult()·½·¨£¬ÊÇÒòΪÕâÑù¿ÉÒÔÊ×ÏȰÑSqlDataReader¶ÔÏóÒÆµ½ÏÂÒ»¸ö½á¹û¼¯£¬È»ºó²Å·µ»Ø±íʾÊÇ·ñ»¹ÓÐÏÂÒ»¸ö½á¹û¼¯µÄ²¼¶û½á¹û¡£Èç¹ûʹÓÃwhileÑ»·ÖУ¬ÔòÓпÉÄÜÖ±½ÓÌø¹ýµÚÒ»¸ö½á¹û¼¯£¬´Ó¶ø²úÉú´íÎó¡£

¡¡¡¡ÓÃExecuteScalar()·½·¨Ö´ÐÐSELECTÓï¾ä
¡¡¡¡ÓÃExecuteScalar()·½·¨Ö´ÐÐSELECTÓï¾ä£¬·µ»Øµ¥¸öÖµ£¬²¢ÇÒºöÂÔÆäËûµÄÈκζÁÈ¡µÄ½á¹û¡£ExecuteScalar()·½·¨·µ»ØµÄ½á¹ûÊÇÒ»¸öobject¶ÔÏó¡£ExecuteScalar()Ö÷ÒªÊÇÓÃÀ´Ö´ÐÐSELECTÓï¾ä£¬»òÕßÖ´ÐаüÀ¨¾ÛºÏº¯ÊýµÄSQLÓï¾ä¡£
¡¡¡¡ÏÂÃæÎÒÃǽ«Ê¹ÓÃÈçϵijÌÐò¶ÁÈ¡Products±íÖеļǼÌõÊý£¬²¢ÇÒÔÚÏàÓ¦µÄ²éѯÓï¾äÖÐʹÓÃCOUNT()¾ÛºÏº¯Êý¡£
¡¡¡¡·¶Àý³ÌÐò´úÂëÈçÏ£º
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 COUNT(*) FROM Products";
10 ¡¡¡¡con.Open();
11 ¡¡¡¡int returnValue = (int)cmd.ExecuteScalar();
12 ¡¡¡¡HTMLContent.Text = "Products±íÖй²ÓÐ" + returnValue.ToString()+"Ìõ¼Ç¼";
13 ¡¡}
14 }
¡¡¡¡³ÌÐò´úÂë˵Ã÷£ºÔÚÉÏÊöÓï·¨·¶ÀýµÄ³ÌÐò´úÂëÖУ¬µÚ9Ðм´Îª²éѯProducts±íÖеļǼÌõÊýµÄSQLÓï¾ä¡£µÚ11ÐдúÂëÓÃExecuteScalar()·½·¨Ö´ÐÐSELECTÓï¾ä¡£×¢Ò⣬ÓÉÓÚExecuteScalar()·½·¨µÄ½á¹ûΪobject¶ÔÏó£¬Òò´ËÎÒÃÇÒª½«Æä½øÐÐÇ¿ÖÆÀàÐÍת»»£¬ÔÙ¸³ÓèÏàÓ¦µÄ±äÁ¿¡£
¡¡¡¡Ö´Ðнá¹û£º


