Rp3 predavanje12
This presentation is the property of its rightful owner.
Sponsored Links
1 / 67

RP3/predavanje12 PowerPoint PPT Presentation


  • 64 Views
  • Uploaded on
  • Presentation posted in: General

RP3/predavanje12. Baze podataka. Baze podataka. ADO.NET je tehnologija za upravljano pristupanje podacima (primarna tehnologija u C#-u za povezivanje s bazama podataka). Naziv potječe od ActiveX Data Object (ADO) iako se te dvije tehnologije dosta razlikuju.

Download Presentation

RP3/predavanje12

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Rp3 predavanje12

RP3/predavanje12

  • Baze podataka

---------- Računarski praktikum 3 ----------

Maja Starčević


Baze podataka

Baze podataka

ADO.NET je tehnologija za upravljano pristupanje podacima (primarna tehnologija u C#-u za povezivanje s bazama podataka).

Naziv potječe od ActiveX Data Object (ADO) iako se te dvije tehnologije dosta razlikuju.

Sadrži niz klasa koje se mogu podijeliti u dva osnovna skupa – one koje pružaju pristup izvoru podataka (bazi) i klase koje podržavaju DataSet model (lokalni podskup podataka iz baze).

Računarski praktikum 3


Dataset

DataSet

Objekt klase DataSet predstavlja podskup čitave baze podataka pohranjen na lokalni stroj, pri čemu veza s bazom ima prekide.

DataSet može sadržavati čitavu bazu ili samo neke njezine dijelove.

Možemo ga shvatiti kao odspojenu bazu podataka (uspostavljena je veza radi sesije s bazom podataka, učitani su potrebni podaci u DataSet te je sesija zatvorena prekidom veze s bazom podataka).

Računarski praktikum 3


Dataset1

DataSet

DataSet se povremeno spaja na bazu, unosimo promjene koje su se u međuvremenu dogodile, te se DataSet ažurira promjenama koje su napravili drugi procesi.

Prednost korištenja DataSet modela je u tome što program ne zadržava resurse potrebne za spajanje te se time oslobađa mrežna propusnost i povećava učinkovitost baze podataka.

Model je napravljen prvenstveno za internet aplikacije koje zahtijevaju skalabilnost.

Računarski praktikum 3


Datatable

DataTable

DataSet se sastoji od objekata tipa DataTable i DataRelation.

Svojstvo Tables vraća kolekciju DataTableCollection koja sadržava sve DataTable objekte.

Može se kreirati programiranjem ili kao rezultat upita bazi.

Sadrži brojna javna svojstva, između ostalog Columns koji vraća DataColumnCollection koji se sastoji od objekata tipa DataColumn (predstavlja stupac u tablici).

Računarski praktikum 3


Datatable1

DataTable

DataTable.Rows daje kolekciju koja sadrži retke tablice.

Prvo se pristupa traženoj tablici i onda se može iterirati po recima (s foreach naredbom).

Kolekcija DataColumnCollection definira shemu po kojoj je sastavljena tablica, dok DataRowCollection sadrži podatke.

Za dodavanje i brisanje podataka koriste se metode Add i Remove.

Računarski praktikum 3


Datatable2

DataTable

Primjer: kreirat ćemo u kodu tablicu (DataTable objekt) s dva stupca i dva retka.

dt = new DataTable("myTable");

dt.Columns.Add("stupac1");

dt.Columns.Add("stupac2");

DataRow row = dt.NewRow();

row["stupac1"] = "11";

row["stupac2"] = "12";

dt.Rows.Add(row);

row = dt.NewRow();

row["stupac1"] = "21";

row["stupac2"] = "22";

dt.Rows.Add(row);

Računarski praktikum 3


Datarelations

DataRelations

DataSet.Relations vraća DataRelationCollection koji se sastoji od objekata DataRelation.

Objekt DataRelation predstavlja relaciju između dvije tablice (preko DataColumn objekta).

Računarski praktikum 3


Dataadapter

DataAdapter

DataAdapter je most između DataSet objekta i izvora podataka. Pruža mogućnost upravljanja podacima u nepovezanom načinu rada.

Sadrži između ostalog Fill metodu za pribavljanje podataka iz baze podataka kojima se puni DataSet objekt te metodu Update pomoću koje se ažuriraju podaci u bazi u odnosu na pripadni DataSet objekt.

Računarski praktikum 3


Imeni ki prostori

Imenički prostori

System.Data- prostor se sastoji od klasa koje čine ADO.NET arhitekturu.

Primjer jednog od potprostora:

System.Data.OleDb – klase koje čine .NET Framework Data Provider za OleDb-kompatibilne izvore podataka (npr. Access i Excel). Pružaju podršku za spajanje na OleDb bazu podataka, izvršavanje naredbi i čitanje rezultata.

Analogno vrijedi za prostore:

System.Data.SqlClient

System.Data.OracleClient

System.Data.Odbc

Računarski praktikum 3


Data provider

Data Provider

Data Provider(dobavljač podataka) je biblioteka klasa koja pruža interakciju s bazom podataka, ovisno o protokolu koji je podržan.

Ovisno o tipu pružatelja podataka, imena klasa mogu sadržavati tzv. API prefiks (Odbc, OleDb, Sql, Oracle).

Primjer: objekt Connection mora imati prefiks (SqlConnection, OdbcConnection...), dok je DataSet neovisan o tipu pružatelja podataka, pa nema prefiks.

Računarski praktikum 3


Primjer baze northwind

Primjer baze: Northwind

Free download na

http://www.microsoft.com

(SQL200SampleDb.msi)

Računarski praktikum 3


Dbcommand dbconnection

DBCommand, DBConnection

DBConnection predstavlja vezu s izvorom podataka. Ta veza se može dijeliti među različitim Command objektima.

DBCommand objekt omogućuje slanje naredbe (npr. SQL izraza ili spremljene procedure) prema bazi podataka.

Ova dva objekta se obično implicitno stvaraju kad se npr. kreira DataAdapter objekt, ali može im se i eksplicitno pristupati.

Računarski praktikum 3


Connection

Connection

Data Source - identifikacija za server(lokalni stroj,naziv domeneili IP adresa).

Initial Catalog – ime baze podataka.

Integrated Security - npr. ako je postavljeno na SSPI (Security Support Provider Interface), Windows vrši provjeru korisničkog imena i lozinke

SqlConnection conn = new SqlConnection(

"Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI“);

connection string

Računarski praktikum 3


Connection1

Connection

SQL Server autentifikacija:

User ID(uid) – ime korisnika (konfigurirano u SQL Server-u).

Password (pwd) – lozinka koja se slaže s User ID.

SqlConnection conn = new SqlConnection(

"Data Source=DatabaseServer;Initial Catalog=Northwind;

User ID=YourUserID;Password=YourPassword");

zamjenjuju

Integrated Security

parametar

Računarski praktikum 3


Connection2

Connection

Za neke ključne riječi postoji alternativa:

Data Source=myServerAddress;Initial Catalog=myDataBase;

User Id=myUsername;Password=myPassword;

ili

Server=myServerAddress;Database=myDataBase;

User ID=myUsername;Password=myPassword;Trusted_Connection=False;

Računarski praktikum 3


Connection3

Connection

Kod stvaranja string-a za SqlConnection bitno je navesti:

  • server (Server ili Data Source)

  • ime baze podataka (Database ili Initial Catalog)

  • autentifikaciju (Integrated Security ili Trusted Connection).

    Moguće vrijednosti za Trusted Connection su True, False, Yes, No, SSPI. True je ekvivalentno sa SSPI. Ukoliko je postavljeno na false, mora se navesti User ID i Password (u tom slučaju nije potrebno eksplicitno navoditi Trusted Connection).

Računarski praktikum 3


Command

Command

SqlCommandcmd = new SqlCommand();

SqlConnectionconn = new SqlConnection(connectionString);

cmd.CommandText= “select * from Customers";

cmd.CommandType = CommandType.Text;

cmd.Connection = connection;

Enumeracija CommandType:

StoredProcedure–ime spremljene procedure

TableDirect–ime tablice

Text – tekst SQL naredbe (default)  

Računarski praktikum 3


Datareader

DataReader

Kreiranje ovog objekta je alternativa stvaranju objekata DataSet i DataAdapter.

Omogućuje povezani, forward-only, read-only pristup kolekciji tablica. Koristi se često za punjenje kontrola podacima.

Dobar je izbor, ukoliko se zahtjeva brzina, ali za manipulaciju podacima bolji izbor je DataSet.

Računarski praktikum 3


Primjer baze

Primjer baze:

Napravit ćemo Access bazu u kojoj se nalaze podaci o studentima koji slušaju Računarski praktikum 8 i njihovim rezultatima iz prvog kolokvija.

Baza se sastoji od dvije tablice:

  • Studenti (sa stupcima JMBAG (4-znamenkasti broj - ključ), Ime, Prezime i Smjer studija)

  • Prvi kolokvij (sa stupcima JMBAG, Prvi zadatak, Drugi zadatak, Ukupno).

    Spremimo bazu u RP8.mdb

Računarski praktikum 3


Primjer baze1

Primjer baze:

U VisualStudiu:

Server Explorer  Data Connections  AddConnection

Računarski praktikum 3


Primjer baze2

Primjer baze:

Ispisat ćemo imena i prezimena svih studenata u bazi (u kontrolu tipa Label).

tipa Label).

using System;

using System.Data;

using System.Data.OleDb;

public partial class Form1 : Form

{

Labellabel = new Label();

OleDbConnectionconnection = null;

OleDbDataReaderreader = null

U System.Data.dll asembliju

Računarski praktikum 3


Primjer baze3

Primjer baze:

public Form1()

{

stringconnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +

@"Data source= D:\baze\RP8.mdb";

connection = new OleDbConnection(connectionString);

label.AutoSize = true;

Controls.Add(label);

InsertTest();

DeleteTest();

UpdateTest();

Ispis();

}

Računarski praktikum 3


Primjer baze4

Primjer baze:

void Ispis()

{

label.Text = "";

try

{

connection.Open();

OleDbCommandcommand = new

OleDbCommand("select * from Studenti", connection);

reader = command.ExecuteReader();

while (reader.Read())

label.Text += (reader["Ime"] + " " + reader["Prezime"] + "\n");

// može i label.Text += (reader[1] + " " + reader[2] + "\n");

}

Računarski praktikum 3


Primjer baze5

Primjer baze:

catch (Exception e)

{

MessageBox.Show(e.ToString());

}

finally

{

if (reader != null)

reader.Close();

if (connection != null)

connection.Close();

}

}

}

Računarski praktikum 3


Primjer baze6

Primjer baze:

void InsertTest()

{

try

{

connection.Open();

string insertString =

"insert into Studenti([JMBAG], [Ime], [Prezime], [Smjer studija])

values ( '26789', 'Mara', 'Marić', 'MS')";

OleDbCommand command = new OleDbCommand(insertString, connection);

command.ExecuteNonQuery();

}

Računarski praktikum 3


Primjer baze7

Primjer baze:

catch (Exception e)

{

MessageBox.Show(e.ToString());

}

finally

{

if (connection != null)

connection.Close();

}

Računarski praktikum 3


Primjer baze8

Primjer baze:

void DeleteTest()

{

try

{

connection.Open();

string deleteString = "delete from Studenti where Ime='Petar‘ ";

OleDbCommand command =

new OleDbCommand(deleteString, connection);

command.ExecuteNonQuery();

}

Računarski praktikum 3


Primjer baze9

Primjer baze:

catch (Exception e)

{

MessageBox.Show(e.ToString());

}

finally

{

if (connection != null)

connection.Close();

}

Računarski praktikum 3


Primjer baze10

Primjer baze:

void UpdateTest()

{

try

{

connection.Open();

string updateString =

"update Studenti set Ime='Ivana' where Ime='Andrea‘ ";

OleDbCommand command =

new OleDbCommand(updateString, connection);

command.ExecuteNonQuery();

}

Računarski praktikum 3


Primjer baze11

Primjer baze:

catch (Exception e)

{

MessageBox.Show(e.ToString());

}

finally

{

if (connection != null)

connection.Close();

}

Računarski praktikum 3


Primjer baze12

Primjer baze:

Računarski praktikum 3


Executescalar

ExecuteScalar

Pomoću metodeExecuteScalar( ) dobivamo jednu vrijednost iz tablice (baza sama vraća vrijednost umjesto da pozivamo ExecuteReader( ) i računamo rezultat u kodu).

OleDbCommand command=

new OleDbCommand("select count(*) from Studenti", connection);

int count = (int)cmd.ExecuteScalar();

Dodat ćemo još nekoliko metoda u klasu iz prethodnog

primjera.

Računarski praktikum 3


Executescalar1

ExecuteScalar

voidIspisBodova()

{

label.Text = “Bodovi: \n";

try

{

connection.Open();

OleDbCommandcommand = new

OleDbCommand("select * from [Prvikolokvij]", connection);

reader = command.ExecuteReader();

while (reader.Read())

label.Text += (reader[3]+ "\n");

}

// + standardni catch – finally blok

}

Računarski praktikum 3


Executescalar2

ExecuteScalar

voidIspisiProsjekBodova()

{

try

{

connection.Open();

OleDbCommandcommand =

new OleDbCommand("select avg(Ukupno) from [Prvikolokvij]", connection);

label.Text += String.Format("Prosjek bodova je {0}", command.ExecuteScalar());

}

// + catch – finally blok

}

Računarski praktikum 3


Primjer baze13

Primjer baze:

Pozovemo IspisBodova(); IspisiProsjekBodova();

Računarski praktikum 3


Parametri

Parametri

String u upitu je moguće stvoriti i dinamički, npr. pomoću TextBox kontrole.

Sljedeći kod je nesiguran:

string ime=“Ana”;

SqlCommand cmd = new SqlCommand(

"select * from Studenti where Ime =‘”+ime + “’);

Bolje je koristiti parametre:

Računarski praktikum 3


Parametri1

Parametri

using System;

using System.Data;

using System.Data.OLeDb;

public partial class Form1 : Form

{

Labellabel=new Label();

OleDbDataReaderreader = null;

OleDbConnectionconnection = null;

TextBoxtextBox = new TextBox();

public Form1()

{

InitializeComponent();

Računarski praktikum 3


Parametri2

Parametri

stringconnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +

@"Data source= D:\baze\RP8.mdb";

connection = new OleDbConnection(connectionString);

label.AutoSize = true;

label.Location = new Point(0, 50);

textBox.KeyPress += textBox_KeyPress;

Controls.Add(label);

Controls.Add(textBox);

}

void textBox_KeyPress(object sender, KeyPressEventArgs e)

{

if (e.KeyChar == (char)Keys.Enter)

IspisImena();

}

Računarski praktikum 3


Parametri3

Parametri

voidIspisImena()

{

label.Text = "Studenti u bazi cije ime je " + textBox.Text + ":\n\n";

try

{

connection.Open();

OleDbCommandcommand = new

OleDbCommand("select * from Studenti [email protected]", connection);

OleDbParameterparameter = new OleDbParameter();

parameter.ParameterName= "@ime";

parameter.Value= textBox.Text;

command.Parameters.Add(parameter);

Računarski praktikum 3


Parametri4

Parametri

reader = command.ExecuteReader();

while (reader.Read())

label.Text += (reader["Ime"] + " " + reader["Prezime"] + "\n");

}

catch (Exception e)

{

MessageBox.Show(e.ToString());

}

finally

{

if (reader != null)

reader.Close();

if (connection != null)

connection.Close();

}

Računarski praktikum 3


Dataset2

DataSet

Objekti tipa DataSet služe za pohranjivanje podataka iz baze. Ne koriste se za interakciju s bazom, već za to služi DataAdapter.

DataAdapter otvara vezu te je zatvara čim je obavljena zadana radnja na podacima.

Primjer:

  • otvaranje veze, dobavljanje podataka iz baze u DataSet, zatvaranje veze

    ili

  • otvaranje veze, zapisivanje promjene iz DataSet-a u bazu, zatvaranje veze

Računarski praktikum 3


Dataset3

DataSet

U razdoblju između izvršavanja metoda Fill i Update, veza s bazom podataka je zatvorena i moguće je slobodno čitanje i pisanje podataka u DataSet.

Aplikacija ima vezu prema bazi samo kad je to neophodno i time se povećava njezina skalabilnost.

Računarski praktikum 3


Dataset fill

DataSet.Fill

usingSystem;

usingSystem.Data;

usingSystem.Data.OleDb;

class Program

{

staticvoidMain()

{

FillTest();

}

Računarski praktikum 3


Dataset fill1

DataSet.Fill

voidFillTest()

{

try

{

stringconnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +

@"Data source= D:\baze\RP8.mdb";

stringcommandString =

"Select Ime, Prezime from Studenti";

OleDbDataAdapterdataAdapter = new OleDbDataAdapter

(commandString, connectionString);

DataSetdataSet = new DataSet();

dataAdapter.Fill(dataSet, "Studenti");

DataTabledataTable = dataSet.Tables[0];

Računarski praktikum 3


Dataset fill2

DataSet.Fill

foreach (DataRowdataRow in dataTable.Rows)

{

Console.WriteLine( String.Format("{0} {1}",

dataRow["Ime"], dataRow["Prezime"]);

}

}

catch (Exception e)

{

Console.Write(e.ToString());

}

}

}

Računarski praktikum 3


Dataset update

DataSet.Update

class Program

{

stringconnectionString;

DataSetdataSet;

OleDbConnectionconnection=null;

OleDbDataReaderreader=null;

staticvoidMain(string[] args)

{

Program p = new Program();

p.connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +

@"Data source= D:\baze\RP8.mdb";

p.UpdateTest();

}

Računarski praktikum 3


Dataset update1

DataSet.Update

voidUpdateTest()

{

try

{

dataSet = new DataSet();

connection = new OleDbConnection(connectionString);

OleDbDataAdapterdataAdapter =

new OleDbDataAdapter("select JMBAG, Ime, Prezime from Studenti", connectionString);

dataAdapter.Fill(dataSet);

OleDbCommandBuildercmd = new OleDbCommandBuilder(dataAdapter);

Računarski praktikum 3


Dataset update2

DataSet.Update

DataTabledataTable = dataSet.Tables[0];

foreach (DataRowdataRow in dataTable.Rows)

if ((dataRow["Ime"]).ToString() == "Hrvoje") dataRow["Ime"] = "Lovro";

//provjeravamo promjene u DataSet-u

foreach (DataRowdataRow in dataTable.Rows)

Console.WriteLine(String.Format("{0} {1}",

dataRow["Ime"], dataRow["Prezime"]));

dataAdapter.Update(dataSet);

Računarski praktikum 3


Dataset update3

DataSet.Update

connection.Open();

OleDbCommandcommand = new

OleDbCommand("select * from Studenti", connection);

reader = command.ExecuteReader();

//provjeravamo promjene u bazi

while (reader.Read())

Console.WriteLine(String.Format("{0} {1}", reader["Ime"], reader["Prezime"]));

}

catch (Exception e) { MessageBox.Show(e.ToString()); }

finally

{

if (reader != null)

reader.Close();

if (connection != null)

connection.Close();

}

}

Računarski praktikum 3


Datagrid

DataGrid

DataGrid je Windows Forms kontrola pomoću koje se mogu prikazivati podaci u recima i stupcima (nova verzija - DataGridView).

Ta kontrola je korisničko sučelje za DataSet. U najjednostavnijem slučaju DataGrid pokazuje podatke iz jedne tablice. Kad je kontrola povezana s više relacijski povezanih tablica, može pružati i navigaciju među tim tablicama.

Za spajanje na izvor podataka koriste se pri dizajniranju svojstva DataSource i DataMember, dok se u trenutku izvršavanja isto postiže metodom SetDataBinding.

Računarski praktikum 3


Datagrid1

DataGrid

DataGrid pokazuje rezultate svih promjena na podacima. Većinom se promjene rade direktno preko te kontrole.

Ako DataGrid ima postavljeno ReadOnly svojstvo na false, podaci se mogu mijenjati i preko DataGrid kontrole

DataGrid kontrola može odjednom pokazivati samo jednu tablicu. Pregled ostalih tablica je moguć ako je definirana relacija roditelj-dijete među tablicama.

Računarski praktikum 3


Datagrid2

DataGrid

Kao izvor podataka DataGrid može koristiti sljedeće klase

  • DataTable

  • DataSet

  • DataView

  • DataViewManager

Računarski praktikum 3


Dataview

DataView

Klasa DataView omogućava drugačiji prikaz podataka spremljenih u DataTable objektu. Omogućava sortiranje i filtriranje podataka.

Sortiranje i filtriranje podataka vrši se pomoću svojstava Sort, ApplyDefaultSort, RowFilter, RowStateFilter, metoda Find, FindRows..

Računarski praktikum 3


Dataview1

DataView

Instanca klase DataView može se kreirati na dva načina:

1. Pomoću konstruktora (može se zadati kriterij za filtriranje, sortiranje, Rowstate kriterij):

DataView customersDataView =

new DataView(customersDataSet.Tables["Customers"],

"Country = ‘HR'", "ContactName", DataViewRowState.CurrentRows);

2. Pomoću DefaultView svojstva klase DataTable:

DataView customersDataView = customersDataSet.Tables["Customers"].DefaultView;

Računarski praktikum 3


Datagrid3

DataGrid

Primjer: kreirat ćemo u kodu jedan DataSet objekt (dtSet) koji se

sastoji od dvije tablice (DataTable objekti ClanoviTable i PosudbeTable)

među kojima ćemo uspostaviti relaciju preko DataRelation objekta

dtRelation. DataSet je vizualno predstavljen preko DataGrid kontrole.

Za povezivanje ta dva objekta ćemo koristiti SetDataBinding metodu.

Računarski praktikum 3


Datagrid4

DataGrid

Računarski praktikum 3


Datagrid5

DataGrid

public class Form1 : Form

{

private DataGrid dataGrid1;

private DataSet dtSet;

public Form1()

{

this.dataGrid1 = new DataGrid();

((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();

this.SuspendLayout();

this.dataGrid1.DataMember = "";

this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;

this.dataGrid1.Location = new System.Drawing.Point(16, 8);

this.dataGrid1.Size = new System.Drawing.Size(384, 240);

Računarski praktikum 3


Datagrid6

DataGrid

this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

this.ClientSize = new System.Drawing.Size(416, 273);

this.Controls.Add(dataGrid1);

((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();

this.ResumeLayout(false);

KreirajTablicuClanova();

KreirajTablicuPosudbi();

PoveziTablice();

}

Računarski praktikum 3


Datagrid7

DataGrid

private void KreirajTablicuClanova()

{

DataTable clanoviTable = new DataTable("Clanovi");

DataColumn dtColumn;

DataRow myDataRow;

dtColumn = new DataColumn();

dtColumn.DataType = System.Type.GetType("System.Int32");

dtColumn.ColumnName = "ClanID";

dtColumn.Caption = "ClanID";

dtColumn.ReadOnly = true;

dtColumn.Unique = true;

clanoviTable.Columns.Add(dtColumn);

dtColumn = new DataColumn();

dtColumn.DataType = System.Type.GetType("System.String");

dtColumn.ColumnName = "Name";

dtColumn.Caption = "Ime i prezime";

dtColumn.AutoIncrement = false;

dtColumn.ReadOnly = false;

dtColumn.Unique = false;

clanoviTable.Columns.Add(dtColumn);

Računarski praktikum 3


Datagrid8

DataGrid

dtColumn = new DataColumn();

dtColumn.DataType = System.Type.GetType("System.String");

dtColumn.ColumnName = "Address";

dtColumn.Caption = "Adresa";

dtColumn.ReadOnly = false;

dtColumn.Unique = false;

clanoviTable.Columns.Add(dtColumn);

DataColumn[] PrimaryKeyColumns = new DataColumn[1];

PrimaryKeyColumns[0] = clanoviTable.Columns["id"];

clanoviTable.PrimaryKey = PrimaryKeyColumns;

dtSet = new DataSet("Videoteka");

dtSet.Tables.Add(clanoviTable);

Računarski praktikum 3


Datagrid9

DataGrid

myDataRow = clanoviTable.NewRow();

myDataRow["ClanID"] = 101;

myDataRow["Address"] = "Bukovac 1";

myDataRow["Name"] = "Petar Peric";

clanoviTable.Rows.Add(myDataRow);

myDataRow = clanoviTable.NewRow();

myDataRow["ClanID"] = 102;

myDataRow["Name"] = "Marko Maric";

myDataRow["Address"] = "Horvatovac 2";

clanoviTable.Rows.Add(myDataRow);

myDataRow = clanoviTable.NewRow();

myDataRow["ClanID"] = 103;

myDataRow["Name"] = "Petra Perkovic";

myDataRow["Address"] = "Srebrnjak 3";

clanoviTable.Rows.Add(myDataRow);

}

Računarski praktikum 3


Datagrid10

DataGrid

private void KreirajTablicuPosudbi()

{

DataTable posudbeTable = new DataTable("Posudbe");

DataColumn dtColumn;

DataRow dtRow;

dtColumn = new DataColumn();

dtColumn.DataType = System.Type.GetType("System.Int32");

dtColumn.ColumnName = "posudbeID";

dtColumn.AutoIncrement = true;

dtColumn.Caption = "PosudbeID";

dtColumn.ReadOnly = true;

dtColumn.Unique = true;

posudbeTable.Columns.Add(dtColumn);

dtColumn = new DataColumn();

dtColumn.DataType = System.Type.GetType("System.String");

dtColumn.ColumnName = "Name";

dtColumn.Caption = "Item Name";

posudbeTable.Columns.Add(dtColumn);

Računarski praktikum 3


Datagrid11

DataGrid

dtColumn = new DataColumn();

dtColumn.DataType = System.Type.GetType("System.Int32");

dtColumn.ColumnName = "ClanID";

dtColumn.AutoIncrement = false;

dtColumn.Caption = "ClanID";

dtColumn.ReadOnly = false;

dtColumn.Unique = false;

posudbeTable.Columns.Add(dtColumn);

dtSet.Tables.Add(posudbeTable);

Računarski praktikum 3


Datagrid12

DataGrid

dtRow = posudbeTable.NewRow();

dtRow["PosudbeID"] = 0;

dtRow["Name"] = "Avatar";

dtRow["ClanID"] = 101;

posudbeTable.Rows.Add(dtRow);

dtRow = posudbeTable.NewRow();

dtRow["PosudbeID"] = 1;

dtRow["Name"] = "Mission Impossible";

dtRow["ClanID"] = 101;

posudbeTable.Rows.Add(dtRow);

Računarski praktikum 3


Datagrid13

DataGrid

dtRow = posudbeTable.NewRow();

dtRow["PosudbeID"] = 3;

dtRow["Name"] = "Matrix 3";

dtRow["ClanID"] = 102;

posudbeTable.Rows.Add(dtRow);

dtRow = posudbeTable.NewRow();

dtRow["PosudbeID"] = 4;

dtRow["Name"] = "My Best Friend's Wedding";

dtRow["ClanID"] = 103;

posudbeTable.Rows.Add(dtRow);

}

Računarski praktikum 3


Datagrid14

DataGrid

private void PoveziTablice()

{

DataRelation dtRelation;

DataColumn clanoviColumn = dtSet.Tables["Clanovi"].Columns["ClanID"];

DataColumn posudbeColumn = dtSet.Tables["Posudbe"].Columns["ClanID"];

dtRelation = new DataRelation(

"ClanoviPosudbeRelation", clanoviColumn, posudbeColumn);

dtSet.Tables["Posudbe"].ParentRelations.Add(dtRelation);

dataGrid1.SetDataBinding(dtSet, "Clanovi");

}

}

Računarski praktikum 3


  • Login