Esempio n. 1
0
        static async Task Main()
        {
            DBCon.Open();

            const string SQL     = "SELECT * FROM table_student";
            MySqlCommand command = new MySqlCommand();
            var          result  = DBCon.SelectQuery(SQL);

            List <Student> students = new List <Student>();

            while (result.Read())
            {
                Student student = new Student();
                student.Id       = result.GetInt32("id");
                student.Name     = result.GetString("name");
                student.IsStudy  = result.GetBoolean("is_study");
                student.Birthday = result.GetDateTime("birthday");
                students.Add(student);
            }

            await using (FileStream fileWrite = new FileStream("students.json", FileMode.OpenOrCreate))
            {
                await JsonSerializer.SerializeAsync(fileWrite, students);
            }
            DBCon.Close();


            var studentsTemp = new List <Student>();

            await using (var fileRead = new FileStream("students.json", FileMode.Open))
            {
                studentsTemp = JsonSerializer.DeserializeAsync <List <Student> >(fileRead).Result;
            }


            foreach (var student in studentsTemp)
            {
                string       SQL_INSERT    = $"INSERT INTO table_student (name, is_study, birthday) VALUES ('{student.Name}', '{Convert.ToInt32(student.IsStudy)}', '{student.Birthday.ToString("yy-MM-dd")}');";
                string       SQL_CHECK     = "SELECT * FROM table_student";
                MySqlCommand command_check = new MySqlCommand();
                DBCon.Open();
                var result_check = DBCon.SelectQuery(SQL_CHECK);
                var isSame       = false;

                while (result_check.Read())
                {
                    if (student.Name == result_check.GetString("name") && student.IsStudy == result_check.GetBoolean("is_study") && student.Birthday == result_check.GetDateTime("birthday"))
                    {
                        isSame = true;
                    }
                }
                DBCon.Close();
                if (isSame == false)
                {
                    DBCon.Open();
                    if (DBCon.InsertQuery(SQL_INSERT))
                    {
                        Console.WriteLine("Все данные добавлены в БД");
                    }
                    else
                    {
                        Console.WriteLine("Данные не добавлены в БД");
                    }
                }
                else
                {
                    Console.WriteLine("Данные не добавлены в БД по причине существования идентичных");
                }
                DBCon.Close();
            }
        }