diff --git a/feladat2/Program.cs b/feladat2/Program.cs new file mode 100644 index 0000000000000000000000000000000000000000..f63e3b7e48fa437d0b1905bc204f545f0df953f7 --- /dev/null +++ b/feladat2/Program.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MySql.Data.MySqlClient; + +namespace ConsoleApp1 +{ + class Program + { + static void Main(string[] args) + { + // 1. részfeladat + // importáld az import.sql file tartalmát egy általad létrehozott mysql adatbázisba + // ez kézzel történt meg (mysql, source import.sql) + + + // 2. részfeladat + // generálj 10 darab nem ismétlődő véletlen egész számot 1-50 között + + + List<int> generatedRandomNumbers = new List<int>(); + Random rand = new Random(); + List<int> possible = Enumerable.Range(1, 50).ToList(); + for (int i = 0; i < 10; i++) + { + int index = rand.Next(0, possible.Count); + generatedRandomNumbers.Add(possible[index]); + possible.RemoveAt(index); + } + + + // 3. részfeladat + // olvasd be az olvass.txt file tartalmát + + string[] lines = File.ReadAllLines("olvass.txt"); // TODO: hibakezelés + + + // 3.1 + //keresd meg ezeket a számokat(2.pontban generált) az olvass.txt KEY oszlopában + + // 3.2 + //térj vissza az ezekhez a key - ekhez tartozó value listával(csak azon value - k esetén, amik pozitív egész számok)->ezeket az értékeket kell keresni a user tábla id oszlopában[nevezzük ezt mostantól user_id_list - nek] + + List<int> user_id_list = new List<int>(); + + foreach (int num in generatedRandomNumbers) + { + foreach ( string line in lines) + { + string[] key_value = line.Split('|'); + try + { + int key = Int32.Parse(key_value[0]); + int value = Int32.Parse(key_value[1]); + if (key == num && value > 0 ) + { + user_id_list.Add(value); + } + } + catch (FormatException) + { + // Ami nem egész szám biztos nem kell + } + } + } + + + // 4. + //hozd létre a MySQL kapcsolatot + string myConnectionString = "server=192.168.0.101;database=cs_beugro;uid=domokdavid;pwd=bosch;"; + + MySqlConnection connection = new MySqlConnection(myConnectionString); + try + { + connection.Open(); + } + catch (Exception ex) + { + Console.WriteLine("Hiba az adatbázishoz csatlakozáskor"); + } + + // 4.1 + // a user_id_list - ben tárolt értékeket keresd meg a user tábla id oszlopában és az ezekhez a userekhez tartozó összes autót írd ki egy txt - be, tabulátorral elválasztva az alábbiak szerint: + // user tábla, name oszlop + // car tábla, brand oszlop + // car tábla, model oszlop + + StreamWriter outputFile = new StreamWriter("kimenet.txt"); + + foreach (int value in user_id_list) + { + //TODO prepared statement használata ha lehet vagy ha nem számít a sorrend a kimenetben akkor meg lehet csinálni egy lekérdezésben. + var stm = "SELECT user.name, car.brand, car.model FROM user JOIN user_car ON user.id=user JOIN car ON car.id = car WHERE user.id=" + value + ";"; + var cmd = new MySqlCommand(stm, connection); + MySqlDataReader rdr = cmd.ExecuteReader(); + + while (rdr.Read()) + { + outputFile.WriteLine("{0}\t{1}\t{2}", rdr.GetString(0), rdr.GetString(1), rdr.GetString(2)); + } + rdr.Close(); + } + connection.Close(); + outputFile.Close(); + } + } +}