DatabaseHelper.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.Data;
  3. using Npgsql;
  4. namespace MuseumWinForms
  5. {
  6. public static class DatabaseHelper
  7. {
  8. // Строка подключения для PostgreSQL
  9. private static string connectionString = "Server=edu-pg.itiscaf.ru;Port=5432;Database=dbwork;UserId=dyachkov_ya;Password=i5G&l405V27;";
  10. public static NpgsqlConnection GetConnection()
  11. {
  12. return new NpgsqlConnection(connectionString);
  13. }
  14. // Вызов PostgreSQL функции
  15. public static int GetExhibitCountByAuthor(int authorId)
  16. {
  17. using (var conn = GetConnection())
  18. {
  19. conn.Open();
  20. // PostgreSQL вызывает функцию через SELECT
  21. string sql = "SELECT get_exhibit_count_by_author(@author_id)";
  22. using (var cmd = new NpgsqlCommand(sql, conn))
  23. {
  24. cmd.Parameters.AddWithValue("@author_id", authorId);
  25. object result = cmd.ExecuteScalar();
  26. return Convert.ToInt32(result);
  27. }
  28. }
  29. }
  30. // Получить всех авторов
  31. public static DataTable GetAllCreators()
  32. {
  33. using (var conn = GetConnection())
  34. {
  35. conn.Open();
  36. string sql = "SELECT id_creator, full_name FROM Creator ORDER BY id_creator";
  37. using (var cmd = new NpgsqlCommand(sql, conn))
  38. using (var adapter = new NpgsqlDataAdapter(cmd))
  39. {
  40. DataTable dt = new DataTable();
  41. adapter.Fill(dt);
  42. return dt;
  43. }
  44. }
  45. }
  46. }
  47. }