| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.ComponentModel;
 
- using System.Data;
 
- using System.Drawing;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Windows.Forms;
 
- using System.Data.SqlClient;
 
- namespace СУБД_Агентство
 
- {
 
-     public partial class FormFindLeven : Form
 
-     {
 
-         public FormFindLeven()
 
-         {
 
-             InitializeComponent();            
 
-         }
 
-         int levenshtein(string t1, string t2)
 
-         {
 
-             // разница в количестве символов в проверяемых строках
 
-             int lev = Math.Abs(t1.Length - t2.Length);
 
-             // минимальная длина из длин двух строк
 
-             int minlen = Math.Min(t1.Length, t2.Length);
 
-             // перебор символов от нулевого и до последнего более короткой строки
 
-             for (int i = 0; i <= minlen-1; i++)
 
-                 // если i-е символы не совпали, то сосчитать их
 
-                 if (t1[i] != t2[i]) lev++;
 
-             return lev;
 
-         }
 
-         
 
-         // структура данных для хранения фамилии и имени
 
-         struct user
 
-         {
 
-             public string fam, name;
 
-         }
 
-         // список с фамилиями и именами клиентов
 
-         List<user> lst = new List<user>();
 
-         public int type;
 
-         private void FormFindLeven_Load(object sender, EventArgs e)
 
-         {
 
-             // объект для подключения к базе данных
 
-             SqlConnection con = new SqlConnection(Form1.txtcon);
 
-             con.Open();  // открыть подключение
 
-             string txtsql = @"
 
- select fam, name
 
- from Users
 
- where type = " + type;
 
-             // SQL-запрос для извлечения из БД списка пользователей
 
-             SqlCommand query1 = new SqlCommand(txtsql, con);
 
-             // выполнить запрос и сохранить результат запроса
 
-             SqlDataReader rez = query1.ExecuteReader();
 
-             // если есть строки в результате запроса
 
-             if (rez.HasRows)
 
-             {
 
-                 // прочитать очередную строку из результата запроса
 
-                 // выполнять цикл до тех пор, пока не достигли последней записи в таблице
 
-                 // с результатами запроса
 
-                 while(rez.Read())
 
-                 {
 
-                     user u1;
 
-                     // новый элемент для списка пользователей
 
-                     u1.fam = rez["fam"].ToString(); u1.name = rez["name"].ToString();
 
-                     lst.Add(u1);  // добавить в список очередного пользователя
 
-                     // вывести данные очередного пользователя в таблицу
 
-                     dgvUsers.Rows.Add(u1.fam, u1.name);
 
-                 }
 
-             }
 
-             con.Close();  // закрыть подключение
 
-         }
 
-         private void btnFind_Click(object sender, EventArgs e)
 
-         {
 
-             dgvUsers.Rows.Clear();  // очистить таблицу
 
-             // перебор пользователей в списке
 
-             foreach (user u1 in lst)
 
-             {
 
-                 // если выполняется поиск по фамилии и фамилия пользователя не превышает 3 по расстоянию Левенштейна с символами для поиска, или выполняется поиск по имени и имя пользователя не превышает 3 по расстоянию Левенштейна с символами для поиска, ...
 
-                 if (rbtFam.Checked && levenshtein(u1.fam, tbxFind.Text) <= 3 ||
 
-                     rbtName.Checked && levenshtein(u1.name, tbxFind.Text) <= 3)
 
-                     // вывести в DataGridView такого пользователя
 
-                     dgvUsers.Rows.Add(u1.fam, u1.name);
 
-             }
 
-         }
 
-         private void dgvUsers_CellContentClick(object sender, DataGridViewCellEventArgs e)
 
-         {
 
-         }
 
-         private void btnShowAll_Click(object sender, EventArgs e)
 
-         {
 
-             dgvUsers.Rows.Clear();  // очистить таблицу
 
-             // перебор пользователей в списке
 
-             foreach (user u1 in lst)
 
-             {
 
-                 // вывести в DataGridView пользователя
 
-                 dgvUsers.Rows.Add(u1.fam, u1.name);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |