HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Kalkulált mezők létrehozása tetszőleges adattáblákhoz


Példaprogram letöltése

8108 bájt

Ha egy adattábla megjelenítésekor olyan értékre is szükségünk lenne, mely nem szerepel a táblában, de más mezők értékéből számíthatók, akkor kapnak szerepet a kalkulált mezők.
Tipikus példa erre egy számla készítő program, ahol a számla tételeinél csak az adott termék nettó értékét tároljuk és az áfa kulcsot, de szeretnénk megjeleníteni ebben a táblában a bruttó értéket, persze nem úgy hogy fizikailag létrehozunk számára egy mezőt és ott tárolunk, hiszen e két előbbi mezőből bármikor számítható az értéke.

Új, kalkulált mező létrehozásához szükségünk van egy adattáblára is. Ezért létrehozunk egy kapcsolatot az SQL szerver Northwind példaadatbázisával majd az Orders táblában futtatunk egy lekérdezést.
      protected void button1_Click (object sender, System.EventArgs e)
      {
…
        DataSet ds = new DataSet(); 
A lekérdezésben a tábla OrderID és Freight mezőjét kérjük csak le, majd tároljuk egy DataSet-ben.
      SqlDataAdapter da = new SqlDataAdapter("select OrderID, Freight from Orders", connection);
      da.Fill(ds, "Orders");
Új mező létrehozást a következőképpen tudjuk megvalósítani: a DataSet osztályban a kérdéses táblát vesszük elő, mely most az Orders lesz. Ennek a Columns property-jében találunk egy Add függvényt, mely új oszlop létrehozására szolgál. Itt a következő paramétereket kell megadnunk: elsőként az új oszlop megnevezését, mely majd a DataGrid-ben történő megjelenítéskor is látható lesz az adott oszlop fejléceként. Második paraméterben azt határozzuk meg, hogy milyen típusú adatokat kell tárolnia ennek az új mezőnek. Végül egy olyan tetszőleges kifejezést kell megadnunk sztringként, melyet kiértékelve az új oszlop eredményét kapjuk. Jelen esetben az a feladata az új oszlopnak, hogy a Freight mező aktuális értékének a felét mutassa, így az itt megadandó kifejezés a Freight / 2 lesz.
        ds.Tables["Orders"].Columns.Add("Freight 50%", Type.GetType("System.Double"), "Freight / 2");
Végső lépésként már csak hozzákötjük az adattáblánkat egy DataGrid-hez, hogy látható legyen az eredmény, illetve az újonnan létrehozott oszlop is, mely ránézésre olyan, mintha a táblában fizikailag is létező oszlop lenne.
        dataGrid1.SetDataBinding(ds, "Orders");
      }

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2001 évkönyv 166. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |