ExhibitRepository.cs 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using System;
  2. using System.Data;
  3. using Npgsql; // Вместо MySql.Data.MySqlClient
  4. namespace MuseumWinForms
  5. {
  6. public static class ExhibitRepository
  7. {
  8. private static string connectionString = "Server=edu-pg.itiscaf.ru;Port=5432;Database=dbwork;UserId=dyachkov_ya;Password=i5G&l405V27;";
  9. public static DataTable GetAllExhibits()
  10. {
  11. using (var conn = new NpgsqlConnection(connectionString))
  12. {
  13. conn.Open();
  14. string sql = @"SELECT e.id_exhibit AS ""ID"",
  15. e.type AS ""Тип"",
  16. e.creation_date AS ""Дата создания"",
  17. e.copy_price AS ""Цена"",
  18. e.creation_cost AS ""Себестоимость"",
  19. c.full_name AS ""Автор"",
  20. e.id_museum AS ""ID музея""
  21. FROM Exhibit e
  22. LEFT JOIN Creator c ON e.id_creator = c.id_creator
  23. ORDER BY e.id_exhibit";
  24. using (var cmd = new NpgsqlCommand(sql, conn))
  25. using (var adapter = new NpgsqlDataAdapter(cmd))
  26. {
  27. DataTable dt = new DataTable();
  28. adapter.Fill(dt);
  29. return dt;
  30. }
  31. }
  32. }
  33. public static void AddExhibit(int id, string type, DateTime date, decimal price, decimal cost, int creatorId, int museumId)
  34. {
  35. using (var conn = new NpgsqlConnection(connectionString))
  36. {
  37. conn.Open();
  38. string sql = @"INSERT INTO Exhibit (id_exhibit, type, creation_date, copy_price, creation_cost, id_creator, id_museum)
  39. VALUES (@id, @type, @date, @price, @cost, @creatorId, @museumId)";
  40. using (var cmd = new NpgsqlCommand(sql, conn))
  41. {
  42. cmd.Parameters.AddWithValue("@id", id);
  43. cmd.Parameters.AddWithValue("@type", type);
  44. cmd.Parameters.AddWithValue("@date", date);
  45. cmd.Parameters.AddWithValue("@price", price);
  46. cmd.Parameters.AddWithValue("@cost", cost);
  47. cmd.Parameters.AddWithValue("@creatorId", creatorId);
  48. cmd.Parameters.AddWithValue("@museumId", museumId);
  49. cmd.ExecuteNonQuery();
  50. }
  51. }
  52. }
  53. public static void UpdateExhibitPrice(int exhibitId, decimal newPrice)
  54. {
  55. using (var conn = new NpgsqlConnection(connectionString))
  56. {
  57. conn.Open();
  58. string sql = "UPDATE Exhibit SET copy_price = @price WHERE id_exhibit = @id";
  59. using (var cmd = new NpgsqlCommand(sql, conn))
  60. {
  61. cmd.Parameters.AddWithValue("@price", newPrice);
  62. cmd.Parameters.AddWithValue("@id", exhibitId);
  63. cmd.ExecuteNonQuery();
  64. }
  65. }
  66. }
  67. public static void DeleteExhibit(int exhibitId)
  68. {
  69. using (var conn = new NpgsqlConnection(connectionString))
  70. {
  71. conn.Open();
  72. string sql = "DELETE FROM Exhibit WHERE id_exhibit = @id";
  73. using (var cmd = new NpgsqlCommand(sql, conn))
  74. {
  75. cmd.Parameters.AddWithValue("@id", exhibitId);
  76. cmd.ExecuteNonQuery();
  77. }
  78. }
  79. }
  80. }
  81. }