Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ .NET Compact FrameworkΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 137

Автор Иво Π‘Π°Π»ΠΌΡ€Π΅

Π’ случаС Π²Ρ‹Π±ΠΎΡ€Π° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹ΠΌΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, отслСТиваниС Π»ΡŽΠ±Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, вносимых Π² Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π΄ΠΎΠ»Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² соотвСтствии с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ. Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ абстракции достигаСтся Π·Π° счСт ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ отвСтствСнности Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ эффСктивной ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. 

Рис. 14.3. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° использованию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ADO.NET DataSet


МодСль программирования, основанная Π½Π° использовании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ADO.NET DataSet, прСдоставляСт Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с рСляционными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ умСстно Π½Π΅ Π² любом контСкстС. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ADO.NET для удовлСтворСния потрСбностСй прилоТСния Π² доступС ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, Π° ΠΊΠΎΠ³Π΄Π° β€” Π½Π΅ слСдуСт.

Π’ ΠΊΠ°ΠΊΠΈΡ… случаях слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ADO.NET DataSet

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ADO.NET DataSet слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности манипулирования Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² памяти ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² использовании слоТного рСляционного способа прослСТивания Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, ΠΏΠΎ сущСству, ADO.NET ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ для вас Π² памяти Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ€Π΅Π»ΡΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, которая отслСТиваСт вносимыС измСнСния, Ρ‚ΠΎ использованиС этого ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° прСдоставляСт ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности для автоматичСского управлСния Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π² Π²Ρ‹ΡΡˆΠ΅ΠΉ стСпСни Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ связям ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ порциями Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ADO.NET DataSet ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° 1) объСм Π΄Π°Π½Π½Ρ‹Ρ…, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½Π΅ слишком Π²Π΅Π»ΠΈΠΊ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΅ΠΌΠΊΠΎΡΡ‚ΡŒΡŽ памяти мобильного устройства, ΠΈ 2) Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ отслСТивания ΠΈ распространСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ADO.NET DataSet ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с Π΄ΠΎΠ»Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ. Π’Π°ΠΊΠΎΠΉ ΠΎΠ±ΠΌΠ΅Π½ осущСствляСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… способов: 1) использованиС классов DataAdapter, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΡ… соСдинСниС с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… посрСдством ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, 2) сСриализация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² DataSet Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ XML ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΈ 3) сСриализация посрСдством ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считываСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² DataSet ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠšΡ€Π°Ρ‚ΠΊΠΈΠ΅ описания ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· упомянутых способов ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… приводятся Π½ΠΈΠΆΠ΅.

ИспользованиС классов DataAdapter для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ взаимодСйствия с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ΠΈΠΏ ADO.NET System.Data.Common.DataAdapter β€” это абстрактный класс, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ прСдоставляСт шаблон для пороТдСния Π΄Ρ€ΡƒΠ³ΠΈΡ… классов DataAdapter, спСцифичСских ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, собствСнно говоря, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. ВмСстС с .NET Compact Framework ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π΄Π²Π° Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ…:

1. SqlDataAdapter. Класс System.Data.SqlClient.SqlDataAdapter ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… SQL Server, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ Π½Π° сСрвСрах.

2. SqlCeDataAdapter. Класс System.Data.SqlServerCe.SqlCeDataAdapter ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… SQL Π‘Π•, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах.

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ источникам Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ сторонними производитСлями. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнный класс DataAdapter, Ссли имССтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ источник Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ.

НСзависимо ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ DataAdapter Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ посрСдством присоСдинСнных ΠΊ Π½ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Command. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ класса DataAdapter Ρƒ класса Command Π½Π΅Ρ‚ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ класса, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы Command, спСцифичСскиС ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…; понятиС класса Command сущСствуСт лишь ΠΊΠ°ΠΊ понятиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² SqlDataAdapter ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ связанныС с Π½ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ SqlCommand, для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² SQL Π‘Π• SqlCeDataAdapter β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ SqlCeCommand, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Command ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Connection, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (commands) Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ экзСмпляр Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ соСдинСниС с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… SQL Server ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ SqlCommand Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ SqlConnection. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Command ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ запросы ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ для извлСчСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ помСщСния ΠΈΡ… Π² Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Command извСстно, ΠΊΠ°ΠΊ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ дСйствия ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ SQL-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ, обновлСния, вставки ΠΈΠ»ΠΈ удалСния Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊ, для выполнСния этих ΠΊΠΎΠΌΠ°Π½Π΄ Ρƒ класса SQLDataAdapter ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ свойства: SelectCommand, UpdateCommand, InsertCommand ΠΈ DeleteCommand. КаТдоС ΠΈΠ· этих свойств ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ SqlCommand. Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° SqlCeDataAdapter Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ свойства с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π½ΠΎ Ρ‚ΠΈΠΏΠΎΠΌ этих свойств являСтся SQLCeCommand.

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΠΏΠΎΠ΄Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΡ‚ΠΎΠ³ΠΎΠ². АдаптСры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ посрСдников ΠΏΡ€ΠΈ осущСствлСнии связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ADO.NET DataSet ΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, для выполнСния этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Command. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Command ΡΠ²Π»ΡΡŽΡ‚ΡΡ спСцифичСскими ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Command ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ΡΡ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Connection, Π²Π»Π°Π΄Π΅ΡŽΡ‰ΠΈΠΌΠΈ соСдинСниями с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ сСрвСром. Π’ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… случаях ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Command являСтся Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ Ρ‚Π°ΠΊΠΈΡ… SQL-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠ°ΠΊ Select * from Customers, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Connection β€” Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°ΠΌΠΈ логичСского соСдинСния с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠŸΡ€ΠΈ создании .NET-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΈ сСрвСров Visual Studio .NET ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ настройку ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ассоциированных с Π½ΠΈΠΌΠΈ классов Command; это Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ процСсс доступа ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ этого, для создания ΠΈ использования Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² .NET Compact Framework Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сами Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² DataAdapter ΠΈ Command для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π²Π°ΠΌΠΈ источниками Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ срСдства Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ .NET Compact Framework ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ DataAdapter ΠΈ DataCommand для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с популярными Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° самих сСбя. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ прСдусмотрСнныС для Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΈ сСрвСров ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ исходный ΠΊΠΎΠ΄ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, часто ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ сгСнСрированным ΠΈΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для выполнСния Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах; хотя этот ΠΊΠΎΠ΄ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ сущСствСнно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, ΠΎΠ½ послуТит Π²Π°ΠΌ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

ИспользованиС Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² XML для сохранСния ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ содСрТимого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ADO.NET DataSet Π² Π²ΠΈΠ΄Π΅ XML-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ "Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для Π±Π΅Π΄Π½Ρ‹Ρ…". Π”Π°Π½Π½Ρ‹Π΅ прилоТСния ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² тСкстовом Ρ„Π°ΠΉΠ»Π΅ с использованиСм Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ADO.NET DataSet. Π­Ρ‚ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° DataSet, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‡Π΅Ρ€Π΅Π· запрос Web-слуТбы. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… использованиС тСкстового XML-Ρ„Π°ΠΉΠ»Π° для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π»ΠΈΡˆΠ°Π΅Ρ‚ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ³Π°Ρ‚Ρ‹Ρ… возмоТностСй Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ цСлостности Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Ρ… соврСмСнными Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. НСсмотря Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ хранСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ возмоТности обновлСния Π΄Π°Π½Π½Ρ‹Ρ… посрСдством ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… нСбольшого объСма (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, XML-Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 20 ΠšΠ±Π°ΠΉΡ‚) ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сСрвСр посрСдством XML-ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² DataSet Π² Π²ΠΈΠ΄Π΅ постоянно ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… XML-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ простой способ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ»ΠΈ срСдних объСмов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ состояния прилоТСния для Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования.

ΠŸΡ€ΠΈ записи содСрТимого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° DataSet Π² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ XML Π²Π°ΠΆΠ½ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΈ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ пСрСчислСниСм System.Data.XmlWriteMode. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· сообраТСний ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΈ сохранСнии ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² DataSet Π² Π²ΠΈΠ΄Π΅ постоянно ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… XML-Ρ„Π°ΠΉΠ»ΠΎΠ² рСкомСндуСтся ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ XML-схСму (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ System.Data.XmlWriteMode.WriteSchema). Π—Π°ΠΏΠΈΡΡŒ схСмы Π΄Π°Π½Π½Ρ‹Ρ… вмСстС с самими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ обСспСчиваСт сущСствСнноС ускорСниС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ XML-Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ DataSet; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС схСма Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ динамичСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Π²ΠΎ врСмя ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° это ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ выполнСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’ листингС 14.2 прСдставлСн простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сохранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° DataSet Π² XML-Ρ„Π°ΠΉΠ»Π΅. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ прСдоставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ WriteSchema.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² листингС 14.1, ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ· листинга 14.2 ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ элСмСнт управлСния Button, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ writeDataSetToFile.