TestOleDb.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System;
  2. using System.Data.OleDb;
  3. namespace System.Data.OleDb.Test
  4. {
  5. public class TestOleDb
  6. {
  7. private OleDbConnection m_cnc;
  8. private TestOleDb ()
  9. {
  10. OleDbCommand cmd;
  11. m_cnc = new OleDbConnection ("PostgreSQL");
  12. m_cnc.Open ();
  13. Console.WriteLine ("Creating temporary table...");
  14. cmd = new OleDbCommand ("CREATE TABLE mono_test_table ( " +
  15. " name varchar(25), email varchar(50), date_entered timestamp)",
  16. m_cnc);
  17. cmd.ExecuteNonQuery ();
  18. InsertRow ("Mike Smith", "[email protected]");
  19. InsertRow ("Julie Andrews", "[email protected]");
  20. InsertRow ("Michael Jordan", "[email protected]");
  21. }
  22. void InsertRow (string name, string email)
  23. {
  24. OleDbCommand cmd;
  25. cmd = new OleDbCommand ("INSERT INTO mono_test_table (name, email, date_entered) VALUES ('" +
  26. name + "', '" + email +"', date 'now')", m_cnc);
  27. Console.WriteLine ("Executing command '" + cmd.CommandText + "'");
  28. cmd.ExecuteNonQuery ();
  29. }
  30. void DisplayRow (OleDbDataReader reader)
  31. {
  32. for (int i = 0; i < reader.FieldCount; i++) {
  33. Console.WriteLine (" " + reader.GetDataTypeName (i) + ": " +
  34. reader.GetValue (i).ToString ());
  35. }
  36. }
  37. void TestDataReader ()
  38. {
  39. int i = 0;
  40. string sql = "SELECT * FROM mono_test_table";
  41. Console.WriteLine ("Executing SELECT command...");
  42. OleDbCommand cmd = new OleDbCommand (sql, m_cnc);
  43. OleDbDataReader reader = cmd.ExecuteReader ();
  44. Console.WriteLine (" Recordset description:");
  45. for (i = 0; i < reader.FieldCount; i++) {
  46. Console.WriteLine (" Field " + i + ": " +
  47. reader.GetName (i) + " (" +
  48. reader.GetDataTypeName (i) + ")");
  49. }
  50. Console.WriteLine ("Reading data...");
  51. i = 0;
  52. while (reader.Read ()) {
  53. Console.WriteLine ("Row " + i + ":");
  54. DisplayRow (reader);
  55. i++;
  56. }
  57. }
  58. void TestTransaction ()
  59. {
  60. Console.WriteLine ("Starting transaction...");
  61. OleDbTransaction xaction = m_cnc.BeginTransaction ();
  62. Console.WriteLine ("Aborting transaction...");
  63. xaction.Rollback ();
  64. }
  65. void Close ()
  66. {
  67. OleDbCommand cmd = new OleDbCommand ("DROP TABLE mono_test_table", m_cnc);
  68. cmd.ExecuteNonQuery ();
  69. m_cnc.Close ();
  70. }
  71. static void Main (string[] args)
  72. {
  73. try {
  74. TestOleDb test = new TestOleDb ();
  75. test.TestDataReader ();
  76. test.TestTransaction ();
  77. test.Close ();
  78. } catch (Exception e) {
  79. Console.WriteLine ("An error has occured: {0}", e.ToString ());
  80. }
  81. }
  82. }
  83. }