/// <summary> /// Method for searching database for 0 up to 2 keywords (firstname or lastname). /// </summary> /// <param name="searchString">Optional to include search parameter. If no parameter is included, the search will return everyone in database.</param> /// <returns>Returns the datatable with 0 or more rows depending on searchresult.</returns> public DataTable GetAllPersons(string searchString = null) { /******************************************************************* * GETALLPERSONS() - PUBLIC *******************************************************************/ string sql = "SELECT * FROM Persons "; var nameOrCityOrDate = default(string); var lName = default(string); if (searchString != null) { var split = searchString.Split(' '); if (split.Length > 1) { nameOrCityOrDate = split[0]; lName = split[1]; sql += "WHERE firstName LIKE @fName OR lastName LIKE @lName ORDER BY firstName"; return(GetDataTable(sql, ("@fName", $"%{nameOrCityOrDate}%"), ("@lName", $"%{lName}%"))); } else { nameOrCityOrDate = split[0]; sql += "WHERE firstName LIKE @fName OR lastName LIKE @lName OR birthPlace LIKE @bPlace OR birthDate LIKE @bDate ORDER BY firstName"; return(GetDataTable(sql, ("@fName", $"%{nameOrCityOrDate}%"), ("@lName", $"%{nameOrCityOrDate}%"), ("bPlace", $"%{nameOrCityOrDate}%"), ("bDate", $"%{nameOrCityOrDate}%"))); } } sql += "ORDER BY firstName"; return(GetDataTable(sql)); }
/// <summary> /// Denna metoden returnerar en lista på barn till en person i databasen. /// </summary> /// <param name="ID"></param> /// <returns></returns> public List <string> GetChild(int ID) { var list = new List <string>(); var barnFar = GetDataTable("SELECT Förnamn FROM Personer WHERE FarID = @FarID", Familjeträd, ("@FarID", ID.ToString())); foreach (DataRow row in barnFar.Rows) { list.Add($"{row["Förnamn"].ToString().Trim()}"); } var barnMor = GetDataTable("SELECT Förnamn FROM Personer WHERE MorID = @MorID", Familjeträd, ("@MorID", ID.ToString())); foreach (DataRow row in barnMor.Rows) { list.Add($"{row["Förnamn"].ToString().Trim()}"); } return(list); }
public void InitializeData(string jsonSchemaName) { sJsonPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Data\", jsonSchemaName); sJsonRead = File.ReadAllText(sJsonPath); jTokens = JArray.Parse(sJsonRead).ToList(); GetDataTable?.Invoke(CreateDataTable()); GetModelObject?.Invoke(jTokens); }
/// <summary> /// Kollar om det redan finns en databas genom det namnet som skickas in som parameter. /// Informationen som hämtas läggs in i en tabell, om det är fler rader än 0 i tabellen så returneras true. /// </summary> /// <returns>Bool, Sant eller falskt</returns> internal bool CheckIfDatabaseExist(string name) { var db = GetDataTable("SELECT name FROM sys.databases WHERE name = @name", ("@name", name)); return(db?.Rows.Count > 0); }
/// <summary> /// Denna metoden innehåller speciella sökningar som användaren kan göra. /// </summary> public void SpecialSearch() { var db = new Databas(); var person = new Person(); Console.WriteLine("Vad för slags sökning vill du göra?\n\n(1) Lista upp personer som är födda ett visst årtal."); Console.WriteLine("(2) Lista upp förnamn som har ett förnamn börjar på en viss bokstav.\n(3) Lista upp personer som är från en viss stad."); Console.WriteLine("(4) Lista upp personer som har ett efternamn som börjar på en viss bokstav.\n(5) Lista upp personer som är födda i ett visst land\n"); string input = Console.ReadLine(); if (input == "1") { Console.WriteLine("Skriv in årtalet."); var choice = Console.ReadLine(); var people = GetDataTable("SELECT Förnamn, Efternamn FROM Personer WHERE Född = @choice", Familjeträd, ("@choice", choice)); if (people.Rows.Count == 0) { Console.WriteLine($"Det finns inga personer födda {choice}."); } else if (people.Rows.Count >= 1) { foreach (DataRow row in people.Rows) { Console.WriteLine($"{row["Förnamn"].ToString()} {row["Efternamn"].ToString()}"); } } } if (input == "2") { Console.WriteLine("Skriv in bokstaven. (Det går bra att skriva mer än en bokstav, ex. Lu för Luke och Lukas)"); string charInput = Console.ReadLine(); string choice = $"{charInput}%"; var people = GetDataTable("SELECT Förnamn, Efternamn FROM Personer WHERE Förnamn LIKE @choice", Familjeträd, ("@choice", choice)); if (people.Rows.Count == 0) { Console.WriteLine($"Det finns inga personer som börjar på {charInput}."); } else if (people.Rows.Count >= 1) { foreach (DataRow row in people.Rows) { Console.WriteLine($"{row["Förnamn"].ToString()} {row["Efternamn"].ToString()}"); } } } if (input == "3") { Console.WriteLine("Skriv in staden."); var choice = Console.ReadLine(); var people = GetDataTable("SELECT Förnamn, Efternamn FROM Personer WHERE Födelsestad = @choice", Familjeträd, ("@choice", choice)); if (people.Rows.Count == 0) { Console.WriteLine($"Det finns inga personer födda ifrån staden {choice}."); } else if (people.Rows.Count >= 1) { foreach (DataRow row in people.Rows) { Console.WriteLine($"{row["Förnamn"].ToString()} {row["Efternamn"].ToString()}"); } } } if (input == "4") { Console.WriteLine("Skriv in bokstaven. (Det går bra att skriva mer än en bokstav, ex. Sm för Smith och Smithsson)"); string charInput = Console.ReadLine(); string choice = $"{charInput}%"; var people = GetDataTable("SELECT Förnamn, Efternamn FROM Personer WHERE Efternamn LIKE @choice", Familjeträd, ("@choice", choice)); if (people.Rows.Count == 0) { Console.WriteLine($"Det finns inga personer som börjar på {charInput}."); } else if (people.Rows.Count >= 1) { foreach (DataRow row in people.Rows) { Console.WriteLine($"{row["Förnamn"].ToString()} {row["Efternamn"].ToString()}"); } } } if (input == "5") { Console.WriteLine("Skriv in landet."); string choice = Console.ReadLine(); var people = GetDataTable("SELECT Förnamn, Efternamn FROM Personer WHERE Födelseland LIKE @choice", Familjeträd, ("@choice", choice)); if (people.Rows.Count == 0) { Console.WriteLine($"Det finns inga personer som är födda efter {choice}."); } else if (people.Rows.Count >= 1) { foreach (DataRow row in people.Rows) { Console.WriteLine($"{row["Förnamn"].ToString()} {row["Efternamn"].ToString()}"); } } } }