Technologie ADO.NET Technologie ADO.NET doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava
Obsah přednášky MS DNA Architektura ADO.NET Komponenty ADO.NET Data ve formátu XML Spolupráce s prvky ASP.NET Technologie ADO.NET
MS Distributed interNet Applications Architecture (DNA) COM na klientské i serverové straně Obtížná realizace přes firewall Obtížná spolupráce s jinými platformami Vhodné pouze pro homogenní prostředí Spojení se serverem po celou dobu Technologie ADO.NET
Architektura ADO.NET Komponenty zaměřené na obsah DataSet DataTable, DataRow, DataColumn DataRelation Komponenty pro správu Connection Command DataReader DataAdapter Technologie ADO.NET
Architektura ADO.NET DataSet DataReader Command Command Connection Data-Related Components Manager/Provider Components DataReader Command Command Connection Connection DataAdapter DB server Data Stores Technologie ADO.NET
Komponenty ADO.NET DataReader DataSet DataAdapter rychlý přístup k datům pouze čtení směrem vpřed DataSet obsahuje kopii dat z datového zdroje čtení a zápis dat a schématu ve formátu XML DataAdapter abstrakce připojení a příkazu naplnění a synchronizace dat pro DataSet Technologie ADO.NET
Příklad - DataReader using System; using System.Data; using System.Data.Odbc; class Priklad { public static void Main() { OdbcConnection conn = new OdbcConnection("DSN=dais3"); OdbcCommand cmd = new OdbcCommand("SELECT ...", conn); conn.Open(); OdbcDataReader reader = cmd.ExecuteReader(); while( reader.Read() ) { string data = reader.GetString(0); } reader.Close(); conn.Close(); Technologie ADO.NET
DataColumnCollection DataRelationCollection DataSet DataSet DataTableCollection DataTable DataRowCollection DataRow DataColumnCollection DataColumn DataView DataRelationCollection DataRelation Technologie ADO.NET
Příklad - DataSet OdbcConnection conn = new OdbcConnection("DSN=KatIS"); // Vytvoření adaptéru OdbcDataAdapter da = new OdbcDataAdapter(); da.SelectCommand = new OdbcCommand("SELECT ...", conn); // Naplnění datové sady DataSet ds = new DataSet(); da.Fill(ds, "Tabulka"); // Zpracování dat foreach( DataRow pRow in ds.Tables["Tabulka"].Rows ) { string data = pRow[“data"]; } Technologie ADO.NET
Uložení dat v XML System.IO.StreamWriter xmlSW = new System.IO.StreamWriter( "Katedry.xml", false, System.Text.Encoding.GetEncoding(1250)); ds.WriteXml(xmlSW, XmlWriteMode.WriteSchema); // nebo IgnoreSchema xmlSW.Close(); Technologie ADO.NET
Čtení dat v XML DataSet ds = new DataSet(); System.IO.StreamReader xmlSR = new System.IO.StreamReader( "katedry.xml", Encoding.GetEncoding(1250)); ds.ReadXml(xmlSR, XmlReadMode.ReadSchema); foreach( DataRow pRow in ds.Tables["katedra"].Rows ) { System.Console.WriteLine("{0}: {1}", pRow["id"], pRow["nazev"]); } Technologie ADO.NET
Vazba ASP.NET na data <%@ Import Namespace="System.Data.Odbc" %> <form runat="server"> <asp:ListBox id="ListBox1" runat="server" Width="355px" Height="180px" DataTextField="nazev" DataValueField="id"/> </form> Technologie ADO.NET
Vazba ASP.NET na data void Page_Load(Object sender, EventArgs e) { if( !IsPostBack ) { OdbcDataAdapter da = new OdbcDataAdapter( "SELECT id,nazev FROM katedry", "DSN=KatIS"); System.Data.DataSet ds = new System.Data.DataSet(); da.Fill(ds, "Katedra"); ListBox1.DataSource = ds.Tables["Katedra"].DefaultView; ListBox1.DataBind(); } Technologie ADO.NET
Další zdroje informací http://msdn.microsoft.com/net http://dotnet.oreilly.com/ http://www.ondotnet.com/topics/dotnet/ado.net Dan Fox: Naučte se ADO.NET za 21 dní. Computer Press, 2002, ISBN 80-7226-772-8 Technologie ADO.NET