using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration; using System.Data.Common; using System.IO; namespace Учёт { class Program { static void Main(string[] args) { System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); StreamReader sr; // поток для чтения StreamWriter sw; // поток дя записи // Получение строки подключения и поставщика из App.config string dp = ConfigurationManager.AppSettings["provider"]; string cnStr = ConfigurationManager.AppSettings["conStr"]; // Получение генератора поставщика df DbProviderFactory df = DbProviderFactories.GetFactory(dp); // Получение объекта "подключение" (через df) using (DbConnection cn = df.CreateConnection()) { cn.ConnectionString = cnStr; cn.Open(); // Создание объекта "команда" (через df) DbCommand cmd = df.CreateCommand(); cmd.Connection = cn; string strSQL = "Select * From "; cmd.CommandText = strSQL + "Список_пользователей"; // Вывод списка пользователей cmd.CommandText = strSQL + "Список_пользователей"; using (DbDataReader dr = cmd.ExecuteReader()) { Console.WriteLine("\n Список_пользователей"); while (dr.Read()) Console.WriteLine("-> ID-{0} \n | FIO-{1} | LOGIN-{2} | PASSWORD-{3} | PIN-CODE-{4}", dr[0], dr[1], dr[2], dr[3], dr[4]); } // Вывод платежей с помощью объекта "чтение данных" dr cmd.CommandText = strSQL + "Список_платежей"; using (DbDataReader dr = cmd.ExecuteReader()) { Console.WriteLine("\n Список_платежей"); while (dr.Read()) Console.WriteLine("-> ID-{0, -5} | Дата-{1, -20} | Категория-{2, -24} | Наименование платежа-{3, -22} | Количество-{4, -2} | Цена-{5, -10} | Стоимость-{6, -12} | ID_Пользователя-{7} | ", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]); } // Найти в БД пользователя и платёж Console.WriteLine("\n Пользователь-платёж \n"); string task_str = "SELECT Список_пользователей.FIO, Список_платежей.Категория " + "FROM Список_платежей JOIN Список_пользователей on Список_пользователей.id = Список_платежей.ID_пользователя "; cmd.CommandText = task_str; using (DbDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.WriteLine($"Пользователь {dr[0]} за {dr[1]}"); } } try { Console.WriteLine("\n Добавление пользователей"); string task_Insert = "Insert into Список_пользователей values (" + 80 + ", N'Анучина Любовь Николаевна', 'lubasha1969', 'sol69', '2003');"; string task_GetDataD = "Select * from Список_пользователей;"; cmd.CommandText = task_Insert + task_GetDataD; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.Write(" "); } } } catch { } try { string task_Insert = "Insert into Список_пользователей values (" + 90 + ", N'Баранова Полина Сергеевна', 'bara333', 'polya3', '2157');"; string task_GetDataD = "Select * from Список_пользователей;"; cmd.CommandText = task_Insert + task_GetDataD; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.Write(" "); } } } catch { } try { string task_Insert = "Insert into Список_пользователей values (" + 100 + ", N'Банникова Анастасия Алексеевна', 'lyalya01', 'QwErT', '9510');"; string task_GetDataD = "Select * from Список_пользователей;"; cmd.CommandText = task_Insert + task_GetDataD; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.Write(" "); } } } catch { } try { string task_Insert = "Insert into Список_пользователей values (" + 110 + ", N'Зарипов Руслан Рафаилович', 'Goraone', 'somt2938', '0129');"; string task_GetDataD = "Select * from Список_пользователей;"; cmd.CommandText = task_Insert + task_GetDataD; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.Write(" "); } } } catch { } try { string task_Insert = "Insert into Список_пользователей values (" + 120 + ", N'Алфимова Светлана Александровна', 'Fiolet18', 'ImOk', '5452');"; string task_GetDataD = "Select * from Список_пользователей;"; cmd.CommandText = task_Insert + task_GetDataD; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.Write(" "); } } } catch { } try { Console.WriteLine("\n Добавление платежа"); string task_Insert = "Insert into Список_платежей values (" + 60 + ", '10.01.2021', N'Питание и быт', N'Сыр Российский', '1', '250','250','20');"; string task_GetDataD = "Select * from Список_платежей;"; cmd.CommandText = task_Insert + task_GetDataD; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.Write(" "); } } } catch { } try { Console.WriteLine("\n Добавление платежа"); string task_Insert = "Insert into Список_платежей values (" + 61 + ", '02.02.2021', N'Питание и быт', N'Смайк 5', '1', '69','69','40');"; string task_GetDataD = "Select * from Список_платежей;"; cmd.CommandText = task_Insert + task_GetDataD; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.Write(" "); } } } catch { } try { Console.WriteLine("\n Добавление платежа"); string task_Insert = "Insert into Список_платежей values (" + 62 + ", '12.03.2017', N'Медицина', N'Лекарства', '10', '50','500','30');"; string task_GetDataD = "Select * from Список_платежей;"; cmd.CommandText = task_Insert + task_GetDataD; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.Write(" "); } } } catch { } try { Console.WriteLine("\n Добавление платежа"); string task_Insert = "Insert into Список_платежей values (" + 63 + ", '02.02.2027', N'Автомобиль', N'Ремонт', '1', '2000','2000','70');"; string task_GetDataD = "Select * from Список_платежей;"; cmd.CommandText = task_Insert + task_GetDataD; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.Write(" "); } } } catch { } try { Console.WriteLine("\n Добавление платежа"); string task_Insert = "Insert into Список_платежей values (" + 64 + ", '11.09.2018', N'Разное', N'Чехол', '1', '200','200','50');"; string task_GetDataD = "Select * from Список_платежей;"; cmd.CommandText = task_Insert + task_GetDataD; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.Write(" "); } } } catch { } // Команда Update изменеие Console.WriteLine("\n Изменение платежа"); string task_Update = "Update Список_платежей set Цена = '420' where ID = 64;" + "Update Список_платежей set стоимость = '420' where ID = 64;"; string task_Update1 = "Update Список_платежей set Цена = '2900' where ID = 55;" + "Update Список_платежей set стоимость = '2900' where ID = 55;"; string task_Update2 = "Update Список_платежей set Цена = '450' where ID = 44;" + "Update Список_платежей set стоимость = '450' where ID = 44;"; string task_Update3 = "Update Список_платежей set Цена = '400' where ID = 20;" + "Update Список_платежей set стоимость = '400' where ID = 20;"; string task_Update4 = "Update Список_платежей set Цена = '200' where ID = 4;" + "Update Список_платежей set стоимость = '200' where ID = 4;"; string task_GetDataR = "Select * from Список_платежей;"; cmd.CommandText = task_Update + task_Update1 + task_Update2 + task_Update3 + task_Update4 + task_GetDataR; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.WriteLine("-> ID-{0, -5} | Дата-{1, -22} | Категория-{2, -24} | Наименование платежа-{3, -22} | Количество-{4, -2} | Цена-{5, -10} | Стоимость-{6, -12} | ID_Пользователя-{7} | ", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]); } } // ------------------------------------------------------- //cn.Close(); // закрыть соединение //удаление /*try { int count = 1; float[] min = new float[3]; for (int i = 0; i < 3; i++) { min[i] = int.MaxValue; } int[] minID = new int[3]; for (int i = 0; i < 3; i++) { minID[i] = 0; } cmd.CommandText = strSQL + "Список_платежей"; cn.Open(); using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { for (int i = 0; i < 3; i++) { if (Convert.ToSingle(dr[6]) < min[i]) { min[i] = Convert.ToSingle(dr[6]); break; } Array.Sort(min); } count++; } } cn.Close(); cn.Open(); Console.WriteLine("Список с удалёнными тремя минимальными по сумме"); string task_Delete = "Delete from Список_платежей where Стоимость = " + min[0] + ";"; cmd.CommandText = task_Delete; cmd.ExecuteReader(); cn.Close(); cn.Open(); string task_GetData = "Select * from Список_платежей;"; string task_Delete1 = "Delete from Список_платежей where Стоимость = " + min[1] + ";"; cmd.CommandText = task_Delete1; cmd.ExecuteReader(); cn.Close(); cn.Open(); string task_GetData1 = "Select * from Список_платежей;"; string task_Delete2 = "Delete from Список_платежей where Стоимость = " + min[2] + ";"; cmd.CommandText = task_Delete2; cmd.ExecuteReader(); cn.Close(); cn.Open(); string task_GetData2 = "Select * from Список_платежей;"; cmd.CommandText = task_GetData + task_GetData1 + task_GetData2; using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.WriteLine("| -{0, -5} | {1, -22} | {2, -24} | {3, -22} | {4, -2} | {5, -10} | {6, -12} | {7} |", dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7]); } } cn.Close(); } catch { }*/ try { // Чтение из файла // связывание с файлом, кодировка символов Юникода const int NmaxZap = 10; // макс.число записей FileInfo fi = new FileInfo("PayCopy.txt"); sr = new StreamReader("Pay.txt",Encoding.GetEncoding(65001)); string [] d = new string[NmaxZap]; string t = sr.ReadLine(); // чтение первой (0-й) строки int i = 0; // счетчик строк while ((t!=null)&&(i