FormAddPredlozhenie.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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.Data.SqlClient;
  11. using System.IO; // для работы с файлами
  12. namespace СУБД_Агентство
  13. {
  14. public partial class FormAddPredlozhenie : Form
  15. {
  16. public FormAddPredlozhenie()
  17. {
  18. InitializeComponent();
  19. }
  20. // список id подходящих риелтеров
  21. List<int> lstIdRielter = new List<int>();
  22. private void FormAddPredlozhenie_Load(object sender, EventArgs e)
  23. {
  24. // TODO: This line of code loads data into the 'dbAgentstvoDataSet1.Users' table. You can move, or remove it, as needed.
  25. this.usersTableAdapter.Fill(this.dbAgentstvoDataSet1.Users);
  26. // максимальное количество одновременно обслуживаемых клиентов
  27. int maxklient = 5;
  28. try
  29. {
  30. // открыть файл для чтения
  31. StreamReader sr = new StreamReader("data.txt");
  32. // прочитать из файла максимальное количество обслуживаемых клиентов
  33. maxklient = Convert.ToInt32(sr.ReadLine());
  34. sr.Close(); // закрыть файл
  35. }
  36. catch { }
  37. // создать объект для подключения к базе данных
  38. SqlConnection con = new SqlConnection(Form1.txtcon);
  39. con.Open(); // открыть подключение к базе данных
  40. string txtsql = @"
  41. select idusers, fam + ' ' + name as fio
  42. from Users as u
  43. where type = 0
  44. and ((select COUNT(idrielter)
  45. from Potrebnost
  46. where idrielter = u.idusers and zaversheno = 'False') +
  47. (select COUNT(idrielter)
  48. from predlozhenie
  49. where idrielter = u.idusers and zaversheno = 'False')) < " + maxklient;
  50. // SQL-запрос
  51. SqlCommand query1 = new SqlCommand(txtsql, con);
  52. // выполнить SQL-запрос и сохранить результат
  53. SqlDataReader rez = query1.ExecuteReader();
  54. // есть ли строки в результате запроса
  55. if (rez.HasRows)
  56. while(rez.Read()) // прочитать очередную строку из результата запроса
  57. {
  58. // добавить в ComboBox fio очередного риелтера
  59. cbxRielter.Items.Add(rez["fio"]);
  60. // добавить в список id очередного риелтера
  61. lstIdRielter.Add((int)rez["idusers"]);
  62. }
  63. con.Close(); // закрыть подключение к базе данных
  64. }
  65. private void btnAdd_Click(object sender, EventArgs e)
  66. {
  67. // создать объект для подключения к базе данных
  68. SqlConnection con = new SqlConnection(Form1.txtcon);
  69. con.Open(); // открыть подключение к базе данных
  70. string txtsql = String.Format(@"insert into predlozhenie
  71. (idklient, idrielter, adres, plosh, etazh, komnat, cena, zaversheno)
  72. values ({0}, {1}, @adres, @plosh, @etazh, @komnat, @cena, 'False')",
  73. lblIdKlient.Text, lstIdRielter[cbxRielter.SelectedIndex]);
  74. // SQL-запрос
  75. SqlCommand query1 = new SqlCommand(txtsql, con);
  76. // добавить к запросу параметры
  77. query1.Parameters.AddWithValue("@adres", tbxAdres.Text);
  78. query1.Parameters.AddWithValue("@plosh", tbxPlosh.Text);
  79. query1.Parameters.AddWithValue("@etazh", tbxEtag.Text);
  80. query1.Parameters.AddWithValue("@komnat", tbxKomnat.Text);
  81. query1.Parameters.AddWithValue("@cena", tbxCena.Text);
  82. // выполнить запрос без возврата выбранных данных
  83. query1.ExecuteNonQuery();
  84. con.Close(); // закрыть подключение к базе данных
  85. MessageBox.Show("Предложение клиента успешно добавлено.");
  86. }
  87. }
  88. }