ExecutingCommands.cs
上传用户:lxycoco
上传日期:2022-07-21
资源大小:38457k
文件大小:6k
源码类别:

C#编程

开发平台:

Others

  1. using System;
  2. using System.Data;
  3. using System.Xml;
  4. using System.Data.SqlClient;
  5. using System.Data.OleDb;
  6. /// <summary>
  7. /// Corresponds to section titled 'Executing Commands' in Chapter 11
  8. /// </summary>
  9. public class ExecutingCommands
  10. {
  11. /// <summary>
  12. /// SimpleDataAccess - show SQL & Stored Procs
  13. /// </summary>
  14. public static void Main ( )
  15. {
  16. // The following is the database connection string
  17.                 string source = Login.Connection ;
  18. // First section of code - using a SQL statement to select records
  19. ExecuteSql ( source ) ;
  20. // Second section - calling a stored procedure
  21. ExecuteStoredProc ( source ) ;
  22. // Third - batch statements
  23. ExecuteBatch ( source ) ;
  24. // Fourth - Return XML from SqlServer...
  25. ExecuteXml ( source ) ;
  26. }
  27. public static void ExecuteSql ( string source )
  28. {
  29. // And this is the SQL statement that will be issued
  30. string select = "SELECT ContactName,CompanyName FROM Customers";
  31. try
  32. {
  33. // Connect to the database...
  34. using ( SqlConnection conn=new SqlConnection(source) )
  35. {
  36. // Open the database connection
  37. conn.Open ( ) ;
  38. // Create the SQL command...
  39. SqlCommand cmd = new SqlCommand ( select , conn ) ;
  40. // Construct the data reader
  41. using ( SqlDataReader reader = cmd.ExecuteReader ( ) )
  42. {
  43. // Output headings...
  44. Console.WriteLine ( "*** SqlProvider ***" ) ;
  45. Console.WriteLine ( "Output from direct SQL statement..." ) ;
  46. Console.WriteLine ( ) ;
  47. Console.WriteLine ( "CONTACT                        COMPANY" ) ;
  48. Console.WriteLine ( "---------------------------------------------------------------------" ) ;
  49. // And iterate through the data
  50. while ( reader.Read ( ) )
  51. {
  52. Console.WriteLine ( "{0,-30} {1}" , reader[0] , reader[1] ) ;
  53. }
  54. reader.Close ( ) ;
  55. }
  56. conn.Close ( ) ;
  57. }
  58. }
  59. catch ( Exception e )
  60. {
  61. Console.WriteLine ( e.ToString( ) ) ;
  62. }
  63. }
  64. public static void ExecuteStoredProc ( string source )
  65. {
  66. // Connect to the database...
  67. using ( SqlConnection conn = new SqlConnection(source) )
  68. {
  69. // Open the database connection
  70. conn.Open ( ) ;
  71. // Create the SQL command that links to a stored procedure
  72. SqlCommand cmd = new SqlCommand ( "CustOrderHist" , conn ) ;
  73. // Set the type to stored procedure
  74. cmd.CommandType = CommandType.StoredProcedure ;
  75. // And add the parameter to the stored proc...
  76. cmd.Parameters.Add ( "@CustomerID" , "QUICK" ) ;
  77. // Construct the data reader
  78. using ( SqlDataReader reader = cmd.ExecuteReader ( ) )
  79. {
  80. Console.WriteLine ( "" ) ;
  81. Console.WriteLine ( "*** SqlProvider ***" ) ;
  82. Console.WriteLine ( "Call NorthWind CustOrderHist stored proc for customer 'QUICK'..." ) ;
  83. Console.WriteLine ( ) ;
  84. Console.WriteLine ( "Product Name                       Quantity" ) ;
  85. Console.WriteLine ( "---------------------------------------------------------------------" ) ;
  86. // Iterate through the data
  87. while ( reader.Read ( ) )
  88. {
  89. Console.WriteLine ( "{0,-34} {1}" , reader[0] , reader[1] ) ;
  90. }
  91. reader.Close ( ) ;
  92. Console.WriteLine ( ) ;
  93. }
  94. // Close the connection
  95. conn.Close ( ) ;
  96. }
  97. }
  98. protected static void ExecuteFullTable ( string source ) 
  99. {
  100. // Connect to the database...
  101. using ( OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB;" + source) )
  102. {
  103. // Open the database connection
  104. conn.Open ( ) ;
  105. // Create the SQL command that links to a stored procedure
  106. OleDbCommand cmd = new OleDbCommand ( "Categories" , conn ) ;
  107. // Set the type to TableDirect
  108. cmd.CommandType = CommandType.TableDirect;
  109. // Construct the data reader
  110. using ( OleDbDataReader reader = cmd.ExecuteReader ( ) )
  111. {
  112. Console.WriteLine ( "" ) ;
  113. Console.WriteLine ( "*** OleDbProvider ***" ) ;
  114. Console.WriteLine ( "Listing all records in Categories table..." ) ;
  115. Console.WriteLine ( ) ;
  116. Console.WriteLine ( "ID  Name            Description" ) ;
  117. Console.WriteLine ( "---------------------------------------------------------------------" ) ;
  118. // Iterate through the data
  119. while ( reader.Read ( ) )
  120. {
  121. Console.WriteLine ( "{0,-3} {1,-15} {2}" , reader[0] , reader[1], reader[2] ) ;
  122. }
  123. reader.Close ( ) ;
  124. Console.WriteLine ( ) ;
  125. }
  126. // Close the connection
  127. conn.Close ( ) ;
  128. }
  129. }
  130. protected static void ExecuteBatch ( string source )
  131. {
  132. string select = "SELECT COUNT(*) FROM Customers;SELECT COUNT(*) FROM Products";
  133. // Connect to the database...
  134. using ( SqlConnection conn = new SqlConnection(source) )
  135. {
  136. // Open the database connection
  137. conn.Open ( ) ;
  138. // Create the SQL command...
  139. SqlCommand cmd = new SqlCommand ( select , conn ) ;
  140. // Construct the data reader
  141. using ( SqlDataReader reader = cmd.ExecuteReader ( ) )
  142. {
  143. // Output headings...
  144. Console.WriteLine ( "*** SqlProvider ***" ) ;
  145. Console.WriteLine ( "Output from batched SQL statements" ) ;
  146. Console.WriteLine ( ) ;
  147. int statement = 0 ;
  148. do
  149. {
  150. statement++ ;
  151. while ( reader.Read ( ) )
  152. {
  153. Console.WriteLine ( "Output from batch statement {0} is {1}" , statement , reader[0] ) ;
  154. }
  155. } while ( reader.NextResult ( ) ) ;
  156. reader.Close ( ) ;
  157. }
  158. conn.Close ( ) ;
  159. }
  160. }
  161. protected static void ExecuteXml ( string source )
  162. {
  163. string select = "SELECT ContactName,CompanyName FROM Customers FOR XML AUTO";
  164. using ( SqlConnection conn = new SqlConnection(source) )
  165. {
  166. // Open the database connection
  167. conn.Open ( ) ;
  168. // Create the SQL command...
  169. SqlCommand cmd = new SqlCommand ( select , conn ) ;
  170. // Construct an Xml Reader
  171. XmlReader xr = cmd.ExecuteXmlReader ( ) ;
  172. Console.WriteLine ( "" ) ;
  173. Console.WriteLine ( "*** SqlProvider ***" ) ;
  174. Console.WriteLine ( "Use ExecuteXmlReader with a FOR XML AUTO SQL clause" ) ;
  175. Console.WriteLine ( ) ;
  176. // Do something useful with the xml
  177. while ( xr.Read() )
  178. {
  179. Console.WriteLine ( xr.ReadOuterXml ( ) ) ;
  180. }
  181. // And close the connection
  182. conn.Close ( ) ;
  183. }
  184. }
  185. }