Form4.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using Npgsql;
  11. namespace pract
  12. {
  13. public partial class Form4 : Form
  14. {
  15. private string _connString;
  16. public Form4(string connString)
  17. {
  18. InitializeComponent();
  19. _connString = connString;
  20. }
  21. private void Form4_Load(object sender, EventArgs e)
  22. {
  23. using (var conn = new NpgsqlConnection(_connString))
  24. {
  25. conn.Open();
  26. var cmd = new NpgsqlCommand("SELECT id, name FROM company ORDER BY name", conn);
  27. var reader = cmd.ExecuteReader();
  28. comboBox1.Items.Clear();
  29. while (reader.Read())
  30. {
  31. comboBox1.Items.Add(new
  32. {
  33. Id = reader.GetInt32(0),
  34. Name = reader.GetString(1)
  35. });
  36. }
  37. comboBox1.ValueMember = "Name";
  38. }
  39. }
  40. private void button1_Click(object sender, EventArgs e)
  41. {
  42. try
  43. {
  44. DataTable dt = new DataTable();
  45. using (var conn = new NpgsqlConnection(_connString))
  46. {
  47. string sql = @"SELECT * FROM get_vacancies_by_salary_range(@name, @min, @max)";
  48. var cmd = new NpgsqlCommand(sql, conn);
  49. cmd.Parameters.AddWithValue("@name", ((dynamic)comboBox1.SelectedItem).Name);
  50. cmd.Parameters.AddWithValue("@min", Convert.ToDecimal(textBox1.Text));
  51. cmd.Parameters.AddWithValue("@max", Convert.ToDecimal(textBox2.Text));
  52. var adapter = new NpgsqlDataAdapter(cmd);
  53. adapter.Fill(dt);
  54. }
  55. dataGridView1.DataSource = dt;
  56. dataGridView1.Columns[0].Visible = false;
  57. }
  58. catch (Exception ex)
  59. {
  60. MessageBox.Show("Ошибка загрузки: " + ex.Message);
  61. }
  62. }
  63. private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
  64. {
  65. }
  66. }
  67. }