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

C#编程

开发平台:

Others

  1. using System;
  2. using System.Data.SqlClient;
  3. public class SimpleSelect
  4. {
  5. public static int Main(string[] args)
  6. {
  7. string        source = Login.Connection ;
  8. string        select = "SELECT CategoryID,CategoryName FROM Categories" ;
  9. using ( SqlConnection conn = new SqlConnection ( source ) )
  10. {
  11. conn.Open() ;
  12. SqlCommand    cmd = new SqlCommand ( select , conn ) ;
  13. SqlDataReader aReader = cmd.ExecuteReader ( ) ;
  14. aReader.Read ( ) ;
  15. // Now time access to the first field in the reader...
  16. long timeInitial , timeElapsed , iterations , maxIterations = 1000000;
  17. int   theCategoryID ;
  18. timeInitial = DateTime.Now.Ticks ;
  19. for ( iterations = 0 ; iterations < maxIterations ; iterations++ )
  20. theCategoryID = (int) aReader[0] ;
  21. timeElapsed = DateTime.Now.Ticks ;    
  22. Console.WriteLine ( "{0} iterations using numeric indexer : {1}s" , 
  23. iterations ,
  24. new TimeSpan ( timeElapsed - timeInitial ) ) ;
  25. timeInitial = DateTime.Now.Ticks ;
  26. for ( iterations = 0 ; iterations < maxIterations ; iterations++ )
  27. theCategoryID = (int) aReader["CategoryID"] ;
  28. timeElapsed = DateTime.Now.Ticks ;    
  29. Console.WriteLine ( "{0} iterations using textual indexer : {1}s" , 
  30. iterations ,
  31. new TimeSpan ( timeElapsed - timeInitial )  ) ;
  32. timeInitial = DateTime.Now.Ticks ;
  33. for ( iterations = 0 ; iterations < maxIterations ; iterations++ )
  34. theCategoryID = aReader.GetInt32 (0);
  35. timeElapsed = DateTime.Now.Ticks ;    
  36. Console.WriteLine ( "{0} iterations using GetInt32(0)     : {1}s" , 
  37. iterations ,
  38. new TimeSpan ( timeElapsed - timeInitial )  ) ;
  39. conn.Close ( ) ;
  40. return 0;
  41. }
  42. }
  43. }