Form3.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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 System.Xml.Linq;
  11. using Npgsql;
  12. namespace pract
  13. {
  14. public partial class Form3 : Form
  15. {
  16. private string _connString;
  17. private int _edit;
  18. public Form3(string connString)
  19. {
  20. InitializeComponent();
  21. _connString = connString;
  22. }
  23. public Form3(string connString, int edit)
  24. {
  25. InitializeComponent();
  26. _connString = connString;
  27. _edit = edit;
  28. using (var conn = new NpgsqlConnection(_connString))
  29. {
  30. conn.Open();
  31. string sql = "SELECT specializationid, name, lastname, surname, passportseries, passportnumber, previoussalary FROM unemployed WHERE id = @id";
  32. var cmd = new NpgsqlCommand(sql, conn);
  33. cmd.Parameters.AddWithValue("@id", _edit);
  34. var reader = cmd.ExecuteReader();
  35. if (reader.Read())
  36. {
  37. comboBox1.SelectedValue = reader.GetInt32(0);
  38. textBox1.Text = reader.GetString(1);
  39. textBox2.Text = reader.GetString(2);
  40. textBox3.Text = reader.IsDBNull(3) ? "" : reader.GetString(3);
  41. textBox4.Text = reader.GetString(4);
  42. textBox5.Text = reader.GetString(5);
  43. textBox6.Text = reader.IsDBNull(6) ? "" : reader.GetDecimal(6).ToString();
  44. }
  45. }
  46. }
  47. private void Form3_Load(object sender, EventArgs e)
  48. {
  49. using (var conn = new NpgsqlConnection(_connString))
  50. {
  51. conn.Open();
  52. var cmd = new NpgsqlCommand("SELECT id, name FROM specialization ORDER BY name", conn);
  53. var reader = cmd.ExecuteReader();
  54. comboBox1.Items.Clear();
  55. while (reader.Read())
  56. {
  57. comboBox1.Items.Add(new
  58. {
  59. Id = reader.GetInt32(0),
  60. Name = reader.GetString(1)
  61. });
  62. }
  63. comboBox1.DisplayMember = "Name";
  64. comboBox1.ValueMember = "Id";
  65. }
  66. }
  67. private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
  68. {
  69. }
  70. private void label4_Click(object sender, EventArgs e)
  71. {
  72. }
  73. private void button1_Click(object sender, EventArgs e)
  74. {
  75. using (var conn = new NpgsqlConnection(_connString))
  76. {
  77. var cmd = new NpgsqlCommand();
  78. conn.Open();
  79. if(_edit > 0)
  80. {
  81. string sql = @"UPDATE unemployed SET specializationID = @spec, name = @name, lastname = @lastname,
  82. surname = @surname, passportSeries = @pseries, passportNumber = @pnumber, previousSalary = @salary
  83. WHERE ID = @id";
  84. cmd = new NpgsqlCommand(sql, conn);
  85. cmd.Parameters.AddWithValue("@id", _edit);
  86. }
  87. else
  88. {
  89. string sql = @"INSERT INTO unemployed (specializationID, name, lastname, surname, passportSeries, passportNumber, previousSalary)
  90. VALUES (@spec, @name, @lastname, @surname, @pseries, @pnumber, @salary)";
  91. cmd = new NpgsqlCommand(sql, conn);
  92. }
  93. cmd.Parameters.AddWithValue("@spec", ((dynamic)comboBox1.SelectedItem).Id);
  94. cmd.Parameters.AddWithValue("@name", textBox1.Text.Trim());
  95. cmd.Parameters.AddWithValue("@lastname", textBox2.Text.Trim());
  96. cmd.Parameters.AddWithValue("@surname", string.IsNullOrWhiteSpace(textBox3.Text) ? DBNull.Value : (object)textBox3.Text.Trim());
  97. cmd.Parameters.AddWithValue("@pseries", textBox4.Text.Trim());
  98. cmd.Parameters.AddWithValue("@pnumber", textBox5.Text.Trim());
  99. if (decimal.TryParse(textBox6.Text, out decimal salary) && salary > 0)
  100. cmd.Parameters.AddWithValue("@salary", salary);
  101. else
  102. cmd.Parameters.AddWithValue("@salary", DBNull.Value);
  103. cmd.ExecuteNonQuery();
  104. }
  105. }
  106. }
  107. }