| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.ComponentModel;
 
- using System.Data;
 
- using System.Data.SqlClient;
 
- using System.Drawing;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Windows.Forms;
 
- namespace СУБД_Кадры
 
- {
 
-     public partial class fMain : Form
 
-     {
 
-         public fMain()
 
-         {
 
-             InitializeComponent();
 
-         }
 
-         public static string TxtCon = "Data Source = (LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\SUBD_Kadr.mdf;Integrated Security = True; Connect Timeout = 30\r\n";
 
-         struct Client
 
-         {
 
-             public string ID, Surname,Name,Pathronymic, Email, Phone, Gender;
 
-         }
 
-         List<Client> LstClient = new List<Client>();
 
-         int CountPerPage = 5,NBegin=0;
 
-         void GetDataFromDB()
 
-         {
 
-             NBegin = 0;
 
-             SqlConnection con = new SqlConnection(TxtCon);
 
-             con.Open();
 
-             string Uslovie = "";
 
-             if (CmbFind.Text == "фамилии")
 
-                 Uslovie += $" where Surname Like '{TbxFind.Text}%'";
 
-             if (CmbFind.Text == "имени")
 
-                 Uslovie += $" where Name Like '{TbxFind.Text}%'";
 
-             if (CmbFind.Text == "отчеству")
 
-                 Uslovie += $" where Pathronymic Like '{TbxFind.Text}%'";
 
-             string Gender = "";
 
-             if (CmbGender.Text == "мужской")
 
-                 Gender += " and Gender = 'мужской'";
 
-             if (CmbGender.Text == "женский")
 
-                 Gender += " and Gender = 'женский'";
 
-             string Sort = "";
 
-             if (CmbSort.Text == "фамилии")
 
-                 Sort += " order by Surname";
 
-             SqlCommand comm = new SqlCommand($"Select ID_Client,Surname,Name,Pathronymic,Phone,Email,Gender From Client" +Uslovie+Gender+Sort,con);
 
-             SqlDataReader Res = comm.ExecuteReader();
 
-             LstClient.Clear();
 
-             while(Res.Read())
 
-             {
 
-                 Client NEWclient = new Client();
 
-                 NEWclient.ID = Res["ID_Client"].ToString();
 
-                 NEWclient.Surname = Res["Surname"].ToString();
 
-                 NEWclient.Name = Res["Name"].ToString();
 
-                 NEWclient.Pathronymic = Res["Pathronymic"].ToString();
 
-                 NEWclient.Email = Res["Email"].ToString();
 
-                 NEWclient.Phone = Res["Phone"].ToString();
 
-                 NEWclient.Gender = Res["Gender"].ToString();
 
-                 LstClient.Add(NEWclient);
 
-             }
 
-             con.Close();
 
-         }
 
-         void FillDgvClient()
 
-         {
 
-             DgvClients.Rows.Clear();
 
-             for(int i=NBegin;i<NBegin+CountPerPage;i++)
 
-             {
 
-                 if (i > LstClient.Count - 1)
 
-                     break;
 
-                
 
-                 string Mess = $"{LstClient[i].Surname} {LstClient[i].Name} {LstClient[i].Pathronymic}\r\nТелефон: {LstClient[i].Phone} Почта: {LstClient[i].Email} \r\n Пол: {LstClient[i].Gender}";
 
-                 DgvClients.Rows.Add(Mess,LstClient[i].ID);
 
-             }
 
-             int Cnt = LstClient.Count / CountPerPage;
 
-             if (LstClient.Count % CountPerPage != 0)
 
-                 Cnt++;
 
-             PanelPages.Controls.Clear();
 
-             LblBack.Dock = DockStyle.Left;
 
-             LblNext.Dock = DockStyle.Left;
 
-             PanelPages.Controls.Add(LblNext);
 
-             for (int i = Cnt; i > 0; i--)
 
-             {
 
-                 Label Lbl = new Label();
 
-                 Lbl.Text = i.ToString();
 
-                 Lbl.Dock = DockStyle.Left;
 
-                 Lbl.AutoSize = true;
 
-                 Lbl.Click += Lbl_Click;
 
-                 //если отоброжается номер текущей страницы
 
-                 if ((NBegin + CountPerPage) / CountPerPage == i)
 
-                 {
 
-                     Lbl.BackColor = Color.LightGray;
 
-                     Lbl.Font = new Font(Lbl.Font, FontStyle.Underline);
 
-                 }
 
-                 PanelPages.Controls.Add(Lbl);
 
-             }
 
-             PanelPages.Controls.Add(LblBack);
 
-             TsIInfo.Text = $"Всего записей: {LstClient.Count} отображается: {DgvClients.RowCount}";
 
-         }
 
-         private void fMain_Load(object sender, EventArgs e)
 
-         {
 
-             CmbSort.SelectedIndex = 0;
 
-             CmbFind.SelectedIndex = 0;
 
-             CmbGender.SelectedIndex = 0;
 
-             GetDataFromDB();
 
-             FillDgvClient();
 
-         }
 
-         private void LblBack_Click(object sender, EventArgs e)
 
-         {
 
-             if (NBegin > 0)
 
-             {
 
-                 NBegin = NBegin - CountPerPage;
 
-                 
 
-                 FillDgvClient();
 
-             }
 
-         }
 
-         private void LblNext_Click(object sender, EventArgs e)
 
-         {
 
-             if (NBegin + CountPerPage < LstClient.Count)
 
-             {
 
-                 NBegin = NBegin + CountPerPage;
 
-                 FillDgvClient();
 
-             }
 
-         }
 
-         private void TbxFind_TextChanged(object sender, EventArgs e)
 
-         {
 
-             GetDataFromDB();
 
-             FillDgvClient();
 
-         }
 
-         private void CmbGender_SelectedIndexChanged(object sender, EventArgs e)
 
-         {
 
-             GetDataFromDB();
 
-             FillDgvClient();
 
-         }
 
-         private void CmbSort_SelectedIndexChanged(object sender, EventArgs e)
 
-         {
 
-             GetDataFromDB();
 
-             FillDgvClient();
 
-         }
 
-         private void bAdd_Click(object sender, EventArgs e)
 
-         {
 
-             fAddClient FAdd = new fAddClient();
 
-             FAdd.ShowDialog();
 
-             int CurrentNBegin = NBegin;
 
-             GetDataFromDB();
 
-             NBegin = CurrentNBegin;
 
-             FillDgvClient();
 
-         }
 
-         private void BtnDel_Click(object sender, EventArgs e)      
 
-         {
 
-             DialogResult Res = MessageBox.Show("Вы действительно хотите удалить выделенного клиента?", "Внимание!!!", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
 
-             if (Res == DialogResult.No)
 
-                 return;
 
-             SqlConnection con = new SqlConnection(TxtCon);
 
-             con.Open();
 
-             string TxtQuery1 = $"delete from Client where ID_Client={DgvClients.CurrentRow.Cells[1].Value}";
 
-             SqlCommand comm1 = new SqlCommand(TxtQuery1, con);
 
-             comm1.ExecuteNonQuery();
 
-             con.Close();
 
-             int CurrentNBegin = NBegin;
 
-             GetDataFromDB();
 
-             NBegin = CurrentNBegin;
 
-             FillDgvClient();
 
-         }
 
-         private void Lbl_Click(object sender, EventArgs e)
 
-         {
 
-             int n = int.Parse((sender as Label).Text);
 
-             NBegin = (n - 1) * CountPerPage;
 
-             FillDgvClient();
 
-         }
 
-     }
 
- }
 
 
  |