plik


ÿþTechnologie internetowe WykBad 11 ObsBuga baz danych w ASP.NET Definicja bazy danych Baza danych - zbiór powizanych ze sob logicznie danych, zorganizowany zgodnie z okre[lonym modelem danych. 1 SkBadowe bazy danych Baza danych Tabela Tabela Rekord Rekord Pole Pole Pole Pole Tabela Rekord Pole Pole Cechy relacyjnej bazy danych W relacyjnej bazie danych: rekordy w tabeli s unikalne pola s unikalne kolejno[ rekordów nie ma znaczenia kolejno[ pól nie ma znaczenia warto[ci pól s warto[ciami atomowymi 2 Typy danych Numeryczne Tekstowe Data/Godzina Walutowe Tak/Nie (logiczne) Memo Graficzne, OLE itd/ Autonumerowne Klucz gBówny Jest to pole (lub grupa pól) w tabeli, którego jednoznacznie identyfikuj rekord, tzn. |e w tabeli nie ma dwóch rekordów o tej samej warto[ci klucza gBównego. Nr Imi czytelnika Nazwisko czytelnika Miasto Imi autora Nazwisko autora TytuB Adam Kowalski Katowice Henryk Sienkiewicz Potop 1 Adam Kowalski Katowice Henryk Sienkiewicz Latarnik 2 Adam Kowalski Katowice Adam Mickiewicz Pan Tadeusz 3 4 MichaB Nowak Warszawa Juliusz Verne Tajemnicza wyspa 5 Joanna MikoBowska PoznaD Umberto Eco Imi ró|y 6 Joanna MikoBowska PoznaD Clive Clusler Sahara Klucz gBównych najcz[ciej jest polem autonumerowanym. 3 Klucz gBówny naturalny Klucz naturalny Imi Nazwisko Adres PESEL Wiek Dochód Klucz naturalny Relacja jeden do wiele 1:n Grupy Studenci NrGrupy NrStudenta Nazwa Imie NrKierunku FK Nazwisko NrGrupy FK Kierunki NrKierunku Nazawa 4 1:n Relacja wiele do wiele Studenci Grupy 1:n Klucz obcy Klucz obcy jest polem rekordu zawierajcego warto[ klucza gBównego rekordu z innej tabeli. Klucz obcy pozwala zwiza rekord w aktualnej tabeli z rekordem z innej. Tabela nie musi zawiera klucza obcego, ale mo|e te| zawiera kilka kluczy obcych. W przeciwieDstwie do klucza gBównego, warto[ci klucza obcego mog si powtarza dla wielu rekordów w tabeli. Klucz obcy umieszczamy zawsze w tabeli po stronie  wiele relacji midzy tabelami. 5 Rodzaje relacji Jeden do wielu (1:n) Grupy  Studenci Marki samochodów  Modele samochodów PaDstwa - Miasta Wiele do wiele (m:n) Sekcje sportowe  Studenci Modele samochodów  Cz[ci zamienne Jeden do jednego (1:1) Pracownik  WykBadowca Struktura bazy Pracownicy 1:1 1:n Studenci Grupy WykBadowcy m:n Przedmioty Kierunki m:n 6 1:n SQL - Structure Query Language Pozwala na komunikacj aplikacji klienckiej z serwerem bazodanowym Pozwala na zaawansowane wyszukiwanie danych w bazie Pozwala na modyfikacje danych w bazie Pozwala na modyfikowanie struktury bazy danych SQL: Pobieranie rekordów SELECT pobierane pola FROM nazwa tabeli WHERE warunek Pobranie caBej tabeli SELECT * FROM Studenci Pobieranie wybranych pól z tabeli SELECT Nazwisko, Ocena FROM Studenci Pobieranie wybranych rekordów SELECT * FROM Studenci WHERE Ocena>=3 SELECT Imie, Nazwisko FROM Studenci WHERE IdGrupy=3 SELECT * FROM Studenci WHERE Nazwisko='Kowal SELECT * FROM Studenci WHERE Imie LIKE '%a Operatory: =,<,>,<>,>=,<=,LIKE, AND, OR, NOT 7 SQL: Pobieranie danych zbiorczych SELECT funkcja agregujca AS alias FROM nazwa tabeli WHERE warunek Suma pola dla wszystkich rekordów SELECT SUM(Czesne) FROM Studenci Zrednia ocen studentów wybranej grupy SELECT AVG(Ocena) AS Srednia FROM Studenci WHERE IdGrupy=3 Najwy|sza i najni|sza ocena w[ród m|czyzn SELECT MIN(Ocena) AS MinOc, MAX(Ocena) AS MaxOC FROM Studenci WHERE Imie NOT LIKE  %a Liczebno[ grupy SELECT COUNT(*) AS Ile FROM Studenci SQL: Usuwanie rekordów DELETE FROM nazwa tabeli WHERE warunek Usunicie wszystkich rekordów DELETE FROM Studenci Usunicie konkretnego studenta DELETE FROM Studenci WHERE IdStudenta=1 Usunicie studentów grupy DELETE FROM Studenci WHERE IdGrupy=2 8 SQL: Dodawanie rekordów INSERT INTO nazwa tabeli (pole1, pole2) VALUES (warto[1, warto[2) Dodawanie studenta INSERT INTO Studenci (Nawisko, Ocena) VALUES ('Kowal , 3) SQL: Modyfikacja rekordów UPDATE nazwa tabeli SET pole1=warto[1, pole2=warto[2 WHERE warunek Modyfikacja danych wszystkich studentów UPDATE Studenci SET Wiek=Wiek+1 Modyfikacja danych konkretnego studenta UPDATE Studenci SET Czesne=Czesne*1.2, Ocena=5 WHERE IdStudenta=1 Modyfikacja danych studentów w grupie UPDATE Studenci SET Ocena=Ocena+1 WHERE IdGrupy=2 AND Ocena<4.5 9 Polecenia SQL z parametrami SELECT * FROM Studenci WHERE Nazwisko=@Nazwisko UPDATE Studenci SET Nazwisko=@Nazwisko WHERE IdStudenta=@IdStudent DELETE FROM Studenci WHERE IdGrupy=@IdGrupy INSERT INTO Studenci (Nazwisko,Imie) VALUES (@Nazwisko,@Imie) Praca z baz danych w .NET Technologia ADO.NET dostarcza zestaw klas pozwalajcych pracowa z danymi w dowolnej aplikacji .NET Przestrzenie nazw ADO.NET System.Data  klasy wspólne dla wszystkich typów serwetów System.OleDb  klasy dedykowane dla serwerów obsBugujcych protokóB OleDb System.Odbc  klasy dedykowane dla serwerów obsBugujcych protokóB Odbc System.SqlClient  klasy dedykowane dla serwera MS SQL System.OralceClient  klasy dedykowane dla serwera Oracle Przedrostki klas: OleDb Odbc Sql Oracle 10 Klasy ADO.NET Praca z utrzymaniem poBczenia DataReader Connection Command Serwer DB Aplikacja kliencka Connection  pozwala nawiza poBczenie z serwerem lokalnym lub zdalnym Command  pozwala wykonywa operacje na bazie przy pomocy poleceD SQL DataReader  pozwala czyta dane bezpo[rednio z bazy Klasy ADO.NET Praca bez poBczenia DataAdapter SelectCommand Connection DataSet DeleteCommand Serwer DB InsertCommand UpdateCommand Aplikacja kliencka Connection  pozwala nawiza poBczenie z serwerem lokalnym lub zdalnym DataSet  kontener przechowujcy jedn lub wiele tabel pobranych z bazy DataAdapter  odpowiada za pobranie danych z bazy do kontenera DataSet oraz zapis zmian do bazy 11 ConnectionString ConnectionString  dane niezbdne do nawizania poBczenia z serwerem DB PoBo|enie bazy (mo|e by adres INTERNETOWY) Data Source=C:/Documents and Settings/Administrator/Moje dokumenty/Uczelnia.mdb;Provider=Microsoft.Jet.OLEDB.4.0 Sterownik (provider) odpowiedni dla serwera DB (tutaj ACCESS) ADO.NET: Modyfikacja danych <%@ Page Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="System.Data.OleDb" %> <script runat="server"> protected void btnPremia_Click(object sender, EventArgs e) { OleDbConnection polaczenie = new OleDbConnection("Data Source=C:/Uczelnia.mdb;Provider=Microsoft.Jet.OLEDB.4.0"); OleDbCommand polecenie = new OleDbCommand("UPDATE Pracownicy SET Pensja=Pensja*1.2", polaczenie); polaczenie.Open(); // nawizanie poBczenia z serwerem polecenie.ExecuteNonQuery(); // wykonanie polecenia nie zwracajcego warto[ci polaczenie.Close(); } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Baza danych</title> </head> <body> <form id="form1" runat="server"> <asp:Button ID="btnPremia" runat="server" Text="btnPremia" onclick="btnPremia_Click" /> </form> </body> </html> 12 ADO.NET: Modyfikacja danych z parametrem <%@ Page Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="System.Data.OleDb" %> <script runat="server"> protected void btnDodaj_Click(object sender, EventArgs e) { OleDbConnection polaczenie = new OleDbConnection("Data Source=C:/Uczelnia.mdb;Provider=Microsoft.Jet.OLEDB.4.0"); OleDbCommand polecenie = new OleDbCommand("INSERT INTO Studenci (Nazwisko,Ocena) VALUES (@Nazwisko,@Ocena)", polaczenie); polecenie.Parameters.Add("@Nazwisko", OleDbType.WChar, 20).Value = txtNazwisko.Text; polecenie.Parameters.Add("@Ocena", OleDbType.Double).Value = txtOcena.Text; polaczenie.Open(); // nawizanie poBczenia z serwerem polecenie.ExecuteNonQuery(); // wykonanie polecenia nie zwracajcego warto[ci polaczenie.Close(); //zerwanie poBczenia z serwerem } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Baza danych</title> </head> <body> <form id="form1" runat="server"> <asp:TextBox ID="txtNazwisko" runat="server"></asp:TextBox> <asp:TextBox ID="txtOcena" runat="server"></asp:TextBox> <asp:Button ID="btnDodaj" runat="server" Text="Dodaj" onclick= btnDodaj_Click" /> </form> </body> </html> ADO.NET: Pobranie warto[ci skalarnej <%@ Page Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="System.Data.OleDb" %> <script runat="server"> protected void btnPolicz_Click(object sender, EventArgs e) { OleDbConnection polaczenie = new OleDbConnection("Data Source=C:/Uczelnia.mdb;Provider=Microsoft.Jet.OLEDB.4.0"); OleDbCommand polecenie = new OleDbCommand("SELECT COUNT(*) FROM Studenci WHERE Ocena>=@MinOcena", polaczenie); polecenie.Parameters.Add("@MinOcena", OleDbType.Double).Value = txtMinOcena.Text; polaczenie.Open(); // nawizanie poBczenia z serwerem int ile=(int)polecenie.ExecuteScalar(); // wykonanie polecenia zwracajcego warto[ skalarn lblIle.Text = ile.ToString(); polaczenie.Close(); } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Baza danych</title> </head> <body> <form id="form1" runat="server"> <asp:TextBox ID="txtMinOcena" runat="server"></asp:TextBox> <asp:Button ID="btnPolicz" runat="server" Text="Policz" onclick="btnPolicz_Click" /> <asp:Label ID="lblIle" runat="server" Text="0"></asp:Label> </form> </body> </html> 13 ADO.NET: Pobieranie rekordów <%@ Page Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="System.Data.OleDb" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { OleDbConnection polaczenie = new OleDbConnection("Data Source=C:/Uczelnia.mdb;Provider=Microsoft.Jet.OLEDB.4.0"); OleDbCommand polecenie = new OleDbCommand("SELECT Imie,Nazwisko FROM Studenci", polaczenie); polaczenie.Open(); // nawizanie poBczenia z serwerem OleDbDataReader dr = polecenie.ExecuteReader(); while (dr.Read()) lstStudenci.Items.Add(dr["Imie"] + " " + dr["Nazwisko"]); polaczenie.Close(); } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Baza danych</title> </head> <body> <form id="form1" runat="server"> <asp:ListBox ID="lstStudenci" runat="server"></asp:ListBox> </form> </body> </html> Lokalna baza danych ASP.NET Zawarto[ katalogu App_Data jest dostpna dla skryptów i kontrolek serwerowych a nie jest dostpna dla przegldarek u|ytkowników. SkBadowanie ConnectionString w pliku web.config <configuration> <connectionStrings> <add name="WydzialConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|\wydzial.mdb;Persist Security Info=True providerName="System.Data.OleDb" /> </connectionStrings> <%@ Page Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="System.Data.OleDb" %> <%@ Import Namespace="System.Web.Configuration" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { OleDbConnection polaczenie = new OleDbConnection(WebConfigurationManager.ConnectionStrings["WydzialConnectionString"].ConnectionString); : : : } </script> 14 Praca z danymi w ASP.NET Kontrolka wizualna Kontrolka zródBa danych SelectQuery Connection DeleteQuery Serwer DB InsertQuery UpdateQuery Kontrolki zródeB danych Kontrolki zródeB danych po[rednicz pomidzy skBadowiskiem danych a kontrolkami wizualnymi. AccessDataSource  pobiera dane z bazy MS Access SqlDataSource  pobiera dane z dowolnego serwera SQL (tak|e Access) XmlDataSource  pobiera dane z pliku .xml SiteMapDataSource  pobiera dane z pliku .sitemap ObjectDataSource, LinqDataSource - pobieraj dane z samodzielne oprogramowanego zródBa 15 Dane w kontrolkach list <form id="form1" runat="server"> <div> <asp:AccessDataSource ID="dsStudenci" runat="server" DataFile="~/App_Data/Uczelnia.mdb" SelectCommand="SELECT [Nazwisko], [NrStudenta], [Imie] FROM [Studenci]"> </asp:AccessDataSource> <asp:ListBox ID="lstStudenci" runat="server" DataSourceID="dsStudenci" DataTextField="Nazwisko" DataValueField="NrStudenta"></asp:ListBox> </div> </form> <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="dsStudenci" runat="server" ConnectionString="<%$ ConnectionStrings:UczelniaConnectionString %>" ProviderName="<%$ ConnectionStrings:UczelniaConnectionString.ProviderName %>" SelectCommand="SELECT [NrStudenta], [Imie], [Nazwisko] FROM [Studenci]"> </asp:SqlDataSource> <asp:ListBox ID="lstStudenci" runat="server" DataSourceID="dsStudenci" DataTextField="Nazwisko" DataValueField="NrStudenta"></asp:ListBox> </div> </form> DataTextField  pole wy[wietlane, DataValueField  pole dostpne z SelectedValue. Kontrolka GridView <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="dsStudenci" runat="server" ConnectionString="<%$ ConnectionStrings:UczelniaConnectionString %>" ProviderName="<%$ ConnectionStrings:UczelniaConnectionString.ProviderName %>" SelectCommand="SELECT [NrStudenta], [Imie], [Nazwisko], [Dzienny] FROM [Studenci]"> </asp:SqlDataSource> </div> <asp:GridView ID="gvStudenci" runat="server" AutoGenerateColumns="False" DataKeyNames="NrStudenta" DataSourceID="dsStudenci"> <Columns> <asp:BoundField DataField="Imie" HeaderText="Imie" SortExpression="Imie" /> <asp:BoundField DataField="Nazwisko" HeaderText="Nazwisko" SortExpression="Nazwisko" /> <asp:CheckBoxField DataField="Dzienny" HeaderText="Dzienny" SortExpression="Dzienny" /> <asp:HyperLinkField DataNavigateUrlFields="Nazwisko" DataNavigateUrlFormatString="http://www.google.pl?q={0}" DataTextField="Nazwisko" DataTextFormatString="Szukaj {0}" /> <asp:ImageField DataImageUrlField="Nazwisko" DataImageUrlFormatString="~/grafika/{0}.jpg"> </asp:ImageField> </Columns> </asp:GridView> </form> 16 Edycja danych w GridView <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="dsStudenci" runat="server" ConnectionString="<%$ ConnectionStrings:UczelniaConnectionString %>" DeleteCommand="DELETE FROM Studenci WHERE NrStudenta=@NrStudenta" ProviderName="<%$ ConnectionStrings:UczelniaConnectionString.ProviderName %>" SelectCommand="SELECT [NrStudenta], [Imie], [Nazwisko], [Dzienny] FROM [Studenci]" UpdateCommand="UPDATE Studenci SET Nazwisko=@Nazwisko, Dzienny=@Dzienny WHERE NrStudenta=@NrStudent"> </asp:SqlDataSource> </div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="NrStudenta" DataSourceID="dsStudenci"> <Columns> <asp:BoundField DataField="Nazwisko" HeaderText="Nazwisko" SortExpression="Nazwisko" /> <asp:CheckBoxField DataField="Dzienny" HeaderText="Dzienny" SortExpression="Dzienny" /> <asp:CommandField ShowEditButton="True" /> <asp:CommandField ShowDeleteButton="True" /> </Columns> </asp:GridView> </form> Kontrolka DetailsView <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="dsStudenci" runat="server" ConnectionString="<%$ ConnectionStrings:UczelniaConnectionString %>" DeleteCommand="DELETE FROM Studenci WHERE NrStudenta=@NrStudenta" ProviderName="<%$ ConnectionStrings:UczelniaConnectionString.ProviderName %>" SelectCommand="SELECT [NrStudenta], [Imie], [Nazwisko], [Dzienny] FROM [Studenci]"> </asp:SqlDataSource> </div> <asp:DetailsView ID="dvStudent" runat="server" AllowPaging="True" AutoGenerateRows="False" DataKeyNames="NrStudenta" DataSourceID="dsStudenci" Height="50px" Width="125px"> <Fields> <asp:BoundField DataField="Imie" HeaderText="Imie" SortExpression="Imie" /> <asp:BoundField DataField="Nazwisko" HeaderText="Nazwisko" SortExpression="Nazwisko" /> <asp:CheckBoxField DataField="Dzienny" HeaderText="Dzienny" SortExpression="Dzienny" /> <asp:CommandField ShowDeleteButton="True" /> </Fields> </asp:DetailsView> </form> 17 Kontrolka FormView <asp:SqlDataSource ID="dsStudenci" runat="server" ConnectionString="<%$ ConnectionStrings:UczelniaConnectionString %>" ProviderName="<%$ ConnectionStrings:UczelniaConnectionString.ProviderName %>" SelectCommand="SELECT [NrStudenta], [Imie], [Nazwisko], [Dzienny] FROM [Studenci]" InsertCommand="INSERT INTO Studenci (Imie,Nazwisko,Dzienny) VALUES (@Imie,@Nazwisko, @Dzienny)"> </asp:SqlDataSource> </div> <asp:FormView ID= fvStudent" runat="server" DataKeyNames="NrStudenta" DataSourceID="dsStudenci"> <InsertItemTemplate> Imie: <asp:TextBox ID="ImieTextBox" runat="server" Text='<%# Bind("Imie") %>' /> <br /> Nazwisko: <asp:TextBox ID="NazwiskoTextBox" runat="server" Text='<%# Bind("Nazwisko") %>' /> <br /> Dzienny: <asp:CheckBox ID="DziennyCheckBox" runat="server" Checked='<%# Bind("Dzienny") %>' /> <br /> <asp:LinkButton ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" />&nbsp; <asp:LinkButton ID="InsertCancelButton" runat="server" CommandName="Cancel" Text="Cancel" /> </InsertItemTemplate> <ItemTemplate> Student: <asp:Label ID="ImieLabel" runat="server" Text='<%# Eval("Imie") %>' />&nbsp; <asp:Label ID="NazwiskoLabel" runat="server" Text='<%# Eval("Nazwisko") %>' /> <br /> Dzienny: <asp:CheckBox ID="DziennyCheckBox" runat="server" Checked='<%# Eval("Dzienny") %>' Enabled="false" /> <br /> <asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" CommandName="New" Text="New" /> </ItemTemplate> </asp:FormView> Kontrolka ListView <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="dsStudenci" runat="server" ConnectionString="<%$ ConnectionStrings:UczelniaConnectionString %>" ProviderName="<%$ ConnectionStrings:UczelniaConnectionString.ProviderName %>" SelectCommand="SELECT [NrStudenta], [Imie], [Nazwisko], [Dzienny] FROM [Studenci]" </asp:SqlDataSource> <asp:DataList ID="dlStudenci" runat="server" DataKeyField="NrStudenta" DataSourceID="dsStudenci" RepeatColumns="3"> <ItemStyle BorderWidth="1px" /> <ItemTemplate> Imie: <asp:Label ID="ImieLabel" runat="server" Text='<%# Eval("Imie") %>' /><br /> Nazwisko:<asp:Label ID="NazwiskoLabel" runat="server" Text='<%# Eval("Nazwisko") %>' /><br /> <asp:CheckBox ID="chkDzienny" runat="server" Checked='<%# Eval("Dzienny") %>' Text="Dzienny" /><br /> </ItemTemplate> </asp:DataList> <br /> </div> </form> 18 Dodatkowe parametry poleceD SQL <form id="form1" runat="server"> <div> <asp:CheckBox ID="chkDzienny" runat="server" AutoPostBack="True" Text="Studenci dzienni" /> <asp:SqlDataSource ID="dsStudenci" runat="server" ConnectionString="<%$ ConnectionStrings:UczelniaConnectionString %>" ProviderName="<%$ ConnectionStrings:UczelniaConnectionString.ProviderName %>" SelectCommand="SELECT [Imie], [Nazwisko], [Dzienny] FROM [Studenci] WHERE Dzienny=@Dzienny" <SelectParameters> <asp:ControlParameter ControlID="chkDzienny" Name="@Dzienny" PropertyName="Checked" /> </SelectParameters> </asp:SqlDataSource> <asp:GridView ID="GridView1" runat="server" DataSourceID="dsStudenci"> </asp:GridView> </div> </form> Dostpne zródBa parametrów SQL Control  kontrolka wizualna Cookie  ciasteczko nadesBane z przegldarki Session  zmienna sesyjna Form  pole formularza przesBanego metod POST QueryString  pole formularza przesBanego metod GET Profile  zmienna przypisana do zarejestrowanego w serwisie u|ytkownika 19 Praca z wieloma tabelami <asp:SqlDataSource ID="dsGrupy" runat="server" ConnectionString="<%$ ConnectionStrings:UczelniaConnectionString %>" ProviderName="<%$ ConnectionStrings:UczelniaConnectionString.ProviderName %>" SelectCommand="SELECT [NrGrupy], [Nazwa] FROM [Grupy]"></asp:SqlDataSource> <asp:RadioButtonList ID="rblGrupy" runat="server" AutoPostBack="True" DataSourceID="dsGrupy" DataTextField="Nazwa" DataValueField="NrGrupy" RepeatDirection="Horizontal"> </asp:RadioButtonList> <asp:SqlDataSource ID="dsStudenci" runat="server" ConnectionString="<%$ ConnectionStrings:UczelniaConnectionString %>" ProviderName="<%$ ConnectionStrings:UczelniaConnectionString.ProviderName %>" SelectCommand="SELECT [Imie], [Nazwisko] FROM [Studenci] WHERE ([NrGrupy] = ?)"> <SelectParameters> <asp:ControlParameter ControlID="rblGrupy" Name="NrGrupy" PropertyName="SelectedValue" Type="Int32" /> </SelectParameters> </asp:SqlDataSource> <asp:GridView ID="gvStudenci" runat="server" DataSourceID="dsStudenci"> </asp:GridView> Studenci Grupy 1:n Praca z wieloma tabelami <asp:SqlDataSource ID="dsGrupy" runat="server" ConnectionString="<%$ ConnectionStrings:UczelniaConnectionString %>" ProviderName="<%$ ConnectionStrings:UczelniaConnectionString.ProviderName %>" SelectCommand="SELECT [NrGrupy], [Nazwa] FROM [Grupy]"></asp:SqlDataSource> <asp:DataList ID="DataList1" runat="server" DataKeyField="NrGrupy" DataSourceID="dsGrupy"> <ItemStyle BorderWidth="1px" BackColor="Yellow" /> <ItemTemplate> <asp:HiddenField ID="hfNrGrupy" runat="server" Value='<%# Eval("NrGrupy") %>' /> Grupa: <asp:Label ID="NazwaLabel" runat="server" Text='<%# Eval("Nazwa") %>' /><br /> <asp:SqlDataSource ID="dsStudenci" runat="server" ConnectionString="<%$ ConnectionStrings:UczelniaConnectionString %>" ProviderName="<%$ ConnectionStrings:UczelniaConnectionString.ProviderName %>" SelectCommand="SELECT [Imie], [Nazwisko] FROM [Studenci] WHERE ([NrGrupy] = ?)"> <SelectParameters> <asp:ControlParameter ControlID="hfNrGrupy" Name="NrGrupy" PropertyName="Value" Type="Int32" /> </SelectParameters> </asp:SqlDataSource> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="dsStudenci" Width="100%" BackColor="LightBlue"> <Columns> <asp:BoundField DataField="Imie" HeaderText="Imie" SortExpression="Imie" /> <asp:BoundField DataField="Nazwisko" HeaderText="Nazwisko" SortExpression="Nazwisko" /> </Columns> </asp:GridView> </ItemTemplate> </asp:DataList> 20 Dane z pliku XML Pracownicy.xml <?xml version="1.0" encoding="utf-8" ?> <pracownicy> <pracownik pesel="82110202345" nazwisko="Kowal" /> <pracownik pesel="82734359943" nazwisko="Nowak" /> </pracownicy> <asp:XmlDataSource ID="dsPracownicy" runat="server" DataFile="~/App_Data/Pracowmicy.xml"></asp:XmlDataSource> <asp:ListBox ID="lstPracownicy" runat="server" DataSourceID="dsPracownicy" DataTextField="nazwisko" DataValueField="pesel"></asp:ListBox> 21

Wyszukiwarka

Podobne podstrony:
Wyklad TI 1
Wyklad TI 9
Wyklad TI
Wyklad TI 6
PREZENTACJA wyklad TI 2
Wyklad TI
Wyklad TI 8
PREZENTACJA wyklad TI 4
Wyklad TI 4
Wyklad TI 3
PREZENTACJA wyklad TI 1
Wyklad TI 7
Wyklad TI
Wyklad TI 2
Wyklad TI 5
Wykład TI 05 12 11 2
TI Wykład 08
TI Wykład 03
wyklad Patryka wskaźniki TI 18 12 11

więcej podobnych podstron