Guest User

Untitled

a guest
Oct 2nd, 2023
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.55 KB | None | 0 0
  1. public class Database
  2. {
  3.     private static readonly string dbFile = "habits.db";
  4.  
  5.     public static void CreateDatabase()
  6.     {
  7.         Console.WriteLine("Creating Database");
  8.         SQLiteConnection.CreateFile("habits.db");
  9.  
  10.         using (var sqlite = new SQLiteConnection(@"Data Source=habits.db"))
  11.         {
  12.             sqlite.Open();
  13.             string sql = "CREATE TABLE IF NOT EXISTS habits(Name string, Date string, TrackType string, Description string)";
  14.             SQLiteCommand command = new SQLiteCommand(sql, sqlite);
  15.             command.ExecuteNonQuery();
  16.         }
  17.        
  18.         Console.WriteLine("New Database Created");
  19.     }
  20.  
  21.     public static void SaveEntry(Habit newHabit)
  22.     {
  23.         using (SQLiteConnection sqlite = new SQLiteConnection(@"Data Source=habits.db"))
  24.         {
  25.             using (SQLiteCommand cmd = new SQLiteCommand())
  26.             {
  27.                 sqlite.Open();
  28.  
  29.                 cmd.CommandText = "INSERT INTO habits(Name, Date, TrackType, Description) VALUES ($Name, $Date, $TrackType, $Description)";
  30.                 cmd.Parameters.Add(new SQLiteParameter("$Name", newHabit.Name));
  31.                 cmd.Parameters.Add(new SQLiteParameter("$Date", newHabit.Date.ToString()));
  32.                 cmd.Parameters.Add(new SQLiteParameter("$TrackType", newHabit.TrackType));
  33.                 cmd.Parameters.Add(new SQLiteParameter("$Description", newHabit.Description));
  34.  
  35.                 cmd.ExecuteNonQuery();
  36.  
  37.                 sqlite.Close();
  38.             }
  39.         }
  40.     }
  41.  
  42.     public static List<Habit> GetHabits()
  43.     {
  44.         return new List<Habit>();
  45.     }
  46.  
  47.     public static void UpdateEntry(Habit oldHabit, Habit newHabit)
  48.     {
  49.         using (SQLiteConnection sqlite = new SQLiteConnection(@"Data Source=habits.db"))
  50.         {
  51.             using (SQLiteCommand cmd = new SQLiteCommand())
  52.             {
  53.                 using (SQLiteCommand cmd2 = new SQLiteCommand())
  54.                 {
  55.                     sqlite.Open();
  56.  
  57.                     cmd.CommandText = "SELECT * FROM habits WHERE Name=@CurrentName";
  58.                     cmd.Parameters.Add(new SQLiteParameter(oldHabit.Name));
  59.                     cmd.ExecuteNonQuery();
  60.  
  61.                     cmd2.CommandText = @"UPDATE habits SET
  62.                                            Name = @NewName,
  63.                                            Date = @NewDate,
  64.                                            TrackType = @NewTrackType,
  65.                                            Description = @NewDescription";
  66.                     cmd2.Parameters.Add(new SQLiteParameter("@NewName", newHabit.Name));
  67.                     cmd2.Parameters.Add(new SQLiteParameter("@NewDate", newHabit.Date));
  68.                     cmd2.Parameters.Add(new SQLiteParameter("@NewTrackType", newHabit.TrackType));
  69.                     cmd2.Parameters.Add(new SQLiteParameter("@NewDescription", newHabit.Description));
  70.  
  71.                     cmd2.ExecuteNonQuery();
  72.  
  73.                     sqlite.Close();
  74.                 }
  75.             }
  76.         }
  77.     }
  78.  
  79.     public static void DeleteEntry(Habit habit)
  80.     {
  81.         using (SQLiteConnection sqlite = new SQLiteConnection(@"Data Source=habits.db"))
  82.         {
  83.             using (SQLiteCommand cmd = new SQLiteCommand())
  84.             {
  85.                 sqlite.Open();
  86.  
  87.                 cmd.CommandText = "DELETE FROM habits WHERE Name=@CurrentName";
  88.                 cmd.Parameters.Add(new SQLiteParameter("@CurrentName", habit.Name));
  89.                 cmd.ExecuteNonQuery();
  90.  
  91.                 sqlite.Close();
  92.             }
  93.         }
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment