Ebben a feladatban az előző feladatban létrehozott kvarosok tábla adatait kérdezzük le az mo_telepulesek adatbázisból.
Kedvenc_varosok2 projektnévvel.MySqlConnector csomagot.mo_telepulesek adatbázishoz.Hozzuk létre a lekérdezés parancsát kezelő MySqlCommand objektumot. A parancs a kvarosok tábla teljes tartalmát kérdezze le.
Az előző lépésben megírt SQL lekérdezést egy új, MySqlDataReader objektum segítségével hajtjuk végre.
MySqlDataReader osztály gyors, csak olvasható hozzáférést biztosít egy lekérdezés eredményeihez.A MySqlDataReader objektum létrehozásához meghívjuk a MySqlCommand osztály ExecuteReader() metódusát.
MySqlDataReader sqlReader;
sqlReader = sqlCommand.ExecuteReader();
A lekérdezés eredményének kiíratásához egy while ciklust fogunk használni a ciklusfeltételben a MySqlDataReader osztály Read() metódusának meghívásával.
Read() metódus tovább lépteti az olvasást végző objektumot a következő rekordra.true értéket ad amennyiben van még hátra rekord, és false értéket, amikor elértük a rekordok végét.while (sqlReader.Read())
{
}
A cikluson belül az adatokat azok index számával tudjuk beazonosítani.
Console.WriteLine("Név: " + sqlReader.GetString(0) + ", megye: " + sqlReader.GetString(1) + ", hozzáadás éve: " + sqlReader.GetInt32(2));
Az előző feladat mintájára írassuk ki a táblázat adatait, ezúttal tabulátorral tagolt táblázatos formát használva.
Ehhez szükségünk lesz a mezőnevek lekérdezésére. Ezt a MySqlDataReader osztály GetName() metódusával tudjuk megtenni.
GetName() metódus argumentumának annak a mezőnek az indexét kell megadnunk, amelynek a nevét szeretnénk visszakapni.Console.WriteLine("\\nAdatok táblázatos formában:");
Console.WriteLine(sqlReader.GetName(0) + "\\t" + sqlReader.GetName(1) + "\\t" + sqlReader.GetName(2));
while (sqlReader.Read())
{
Console.WriteLine(sqlReader.GetString(0) + "\\t" + sqlReader.GetString(1) + "\\t" + sqlReader.GetInt32(2));
}