Haladó Programozás Adatbázis és felhasználó létrehozása MS SQL Server alatt Adatbázisok elérése DbConnection/DbReader módszerrel (Nem tananyag!) SQL server.

Slides:



Advertisements
Hasonló előadás

Advertisements

„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
Weblap szerkesztés HTML oldal felépítése Nyitó tag Záró tag Nyitó tag Záró tag oldalfej tözs.
3 5 6 Application Services Deployment Services Databinding USER INTERFACE SERVICES XAML Accessibility Property System Input & Eventing BASE SERVICES.
Quest Szakmai Konferencia Ker-Soft Kft szeptember 27.
Tester Developer Architect Project Manager Business Analyst Designer Database Professional.
Erőállóképesség mérése Találjanak teszteket az irodalomban
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Richter Elek Technikai terméktámogatási felelős Microsoft Magyarország.
2 3 4 Connection DataReader Command MapConnection MapCommand MapDataReader Store Providers (e.g. SqlClient) Mapping provider Adattár (pl. SQL Server)
2 3.NET Framework 3.0 Visual Studio Extensions for WF Visual Studio Extensions for WCF/WPF CTP ASP.NET AJAX 1.0 Ajax Toolkit.NET Framework 3.5 Visual.
21 Years of Partnership and Innovation 1989 Citrix Systems founded 2010 Citrix signed licensing agreement with Microsoft for NT Server Introduced Independent.
Humánkineziológia szak
2 8 Kiadás éve / Platform Server (1000’s of users) Workgroup (Dozens of users) Desktop (Single User) Laptop Tablet PC Windows CE.
Mellár János 5. óra Március 12. v
IT-DEV-CON – Adatkezelés a felhőben Windows Phone 7 alkalmazással Tóth László
Koordináta transzformációk
Bevezetés a tárgyakhoz Tárgyak  Objects are the containers for values of a specified type  Objects are either signals, variables or constants  Once.
Az IBM SPSS Statistics programrendszer Gazdaságinformatikus MsC.
Fehérjék 4 Simon István. Predicting protein disorder - IUPred Basic idea: If a residue is surrounded by other residues such that they cannot form enough.
Socket programozás Példák
Neo4j bevezető Rácz Gábor
Image készítés Windows AIK segítségével
TRANZIENS ADATTÁROLÁS State objektum Egy alkalmazásszintű gyűjtemény (Dictionary), mely Tombstone esetén megőrzi tartalmát a memóriában kulcs/érték párokként.
Elektronikai Áramkörök Tervezése és Megvalósítása
Ember László XUBUNTU Linux (ami majdnem UBUNTU) Ötödik nekifutás 192 MB RAM és 3 GB HDD erőforrásokkal.
Védőgázas hegesztések
Adatbáziskezelés Horváth Ernő 1. Elérhetőségek Kiss Jenő Horváth Ernő Tanszéki honlap
SQL – OLAP 8. óra.
Delegátumok C#-ban Krizsán Zoltán iit 1.0.
Course Situation and Event Driven Models for Multilevel Abstraction Based Virtual Engineering Spaces Óbuda University John von Neumann Faculty of Informatics.
ADATBÁZISOK
ADATBÁZISOK
ADATBÁZISOK
Oracle multimédia Kiss Attila Információs Rendszerek Tanszék
Module 2: A Windows XP Professional automatikus telepítése
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
PHP VI Adatbázisok, MySQL
Service Manager.. Remedy Action Request System OpenView Operations.
Edge Transport Routing and AV/AS Enterprise Network External SMTP servers Phone system (PBX or VOIP) Client Access Client connectivity Web services.
Windows Server 2008 { PowerShell }
Alertet indíthat egy: SQL Server esemény (LOG) SQL Server performancia érték WMI events Alert végezhet: Operátor értesítést JOB indítás (válasz az eseményre)
szakmérnök hallgatók számára
Gincsai Gábor Dávid Zoltán MSDN Kompetencia Központ Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási.
Azure Storage BLOBS + CDN TablesQueuesDrives SQL AzureOData.
Szervező program Pénzügy figyelő, számlázó program Legújabb alkalmazás.NET Framework 2.0 WSE.NET Framework 4.0 WCF Régebbi, jól bevált alkalmazás.
Gábor Dénes Főiskola (IAI)Programozási technológia (Java) - III. / 1 13.Állományok, bejegyzések 14.Folyamok 15.Közvetlen hozzáférésű állomány.
4. Feladat (1) Foci VB 2006 Különböző országok taktikái.
Hasznos ismeretek Hogyan bővítsük ismereteinket AVRDUDEflags -E noreset.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
2012. tavaszi félév Vitéz Gergely. A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele.
2 Plug-in nélkül: AJAX 130+ eszközkészlet: megvásárolható, ingyenes és/vagy nyílt/megosztott forrású a webes megoldásszállítók saját, belső megoldásai.
var q = ( from c in dc.Customers where c.City == "London" where c.City == "London" select c).Including( c => c.Orders ); select c).Including(
Könyvtár, csomag és alprogramokVHDL Könyvtár, csomag és alprogram n Library és use n Package n Alprogramok –Procedure –Function –Resolution function Egy.
A pneumatika alapjai A pneumatikában alkalmazott építőelemek és működésük vezérlő elemek (szelepek)
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
- Group Policy - Group Policy Preferences - Group Policy 4x5 - Optimális munkakörnyezet – az első lépcsőfok.
© 2013, LogMeIn, Inc. | The Capability Cloud TM Git használata Visual Studio-ból.
Web Application 1 Web Application 3 Web Application 2 Web Application 4 Shared Service Provider 1 Shared Service Provider 2 Excel Services1 Search1.
WEBSTAR CSOPORT WC S ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE Marics Tamás június 20.
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
Haladó Programozás Adatbázis-elérési módszerek összehasonlítása
A KÖVETKEZŐKBEN SZÁMOZOTT KÉRDÉSEKET VAGY KÉPEKET LÁT SZÁMOZOTT KÉPLETEKKEL. ÍRJA A SZÁMOZOTT KÉRDÉSRE ADOTT VÁLASZT, VAGY A SZÁMOZOTT KÉPLET NEVÉT A VÁLASZÍV.
Haladó Programozás Adatbázis és felhasználó létrehozása MS SQL Server alatt Adatbázisok elérése DbConnection/DbReader módszerrel (Nem tananyag!) SQL server.
Web programozás és haladó fejlesztési technikák – C#
TECHNICAL TRAINING December 2012.
Developing, understanding and using nutrient boundaries
Antibiotic Drug Prescription
Előadás másolata:

Haladó Programozás Adatbázis és felhasználó létrehozása MS SQL Server alatt Adatbázisok elérése DbConnection/DbReader módszerrel (Nem tananyag!) SQL server elérése DataSet módszerrel (Nem tananyag!) SQL server elérése LINQ / Entity Framework módszerrel OE-NIK HP

Haladó Programozás Adatbázis és felhasználó létrehozása MS SQL Server alatt Adatbázisok elérése DbConnection/DbReader módszerrel SQL server elérése DataSet módszerrel SQL server elérése LINQ / Entity Framework módszerrel OE-NIK HP

SQL Server / SQL Express / LocalDB MSSQL: tipikusan kis és középvállalatok által használt adatbázis-kezelő szerver („fully ACID compliant”) (Oracle, IBM, MSSQL, Sybase, Teradata ; Free: MySQL, PostgreSQL, MariaDB) Korábbi VS verziók (x<2012): Az MS-SQL szerver egy kisebb változata integrálva volt a fejlesztőeszköz telepítőjébe (SQL Express) : max 10gb/database, max 1 physical cpu, max 1gb ram (Data Source=.\SQLEXPRESS) VS 2010 óta elérhető, VS 2012-ben default: LocalDB, API-kompatibilis, de szerver-szolgáltatás helyett igény szerint induló library (Data Source = (localdb)\v11.0)  Mi ezt fogjuk használni OE-NIK HP

SQL SERVER 2008 bejelentkezés Két fajta bejelentkezési mód: SQL Server Authentication és Windows authentication, nekünk az előbbi a jó, de alapértelmezetten az Express változatnál csak az utóbbi van engedélyezve Engedélyezés: Microsoft SQL Server 2008 R2 RTM - Management Studio Express: http://www.microsoft.com/en-us/download/details.aspx?id=22985 "Upgrade Microsoft Visual Studio 2008 to the SP1 before installing SQL Server 2008. Visual Studio SP1 can be found at http://go.microsoft.com/fwlink/?LinkId=159627." "New installation or add features" ablakon keresztül install, reboot http://www.microsoft.com/en-us/download/ details.aspx?id=29062  MSSQL 2012 Express OE-NIK HP

SQL Management Studio Ezt a folyamatot a laborgépeken NEM kell végigjátszani, a .\SQLEXPRESS szerverbe „nik” felhasználóval, „kin” jelszóval be tudunk lépni, és a „nikdb” adatbázisban ott találhatóak az Oracle rendszerben megszokott EMP és DEPT táblák Windows authentication móddal kell belépni.\SQLEXPRESS –be "Object Explorer" -ben gyökérelemre jobbkatt, Properties, Security > Server authentication: SQL Server AND Windows authentication Database létrehozásakor „Owner User” megadása kell, felhasználó létrehozásakor „Default Database” megadása kell … Lehetne módosítani később, de nem kell, jó lesz így, az új adatbázis tulajdonosa a Windows felhasználónk lesz... OE-NIK HP

SQL Management Studio Databases-re jobbkatt, New Database name: nikdb , owner: default, <OK> Security\logins -re jobbkatt, New Login name: nik, SQL server authentication, password: kin "Enforce password policy"-ből pipa kiszedése Default database: nikdb Security\logins\nik -re jobbkatt, Properties User Mapping, felső listában a nikdb mellé pipa; alsó listában a db_denydatareader és db_denydatawriter KIVÉTELÉVEL mindegyik mellé pipa SQL management studio -ból kilépünk Start Menu\Programs\Microsoft SQL Server 2008 R2\Configuration Tools\SQL Server Configuration Manager: SQL Server services/SQL Server, jobbkatt, restart OE-NIK HP

SQL Management Studio A szerver elindulása után lépjünk vissza az SQL management studio-ba User: nik, Pass: kin, "SQL server authentication" csatlakozás Databases\nikdb- re jobbkatt new query SQL_empdept.sql copypaste, <execute> (forrás: http://nik.uni-obuda.hu/hp/) Databases\nikdb\Tables  dept & emp (és nem northwind) OE-NIK HP

DbConnection vs DataSet vs LINQ Különböző absztrakciós szintek Alapvető műveletek: Kapcsolódás/inicializáció; beszúrás; módosítás; törlés; adatlekérés; GUI-hoz kapcsolás Az „Alapvető műveletek” listán fogunk mindegyik módszernél végigmenni http://www.akadia.com/services/dotnet_data_reader.html OE-NIK HP

Haladó Programozás Adatbázis és felhasználó létrehozása MS SQL Server alatt Adatbázisok elérése DbConnection/DbReader módszerrel SQL server elérése DataSet módszerrel SQL server elérése LINQ / Entity Framework módszerrel OE-NIK HP

ADO.NET: DbConnection/DbReader Régi stílusú adatbázis-elérés (nem MVC) Előny: gyors, egyszerű Hátrány: nehéz módosítani és technológiát/tárolási módszert váltani A különböző adatbázis-szerverekhez különböző implementációk Közös ős-osztályok a különféle feladatokhoz Adatbázis-kapcsolat: DbConnection SQL/RPC utasítás végrehajtása: DbCommand Utasítás eredményének beolvasása: DbDataReader Specifikus utódosztályok a különféle adatbázis-szerverekhez SqlConnection (MSSQL System.Data.SqlClient), MySqlConnection (MySQL MySql.Data.MySqlClient), NpgsqlConnection (PostgreSQL - Npgsql), OracleConnection (Oracle System.Data.OracleClient) RPC utasítás: Remote Procedure Call = Tárolt eljárás Az utódosztályok elnevezése a DbCommand és DbDataReader esetén is ugyanezt a mintát követi OE-NIK HP

1. Inicializálás string connStr = @"Data Source=.\SQLEXPRESS;Initial Catalog=nikdb;User ID=nik;Password=kin"; SqlConnection conn; private void button15_Click(object sender, EventArgs e) { conn = new SqlConnection(connStr); conn.Open(); MessageBox.Show("CONNECTED"); } OE-NIK HP

1. Inicializálás (alternatívák: MySQL, Postgre) case server_type.mysql: FConnStr = "server = " + FServer + ";\n" + "database = " + FDb + ";\n" + "user id = " + FUser + ";\n" + "password = " + FPass + ";\n"; FDatabase_Connection = new MySqlConnection(FConnStr); break; case server_type.postgre: FDatabase_Connection = new NpgsqlConnection(FConnStr); OE-NIK HP

1. Inicializálás (alternatíva: Oracle) case server_type.oracle: FConnStr = "data source = " + FServer + ";\n" + "user id = " + FUser + ";\n" + "password = " + FPass + ";\n"; FDatabase_Connection = new OracleConnection(FConnStr); break; OE-NIK HP

2. INSERT private void button18_Click(object sender, EventArgs e) { SqlCommand comm = new SqlCommand("insert into EMP (ENAME, MGR, DEPTNO, EMPNO) values ('BELA', NULL, 20, 1000)", conn); SqlDataReader reader=comm.ExecuteReader(); MessageBox.Show(reader.RecordsAffected.ToString()); reader.Close(); } OE-NIK HP

3. UPDATE private void button18_Click(object sender, EventArgs e) { SqlCommand comm = new SqlCommand("update EMP set ENAME='JOZSI' where EMPNO=1000", conn); SqlDataReader reader=comm.ExecuteReader(); MessageBox.Show(reader.RecordsAffected.ToString()); reader.Close(); } OE-NIK HP

4. DELETE private void button18_Click(object sender, EventArgs e) { SqlCommand comm = new SqlCommand("delete from EMP where empno=1000", conn); SqlDataReader reader=comm.ExecuteReader(); MessageBox.Show(reader.RecordsAffected.ToString()); reader.Close(); } OE-NIK HP

5. SELECT private void button14_Click(object sender, EventArgs e) { listBox1.Items.Clear(); SqlCommand comm = new SqlCommand("select * from EMP where sal>=3000 order by ename", conn); SqlDataReader reader = comm.ExecuteReader(); while (reader.Read()) listBox1.Items.Add(reader["ENAME"].ToString()); } reader.Close(); Cél: azon nevekkel feltölteni egy listboxot, akiknek a fizetése >= 3000 OE-NIK HP

6. BIND private void button13_Click(object sender, EventArgs e) { dataGridView1.DataSource = null; dataGridView1.Rows.Clear(); dataGridView1.Columns.Clear(); dataGridView1.AllowUserToAddRows = false; SqlCommand comm = new SqlCommand("select * from EMP order by ename", conn); SqlDataReader reader = comm.ExecuteReader(); while (reader.Read()) [GRIDVIEW FELTÖLTÉSE] } reader.Close(); Adatkötés létrehozása: cél dataGridView-hoz csatolni az adattáblát. Értelemszerűen alacsonyszintű kapcsolat esetén nem lehetséges  kézzel kell feltölteni OE-NIK HP

6. BIND - GRIDVIEW FELTÖLTÉSE if (dataGridView1.Columns.Count == 0) { for (int i = 0; i < reader.FieldCount; i++) { string coltext = reader.GetName(i).ToLower(); dataGridView1.Columns.Add(coltext, coltext); } }  dataGridView1.Rows.Add(); int rowid = dataGridView1.Rows.Count - 1; for (int i = 0; i < reader.FieldCount; i++) dataGridView1.Rows[rowid].Cells[i].Value = reader[i].ToString(); OE-NIK HP

Haladó Programozás Adatbázis és felhasználó létrehozása MS SQL Server alatt Adatbázisok elérése DbConnection/DbReader módszerrel SQL server elérése DataSet módszerrel SQL server elérése LINQ / Entity Framework módszerrel OE-NIK HP

ADO.NET: DataAdapter/DataSet/DataTable Régi stílusú adatbázis-elérés (nem MVC) Előny: nem kell konkrét SQL utasításokat írni, könnyebb adatkapcsolódás a GUI elemeihez Hátrány: nehéz módosítani és technológiát/tárolási módszert váltani Tipikusan csak MSSQL-lel működik normálisan (amúgy: szabványos ODBC drivereken keresztül: régi, bugos) Automatikusan generált, adatfüggő típusozott osztályoktól függ (~200KB teljesen normális méret egy két táblás adatbázishoz) Az osztályok legenerálása után egyedi osztályok vannak a táblákhoz/adatmezőkhöz: BindingSource: Adatforrás-kapcsolat a form felé TableAdapter: Tábla-leírás DataSet: adatbázis-reprezentáció, táblák egységbe zárása OE-NIK HP

DataSet létrehozása Server explorer (Express Edition-ben: Database Explorer) és Data Sources (shift+alt+d) fül kell Server explorer: Add connection Type: Microsoft SQL Server Server Name: .\SQLEXPRESS, SQL Server Authentication, User: nik, Pass: kin, Save password, Database name: nikdb Data sources: Add new data source Database / DataSet Connection kiválasztása, „Include sensitive data” „Save connection string to the application file”, Táblák kiválasztása Ezután a DataSources-ból a formra egyszerűen ráhúzzuk a táblát, máris kész az alkalmazás OE-NIK HP

1. Inicializálás private void button5_Click(object sender, EventArgs e) { eMPTableAdapter.Fill(nikdbDataSetVariable.EMP); MessageBox.Show("CONNECTED"); } OE-NIK HP

2. INSERT private void button8_Click(object sender, EventArgs e) { DataRow ujsor = nikdbDataSetVariable.EMP.NewRow(); //NewEmpRow() is használható lenne ujsor["ENAME"] = "BELA"; ujsor["MGR"] = DBNull.Value; ujsor["DEPTNO"] = 20; ujsor["EMPNO"] = 1000; nikdbDataSetVariable.EMP.Rows.Add(ujsor); eMPTableAdapter.Update(nikdbDataSetVariable); MessageBox.Show("DONE"); } OE-NIK HP

3. UPDATE private void button7_Click(object sender, EventArgs e) { DataRow dr = nikdbDataSetVariable.EMP.Rows[0]; dr.BeginEdit(); dr["ENAME"] = "JOZSI"; dr.EndEdit(); nikdbDataSet valtozas=(nikdbDataSet)nikdbDataSetVariable. GetChanges(DataRowState.Modified); if (valtozas.HasErrors) { nikdbDataSetVariable.RejectChanges(); } else { nikdbDataSetVariable.AcceptChanges(); eMPTableAdapter.Update(valtozas); } OE-NIK HP

4. DELETE private void button6_Click(object sender, EventArgs e) { DataRow dr = nikdbDataSetVariable.EMP.Rows[0]; dr.Delete(); nikdbDataSetVariable.AcceptChanges(); eMPTableAdapter.Update(nikdbDataSetVariable); } DataRow dr = nikdbDataSetVariable.EMP.Select("empno=1000")[0]; // EZ NEM A LINQ EXTENSION METHOD, CSAK UGYANAZ A NEVE! A kód papíron működik (VS2005-ben még ezt használtam ) … Most teszteltem VS2010 alatt: mintha működne (a 14 soros táblánál 14x működik, 15-ödszörre ahogy kell, kiakad, hogy „dataset is empty”)… Közben meg fizikailag a táblából nem töröl semmit valamiért: a program újraindítása után a táblában megint 14 sor van. OE-NIK HP

5. SELECT private void button12_Click(object sender, EventArgs e) { listBox1.Items.Clear(); foreach (DataRow dr in nikdbDataSetVariable.EMP.Select("sal>=3000")) listBox1.Items.Add(dr["ENAME"].ToString()); } Cél: azon nevekkel feltölteni egy listboxot, akiknek a fizetése >= 3000 OE-NIK HP

6. BIND private void button11_Click(object sender, EventArgs e) { dataGridView1.Columns.Clear(); dataGridView1.Rows.Clear(); dataGridView1.DataSource = null; //dataGridView1.DataSource = nikdbDataSetVariable.EMP; dataGridView1.DataSource = eMPBindingSource; } Mindegy h hogyan állítom be az adatforrást OE-NIK HP

Haladó Programozás Adatbázis és felhasználó létrehozása MS SQL Server alatt Adatbázisok elérése DbConnection/DbReader módszerrel SQL server elérése DataSet módszerrel SQL server elérése LINQ / Entity Framework módszerrel OE-NIK HP

LINQ: to SQL / to Entities (Entity Framework) Ránézésre hasonló: LINQ záradékok és szintaxis, Lambda kifejezések LINQ to SQL (DLINQ, DB-LINQ, L2S): csak közvetlen leképezést, és csak MSSQL dialektust támogat. Egyszerű és gyors, de nagyon korlátozottan használható („Rapid development”)  Project/Add Class/LINQ to SQL classes LINQ to Entities (ADO.NET Entity Framework, L2E): teljes ORM, N:M kapcsolatokat is támogat, és kiegészíthető alternatív adatbázis-dialektusokkal (LINQ to Oracle, NHibernate, InterLinq, LLBLGen) („Large-scale enterprise development”)  Data sources: Add new data source, Database, Entity Data Model OE-NIK HP

Entity model megközelítési módok Code First: Először hozzuk létre az osztályokat, és ebből az adatbázist Database/SQL First: Kész adatbázisból csinálunk modell osztályokat Model First: Modellező eszközzel „megrajzoljuk” az adatmodellt (= osztálydiagramot) ( http://msdn.microsoft.com/en-us/magazine/hh148150.aspx ) OE-NIK HP

Entity Data Model – SQLExpress / MSSQL Ha van meglévő MSSQL vagy SQLExpress adatbázisunk, akkor a connection string-ben lévő adatok segítségével tudunk ehhez csatlakozni (host, user, pass, catalog) Data sources: Add new data source, Database, Entity Data Model Generate from database  Data Connection kiválasztása Include sensitive data, save in app.config Táblák kiválasztása után <FINISH>  EDMX diagram Ugyanúgy automatikusan generált osztályok, mint a DataSet esetén, csak ezek nagyrészt generikus osztályok típusparaméterezett változatai  ~30KB a két táblás adatbázis OE-NIK HP

LocalDB létrehozása (EF v6) Entity Framework version 6, NuGet install-package EntityFramework  mi nem ezt fogjuk választani Csak már elmentett Solution esetén működik! Project, Add New Item, Service-based Database Adatbázisból egyből osztályokat tudunk létrehozni az <ADD> gomb után (Data Source Configuration Wizard) Többnyire itt „Cancel” kell, ha az adatbázis még nincs kész, és manuálisan kell létrehozni az adatokat, majd EZUTÁN tudjuk az osztályokat létrehozni ( http://msdn.microsoft.com/ en-us/library/vstudio/ms233763%28v=vs.110%29.aspx ) OE-NIK HP

LocalDB létrehozása (EF v4.3 / v5) Server Explorer -> Right click (Data Connections) -> Add Connection ( Microsoft SQL Server + .Net provider for SQL Server <OK> ) Server name = (localdb)\v11.0 , Database name = EMPDEPT <OK> "Database does not exists. Attempt to create?" <YES> Új DB-re jobbkatt, New query, a létrehozó SQL -ből mindent copypaste, Execute, ez után a query bezárható (Új db /tables- re jobbkatt, refresh: táblák megjelennek) Project, Add new data source, Database <NEXT>; Entity data model <NEXT>; Generate from database <NEXT>; LocalDB legyen a legördülő menüben + save connection settings <NEXT>; Mindegyik tábla mellett pipa + Pluralize object names + Model namespace = EMPDEPTModel <FINISH> Template can harm your computer, click ok to run ... <OK> <OK> ( http://msdn.microsoft.com/en-us/data/jj206878 ) http://users.nik.uni-obuda.hu/szabozs/install/DATABASES/INIT%20SQL%20scripts/ora_MS_INIT.sql http://users.nik.uni-obuda.hu/hp/SQL_empdept.sql OE-NIK HP

1. Inicializálás nikdbEntities NE = new nikdbEntities();  az „NE.EMP” és „NE.DEPT” adattagok LINQ adatforrásként használhatóak: var reszleg = NE.DEPT.First(); var dolg = from dolgozo in NE.EMP where dolgozo.ENAME.Contains("E") select dolgozo; nikdbEntities NE; private void button4_Click(object sender, EventArgs e) { NE = new nikdbEntities(); MessageBox.Show("CONNECTED"); } OE-NIK HP

2. INSERT private void button1_Click(object sender, EventArgs e) { var ujdolg = new EMP() ENAME = "BELA", MGR = null, DEPTNO = 20, EMPNO = 1000 }; NE.EMP.AddObject(ujdolg); NE.SaveChanges(); MessageBox.Show("DONE"); } OE-NIK HP

3. UPDATE private void button2_Click(object sender, EventArgs e) { var valaki = NE.EMP.Single(x => x.EMPNO == 1000); valaki.ENAME = "JOZSI"; NE.SaveChanges(); MessageBox.Show("DONE"); } OE-NIK HP

4. DELETE private void button3_Click(object sender, EventArgs e) { var valaki = NE.EMP.Single(x => x.EMPNO == 1000); NE.EMP.DeleteObject(valaki); NE.SaveChanges(); MessageBox.Show("DONE"); } OE-NIK HP

5. SELECT private void button9_Click(object sender, EventArgs e) { listBox1.Items.Clear(); foreach (var dolg in NE.EMP.Where(dolgozo => dolgozo.SAL >= 3000)) listBox1.Items.Add(dolg.ENAME); } Cél: azon nevekkel feltölteni egy listboxot, akiknek a fizetése >= 3000 OE-NIK HP

6. BIND private void button10_Click(object sender, EventArgs e) { dataGridView1.Columns.Clear(); dataGridView1.Rows.Clear(); dataGridView1.DataSource = null; var dolgozok = from dolgozo in NE.EMP orderby dolgozo.ENAME select dolgozo; dataGridView1.DataSource = dolgozok; } Mindegy h hogyan állítom be az adatforrást OE-NIK HP

+1 JOIN var dolgozok = from dolgozo in NE.EMP join reszleg in NE.DEPT on dolgozo.DEPTNO equals reszleg.DEPTNO select new { dolgozo.ENAME, dolgozo.SAL, reszleg.DNAME }; select new { dolgozo.ENAME, dolgozo.SAL, dolgozo.DEPT.DNAME Mindegy h hogyan állítom be az adatforrást OE-NIK HP

Feladat Az EMP táblához csatlakozzunk LINQ módszerrel, listázzuk ki a táblát DataGridView és TreeView vezérlőkben Legyen lehetőségünk a CRUD alapműveletek elvégzésére CRUD = Create, Read, Update, Delete OE-NIK HP

Források http://msdn.microsoft.com/en-us/library/bb882674 http://msdn.microsoft.com/en-us/library/ms254937 … és még soksok link az msdn.microsoft.com –ról … és még soksok link a stackoverflow.com –ról LINQ: Reiter István: C# jegyzet (http://devportal.hu/content/CSharpjegyzet.aspx) , 250. oldal (A könyv az alap LINQ to Objects-et tartalmazza) OE-NIK HP

OE-NIK HP

OE-NIK HP