spájame
slovenskú
IT komunitu
pridaj sa
Registrácia · Login

Jaroslav Beňo 3.11.2014
Hodnoť článok:
0 0

Jednoduchá ASP.NET Web Pages stránka od nuly časť 4.

V ďašom návode sme vytvorili ďalšiu pod stránku a trochu sme zvýšili obtiažnosť.

1
Teraz budeme programovať stránku Ročníky.cshtml . Ako aj v minulom diele vytvoríme si jednoduchú tabuľku, nazveme ju Rocniky. Bude mať stĺpce IdRocniku a NazovRocniku - IdRocniku bude primarny kľúč a identita.

krok 1

2
Otvorime si databázu, načitame údaje o ročnikoch a predmetoch. Cez post budeme odosielať dáta. Uložíme si ich do databázy. Na tejto stránke budeme mať dva formuláre jeden na vkladanie ročníkov a druhý na priradenie predmetu k ročníku. Kvôli tomuto si pomenujeme obidva buttony a potom budeme testovať, ktorý formulár sa postol. Druhý formulár bude mať dva selecty a button. V option v selecte bude value Id rocnika alebo predmetu.



Testovanie, z ktorého formulára chcem spracovať dáta vyzerá takto:

if(IsPost){
        if(Request["vytvor"]!=null && Request["prirad"]==null){
            var rocnik = Request["rocnik"];
            db.Execute("INSERT INTO Rocniky (NazovPredmetu) VALUES (@0)",rocnik);
            Response.Redirect("~/Rocniky");
        }

        if(Request["vytvor"]==null && Request["prirad"]!=null){
            var roc = Request["roc"];
            var pred = Request["pred"];
        }
}	              

3
V druhej časti sme zatial len načítali dáta z formuláru. Tu je potrebné vytvoriť novú tabuľku a potom testovať či už daný predmet nie je priradený do daného ročníku. Vytvoríme si novú tabuľku s názvom RocnikPredmet, bude obsahovať dva stĺpce a to IdRocniku a IdPredmetu - obidva stĺpce si označíme ako primary key, to nám zabezpečí aby do toho istého ročníka mohli byť zaradené rôzne predmety a daný predmet môže byť priradený k viacerým ročníkom ale nemôžme mať ten istý záznam.

krok 3

4
Načítame si z databázy či sa v nej vyskituje záznam, ktorý obsahuje idrocniku a idpredmetu totožný s idčkami čo sme načítali z formuláru. Ak áno tak vypíšeme, že sa to nedá uskutočniť a ak nie tak vložíme záznam do databázy. Tu je fajn spomenúť, že sú 3 typi query a to Query (zoznam dát z databázy), QueryValue (počíta sa s jednou hodnotou z databázy) a QuerySigle (jeden riadok z databázy). Testujeme aj to aby ročník alebo predmet neboli prázdne - teda, že sa vybrala dvojica z formuláru.




Tip
: ak máte chuť spravte si podmienku aby keď vytvárate ročník nebola hodnota prázdna.

5
Na stránke si potom vypíšeme aj
zoznam ročníkov s predmetmy

.

<div>
    <h3>Zoznam ročnikov s predmetmy:</h3>
    <ul>
        @foreach(var r in rocniky){
            <li>@r.NazovRocniku
            @{
              var predmetyVrocniku = db.Query("SELECT IdPredmetu FROM RocnikPredmet WHERE IdRocniku=@0",r.IdRocniku);
              }
            @foreach(var p in predmetyVrocniku){
                <ul>
                    @{
                      var predmetNazov = db.QueryValue("SELECT NazovPredmetu FROM Predmety WHERE IdPredmetu = @0",p.IdPredmetu);
                      }
                    <li>@predmetNazov</li>
                </ul>
            }</li>
        }
    </ul>
</div>	              

6
Celé to potom vyzerá takto:

@{
    Layout="_SiteLayout.cshtml";
    var db = Database.Open("db");
    var rocniky = db.Query("SELECT * FROM Rocniky");
    var predmety = db.Query("SELECT * FROM Predmety"); 

    if(IsPost){
        if(Request["vytvor"]!=null && Request["prirad"]==null){
            var rocnik = Request["rocnik"];
            db.Execute("INSERT INTO Rocniky (NazovRocniku) VALUES (@0)",rocnik);
            Response.Redirect("~/Rocniky");
        }

        if(Request["vytvor"]==null && Request["prirad"]!=null){
            var roc = Request["roc"];
            var pred = Request["pred"];
            if(roc!=null && pred!=null){
                var rocnikPredmet = db.QuerySingle("SELECT * FROM RocnikPredmet WHERE IdRocniku = @0 AND IdPredmetu = @1",roc,pred);
                if(rocnikPredmet == null){
                    db.Execute("INSERT INTO RocnikPredmet (IdRocniku,IdPredmetu) VALUES (@0,@1)",roc,pred);
                }else{
                    Response.Write("Tento záznam už existuje");
                }
            }else{
                Response.Write("Musíte zvoliť nejaký predmet a ročník");
            }
        }

    }
}

<legend>Vytvor nový ročník</legend>
<form method="post" action="~/Rocniky">
    <input type="text" name="rocnik"/>
    <button type="submit" name="vytvor">Vytvor</button>
</form>
</br>

<legend>Pridaj predmet k ročníku</legend>
<form method="post" action="~/Rocniky">
    <label>Ročník
        <select name="roc">
            @foreach(var r in rocniky){
                <option value="@r.IdRocniku">@r.NazovRocniku</option>
            }
        </select>
    </label>
    <label>Predmet</label>
        <select name="pred">
            @foreach(var p in predmety){
                <option value="@p.IdPredmetu">@p.NazovPredmetu</option>
            }
        </select>
    <button type="submit" name="prirad">Priraď</button>
</form>

<div>
    <h3>Zoznam ročnikov s predmetmy:</h3>
    <ul>
        @foreach(var r in rocniky){
            <li>@r.NazovRocniku
            @{
              var predmetyVrocniku = db.Query("SELECT IdPredmetu FROM RocnikPredmet WHERE IdRocniku=@0",r.IdRocniku);
              }
            @foreach(var p in predmetyVrocniku){
                <ul>
                    @{
                      var predmetNazov = db.QueryValue("SELECT NazovPredmetu FROM Predmety WHERE IdPredmetu = @0",p.IdPredmetu);
                      }
                    <li>@predmetNazov</li>
                </ul>
            }</li>
        }
    </ul>
</div>	              

Jaroslav Beňo Jaroslav Beňo

Robím videá na YouTube.
Sú o programovaní, o Bohu, o jednoduchých návodoch.

Ke ma na YouTube môžeš sledovať:

JaroslavBeno (programovanie, technologie...)
kanál JaroslavBeno

JaroB (o Bohu)
kanál JaroB


Hodnoť článok:
0 0

0 komentárov k článku:

Komentovať môžu iba prihlásení

Zaregistruj sa cez bezplatnú registráciu alebo použi login cez Facebook (FB Connect)

Prihlás sa tu, ak už máš profil na Zajtra.sk:


Zabudol som heslo

Zajtra.sk > Programovanie > Seriály > Jednoduchá ASP.NET Web Pages stránka od nuly časť 4.


Kritika

Vieš ako robiť veci lepšie? Pomôž našim odvážnejším členom a skritizuj im projekty!

Reklama

Seriály zo Zajtra.sk

Reklama