Advertisement
wingman007

RowDataGateway

Nov 11th, 2014
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.36 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.OleDb;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace CRUDDummyAccessConsole3a
  9. {
  10.     class User
  11.     {
  12.         private OleDbConnection aConnection;
  13.  
  14.         private string table = "users";
  15.  
  16.         public int Id { get; set; }
  17.         public string Username { get; set; }
  18.         public string Password { get; set; }
  19.         public string Email { get; set; }
  20.  
  21.         public void Find(int id)
  22.         {
  23.             // Hydration
  24.             OleDbDataReader aReader = null;
  25.             OleDbCommand aCommand = new OleDbCommand("SELECT * FROM users WHERE id = @par1", aConnection);
  26.             aCommand.Parameters.AddWithValue("@par1", 1);
  27.             try
  28.             {
  29.                 aConnection.Open();
  30.                 aReader = aCommand.ExecuteReader();
  31.                 // Console.WriteLine("This is the returned data from users table");
  32.                 this.Id = aReader.GetInt32(0);
  33.                 this.Username = aReader.GetString(1);
  34.                 this.Password = aReader.GetString(2);
  35.                 this.Email = aReader.GetString(3);
  36.                 aReader.Close();
  37.                 aConnection.Close();
  38.             }
  39.             catch (OleDbException e)
  40.             {
  41.                 Console.WriteLine("Error {0}", e.Errors[0].Message);
  42.             }
  43.             finally
  44.             {
  45.                 aReader.Close();
  46.                 aConnection.Close();
  47.             }
  48.         }
  49.         public int Save()
  50.         {
  51.             int numberOfRows = 0;
  52.             OleDbCommand aCommand = null;
  53.             try
  54.             {
  55.                 aConnection.Open();
  56.                 // SQL Injection
  57.                 // OleDbCommand aCommand = new OleDbCommand("UPDATE users SET username = 'updatedUsername' WHERE ID = " + ID, aConnection);
  58.                 if (this.Id != 0)
  59.                 {
  60.                     aCommand = new OleDbCommand("UPDATE users SET username = 'updatedUsername' WHERE ID = @par1", aConnection);
  61.                     aCommand.Parameters.AddWithValue("@par1", Id);
  62.                 }
  63.                 else
  64.                 {
  65.                     aCommand = new OleDbCommand("INSERT INTO users (username, `password`, email) VALUES ('О''Харра','insertedPass', 'inserted@gmail.com')", aConnection);
  66.                 }
  67.                     // 1. approach with AddWithValue
  68.                     // aCommand.Parameters.AddWithValue("@par1", ID);
  69.                     // or
  70.                     // 2.
  71.                 aCommand.Parameters.AddRange(new[] {
  72.                          new OleDbParameter("@par2", Username),
  73.                          new OleDbParameter("@par3", Password),
  74.                          new OleDbParameter("@par4", Email)
  75.                     });
  76.                 numberOfRows = aCommand.ExecuteNonQuery();
  77.                 Console.WriteLine("The number of rows during Update were {0}", numberOfRows);
  78.                 aConnection.Close();
  79.             }
  80.             catch (OleDbException e)
  81.             {
  82.                 Console.WriteLine("Error {0}", e.Errors[0].Message);
  83.             }
  84.             finally
  85.             {
  86.                 aConnection.Close();
  87.             }
  88.             return numberOfRows;            
  89.         }
  90.  
  91.         public bool HasIdentity()
  92.         {
  93.             return true;
  94.         }
  95.  
  96.  
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement