gr692_zrr 4 years ago
parent
commit
62e33ece50
1 changed files with 173 additions and 5 deletions
  1. 173 5
      Учёт/Program.cs

+ 173 - 5
Учёт/Program.cs

@@ -14,6 +14,10 @@ namespace Учёт
     {
         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"];
@@ -239,15 +243,179 @@ namespace Учёт
                 {      
                     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("-> 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<d.Length)) // Чтение из файла не более чем NmaxZap       
+                    {
+                        Console.WriteLine(t); // на экран (для контроля)
+                        t = sr.ReadLine(); // чтение остальных строк        
+                    }
+                    sr.Close();  //fi.CopyTo("PayCopy.txt", true);
+                    fi = new FileInfo("Pay.txt"); // информация о файле      
+                    sw = fi.AppendText();
+                    // --------------------------------------------------------  
+                    Console.WriteLine("\nБыли добавлены следующие записи: ");
+                    sw.WriteLine("\nБыли добавлены следующие записи: ");
+                    try
+                    {
+                        string task_Insert = "Insert into Список_платежей values (" + 65 + ", N'01.12.20', N'Медецина', N'Врач', '1', '1500', '1500', '10');";
+                        string task_GetDataD = "Select * from Список_платежей;";
+                        cmd.CommandText = task_Insert + task_GetDataD;
+                        using (DbDataReader dr = cmd.ExecuteReader())
+                        {
+                            while (dr.Read())
+                            {
+                                if (Convert.ToInt32(dr[0]) == 65)
+                                {
+                                    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]);
+                                    sw.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]);
+                                }
+                            }
+                        }
+
+                        task_Insert = "Insert into Список_платежей values (" + 66 + ", N'06.12.2022', N'Разное', N'Ствол', '5', '15205', '76025', '60');";
+                        task_GetDataD = "Select * from Список_платежей;";
+                        cmd.CommandText = task_Insert + task_GetDataD;
+                        using (DbDataReader dr = cmd.ExecuteReader())
+                        {
+                            while (dr.Read())
+                            {
+                                if (Convert.ToInt32(dr[0]) == 66)
+                                {
+                                    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]);
+                                    sw.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]);
+                                }
+                            }
+                        }
+
+                        task_Insert = "Insert into Список_платежей values (" + 67 + ", N'08.02.2021', N'Быт и питание', N'Гипермаркет', '1', '3000', '3000', '110');";
+                        task_GetDataD = "Select * from Список_платежей;";
+                        cmd.CommandText = task_Insert + task_GetDataD;
+                        using (DbDataReader dr = cmd.ExecuteReader())
+                        {
+                            while (dr.Read())
+                            {
+                                if (Convert.ToInt32(dr[0]) == 67)
+                                {
+                                    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]);
+                                    sw.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]);
+                                }
+                            }
+                        }
+                    }
+                    catch
+                    {
+                        Console.WriteLine("Вставка новой записи о пользователе с уже заданным ID");
+                        sw.WriteLine("Вставка новой записи о пользователе с уже заданным ID");
+                    }
+                    sw.Close();
+
+                    // Запись в файл:  
+                    // связывание с файлом, кодировка символов  
+                    sr = new StreamReader("Pay.txt", Encoding.GetEncoding(65001));
+                    string str = File.ReadAllText("PayCopy.txt");//информация о файле
+                    fi = new FileInfo("PayCopy.txt");
+                    sw = fi.AppendText();
+                    sw.WriteLine();
+                    t = sr.ReadLine(); // чтение первой (0-й) строки
+                    while (t != null) // Чтение из файла
+                    {
+                        if (!str.Contains(t))
+                        {
+                            sw.WriteLine(t);
+                        }
+                        t = sr.ReadLine(); // чтение остальных строк
+                    }
+                    sr.Close();
+                    sw.Close();
                     cn.Close(); // закрыть соединение
-                
-                /*using SELECT MIN (Стоимость);
-                   using FROM Список_платежей;*/
-                Console.ReadKey();
+                }
+          
+                catch (Exception ex) // обработка исключений (например, если нет файла "info.txt")     
+                {
+                    Console.WriteLine("Нет файла для чтения!"+ ex);
+                }
+                                             // --------------------------------------------------------  
+                    Console.ReadKey();
             }
         }
     }