From c16a1419064aa9926b426f623cbcf9be2ba01a41 Mon Sep 17 00:00:00 2001 From: Apress Date: Tue, 11 Oct 2016 07:05:52 +0100 Subject: [PATCH] First commit --- 2343.pdf | Bin 0 -> 144043 bytes 2344.pdf | Bin 0 -> 659369 bytes 2499.html | 668 +++++++++ 9781590595121.jpg | Bin 0 -> 9072 bytes Code/Chapter 10/C#/Chapter 10.sln | 20 + Code/Chapter 10/C#/Chapter 10.suo | Bin 0 -> 14848 bytes .../Exercise 10.1/AnimalsDataSet.Designer.cs | 1266 ++++++++++++++++ .../C#/Exercise 10.1/AnimalsDataSet.xsc | 26 + .../C#/Exercise 10.1/AnimalsDataSet.xsd | 70 + .../C#/Exercise 10.1/AnimalsDataSet.xss | 34 + .../C#/Exercise 10.1/Exercise 10.1.csproj | 83 + .../Exercise 10.1/Exercise 10.1.csproj.user | 7 + .../C#/Exercise 10.1/Form1.Designer.cs | 313 ++++ Code/Chapter 10/C#/Exercise 10.1/Form1.cs | 170 +++ Code/Chapter 10/C#/Exercise 10.1/Form1.resx | 165 ++ Code/Chapter 10/C#/Exercise 10.1/Program.cs | 23 + .../Exercise 10.1/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 10.1/Properties/Resources.cs | 70 + .../Exercise 10.1/Properties/Resources.resx | 117 ++ .../C#/Exercise 10.1/Properties/Settings.cs | 48 + .../Properties/Settings.settings | 16 + Code/Chapter 10/C#/Exercise 10.1/app.config | 6 + .../Exercise 10.1/bin/Debug/Exercise 10.1.exe | Bin 0 -> 53248 bytes .../bin/Debug/Exercise 10.1.exe.config | 6 + .../Exercise 10.1/bin/Debug/Exercise 10.1.pdb | Bin 0 -> 99840 bytes .../bin/Debug/Exercise 10.1.vshost.exe | Bin 0 -> 5632 bytes .../bin/Debug/Exercise 10.1.vshost.exe.config | 6 + ...xercise 10.1.csproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../Exercise 10.1/obj/Debug/Exercise 10.1.exe | Bin 0 -> 53248 bytes .../Exercise 10.1/obj/Debug/Exercise 10.1.pdb | Bin 0 -> 99840 bytes .../obj/Debug/Exercise_10_1.Form1.resources | Bin 0 -> 2934 bytes ...ercise_10_1.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 10.1/obj/Debug/ResGen.cache | Bin 0 -> 1574 bytes .../TempPE/AnimalsAndPets.Designer.cs.dll | Bin 0 -> 8192 bytes .../TempPE/AnimalsDataSet.Designer.cs.dll | Bin 0 -> 40960 bytes .../obj/Exercise 10.1.csproj.FileList.txt | 9 + Code/Chapter 10/SQL/database setup script.sql | 94 ++ Code/Chapter 10/VB.NET/Chapter 10.sln | 20 + Code/Chapter 10/VB.NET/Chapter 10.suo | Bin 0 -> 15360 bytes .../Exercise 10.1/AnimalsDataSet.Designer.vb | 1255 ++++++++++++++++ .../VB.NET/Exercise 10.1/AnimalsDataSet.xsc | 0 .../VB.NET/Exercise 10.1/AnimalsDataSet.xsd | 70 + .../VB.NET/Exercise 10.1/AnimalsDataSet.xss | 0 .../VB.NET/Exercise 10.1/Exercise 10.1.vbproj | 127 ++ .../Exercise 10.1/Exercise 10.1.vbproj.user | 7 + .../VB.NET/Exercise 10.1/Form1.Designer.vb | 307 ++++ Code/Chapter 10/VB.NET/Exercise 10.1/Form1.vb | 144 ++ .../Exercise 10.1/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 10.1/My Project/MyApplication.vb | 28 + .../Exercise 10.1/My Project/MyEvents.vb | 13 + .../Exercise 10.1/My Project/MyResources.resx | 117 ++ .../Exercise 10.1/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 10.1/My Project/MySettings.vb | 38 + .../VB.NET/Exercise 10.1/app.config | 25 + .../Exercise 10.1/bin/Exercise 10.1.exe | Bin 0 -> 69632 bytes .../bin/Exercise 10.1.exe.config | 25 + .../Exercise 10.1/bin/Exercise 10.1.pdb | Bin 0 -> 214528 bytes .../bin/Exercise 10.1.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 10.1.vshost.exe.config | 25 + .../Exercise 10.1/bin/Exercise 10.1.xml | 11 + .../Exercise 10.1/obj/Debug/Exercise 10.1.exe | Bin 0 -> 69632 bytes .../Exercise 10.1/obj/Debug/Exercise 10.1.pdb | Bin 0 -> 214528 bytes ...xercise 10.1.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 10.1/obj/Debug/Exercise 10.1.xml | 11 + .../Debug/Exercise_10_1.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 10.1/obj/Debug/ResGen.cache | Bin 0 -> 1619 bytes .../TempPE/AnimalsDataSet.Designer.vb.dll | Bin 0 -> 45056 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6144 bytes .../obj/Exercise 10.1.vbproj.FileList.txt | 10 + .../C#/AccChanges/AccChanges.csproj | 70 + .../C#/AccChanges/AccChanges.csproj.user | 5 + .../C#/AccChanges/Form1.Designer.cs | 74 + Code/Chapter 11/C#/AccChanges/Form1.cs | 69 + Code/Chapter 11/C#/AccChanges/Form1.resx | 117 ++ Code/Chapter 11/C#/AccChanges/Program.cs | 19 + .../C#/AccChanges/Properties/AssemblyInfo.cs | 33 + .../Properties/Resources.Designer.cs | 74 + .../C#/AccChanges/Properties/Resources.resx | 117 ++ .../Properties/Settings.Designer.cs | 31 + .../AccChanges/Properties/Settings.settings | 7 + .../C#/AccChanges/bin/Debug/AccChanges.exe | Bin 0 -> 20480 bytes .../C#/AccChanges/bin/Debug/AccChanges.pdb | Bin 0 -> 28160 bytes .../bin/Debug/AccChanges.vshost.exe | Bin 0 -> 5632 bytes .../obj/AccChanges.csproj.FileList.txt | 8 + .../obj/Debug/AccChanges.Form1.resources | Bin 0 -> 180 bytes .../AccChanges.Properties.Resources.resources | Bin 0 -> 180 bytes .../AccChanges.csproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../C#/AccChanges/obj/Debug/AccChanges.exe | Bin 0 -> 20480 bytes .../C#/AccChanges/obj/Debug/AccChanges.pdb | Bin 0 -> 28160 bytes Code/Chapter 11/C#/Chapter 11.sln | 50 + Code/Chapter 11/C#/Chapter 11.suo | Bin 0 -> 33792 bytes .../C#/Exercise 11.1/Exercise 11.1.csproj | 53 + .../Exercise 11.1/Exercise 11.1.csproj.user | 7 + Code/Chapter 11/C#/Exercise 11.1/Program.cs | 45 + .../Exercise 11.1/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 11.1/Properties/Resources.cs | 70 + .../Exercise 11.1/Properties/Resources.resx | 117 ++ .../C#/Exercise 11.1/Properties/Settings.cs | 42 + .../Properties/Settings.settings | 7 + .../Exercise 11.1/bin/Debug/Exercise 11.1.exe | Bin 0 -> 16384 bytes .../Exercise 11.1/bin/Debug/Exercise 11.1.pdb | Bin 0 -> 17920 bytes .../bin/Debug/Exercise 11.1.vshost.exe | Bin 0 -> 5120 bytes ...xercise 11.1.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 11.1/obj/Debug/Exercise 11.1.exe | Bin 0 -> 16384 bytes .../Exercise 11.1/obj/Debug/Exercise 11.1.pdb | Bin 0 -> 17920 bytes ...ercise_11_1.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 11.1/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Exercise 11.1.csproj.FileList.txt | 7 + .../C#/Exercise 11.2/Exercise 11.2.csproj | 53 + .../Exercise 11.2/Exercise 11.2.csproj.user | 7 + Code/Chapter 11/C#/Exercise 11.2/Program.cs | 79 + .../Exercise 11.2/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 11.2/Properties/Resources.cs | 70 + .../Exercise 11.2/Properties/Resources.resx | 117 ++ .../C#/Exercise 11.2/Properties/Settings.cs | 42 + .../Properties/Settings.settings | 7 + .../Exercise 11.2/bin/Debug/Exercise 11.2.exe | Bin 0 -> 20480 bytes .../Exercise 11.2/bin/Debug/Exercise 11.2.pdb | Bin 0 -> 26112 bytes .../bin/Debug/Exercise 11.2.vshost.exe | Bin 0 -> 5120 bytes ...xercise 11.2.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 11.2/obj/Debug/Exercise 11.2.exe | Bin 0 -> 20480 bytes .../Exercise 11.2/obj/Debug/Exercise 11.2.pdb | Bin 0 -> 26112 bytes ...ercise_11_2.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 11.2/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Exercise 11.2.csproj.FileList.txt | 7 + .../C#/Exercise 11.3/Exercise 11.3.csproj | 53 + .../Exercise 11.3/Exercise 11.3.csproj.user | 7 + Code/Chapter 11/C#/Exercise 11.3/Program.cs | 64 + .../Exercise 11.3/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 11.3/Properties/Resources.cs | 70 + .../Exercise 11.3/Properties/Resources.resx | 117 ++ .../C#/Exercise 11.3/Properties/Settings.cs | 42 + .../Properties/Settings.settings | 7 + .../Exercise 11.3/bin/Debug/Exercise 11.3.exe | Bin 0 -> 20480 bytes .../Exercise 11.3/bin/Debug/Exercise 11.3.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Exercise 11.3.vshost.exe | Bin 0 -> 5632 bytes ...xercise 11.3.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 11.3/obj/Debug/Exercise 11.3.exe | Bin 0 -> 20480 bytes .../Exercise 11.3/obj/Debug/Exercise 11.3.pdb | Bin 0 -> 22016 bytes ...ercise_11_3.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 11.3/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Exercise 11.3.csproj.FileList.txt | 7 + .../C#/Exercise 11.4/Exercise 11.4.csproj | 54 + .../Exercise 11.4/Exercise 11.4.csproj.user | 7 + Code/Chapter 11/C#/Exercise 11.4/Program.cs | 51 + .../Exercise 11.4/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 11.4/Properties/Resources.cs | 70 + .../Exercise 11.4/Properties/Resources.resx | 117 ++ .../C#/Exercise 11.4/Properties/Settings.cs | 42 + .../Properties/Settings.settings | 7 + .../Exercise 11.4/bin/Debug/Exercise 11.4.exe | Bin 0 -> 20480 bytes .../Exercise 11.4/bin/Debug/Exercise 11.4.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Exercise 11.4.vshost.exe | Bin 0 -> 5632 bytes ...xercise 11.4.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 11.4/obj/Debug/Exercise 11.4.exe | Bin 0 -> 20480 bytes .../Exercise 11.4/obj/Debug/Exercise 11.4.pdb | Bin 0 -> 22016 bytes ...ercise_11_4.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 11.4/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../obj/Exercise 11.4.csproj.FileList.txt | 7 + .../C#/Exercise 11.5/Exercise 11.5.csproj | 41 + .../Exercise 11.5/Exercise 11.5.csproj.user | 5 + Code/Chapter 11/C#/Exercise 11.5/Program.cs | 60 + .../Exercise 11.5/Properties/AssemblyInfo.cs | 33 + .../bin/Debug/ConsoleApplication5.exe | Bin 0 -> 16384 bytes .../bin/Debug/ConsoleApplication5.pdb | Bin 0 -> 13824 bytes .../bin/Debug/ConsoleApplication5.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 11.5/bin/Debug/Exercise_11_5.exe | Bin 0 -> 16384 bytes .../Exercise 11.5/bin/Debug/Exercise_11_5.pdb | Bin 0 -> 13824 bytes .../bin/Debug/Exercise_11_5.vshost.exe | Bin 0 -> 5632 bytes .../ConsoleApplication5.csproj.FileList.txt | 5 + .../obj/Debug/ConsoleApplication5.exe | Bin 0 -> 16384 bytes .../obj/Debug/ConsoleApplication5.pdb | Bin 0 -> 13824 bytes .../Exercise 11.5/obj/Debug/Exercise_11_5.exe | Bin 0 -> 16384 bytes .../Exercise 11.5/obj/Debug/Exercise_11_5.pdb | Bin 0 -> 13824 bytes .../obj/Exercise 11.5.csproj.FileList.txt | 5 + Code/Chapter 11/SQL/CreateDatabase.sql | 53 + .../SQL/CreateDistributedDatabase.sql | 34 + .../VB.NET/AccChanges/AccChanges.vbproj | 96 ++ .../VB.NET/AccChanges/AccChanges.vbproj.user | 5 + .../VB.NET/AccChanges/Form1.Designer.vb | 59 + Code/Chapter 11/VB.NET/AccChanges/Form1.resx | 117 ++ Code/Chapter 11/VB.NET/AccChanges/Form1.vb | 48 + .../My Project/Application.Designer.vb | 37 + .../AccChanges/My Project/Application.myapp | 11 + .../My Project/ApplicationEvents.vb | 15 + .../AccChanges/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../AccChanges/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../AccChanges/My Project/Settings.settings | 7 + .../AccChanges/bin/Debug/AccChanges.exe | Bin 0 -> 32768 bytes .../AccChanges/bin/Debug/AccChanges.pdb | Bin 0 -> 60928 bytes .../bin/Debug/AccChanges.vshost.exe | Bin 0 -> 5632 bytes .../AccChanges/bin/Debug/AccChanges.xml | 24 + .../obj/AccChanges.vbproj.FileList.txt | 10 + .../obj/Debug/AccChanges.Form1.resources | Bin 0 -> 180 bytes .../obj/Debug/AccChanges.Resources.resources | Bin 0 -> 180 bytes .../AccChanges/obj/Debug/AccChanges.exe | Bin 0 -> 32768 bytes .../AccChanges/obj/Debug/AccChanges.pdb | Bin 0 -> 60928 bytes .../AccChanges.vbproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../AccChanges/obj/Debug/AccChanges.xml | 24 + .../My Project.Resources.Designer.vb.dll | Bin 0 -> 7168 bytes Code/Chapter 11/VB.NET/Chapter 11.sln | 50 + Code/Chapter 11/VB.NET/Chapter 11.suo | Bin 0 -> 41984 bytes .../VB.NET/Exercise 11.1/AssemblyInfo.vb | 31 + .../VB.NET/Exercise 11.1/Exercise 11.1.vbproj | 121 ++ .../Exercise 11.1/Exercise 11.1.vbproj.user | 60 + .../VB.NET/Exercise 11.1/Module1.vb | 32 + .../My Project/MyApplication.myapp | 9 + .../Exercise 11.1/My Project/MyApplication.vb | 13 + .../Exercise 11.1/My Project/MyResources.resx | 110 ++ .../My Project/MySettings.settings | 7 + .../Exercise 11.1/My Project/MySettings.vb | 39 + .../Exercise 11.1/SimpleTransaction.sln | 21 + .../Exercise 11.1/SimpleTransaction.sln.old | 21 + .../Exercise 11.1/SimpleTransaction.suo | Bin 0 -> 8704 bytes .../VB.NET/Exercise 11.1/app.config | 3 + .../Exercise 11.1/bin/Exercise_11_1.exe | Bin 0 -> 24576 bytes .../bin/Exercise_11_1.exe.config | 3 + .../Exercise 11.1/bin/Exercise_11_1.pdb | Bin 0 -> 34304 bytes .../bin/Exercise_11_1.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise_11_1.vshost.exe.config | 3 + .../Exercise 11.1/bin/Exercise_11_1.xml | 11 + .../Exercise 11.1/bin/SimpleTransaction.exe | Bin 0 -> 9216 bytes .../Exercise 11.1/bin/SimpleTransaction.pdb | Bin 0 -> 13824 bytes .../bin/SimpleTransaction.vshost.exe | Bin 0 -> 5120 bytes .../Exercise 11.1/obj/Debug/Chapter10.exe | Bin 0 -> 9216 bytes ...xercise 11.1.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Debug/Exercise_11_1.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 11.1/obj/Debug/Exercise_11_1.exe | Bin 0 -> 24576 bytes .../Exercise 11.1/obj/Debug/Exercise_11_1.pdb | Bin 0 -> 34304 bytes .../Exercise 11.1/obj/Debug/Exercise_11_1.xml | 11 + .../Exercise 11.1/obj/Debug/ResGen.cache | Bin 0 -> 992 bytes .../obj/Debug/SimpleTransaction.exe | Bin 0 -> 9216 bytes .../obj/Debug/SimpleTransaction.pdb | Bin 0 -> 13824 bytes .../obj/Exercise 11.1.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 11.2/Exercise 11.2.vbproj | 98 ++ .../Exercise 11.2/Exercise 11.2.vbproj.user | 7 + .../VB.NET/Exercise 11.2/Module1.vb | 69 + .../Exercise 11.2/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 11.2/My Project/MyApplication.vb | 12 + .../Exercise 11.2/My Project/MyResources.resx | 117 ++ .../Exercise 11.2/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 11.2/My Project/MySettings.vb | 38 + .../VB.NET/Exercise 11.2/app.config | 25 + .../Exercise 11.2/bin/Exercise 11.2.exe | Bin 0 -> 24576 bytes .../bin/Exercise 11.2.exe.config | 25 + .../Exercise 11.2/bin/Exercise 11.2.pdb | Bin 0 -> 40448 bytes .../Exercise 11.2/bin/Exercise 11.2.xml | 11 + .../Exercise 11.2/obj/Debug/Exercise 11.2.exe | Bin 0 -> 24576 bytes .../Exercise 11.2/obj/Debug/Exercise 11.2.pdb | Bin 0 -> 40448 bytes ...xercise 11.2.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 11.2/obj/Debug/Exercise 11.2.xml | 11 + .../Debug/Exercise_11_2.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 11.2/obj/Debug/ResGen.cache | Bin 0 -> 1093 bytes .../obj/Exercise 11.2.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 11.3/Exercise 11.3.vbproj | 98 ++ .../Exercise 11.3/Exercise 11.3.vbproj.user | 7 + .../VB.NET/Exercise 11.3/Module1.vb | 53 + .../Exercise 11.3/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 11.3/My Project/MyApplication.vb | 12 + .../Exercise 11.3/My Project/MyResources.resx | 117 ++ .../Exercise 11.3/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 11.3/My Project/MySettings.vb | 38 + .../VB.NET/Exercise 11.3/app.config | 25 + .../Exercise 11.3/bin/Exercise 11.3.exe | Bin 0 -> 24576 bytes .../bin/Exercise 11.3.exe.config | 25 + .../Exercise 11.3/bin/Exercise 11.3.pdb | Bin 0 -> 40448 bytes .../Exercise 11.3/bin/Exercise 11.3.xml | 11 + .../Exercise 11.3/obj/Debug/Exercise 11.3.exe | Bin 0 -> 24576 bytes .../Exercise 11.3/obj/Debug/Exercise 11.3.pdb | Bin 0 -> 40448 bytes ...xercise 11.3.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 11.3/obj/Debug/Exercise 11.3.xml | 11 + .../Debug/Exercise_11_3.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 11.3/obj/Debug/ResGen.cache | Bin 0 -> 1093 bytes .../obj/Exercise 11.3.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 11.4/Exercise 11.4.vbproj | 99 ++ .../Exercise 11.4/Exercise 11.4.vbproj.user | 7 + .../VB.NET/Exercise 11.4/Module1.vb | 40 + .../Exercise 11.4/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.Designer.vb | 13 + .../My Project/MyApplication.myapp | 10 + .../Exercise 11.4/My Project/MyResources.resx | 117 ++ .../Exercise 11.4/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 11.4/My Project/MySettings.vb | 38 + .../VB.NET/Exercise 11.4/app.config | 25 + .../Exercise 11.4/bin/Exercise 11.4.exe | Bin 0 -> 24576 bytes .../bin/Exercise 11.4.exe.config | 25 + .../Exercise 11.4/bin/Exercise 11.4.pdb | Bin 0 -> 40448 bytes .../Exercise 11.4/bin/Exercise 11.4.xml | 11 + .../Exercise 11.4/obj/Debug/Exercise 11.4.exe | Bin 0 -> 24576 bytes .../Exercise 11.4/obj/Debug/Exercise 11.4.pdb | Bin 0 -> 40448 bytes ...xercise 11.4.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 11.4/obj/Debug/Exercise 11.4.xml | 11 + .../Debug/Exercise_11_4.MyResources.resources | Bin 0 -> 180 bytes .../obj/Exercise 11.4.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 11.5/Exercise 11.5.vbproj | 85 ++ .../Exercise 11.5/Exercise 11.5.vbproj.user | 6 + .../VB.NET/Exercise 11.5/Module1.vb | 49 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../Exercise 11.5/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 11.5/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../My Project/Settings.settings | 7 + .../Exercise 11.5/bin/Debug/Exercise 11.4.exe | Bin 0 -> 24576 bytes .../Exercise 11.5/bin/Debug/Exercise 11.4.pdb | Bin 0 -> 46592 bytes .../bin/Debug/Exercise 11.4.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 11.5/bin/Debug/Exercise_11.5.xml | 24 + .../bin/Debug/Exercise_11_5.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 11.5/obj/Debug/Exercise 11.4.exe | Bin 0 -> 24576 bytes .../Exercise 11.5/obj/Debug/Exercise 11.4.pdb | Bin 0 -> 46592 bytes ...xercise 11.5.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 11.5/obj/Debug/Exercise_11.5.xml | 24 + .../Debug/Exercise_11_4.Resources.resources | Bin 0 -> 180 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 11.5.vbproj.FileList.txt | 9 + Code/Chapter 12/C#/Chapter 12.sln | 56 + Code/Chapter 12/C#/Chapter 12.suo | Bin 0 -> 32768 bytes .../C#/Exercise 12-2/Exercise 12-2.csproj | 40 + .../Exercise 12-2/Exercise 12-2.csproj.user | 5 + Code/Chapter 12/C#/Exercise 12-2/Program.cs | 39 + .../Exercise 12-2/Properties/AssemblyInfo.cs | 33 + .../Exercise 12-2/bin/Debug/Exercise 12-2.exe | Bin 0 -> 16384 bytes .../Exercise 12-2/bin/Debug/Exercise 12-2.pdb | Bin 0 -> 13824 bytes .../Exercise 12-2/obj/Debug/Exercise 12-2.exe | Bin 0 -> 16384 bytes .../Exercise 12-2/obj/Debug/Exercise 12-2.pdb | Bin 0 -> 13824 bytes .../obj/Exercise 12-2.csproj.FileList.txt | 5 + .../C#/Exercise 12-3/Exercise 12-3.csproj | 40 + .../Exercise 12-3/Exercise 12-3.csproj.user | 5 + Code/Chapter 12/C#/Exercise 12-3/Program.cs | 47 + .../Exercise 12-3/Properties/AssemblyInfo.cs | 33 + .../Exercise 12-3/bin/Debug/Exercise 12-3.exe | Bin 0 -> 16384 bytes .../Exercise 12-3/bin/Debug/Exercise 12-3.pdb | Bin 0 -> 13824 bytes .../bin/Debug/Exercise 12-3.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 12-3/obj/Debug/Exercise 12-3.exe | Bin 0 -> 16384 bytes .../Exercise 12-3/obj/Debug/Exercise 12-3.pdb | Bin 0 -> 13824 bytes .../obj/Exercise 12-3.csproj.FileList.txt | 5 + .../C#/Exercise 12-4/Exercise 12-4.csproj | 41 + .../Exercise 12-4/Exercise 12-4.csproj.user | 5 + Code/Chapter 12/C#/Exercise 12-4/Program.cs | 38 + .../Exercise 12-4/Properties/AssemblyInfo.cs | 33 + .../Exercise 12-4/bin/Debug/Exercise 12-4.exe | Bin 0 -> 16384 bytes .../Exercise 12-4/bin/Debug/Exercise 12-4.pdb | Bin 0 -> 13824 bytes .../bin/Debug/Exercise 12-4.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 12-4/obj/Debug/Exercise 12-4.exe | Bin 0 -> 16384 bytes .../Exercise 12-4/obj/Debug/Exercise 12-4.pdb | Bin 0 -> 13824 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 0 -> 4009 bytes .../obj/Exercise 12-4.csproj.FileList.txt | 5 + .../C#/Exercise 12-5/Exercise 12-5.csproj | 41 + .../Exercise 12-5/Exercise 12-5.csproj.user | 5 + Code/Chapter 12/C#/Exercise 12-5/Program.cs | 46 + .../Exercise 12-5/Properties/AssemblyInfo.cs | 33 + .../Exercise 12-5/bin/Debug/Exercise 12-5.exe | Bin 0 -> 16384 bytes .../Exercise 12-5/bin/Debug/Exercise 12-5.pdb | Bin 0 -> 13824 bytes .../bin/Debug/Exercise 12-5.vshost.exe | Bin 0 -> 5632 bytes .../C#/Exercise 12-5/bin/Debug/command.xml | 8 + .../Exercise 12-5/obj/Debug/Exercise 12-5.exe | Bin 0 -> 16384 bytes .../Exercise 12-5/obj/Debug/Exercise 12-5.pdb | Bin 0 -> 13824 bytes .../obj/Exercise 12-5.csproj.FileList.txt | 5 + .../C#/Exercise 12-6/Exercise 12-6.csproj | 41 + .../Exercise 12-6/Exercise 12-6.csproj.user | 5 + Code/Chapter 12/C#/Exercise 12-6/Program.cs | 22 + .../Exercise 12-6/Properties/AssemblyInfo.cs | 33 + .../Exercise 12-6/bin/Debug/Exercise 12-6.exe | Bin 0 -> 16384 bytes .../Exercise 12-6/bin/Debug/Exercise 12-6.pdb | Bin 0 -> 13824 bytes .../bin/Debug/Exercise 12-6.vshost.exe | Bin 0 -> 5632 bytes .../C#/Exercise 12-6/bin/Debug/updategram.xml | 10 + .../Exercise 12-6/obj/Debug/Exercise 12-6.exe | Bin 0 -> 16384 bytes .../Exercise 12-6/obj/Debug/Exercise 12-6.pdb | Bin 0 -> 13824 bytes .../obj/Exercise 12-6.csproj.FileList.txt | 5 + .../C#/Exercise 12-7/Exercise 12-7.csproj | 41 + .../Exercise 12-7/Exercise 12-7.csproj.user | 5 + Code/Chapter 12/C#/Exercise 12-7/Program.cs | 39 + .../Exercise 12-7/Properties/AssemblyInfo.cs | 33 + .../Exercise 12-7/bin/Debug/Exercise 12-7.exe | Bin 0 -> 16384 bytes .../Exercise 12-7/bin/Debug/Exercise 12-7.pdb | Bin 0 -> 13824 bytes .../bin/Debug/Exercise 12-7.vshost.exe | Bin 0 -> 5632 bytes .../bin/Debug/Person.Contact.xsd | 12 + .../Exercise 12-7/obj/Debug/Exercise 12-7.exe | Bin 0 -> 16384 bytes .../Exercise 12-7/obj/Debug/Exercise 12-7.pdb | Bin 0 -> 13824 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 0 -> 3866 bytes .../obj/Exercise 12-7.csproj.FileList.txt | 5 + .../C#/Exercise 12.1/Exercise 12-1.csproj | 53 + .../Exercise 12.1/Exercise 12-1.csproj.user | 7 + Code/Chapter 12/C#/Exercise 12.1/Program.cs | 48 + .../Exercise 12.1/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 12.1/Properties/Resources.cs | 70 + .../Exercise 12.1/Properties/Resources.resx | 117 ++ .../C#/Exercise 12.1/Properties/Settings.cs | 42 + .../Properties/Settings.settings | 7 + .../Exercise 12.1/bin/Debug/Exercise 12.1.exe | Bin 0 -> 20480 bytes .../Exercise 12.1/bin/Debug/Exercise 12.1.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Exercise 12.1.vshost.exe | Bin 0 -> 5632 bytes .../C#/Exercise 12.1/bin/Debug/Output.xml | 92 ++ ...xercise 12-1.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes ...xercise 12.1.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 12.1/obj/Debug/Exercise 12.1.exe | Bin 0 -> 20480 bytes .../Exercise 12.1/obj/Debug/Exercise 12.1.pdb | Bin 0 -> 22016 bytes ...ercise_12_1.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 12.1/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Exercise 12-1.csproj.FileList.txt | 7 + .../obj/Exercise 12.1.csproj.FileList.txt | 7 + Code/Chapter 12/SQL/ForXMLExplicit.sql | 91 ++ Code/Chapter 12/SQL/OpenXMLDemo.sql | 29 + Code/Chapter 12/SQL/OpenXMLSP.sql | 57 + Code/Chapter 12/VB.NET/Chapter 12.sln | 56 + Code/Chapter 12/VB.NET/Chapter 12.suo | Bin 0 -> 49152 bytes .../VB.NET/Exercise 12-1/Exercise 12-1.vbproj | 84 ++ .../Exercise 12-1/Exercise 12-1.vbproj.user | 5 + .../VB.NET/Exercise 12-1/Module1.vb | 39 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../Exercise 12-1/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 12-1/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../My Project/Settings.settings | 7 + .../Exercise 12-1/bin/Debug/Exercise 12-1.exe | Bin 0 -> 24576 bytes .../Exercise 12-1/bin/Debug/Exercise 12-1.pdb | Bin 0 -> 42496 bytes .../bin/Debug/Exercise 12-1.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 12-1/bin/Debug/Exercise 12-1.xml | 24 + .../Exercise 12-1/obj/Debug/Exercise 12-1.exe | Bin 0 -> 24576 bytes .../Exercise 12-1/obj/Debug/Exercise 12-1.pdb | Bin 0 -> 42496 bytes ...xercise 12-1.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 12-1/obj/Debug/Exercise 12-1.xml | 24 + .../Debug/Exercise_12_1.Resources.resources | Bin 0 -> 180 bytes .../obj/Exercise 12-1.vbproj.FileList.txt | 9 + .../VB.NET/Exercise 12-2/AssemblyInfo.vb | 31 + .../VB.NET/Exercise 12-2/Exercise 12-2.vbproj | 136 ++ .../Exercise 12-2/Exercise 12-2.vbproj.user | 58 + .../Chapter 12/VB.NET/Exercise 12-2/Module.vb | 33 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 12-2/My Project/Resources.resx | 110 ++ .../My Project/Settings.Designer.vb | 66 + .../My Project/Settings.settings | 6 + .../VB.NET/Exercise 12-2/OpenXMLDemo.sln | 21 + .../VB.NET/Exercise 12-2/OpenXMLDemo.suo | Bin 0 -> 7680 bytes .../bin/Exercise 12-2.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 12-2/bin/Exercise_12_2.exe | Bin 0 -> 24576 bytes .../Exercise 12-2/bin/Exercise_12_2.pdb | Bin 0 -> 42496 bytes .../bin/Exercise_12_2.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 12-2/bin/Exercise_12_2.xml | 24 + .../VB.NET/Exercise 12-2/bin/OpenXMLDemo.exe | Bin 0 -> 7168 bytes .../VB.NET/Exercise 12-2/bin/OpenXMLDemo.pdb | Bin 0 -> 13824 bytes .../Exercise 12-2/bin/OpenXMLDemo.vshost.exe | Bin 0 -> 5632 bytes ...xercise 12-2.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Debug/Exercise_12_2.Resources.resources | Bin 0 -> 180 bytes .../Exercise 12-2/obj/Debug/Exercise_12_2.exe | Bin 0 -> 24576 bytes .../Exercise 12-2/obj/Debug/Exercise_12_2.pdb | Bin 0 -> 42496 bytes .../Exercise 12-2/obj/Debug/Exercise_12_2.xml | 24 + .../Exercise 12-2/obj/Debug/OpenXMLDemo.exe | Bin 0 -> 7168 bytes .../Exercise 12-2/obj/Debug/OpenXMLDemo.pdb | Bin 0 -> 13824 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 7168 bytes .../obj/Exercise 12-2.vbproj.FileList.txt | 9 + .../obj/OpenXMLDemo.vbproj.FileList.txt | 2 + .../VB.NET/Exercise 12-3/Exercise 12-3.vbproj | 84 ++ .../Exercise 12-3/Exercise 12-3.vbproj.user | 5 + .../VB.NET/Exercise 12-3/Module1.vb | 41 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../Exercise 12-3/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 12-3/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../My Project/Settings.settings | 7 + .../Exercise 12-3/bin/Debug/Exercise 12-3.exe | Bin 0 -> 24576 bytes .../Exercise 12-3/bin/Debug/Exercise 12-3.pdb | Bin 0 -> 42496 bytes .../Exercise 12-3/bin/Debug/Exercise 12-3.xml | 24 + .../Exercise 12-3/obj/Debug/Exercise 12-3.exe | Bin 0 -> 24576 bytes .../Exercise 12-3/obj/Debug/Exercise 12-3.pdb | Bin 0 -> 42496 bytes ...xercise 12-3.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 12-3/obj/Debug/Exercise 12-3.xml | 24 + .../Debug/Exercise_12_3.Resources.resources | Bin 0 -> 180 bytes .../obj/Exercise 12-3.vbproj.FileList.txt | 9 + .../VB.NET/Exercise 12-4/Exercise 12-4.vbproj | 85 ++ .../Exercise 12-4/Exercise 12-4.vbproj.user | 6 + .../VB.NET/Exercise 12-4/Module1.vb | 32 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../Exercise 12-4/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 12-4/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../My Project/Settings.settings | 7 + .../Exercise 12-4/bin/Debug/Exercise 12-4.exe | Bin 0 -> 24576 bytes .../Exercise 12-4/bin/Debug/Exercise 12-4.pdb | Bin 0 -> 42496 bytes .../bin/Debug/Exercise 12-4.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 12-4/bin/Debug/Exercise 12-4.xml | 24 + .../Exercise 12-4/obj/Debug/Exercise 12-4.exe | Bin 0 -> 24576 bytes .../Exercise 12-4/obj/Debug/Exercise 12-4.pdb | Bin 0 -> 42496 bytes ...xercise 12-4.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 12-4/obj/Debug/Exercise 12-4.xml | 24 + .../Debug/Exercise_12_4.Resources.resources | Bin 0 -> 180 bytes .../obj/Exercise 12-4.vbproj.FileList.txt | 9 + .../VB.NET/Exercise 12-5/Exercise 12-5.vbproj | 85 ++ .../Exercise 12-5/Exercise 12-5.vbproj.user | 6 + .../VB.NET/Exercise 12-5/Module1.vb | 39 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../Exercise 12-5/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 12-5/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../My Project/Settings.settings | 7 + .../Exercise 12-5/bin/Debug/Exercise 12-5.exe | Bin 0 -> 24576 bytes .../Exercise 12-5/bin/Debug/Exercise 12-5.pdb | Bin 0 -> 42496 bytes .../bin/Debug/Exercise 12-5.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 12-5/bin/Debug/Exercise 12-5.xml | 24 + .../Exercise 12-5/bin/Debug/command.xml | 8 + .../Exercise 12-5/obj/Debug/Exercise 12-5.exe | Bin 0 -> 24576 bytes .../Exercise 12-5/obj/Debug/Exercise 12-5.pdb | Bin 0 -> 42496 bytes ...xercise 12-5.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 12-5/obj/Debug/Exercise 12-5.xml | 24 + .../Debug/Exercise_12_5.Resources.resources | Bin 0 -> 180 bytes .../obj/Exercise 12-5.vbproj.FileList.txt | 9 + .../VB.NET/Exercise 12-6/Exercise 12-6.vbproj | 85 ++ .../Exercise 12-6/Exercise 12-6.vbproj.user | 6 + .../VB.NET/Exercise 12-6/Module1.vb | 18 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../Exercise 12-6/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 12-6/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../My Project/Settings.settings | 7 + .../Exercise 12-6/bin/Debug/Exercise 12-6.exe | Bin 0 -> 24576 bytes .../Exercise 12-6/bin/Debug/Exercise 12-6.pdb | Bin 0 -> 42496 bytes .../bin/Debug/Exercise 12-6.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 12-6/bin/Debug/Exercise 12-6.xml | 24 + .../Exercise 12-6/bin/Debug/updategram.xml | 10 + .../Exercise 12-6/obj/Debug/Exercise 12-6.exe | Bin 0 -> 24576 bytes .../Exercise 12-6/obj/Debug/Exercise 12-6.pdb | Bin 0 -> 42496 bytes ...xercise 12-6.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 12-6/obj/Debug/Exercise 12-6.xml | 24 + .../Debug/Exercise_12_6.Resources.resources | Bin 0 -> 180 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 0 -> 3844 bytes .../obj/Exercise 12-6.vbproj.FileList.txt | 9 + .../VB.NET/Exercise 12-7/Exercise 12-7.vbproj | 85 ++ .../Exercise 12-7/Exercise 12-7.vbproj.user | 6 + .../VB.NET/Exercise 12-7/Module1.vb | 31 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../Exercise 12-7/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 12-7/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../My Project/Settings.settings | 7 + .../Exercise 12-7/bin/Debug/Exercise 12-7.exe | Bin 0 -> 24576 bytes .../Exercise 12-7/bin/Debug/Exercise 12-7.pdb | Bin 0 -> 42496 bytes .../bin/Debug/Exercise 12-7.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 12-7/bin/Debug/Exercise 12-7.xml | 24 + .../bin/Debug/Person.Contact.xsd | 12 + .../Exercise 12-7/obj/Debug/Exercise 12-7.exe | Bin 0 -> 24576 bytes .../Exercise 12-7/obj/Debug/Exercise 12-7.pdb | Bin 0 -> 42496 bytes ...xercise 12-7.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 12-7/obj/Debug/Exercise 12-7.xml | 24 + .../Debug/Exercise_12_7.Resources.resources | Bin 0 -> 180 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 0 -> 4009 bytes .../obj/Exercise 12-7.vbproj.FileList.txt | 9 + Code/Chapter 13/C#/Chapter 13.sln | 74 + Code/Chapter 13/C#/Chapter 13.suo | Bin 0 -> 45576 bytes .../C#/HandWrittenUDF/HandWrittenUDF.csproj | 40 + .../HandWrittenUDF/HandWrittenUDF.csproj.user | 5 + .../HandWrittenUDF/Properties/AssemblyInfo.cs | 35 + .../C#/HandWrittenUDF/UserDefinedFunctions.cs | 32 + .../bin/Debug/HandWrittenUDF.dll | Bin 0 -> 16384 bytes .../bin/Debug/HandWrittenUDF.pdb | Bin 0 -> 11776 bytes .../obj/Debug/HandWrittenUDF.dll | Bin 0 -> 16384 bytes .../obj/Debug/HandWrittenUDF.pdb | Bin 0 -> 11776 bytes .../obj/HandWrittenUDF.csproj.FileList.txt | 5 + .../HandWrittenUDFTest.csproj | 40 + .../HandWrittenUDFTest.csproj.user | 5 + .../C#/HandWrittenUDFTest/Program.cs | 27 + .../Properties/AssemblyInfo.cs | 33 + .../bin/Debug/HandWrittenUDFTest.exe | Bin 0 -> 16384 bytes .../bin/Debug/HandWrittenUDFTest.pdb | Bin 0 -> 13824 bytes .../bin/Debug/HandWrittenUDFTest.vshost.exe | Bin 0 -> 5632 bytes .../obj/Debug/HandWrittenUDFTest.exe | Bin 0 -> 16384 bytes .../obj/Debug/HandWrittenUDFTest.pdb | Bin 0 -> 13824 bytes .../HandWrittenUDFTest.csproj.FileList.txt | 5 + .../C#/SqlServerAggregate/AssemblyInfo.cs | 31 + .../C#/SqlServerAggregate/Concatenator.cs | 87 ++ .../SqlServerAggregate.csproj | 49 + .../SqlServerAggregate.csproj.user | 12 + .../SqlServerAggregate/Test Scripts/Test.sql | 41 + .../bin/Debug/SqlServerAggregate.dll | Bin 0 -> 16384 bytes .../bin/Debug/SqlServerAggregate.pdb | Bin 0 -> 15872 bytes .../obj/Debug/SqlServerAggregate.dll | Bin 0 -> 16384 bytes .../obj/Debug/SqlServerAggregate.pdb | Bin 0 -> 15872 bytes .../SqlServerAggregate.csproj.FileList.txt | 5 + .../C#/SqlServerStoredProc/AssemblyInfo.cs | 31 + .../C#/SqlServerStoredProc/GetNames.cs | 107 ++ .../SqlServerStoredProc.csproj | 50 + .../SqlServerStoredProc.csproj.user | 15 + .../SqlServerStoredProc/Test Scripts/Test.sql | 39 + .../bin/Debug/SqlServerStoredProc.dll | Bin 0 -> 16384 bytes .../bin/Debug/SqlServerStoredProc.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SqlServerStoredProc.dll | Bin 0 -> 16384 bytes .../obj/Debug/SqlServerStoredProc.pdb | Bin 0 -> 13824 bytes .../SqlServerStoredProc.csproj.FileList.txt | 5 + .../C#/SqlServerTVF/AssemblyInfo.cs | 31 + .../Chapter 13/C#/SqlServerTVF/NameToAscii.cs | 119 ++ .../C#/SqlServerTVF/SqlServerTVF.csproj | 49 + .../C#/SqlServerTVF/SqlServerTVF.csproj.user | 15 + .../C#/SqlServerTVF/Test Scripts/Test.sql | 35 + .../SqlServerTVF/bin/Debug/SqlServerTVF.dll | Bin 0 -> 16384 bytes .../SqlServerTVF/bin/Debug/SqlServerTVF.pdb | Bin 0 -> 15872 bytes .../SqlServerTVF/obj/Debug/SqlServerTVF.dll | Bin 0 -> 16384 bytes .../SqlServerTVF/obj/Debug/SqlServerTVF.pdb | Bin 0 -> 15872 bytes .../obj/SqlServerTVF.csproj.FileList.txt | 5 + .../C#/SqlServerTrigger/AssemblyInfo.cs | 31 + .../C#/SqlServerTrigger/MonkeyTrigger.cs | 47 + .../SqlServerTrigger/SqlServerTrigger.csproj | 50 + .../SqlServerTrigger.csproj.user | 15 + .../C#/SqlServerTrigger/Test Scripts/Test.sql | 38 + .../bin/Debug/SqlServerTrigger.dll | Bin 0 -> 16384 bytes .../bin/Debug/SqlServerTrigger.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SqlServerTrigger.dll | Bin 0 -> 16384 bytes .../obj/Debug/SqlServerTrigger.pdb | Bin 0 -> 13824 bytes .../obj/SqlServerTrigger.csproj.FileList.txt | 5 + .../C#/SqlServerUDF/AssemblyInfo.cs | 31 + .../C#/SqlServerUDF/GetRandomNumber.cs | 15 + .../C#/SqlServerUDF/SqlServerUDF.csproj | 49 + .../C#/SqlServerUDF/SqlServerUDF.csproj.user | 12 + .../C#/SqlServerUDF/Test Scripts/Test.sql | 35 + .../SqlServerUDF/bin/Debug/SqlServerUDF.dll | Bin 0 -> 16384 bytes .../SqlServerUDF/bin/Debug/SqlServerUDF.pdb | Bin 0 -> 13824 bytes .../SqlServerUDF/obj/Debug/SqlServerUDF.dll | Bin 0 -> 16384 bytes .../SqlServerUDF/obj/Debug/SqlServerUDF.pdb | Bin 0 -> 13824 bytes .../obj/SqlServerProject.csproj.FileList.txt | 5 + .../obj/SqlServerUDF.csproj.FileList.txt | 5 + .../C#/SqlTVFExternalAccess/AssemblyInfo.cs | 31 + .../C#/SqlTVFExternalAccess/ListDirectory.cs | 56 + .../SqlTVFExternalAccess.csproj | 50 + .../SqlTVFExternalAccess.csproj.user | 15 + .../Test Scripts/Test.sql | 35 + .../bin/Debug/SqlTVFExternalAccess.dll | Bin 0 -> 16384 bytes .../bin/Debug/SqlTVFExternalAccess.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SqlTVFExternalAccess.dll | Bin 0 -> 16384 bytes .../obj/Debug/SqlTVFExternalAccess.pdb | Bin 0 -> 13824 bytes .../SqlTVFExternalAccess.csproj.FileList.txt | 5 + Code/Chapter 13/SQL/Readme.txt | 2 + Code/Chapter 13/VB.NET/Chapter 13.sln | 68 + Code/Chapter 13/VB.NET/Chapter 13.suo | Bin 0 -> 43008 bytes .../HandWrittenUDF/HandWrittenUDF.vbproj | 81 + .../HandWrittenUDF/HandWrittenUDF.vbproj.user | 5 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../HandWrittenUDF/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../HandWrittenUDF/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../My Project/Settings.settings | 7 + .../HandWrittenUDF/UserDefinedFunctions.vb | 11 + .../bin/Debug/HandWrittenUDF.dll | Bin 0 -> 24576 bytes .../bin/Debug/HandWrittenUDF.pdb | Bin 0 -> 40448 bytes .../bin/Debug/HandWrittenUDF.xml | 24 + .../Debug/HandWrittenUDF.Resources.resources | Bin 0 -> 180 bytes .../obj/Debug/HandWrittenUDF.dll | Bin 0 -> 24576 bytes .../obj/Debug/HandWrittenUDF.pdb | Bin 0 -> 40448 bytes ...ndWrittenUDF.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../obj/Debug/HandWrittenUDF.xml | 24 + .../obj/HandWrittenUDF.vbproj.FileList.txt | 9 + .../VB.NET/SqlServerAggregate/AssemblyInfo.vb | 34 + .../VB.NET/SqlServerAggregate/Concatenator.vb | 53 + .../SqlServerAggregate.vbproj | 65 + .../SqlServerAggregate.vbproj.user | 12 + .../SqlServerAggregate/Test Scripts/Test.sql | 41 + .../bin/SqlServerAggregate.dll | Bin 0 -> 20480 bytes .../bin/SqlServerAggregate.pdb | Bin 0 -> 17920 bytes .../obj/Debug/SqlServerAggregate.dll | Bin 0 -> 20480 bytes .../obj/Debug/SqlServerAggregate.pdb | Bin 0 -> 17920 bytes .../SqlServerAggregate.vbproj.FileList.txt | 5 + .../SqlServerStoredProc/AssemblyInfo.vb | 34 + .../VB.NET/SqlServerStoredProc/GetNames.vb | 79 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../SqlServerStoredProc.vbproj | 70 + .../SqlServerStoredProc.vbproj.user | 12 + .../SqlServerStoredProc/Test Scripts/Test.sql | 35 + .../bin/SqlServerStoredProc.dll | Bin 0 -> 20480 bytes .../bin/SqlServerStoredProc.pdb | Bin 0 -> 15872 bytes .../obj/Debug/SqlServerStoredProc.dll | Bin 0 -> 20480 bytes .../obj/Debug/SqlServerStoredProc.pdb | Bin 0 -> 15872 bytes .../SqlServerStoredProc.vbproj.FileList.txt | 5 + .../VB.NET/SqlServerTVF/AssemblyInfo.vb | 34 + .../VB.NET/SqlServerTVF/NameToAscii.vb | 78 + .../VB.NET/SqlServerTVF/SqlServerTVF.vbproj | 65 + .../SqlServerTVF/SqlServerTVF.vbproj.user | 15 + .../VB.NET/SqlServerTVF/Test Scripts/Test.sql | 35 + .../VB.NET/SqlServerTVF/bin/SqlServerTVF.dll | Bin 0 -> 20480 bytes .../VB.NET/SqlServerTVF/bin/SqlServerTVF.pdb | Bin 0 -> 19968 bytes .../SqlServerTVF/obj/Debug/SqlServerTVF.dll | Bin 0 -> 20480 bytes .../SqlServerTVF/obj/Debug/SqlServerTVF.pdb | Bin 0 -> 19968 bytes .../obj/SqlServerTVF.vbproj.FileList.txt | 5 + .../VB.NET/SqlServerTrigger/AssemblyInfo.vb | 34 + .../VB.NET/SqlServerTrigger/MonkeyTrigger.vb | 47 + .../SqlServerTrigger/SqlServerTrigger.vbproj | 66 + .../SqlServerTrigger.vbproj.user | 12 + .../SqlServerTrigger/Test Scripts/Test.sql | 35 + .../SqlServerTrigger/bin/SqlServerTrigger.dll | Bin 0 -> 20480 bytes .../SqlServerTrigger/bin/SqlServerTrigger.pdb | Bin 0 -> 13824 bytes .../obj/Debug/SqlServerTrigger.dll | Bin 0 -> 20480 bytes .../obj/Debug/SqlServerTrigger.pdb | Bin 0 -> 13824 bytes .../obj/SqlServerTrigger.vbproj.FileList.txt | 5 + .../VB.NET/SqlServerUDF/AssemblyInfo.vb | 34 + .../VB.NET/SqlServerUDF/GetRandomNumber.vb | 13 + .../VB.NET/SqlServerUDF/SqlServerUDF.vbproj | 65 + .../SqlServerUDF/SqlServerUDF.vbproj.user | 15 + .../VB.NET/SqlServerUDF/Test Scripts/Test.sql | 35 + .../VB.NET/SqlServerUDF/bin/SqlServerUDF.dll | Bin 0 -> 20480 bytes .../VB.NET/SqlServerUDF/bin/SqlServerUDF.pdb | Bin 0 -> 11776 bytes .../SqlServerUDF/bin/SqlServerUDF.vshost.exe | Bin 0 -> 5632 bytes .../SqlServerUDF/obj/Debug/SqlServerUDF.dll | Bin 0 -> 20480 bytes .../SqlServerUDF/obj/Debug/SqlServerUDF.pdb | Bin 0 -> 11776 bytes .../obj/SqlServerUDF.vbproj.FileList.txt | 5 + .../SqlTVFExternalAccess/AssemblyInfo.vb | 34 + .../SqlTVFExternalAccess/ListDirectory.vb | 28 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../SqlTVFExternalAccess.vbproj | 71 + .../SqlTVFExternalAccess.vbproj.user | 12 + .../Test Scripts/Test.sql | 35 + .../bin/SqlTVFExternalAccess.dll | Bin 0 -> 20480 bytes .../bin/SqlTVFExternalAccess.pdb | Bin 0 -> 15872 bytes .../obj/Debug/SqlTVFExternalAccess.dll | Bin 0 -> 20480 bytes .../obj/Debug/SqlTVFExternalAccess.pdb | Bin 0 -> 15872 bytes .../SqlTVFExternalAccess.vbproj.FileList.txt | 5 + Code/Chapter 3/C#/Chapter3.sln | 72 + Code/Chapter 3/C#/Chapter3.suo | Bin 0 -> 29184 bytes .../Chapter 3/C#/ConsoleApp/ConsoleApp.csproj | 69 + .../C#/ConsoleApp/ConsoleApp.csproj.user | 5 + Code/Chapter 3/C#/ConsoleApp/Program.cs | 21 + .../C#/ConsoleApp/Properties/AssemblyInfo.cs | 33 + .../Properties/Settings.Designer.cs | 37 + .../ConsoleApp/Properties/Settings.settings | 16 + .../C#/ConsoleApp/TestDataSet.Designer.cs | 701 +++++++++ Code/Chapter 3/C#/ConsoleApp/TestDataSet.xsc | 1 + Code/Chapter 3/C#/ConsoleApp/TestDataSet.xsd | 101 ++ Code/Chapter 3/C#/ConsoleApp/TestDataSet.xss | 1 + Code/Chapter 3/C#/ConsoleApp/app.config | 22 + .../C#/ConsoleApp/bin/Debug/ConsoleApp.exe | Bin 0 -> 36864 bytes .../bin/Debug/ConsoleApp.exe.config | 22 + .../C#/ConsoleApp/bin/Debug/ConsoleApp.pdb | Bin 0 -> 50688 bytes .../bin/Debug/ConsoleApp.vshost.exe | Bin 0 -> 5632 bytes .../bin/Debug/ConsoleApp.vshost.exe.config | 22 + .../obj/ConsoleApp.csproj.FileList.txt | 6 + .../C#/ConsoleApp/obj/Debug/ConsoleApp.exe | Bin 0 -> 36864 bytes .../C#/ConsoleApp/obj/Debug/ConsoleApp.pdb | Bin 0 -> 50688 bytes .../Debug/TempPE/TestDataSet.Designer.cs.dll | Bin 0 -> 32768 bytes .../C#/ConsoleApp2/ConsoleApp2.csproj | 40 + .../C#/ConsoleApp2/ConsoleApp2.csproj.user | 5 + Code/Chapter 3/C#/ConsoleApp2/Program.cs | 20 + .../C#/ConsoleApp2/Properties/AssemblyInfo.cs | 33 + .../C#/ConsoleApp2/bin/Debug/ConsoleApp2.exe | Bin 0 -> 16384 bytes .../C#/ConsoleApp2/bin/Debug/ConsoleApp2.pdb | Bin 0 -> 11776 bytes .../bin/Debug/ConsoleApp2.vshost.exe | Bin 0 -> 5632 bytes .../obj/ConsoleApp2.csproj.FileList.txt | 5 + .../C#/ConsoleApp2/obj/Debug/ConsoleApp2.exe | Bin 0 -> 16384 bytes .../C#/ConsoleApp2/obj/Debug/ConsoleApp2.pdb | Bin 0 -> 11776 bytes .../Chapter 3/C#/DragDropWebsite/Default.aspx | 45 + .../C#/DragDropWebsite/Default.aspx.cs | 17 + Code/Chapter 3/C#/DragDropWebsite/Web.Config | 42 + .../C#/DragDropWinApp/DragDropWinApp.csproj | 88 ++ .../DragDropWinApp/DragDropWinApp.csproj.user | 5 + .../C#/DragDropWinApp/Form1.Designer.cs | 248 +++ Code/Chapter 3/C#/DragDropWinApp/Form1.cs | 39 + Code/Chapter 3/C#/DragDropWinApp/Form1.resx | 218 +++ Code/Chapter 3/C#/DragDropWinApp/Program.cs | 19 + .../DragDropWinApp/Properties/AssemblyInfo.cs | 33 + .../Properties/Resources.Designer.cs | 74 + .../DragDropWinApp/Properties/Resources.resx | 117 ++ .../Properties/Settings.Designer.cs | 38 + .../Properties/Settings.settings | 16 + .../C#/DragDropWinApp/TestDataSet.Designer.cs | 701 +++++++++ .../C#/DragDropWinApp/TestDataSet.cs | 1 + .../C#/DragDropWinApp/TestDataSet.xsc | 5 + .../C#/DragDropWinApp/TestDataSet.xsd | 101 ++ .../C#/DragDropWinApp/TestDataSet.xss | 1 + Code/Chapter 3/C#/DragDropWinApp/app.config | 22 + .../bin/Debug/DragDropWinApp.exe | Bin 0 -> 49152 bytes .../bin/Debug/DragDropWinApp.exe.config | 22 + .../bin/Debug/DragDropWinApp.pdb | Bin 0 -> 65024 bytes .../bin/Debug/DragDropWinApp.vshost.exe | Bin 0 -> 5632 bytes .../Debug/DragDropWinApp.vshost.exe.config | 22 + .../obj/Debug/DragDropWinApp.Form1.resources | Bin 0 -> 5278 bytes ...gDropWinApp.Properties.Resources.resources | Bin 0 -> 180 bytes ...agDropWinApp.csproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../obj/Debug/DragDropWinApp.exe | Bin 0 -> 49152 bytes .../obj/Debug/DragDropWinApp.pdb | Bin 0 -> 65024 bytes .../Debug/TempPE/TestDataSet.Designer.cs.dll | Bin 0 -> 32768 bytes .../obj/DragDropWinApp.csproj.FileList.txt | 9 + Code/Chapter 3/SQL/Create Database.sql | 22 + Code/Chapter 3/VB.NET/Chapter3.sln | 72 + Code/Chapter 3/VB.NET/Chapter3.suo | Bin 0 -> 31744 bytes .../VB.NET/ConsoleApp/ConsoleApp.vbproj | 102 ++ .../VB.NET/ConsoleApp/ConsoleApp.vbproj.user | 6 + Code/Chapter 3/VB.NET/ConsoleApp/Module1.vb | 12 + .../My Project/Application.Designer.vb | 13 + .../ConsoleApp/My Project/Application.myapp | 10 + .../ConsoleApp/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../ConsoleApp/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 76 + .../ConsoleApp/My Project/Settings.settings | 16 + .../VB.NET/ConsoleApp/TestDataSet.Designer.vb | 700 +++++++++ .../VB.NET/ConsoleApp/TestDataSet.xsc | 1 + .../VB.NET/ConsoleApp/TestDataSet.xsd | 101 ++ .../VB.NET/ConsoleApp/TestDataSet.xss | 1 + Code/Chapter 3/VB.NET/ConsoleApp/app.config | 43 + .../ConsoleApp/bin/Debug/ConsoleApp.exe | Bin 0 -> 45056 bytes .../bin/Debug/ConsoleApp.exe.config | 43 + .../ConsoleApp/bin/Debug/ConsoleApp.pdb | Bin 0 -> 124416 bytes .../ConsoleApp/bin/Debug/ConsoleApp.xml | 24 + .../obj/ConsoleApp.vbproj.FileList.txt | 10 + .../obj/Debug/ConsoleApp.Resources.resources | Bin 0 -> 180 bytes .../ConsoleApp/obj/Debug/ConsoleApp.exe | Bin 0 -> 45056 bytes .../ConsoleApp/obj/Debug/ConsoleApp.pdb | Bin 0 -> 124416 bytes .../ConsoleApp.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../ConsoleApp/obj/Debug/ConsoleApp.xml | 24 + .../Debug/TempPE/TestDataSet.Designer.vb.dll | Bin 0 -> 36864 bytes .../VB.NET/ConsoleApp2/ConsoleApp2.vbproj | 84 ++ .../ConsoleApp2/ConsoleApp2.vbproj.user | 6 + Code/Chapter 3/VB.NET/ConsoleApp2/Module1.vb | 17 + .../My Project/Application.Designer.vb | 13 + .../ConsoleApp2/My Project/Application.myapp | 10 + .../ConsoleApp2/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../ConsoleApp2/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../ConsoleApp2/My Project/Settings.settings | 7 + .../ConsoleApp2/bin/Debug/ConsoleApp2.exe | Bin 0 -> 24576 bytes .../ConsoleApp2/bin/Debug/ConsoleApp2.pdb | Bin 0 -> 42496 bytes .../bin/Debug/ConsoleApp2.vshost.exe | Bin 0 -> 5632 bytes .../ConsoleApp2/bin/Debug/ConsoleApp2.xml | 24 + .../obj/ConsoleApp2.vbproj.FileList.txt | 9 + .../obj/Debug/ConsoleApp2.Resources.resources | Bin 0 -> 180 bytes .../ConsoleApp2/obj/Debug/ConsoleApp2.exe | Bin 0 -> 24576 bytes .../ConsoleApp2/obj/Debug/ConsoleApp2.pdb | Bin 0 -> 42496 bytes .../ConsoleApp2.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../ConsoleApp2/obj/Debug/ConsoleApp2.xml | 24 + .../VB.NET/DragDropWebsite/Default.aspx | 45 + .../VB.NET/DragDropWebsite/Default.aspx.cs | 17 + .../VB.NET/DragDropWebsite/Web.Config | 42 + .../DragDropWinApp/DragDropWinApp.vbproj | 115 ++ .../DragDropWinApp/DragDropWinApp.vbproj.user | 5 + .../VB.NET/DragDropWinApp/Form1.Designer.vb | 221 +++ .../VB.NET/DragDropWinApp/Form1.resx | 218 +++ Code/Chapter 3/VB.NET/DragDropWinApp/Form1.vb | 18 + .../My Project/Application.Designer.vb | 37 + .../My Project/Application.myapp | 11 + .../My Project/ApplicationEvents.vb | 15 + .../DragDropWinApp/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../DragDropWinApp/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 76 + .../My Project/Settings.settings | 16 + .../DragDropWinApp/TestDataSet.Designer.vb | 700 +++++++++ .../VB.NET/DragDropWinApp/TestDataSet.xsc | 1 + .../VB.NET/DragDropWinApp/TestDataSet.xsd | 101 ++ .../VB.NET/DragDropWinApp/TestDataSet.xss | 1 + .../VB.NET/DragDropWinApp/app.config | 43 + .../bin/Debug/DragDropWinApp.exe | Bin 0 -> 61440 bytes .../bin/Debug/DragDropWinApp.exe.config | 43 + .../bin/Debug/DragDropWinApp.pdb | Bin 0 -> 146944 bytes .../bin/Debug/DragDropWinApp.vshost.exe | Bin 0 -> 5632 bytes .../Debug/DragDropWinApp.vshost.exe.config | 43 + .../bin/Debug/DragDropWinApp.xml | 24 + .../obj/Debug/DragDropWinApp.Form1.resources | Bin 0 -> 5278 bytes .../Debug/DragDropWinApp.Resources.resources | Bin 0 -> 180 bytes .../obj/Debug/DragDropWinApp.exe | Bin 0 -> 61440 bytes .../obj/Debug/DragDropWinApp.pdb | Bin 0 -> 146944 bytes ...agDropWinApp.vbproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../obj/Debug/DragDropWinApp.xml | 24 + .../My Project.Resources.Designer.vb.dll | Bin 0 -> 7168 bytes .../Debug/TempPE/TestDataSet.Designer.vb.dll | Bin 0 -> 36864 bytes .../obj/DragDropWinApp.vbproj.FileList.txt | 11 + Code/Chapter 4/C#/Chapter 4.sln | 32 + Code/Chapter 4/C#/Chapter 4.suo | Bin 0 -> 20480 bytes .../C#/Example 4.1/Exercise 4.1.csproj | 75 + .../C#/Example 4.1/Exercise 4.1.csproj.user | 19 + Code/Chapter 4/C#/Example 4.1/Program.cs | 47 + .../C#/Example 4.1/Properties/AssemblyInfo.cs | 29 + .../Properties/Resources.Designer.cs | 67 + .../C#/Example 4.1/Properties/Resources.resx | 117 ++ .../Properties/Settings.Designer.cs | 27 + .../Example 4.1/Properties/Settings.settings | 7 + .../bin/Debug/Example 4.1.vshost.exe | Bin 0 -> 5632 bytes .../C#/Example 4.1/bin/Debug/Exercise 4.1.exe | Bin 0 -> 16384 bytes .../C#/Example 4.1/bin/Debug/Exercise 4.1.pdb | Bin 0 -> 19968 bytes .../bin/Debug/Exercise 4.1.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 4.1.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 4.1/obj/Debug/Exercise 4.1.exe | Bin 0 -> 16384 bytes .../C#/Example 4.1/obj/Debug/Exercise 4.1.pdb | Bin 0 -> 19968 bytes ...xercise_4_1.Properties.Resources.resources | Bin 0 -> 180 bytes .../Properties.Resources.Designer.cs.dll | Bin 0 -> 4096 bytes .../obj/Exercise 4.1.csproj.FileList.txt | 7 + .../C#/Example 4.2/Exercise 4.2.csproj | 56 + .../C#/Example 4.2/Exercise 4.2.csproj.user | 7 + Code/Chapter 4/C#/Example 4.2/Program.cs | 49 + .../C#/Example 4.2/Properties/AssemblyInfo.cs | 29 + .../Properties/Resources.Designer.cs | 67 + .../C#/Example 4.2/Properties/Resources.resx | 117 ++ .../Properties/Settings.Designer.cs | 27 + .../Example 4.2/Properties/Settings.settings | 7 + Code/Chapter 4/C#/Example 4.2/app.config | 25 + .../C#/Example 4.2/bin/Debug/Exercise 4.2.exe | Bin 0 -> 16384 bytes .../bin/Debug/Exercise 4.2.exe.config | 25 + .../C#/Example 4.2/bin/Debug/Exercise 4.2.pdb | Bin 0 -> 19968 bytes ...Exercise 4.2.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 4.2/obj/Debug/Exercise 4.2.exe | Bin 0 -> 16384 bytes .../C#/Example 4.2/obj/Debug/Exercise 4.2.pdb | Bin 0 -> 19968 bytes ...xercise_4_2.Properties.Resources.resources | Bin 0 -> 180 bytes .../Properties.Resources.Designer.cs.dll | Bin 0 -> 4096 bytes .../obj/Exercise 4.2.csproj.FileList.txt | 8 + Code/Chapter 4/C#/Example 4.3/Example 4.suo | Bin 0 -> 2560 bytes .../C#/Example 4.3/Exercise 4.3.csproj | 55 + .../C#/Example 4.3/Exercise 4.3.csproj.user | 7 + Code/Chapter 4/C#/Example 4.3/Program.cs | 34 + .../C#/Example 4.3/Properties/AssemblyInfo.cs | 29 + .../Properties/Resources.Designer.cs | 67 + .../C#/Example 4.3/Properties/Resources.resx | 117 ++ .../Properties/Settings.Designer.cs | 27 + .../Example 4.3/Properties/Settings.settings | 7 + .../C#/Example 4.3/bin/Debug/Exercise 4.3.exe | Bin 0 -> 16384 bytes .../C#/Example 4.3/bin/Debug/Exercise 4.3.pdb | Bin 0 -> 19968 bytes ...Exercise 4.3.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 4.3/obj/Debug/Exercise 4.3.exe | Bin 0 -> 16384 bytes .../C#/Example 4.3/obj/Debug/Exercise 4.3.pdb | Bin 0 -> 19968 bytes ...xercise_4_3.Properties.Resources.resources | Bin 0 -> 180 bytes .../Properties.Resources.Designer.cs.dll | Bin 0 -> 4096 bytes .../obj/Exercise 4.3.csproj.FileList.txt | 7 + Code/Chapter 4/VB.NET/Chapter 4.sln | 32 + Code/Chapter 4/VB.NET/Chapter 4.suo | Bin 0 -> 26112 bytes .../VB.NET/Exercise 4.1/Exercise 4.1.vbproj | 84 ++ .../Exercise 4.1/Exercise 4.1.vbproj.user | 6 + Code/Chapter 4/VB.NET/Exercise 4.1/Module1.vb | 28 + .../My Project/Application.Designer.vb | 13 + .../Exercise 4.1/My Project/Application.myapp | 10 + .../Exercise 4.1/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 4.1/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../Exercise 4.1/My Project/Settings.settings | 7 + .../Exercise 4.1/bin/Debug/Exercise 4.1.exe | Bin 0 -> 24576 bytes .../Exercise 4.1/bin/Debug/Exercise 4.1.pdb | Bin 0 -> 42496 bytes .../bin/Debug/Exercise 4.1.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 4.1/bin/Debug/Exercise_4.1.xml | 24 + .../Exercise 4.1/obj/Debug/Exercise 4.1.exe | Bin 0 -> 24576 bytes .../Exercise 4.1/obj/Debug/Exercise 4.1.pdb | Bin 0 -> 42496 bytes ...Exercise 4.1.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 4.1/obj/Debug/Exercise_4.1.xml | 24 + .../Debug/Exercise_4_1.Resources.resources | Bin 0 -> 180 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 4.1.vbproj.FileList.txt | 9 + .../VB.NET/Exercise 4.2/Exercise 4.2.vbproj | 84 ++ .../Exercise 4.2/Exercise 4.2.vbproj.user | 5 + Code/Chapter 4/VB.NET/Exercise 4.2/Module1.vb | 35 + .../My Project/Application.Designer.vb | 13 + .../Exercise 4.2/My Project/Application.myapp | 10 + .../Exercise 4.2/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 4.2/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../Exercise 4.2/My Project/Settings.settings | 7 + .../Exercise 4.2/bin/Debug/Exercise 4.2.exe | Bin 0 -> 24576 bytes .../Exercise 4.2/bin/Debug/Exercise 4.2.pdb | Bin 0 -> 42496 bytes .../Exercise 4.2/bin/Debug/Exercise_4.2.xml | 24 + .../Exercise 4.2/obj/Debug/Exercise 4.2.exe | Bin 0 -> 24576 bytes .../Exercise 4.2/obj/Debug/Exercise 4.2.pdb | Bin 0 -> 42496 bytes ...Exercise 4.2.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 4.2/obj/Debug/Exercise_4.2.xml | 24 + .../Debug/Exercise_4_2.Resources.resources | Bin 0 -> 180 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 4.2.vbproj.FileList.txt | 9 + .../VB.NET/Exercise 4.3/Exercise 4.3.vbproj | 84 ++ .../Exercise 4.3/Exercise 4.3.vbproj.user | 5 + Code/Chapter 4/VB.NET/Exercise 4.3/Module1.vb | 21 + .../My Project/Application.Designer.vb | 13 + .../Exercise 4.3/My Project/Application.myapp | 10 + .../Exercise 4.3/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 4.3/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../Exercise 4.3/My Project/Settings.settings | 7 + .../Exercise 4.3/bin/Debug/Exercise 4.3.exe | Bin 0 -> 24576 bytes .../Exercise 4.3/bin/Debug/Exercise 4.3.pdb | Bin 0 -> 42496 bytes .../Exercise 4.3/bin/Debug/Exercise_4.3.xml | 24 + .../Exercise 4.3/obj/Debug/Exercise 4.3.exe | Bin 0 -> 24576 bytes .../Exercise 4.3/obj/Debug/Exercise 4.3.pdb | Bin 0 -> 42496 bytes ...Exercise 4.3.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 4.3/obj/Debug/Exercise_4.3.xml | 24 + .../Debug/Exercise_4_3.Resources.resources | Bin 0 -> 180 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 4.3.vbproj.FileList.txt | 9 + Code/Chapter 5/C#/Chapter 5.sln | 52 + Code/Chapter 5/C#/Chapter 5.suo | Bin 0 -> 33410 bytes .../C#/Example 5.1/Example 5.1.csproj | 53 + .../C#/Example 5.1/Example 5.1.csproj.user | 7 + Code/Chapter 5/C#/Example 5.1/Example 5.suo | Bin 0 -> 2560 bytes Code/Chapter 5/C#/Example 5.1/Program.cs | 29 + .../C#/Example 5.1/Properties/AssemblyInfo.cs | 29 + .../C#/Example 5.1/Properties/Resources.cs | 70 + .../C#/Example 5.1/Properties/Resources.resx | 117 ++ .../C#/Example 5.1/Properties/Settings.cs | 42 + .../Example 5.1/Properties/Settings.settings | 7 + .../C#/Example 5.1/bin/Debug/Example 5.1.exe | Bin 0 -> 16384 bytes .../C#/Example 5.1/bin/Debug/Example 5.1.pdb | Bin 0 -> 24064 bytes .../bin/Debug/Example 5.1.vshost.exe | Bin 0 -> 5632 bytes .../Example 5.1.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 5.1/obj/Debug/Example 5.1.exe | Bin 0 -> 16384 bytes .../C#/Example 5.1/obj/Debug/Example 5.1.pdb | Bin 0 -> 24064 bytes ...Example_5_1.Properties.Resources.resources | Bin 0 -> 180 bytes .../obj/Example 5.1.csproj.FileList.txt | 7 + .../C#/Example 5.2/Example 5.2.csproj | 55 + .../C#/Example 5.2/Example 5.2.csproj.user | 7 + Code/Chapter 5/C#/Example 5.2/Example 5.suo | Bin 0 -> 2560 bytes Code/Chapter 5/C#/Example 5.2/Program.cs | 37 + .../C#/Example 5.2/Properties/AssemblyInfo.cs | 29 + .../C#/Example 5.2/Properties/Resources.cs | 61 + .../C#/Example 5.2/Properties/Resources.resx | 117 ++ .../C#/Example 5.2/Properties/Settings.cs | 38 + .../Example 5.2/Properties/Settings.settings | 7 + Code/Chapter 5/C#/Example 5.2/app.config | 3 + .../C#/Example 5.2/bin/Debug/Example 5.2.exe | Bin 0 -> 16384 bytes .../bin/Debug/Example 5.2.exe.config | 3 + .../C#/Example 5.2/bin/Debug/Example 5.2.pdb | Bin 0 -> 19968 bytes .../bin/Debug/Example 5.2.vshost.exe | Bin 0 -> 5632 bytes .../bin/Debug/Example 5.2.vshost.exe.config | 3 + .../Example 5.2.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 5.2/obj/Debug/Example 5.2.exe | Bin 0 -> 16384 bytes .../C#/Example 5.2/obj/Debug/Example 5.2.pdb | Bin 0 -> 19968 bytes ...Example_5_2.Properties.Resources.resources | Bin 0 -> 180 bytes .../obj/Example 5.2.csproj.FileList.txt | 8 + .../C#/Example 5.3/Example 5.3.csproj | 64 + .../C#/Example 5.3/Example 5.3.csproj.user | 7 + Code/Chapter 5/C#/Example 5.3/Example 5.suo | Bin 0 -> 2560 bytes .../C#/Example 5.3/Form1.Designer.cs | 100 ++ Code/Chapter 5/C#/Example 5.3/Form1.cs | 52 + Code/Chapter 5/C#/Example 5.3/Form1.resx | 117 ++ Code/Chapter 5/C#/Example 5.3/Program.cs | 23 + .../C#/Example 5.3/Properties/AssemblyInfo.cs | 29 + .../C#/Example 5.3/Properties/Resources.cs | 70 + .../C#/Example 5.3/Properties/Resources.resx | 117 ++ .../C#/Example 5.3/Properties/Settings.cs | 42 + .../Example 5.3/Properties/Settings.settings | 7 + .../C#/Example 5.3/bin/Debug/Exampple 5.4.exe | Bin 0 -> 20480 bytes .../C#/Example 5.3/bin/Debug/Exampple 5.4.pdb | Bin 0 -> 32256 bytes .../bin/Debug/Exampple 5.4.vshost.exe | Bin 0 -> 5632 bytes .../Example 5.3.csproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../obj/Debug/Example_5_3.Form1.resources | Bin 0 -> 180 bytes .../C#/Example 5.3/obj/Debug/Exampple 5.4.exe | Bin 0 -> 20480 bytes .../C#/Example 5.3/obj/Debug/Exampple 5.4.pdb | Bin 0 -> 32256 bytes ...xampple_5_4.Properties.Resources.resources | Bin 0 -> 180 bytes .../obj/Example 5.3.csproj.FileList.txt | 8 + .../C#/Example 5.4/Example 5.4.csproj | 64 + .../C#/Example 5.4/Example 5.4.csproj.user | 7 + Code/Chapter 5/C#/Example 5.4/Example 5.suo | Bin 0 -> 2560 bytes .../C#/Example 5.4/Form1.Designer.cs | 100 ++ Code/Chapter 5/C#/Example 5.4/Form1.cs | 62 + Code/Chapter 5/C#/Example 5.4/Form1.resx | 117 ++ Code/Chapter 5/C#/Example 5.4/Program.cs | 23 + .../C#/Example 5.4/Properties/AssemblyInfo.cs | 29 + .../C#/Example 5.4/Properties/Resources.cs | 70 + .../C#/Example 5.4/Properties/Resources.resx | 117 ++ .../C#/Example 5.4/Properties/Settings.cs | 42 + .../Example 5.4/Properties/Settings.settings | 7 + .../C#/Example 5.4/bin/Debug/Exampple 5.4.exe | Bin 0 -> 20480 bytes .../C#/Example 5.4/bin/Debug/Exampple 5.4.pdb | Bin 0 -> 32256 bytes .../bin/Debug/Exampple 5.4.vshost.exe | Bin 0 -> 5632 bytes .../Example 5.4.csproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../obj/Debug/Example_5_4.Form1.resources | Bin 0 -> 180 bytes .../C#/Example 5.4/obj/Debug/Exampple 5.4.exe | Bin 0 -> 20480 bytes .../C#/Example 5.4/obj/Debug/Exampple 5.4.pdb | Bin 0 -> 32256 bytes ...xampple_5_4.Properties.Resources.resources | Bin 0 -> 180 bytes .../obj/Example 5.4.csproj.FileList.txt | 8 + .../C#/Example 5.5/Example 5.5.csproj | 55 + .../C#/Example 5.5/Example 5.5.csproj.user | 7 + Code/Chapter 5/C#/Example 5.5/Example 5.suo | Bin 0 -> 2560 bytes Code/Chapter 5/C#/Example 5.5/Program.cs | 42 + .../C#/Example 5.5/Properties/AssemblyInfo.cs | 29 + .../C#/Example 5.5/Properties/Resources.cs | 61 + .../C#/Example 5.5/Properties/Resources.resx | 117 ++ .../C#/Example 5.5/Properties/Settings.cs | 38 + .../Example 5.5/Properties/Settings.settings | 7 + Code/Chapter 5/C#/Example 5.5/app.config | 3 + .../C#/Example 5.5/bin/Debug/Example 5.2.exe | Bin 0 -> 16384 bytes .../bin/Debug/Example 5.2.exe.config | 3 + .../C#/Example 5.5/bin/Debug/Example 5.2.pdb | Bin 0 -> 24064 bytes .../C#/Example 5.5/obj/Debug/Example 5.2.exe | Bin 0 -> 16384 bytes .../C#/Example 5.5/obj/Debug/Example 5.2.pdb | Bin 0 -> 24064 bytes .../Example 5.5.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes ...Example_5_2.Properties.Resources.resources | Bin 0 -> 180 bytes .../obj/Example 5.5.csproj.FileList.txt | 8 + Code/Chapter 5/C#/UDT/AssemblyInfo.cs | 31 + Code/Chapter 5/C#/UDT/Test Scripts/Test.sql | 35 + Code/Chapter 5/C#/UDT/UDT.csproj | 49 + Code/Chapter 5/C#/UDT/UDT.csproj.user | 12 + Code/Chapter 5/C#/UDT/XYCoOrdinate.cs | 73 + Code/Chapter 5/C#/UDT/bin/Debug/UDT.dll | Bin 0 -> 16384 bytes Code/Chapter 5/C#/UDT/bin/Debug/UDT.pdb | Bin 0 -> 15872 bytes Code/Chapter 5/C#/UDT/obj/Debug/UDT.dll | Bin 0 -> 16384 bytes Code/Chapter 5/C#/UDT/obj/Debug/UDT.pdb | Bin 0 -> 15872 bytes .../C#/UDT/obj/UDT.csproj.FileList.txt | 5 + Code/Chapter 5/VB.NET/Chapter 5.sln | 52 + Code/Chapter 5/VB.NET/Chapter 5.suo | Bin 0 -> 40448 bytes .../VB.NET/Exercise 5.1/Exercise 5.1.vbproj | 84 ++ .../Exercise 5.1/Exercise 5.1.vbproj.user | 6 + Code/Chapter 5/VB.NET/Exercise 5.1/Module1.vb | 17 + .../My Project/Application.Designer.vb | 13 + .../Exercise 5.1/My Project/Application.myapp | 10 + .../Exercise 5.1/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 5.1/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../Exercise 5.1/My Project/Settings.settings | 7 + .../Exercise 5.1/bin/Debug/Exercise 5.1.exe | Bin 0 -> 24576 bytes .../Exercise 5.1/bin/Debug/Exercise 5.1.pdb | Bin 0 -> 42496 bytes .../bin/Debug/Exercise 5.1.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 5.1/bin/Debug/Exercise_5.1.xml | 24 + .../Exercise 5.1/obj/Debug/Exercise 5.1.exe | Bin 0 -> 24576 bytes .../Exercise 5.1/obj/Debug/Exercise 5.1.pdb | Bin 0 -> 42496 bytes ...Exercise 5.1.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 5.1/obj/Debug/Exercise_5.1.xml | 24 + .../Debug/Exercise_5_1.Resources.resources | Bin 0 -> 180 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 5.1.vbproj.FileList.txt | 9 + .../VB.NET/Exercise 5.2/Exercise 5.2.vbproj | 84 ++ .../Exercise 5.2/Exercise 5.2.vbproj.user | 6 + Code/Chapter 5/VB.NET/Exercise 5.2/Module1.vb | 23 + .../My Project/Application.Designer.vb | 13 + .../Exercise 5.2/My Project/Application.myapp | 10 + .../Exercise 5.2/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 5.2/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../Exercise 5.2/My Project/Settings.settings | 7 + .../Exercise 5.2/bin/Debug/Exercise 5.2.exe | Bin 0 -> 24576 bytes .../Exercise 5.2/bin/Debug/Exercise 5.2.pdb | Bin 0 -> 42496 bytes .../bin/Debug/Exercise 5.2.vshost.exe | Bin 0 -> 5632 bytes .../Exercise 5.2/bin/Debug/Exercise_5.2.xml | 24 + .../Exercise 5.2/obj/Debug/Exercise 5.2.exe | Bin 0 -> 24576 bytes .../Exercise 5.2/obj/Debug/Exercise 5.2.pdb | Bin 0 -> 42496 bytes ...Exercise 5.2.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 5.2/obj/Debug/Exercise_5.2.xml | 24 + .../Debug/Exercise_5_2.Resources.resources | Bin 0 -> 180 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 5.2.vbproj.FileList.txt | 9 + .../VB.NET/Exercise 5.3/Exercise 5.3.vbproj | 96 ++ .../Exercise 5.3/Exercise 5.3.vbproj.user | 6 + .../VB.NET/Exercise 5.3/Form1.Designer.vb | 86 ++ Code/Chapter 5/VB.NET/Exercise 5.3/Form1.resx | 117 ++ Code/Chapter 5/VB.NET/Exercise 5.3/Form1.vb | 31 + .../My Project/Application.Designer.vb | 38 + .../Exercise 5.3/My Project/Application.myapp | 11 + .../My Project/ApplicationEvents.vb | 15 + .../Exercise 5.3/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 5.3/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../Exercise 5.3/My Project/Settings.settings | 7 + .../Exercise 5.3/bin/Debug/Exercise 5.3.exe | Bin 0 -> 32768 bytes .../Exercise 5.3/bin/Debug/Exercise 5.3.pdb | Bin 0 -> 60928 bytes .../Exercise 5.3/bin/Debug/Exercise_5.3.xml | 24 + .../Exercise 5.3/obj/Debug/Exercise 5.3.exe | Bin 0 -> 32768 bytes .../Exercise 5.3/obj/Debug/Exercise 5.3.pdb | Bin 0 -> 60928 bytes ...Exercise 5.3.vbproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../Exercise 5.3/obj/Debug/Exercise_5.3.xml | 24 + .../obj/Debug/Exercise_5_3.Form1.resources | Bin 0 -> 180 bytes .../Debug/Exercise_5_3.Resources.resources | Bin 0 -> 180 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 5.3.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 5.4/Exercise 5.4.vbproj | 96 ++ .../Exercise 5.4/Exercise 5.4.vbproj.user | 6 + .../VB.NET/Exercise 5.4/Form1.Designer.vb | 86 ++ Code/Chapter 5/VB.NET/Exercise 5.4/Form1.resx | 117 ++ Code/Chapter 5/VB.NET/Exercise 5.4/Form1.vb | 46 + .../My Project/Application.Designer.vb | 38 + .../Exercise 5.4/My Project/Application.myapp | 11 + .../My Project/ApplicationEvents.vb | 15 + .../Exercise 5.4/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 5.4/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../Exercise 5.4/My Project/Settings.settings | 7 + .../Exercise 5.4/bin/Debug/Exercise 5.4.exe | Bin 0 -> 32768 bytes .../Exercise 5.4/bin/Debug/Exercise 5.4.pdb | Bin 0 -> 62976 bytes .../Exercise 5.4/bin/Debug/Exercise_5.4.xml | 24 + .../Exercise 5.4/obj/Debug/Exercise 5.4.exe | Bin 0 -> 32768 bytes .../Exercise 5.4/obj/Debug/Exercise 5.4.pdb | Bin 0 -> 62976 bytes ...Exercise 5.4.vbproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../Exercise 5.4/obj/Debug/Exercise_5.4.xml | 24 + .../obj/Debug/Exercise_5_4.Form1.resources | Bin 0 -> 180 bytes .../Debug/Exercise_5_4.Resources.resources | Bin 0 -> 180 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 5.4.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 5.5/Exercise 5.5.vbproj | 84 ++ .../Exercise 5.5/Exercise 5.5.vbproj.user | 6 + Code/Chapter 5/VB.NET/Exercise 5.5/Module1.vb | 25 + .../My Project/Application.Designer.vb | 13 + .../Exercise 5.5/My Project/Application.myapp | 10 + .../Exercise 5.5/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 5.5/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../Exercise 5.5/My Project/Settings.settings | 7 + .../Exercise 5.5/bin/Debug/Exercise 5.5.exe | Bin 0 -> 24576 bytes .../Exercise 5.5/bin/Debug/Exercise 5.5.pdb | Bin 0 -> 42496 bytes .../Exercise 5.5/bin/Debug/Exercise_5.5.xml | 24 + .../Exercise 5.5/obj/Debug/Exercise 5.5.exe | Bin 0 -> 24576 bytes .../Exercise 5.5/obj/Debug/Exercise 5.5.pdb | Bin 0 -> 42496 bytes ...Exercise 5.5.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 5.5/obj/Debug/Exercise_5.5.xml | 24 + .../Debug/Exercise_5_5.Resources.resources | Bin 0 -> 180 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 5.5.vbproj.FileList.txt | 9 + Code/Chapter 5/VB.NET/UDT/AssemblyInfo.vb | 34 + .../VB.NET/UDT/Test Scripts/Test.sql | 35 + Code/Chapter 5/VB.NET/UDT/UDT.vbproj | 65 + Code/Chapter 5/VB.NET/UDT/UDT.vbproj.user | 12 + Code/Chapter 5/VB.NET/UDT/XYCoOrdinate.vb | 70 + Code/Chapter 5/VB.NET/UDT/bin/UDT.dll | Bin 0 -> 20480 bytes Code/Chapter 5/VB.NET/UDT/bin/UDT.pdb | Bin 0 -> 19968 bytes Code/Chapter 5/VB.NET/UDT/obj/Debug/UDT.dll | Bin 0 -> 20480 bytes Code/Chapter 5/VB.NET/UDT/obj/Debug/UDT.pdb | Bin 0 -> 19968 bytes .../VB.NET/UDT/obj/UDT.vbproj.FileList.txt | 5 + Code/Chapter 6/C#/Chapter 6.sln | 62 + Code/Chapter 6/C#/Chapter 6.suo | Bin 0 -> 44544 bytes .../C#/Example 6.1/Example 6.1.csproj | 53 + .../C#/Example 6.1/Example 6.1.csproj.user | 7 + Code/Chapter 6/C#/Example 6.1/Program.cs | 51 + .../C#/Example 6.1/Properties/AssemblyInfo.cs | 29 + .../C#/Example 6.1/Properties/Resources.cs | 70 + .../C#/Example 6.1/Properties/Resources.resx | 117 ++ .../C#/Example 6.1/Properties/Settings.cs | 42 + .../Example 6.1/Properties/Settings.settings | 7 + .../C#/Example 6.1/bin/Debug/Example 6.1.exe | Bin 0 -> 16384 bytes .../C#/Example 6.1/bin/Debug/Example 6.1.pdb | Bin 0 -> 24064 bytes .../bin/Debug/Example 6.1.vshost.exe | Bin 0 -> 5120 bytes .../Example 6.1/bin/Debug/productsTable.xml | 53 + .../Example 6.1.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 6.1/obj/Debug/Example 6.1.exe | Bin 0 -> 16384 bytes .../C#/Example 6.1/obj/Debug/Example 6.1.pdb | Bin 0 -> 24064 bytes ...Example_6_1.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Example 6.1/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Example 6.1.csproj.FileList.txt | 7 + .../C#/Example 6.2/Example 6.2.csproj | 53 + .../C#/Example 6.2/Example 6.2.csproj.user | 7 + Code/Chapter 6/C#/Example 6.2/Example 6.suo | Bin 0 -> 2560 bytes Code/Chapter 6/C#/Example 6.2/Program.cs | 126 ++ .../C#/Example 6.2/Properties/AssemblyInfo.cs | 29 + .../C#/Example 6.2/Properties/Resources.cs | 70 + .../C#/Example 6.2/Properties/Resources.resx | 117 ++ .../C#/Example 6.2/Properties/Settings.cs | 42 + .../Example 6.2/Properties/Settings.settings | 7 + .../C#/Example 6.2/bin/Debug/Example 6.1.exe | Bin 0 -> 20480 bytes .../C#/Example 6.2/bin/Debug/Example 6.1.pdb | Bin 0 -> 24064 bytes .../bin/Debug/Example 6.1.vshost.exe | Bin 0 -> 5632 bytes .../Example 6.2/bin/Debug/productsTable.xml | 53 + .../C#/Example 6.2/obj/Debug/Example 6.1.exe | Bin 0 -> 20480 bytes .../C#/Example 6.2/obj/Debug/Example 6.1.pdb | Bin 0 -> 24064 bytes .../Example 6.2.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes ...Example_6_1.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Example 6.2/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Example 6.2.csproj.FileList.txt | 7 + .../C#/Example 6.3/Example 6.3.csproj | 61 + .../C#/Example 6.3/Example 6.3.csproj.user | 7 + .../C#/Example 6.3/Form1.Designer.cs | 146 ++ Code/Chapter 6/C#/Example 6.3/Form1.cs | 76 + Code/Chapter 6/C#/Example 6.3/Program.cs | 23 + .../C#/Example 6.3/Properties/AssemblyInfo.cs | 29 + .../C#/Example 6.3/Properties/Resources.cs | 70 + .../C#/Example 6.3/Properties/Resources.resx | 117 ++ .../C#/Example 6.3/Properties/Settings.cs | 42 + .../Example 6.3/Properties/Settings.settings | 7 + .../C#/Example 6.3/bin/Debug/Example 6.3.exe | Bin 0 -> 20480 bytes .../C#/Example 6.3/bin/Debug/Example 6.3.pdb | Bin 0 -> 30208 bytes .../bin/Debug/Example 6.3.vshost.exe | Bin 0 -> 5632 bytes .../Example 6.3.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 6.3/obj/Debug/Example 6.3.exe | Bin 0 -> 20480 bytes .../C#/Example 6.3/obj/Debug/Example 6.3.pdb | Bin 0 -> 30208 bytes ...Example_6_3.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Example 6.3/obj/Debug/ResGen.cache | Bin 0 -> 1413 bytes .../obj/Example 6.3.csproj.FileList.txt | 7 + .../C#/Example 6.4/Example 6.4.csproj | 53 + .../C#/Example 6.4/Example 6.4.csproj.user | 7 + Code/Chapter 6/C#/Example 6.4/Program.cs | 78 + .../C#/Example 6.4/Properties/AssemblyInfo.cs | 29 + .../C#/Example 6.4/Properties/Resources.cs | 70 + .../C#/Example 6.4/Properties/Resources.resx | 117 ++ .../C#/Example 6.4/Properties/Settings.cs | 42 + .../Example 6.4/Properties/Settings.settings | 7 + .../bin/Debug/DS_Serialization.exe | Bin 0 -> 20480 bytes .../bin/Debug/DS_Serialization.pdb | Bin 0 -> 22016 bytes .../bin/Debug/DS_Serialization.vshost.exe | Bin 0 -> 5632 bytes .../Chapter 6/C#/Example 6.4/bin/Debug/ds.dat | Bin 0 -> 588604 bytes ...rialization.Properties.Resources.resources | Bin 0 -> 180 bytes .../obj/Debug/DS_Serialization.exe | Bin 0 -> 20480 bytes .../obj/Debug/DS_Serialization.pdb | Bin 0 -> 22016 bytes .../Example 6.4.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 6.4/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Example 6.4.csproj.FileList.txt | 7 + .../C#/Example 6.5/Example 6.5.csproj | 53 + .../C#/Example 6.5/Example 6.5.csproj.user | 7 + Code/Chapter 6/C#/Example 6.5/Program.cs | 29 + .../C#/Example 6.5/Properties/AssemblyInfo.cs | 29 + .../C#/Example 6.5/Properties/Resources.cs | 70 + .../C#/Example 6.5/Properties/Resources.resx | 117 ++ .../C#/Example 6.5/Properties/Settings.cs | 42 + .../Example 6.5/Properties/Settings.settings | 7 + .../C#/Example 6.5/bin/Debug/BookDataSet.xsd | 23 + .../C#/Example 6.5/bin/Debug/Books.xml | 10 + .../C#/Example 6.5/bin/Debug/Exercise 6.5.exe | Bin 0 -> 16384 bytes .../C#/Example 6.5/bin/Debug/Exercise 6.5.pdb | Bin 0 -> 24064 bytes .../Example 6.5.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 6.5/obj/Debug/Exercise 6.5.exe | Bin 0 -> 16384 bytes .../C#/Example 6.5/obj/Debug/Exercise 6.5.pdb | Bin 0 -> 24064 bytes ...xercise_6_5.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Example 6.5/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Example 6.5.csproj.FileList.txt | 7 + .../C#/Example 6.6/Example 6.6.csproj | 53 + .../C#/Example 6.6/Example 6.6.csproj.user | 7 + Code/Chapter 6/C#/Example 6.6/Program.cs | 44 + .../C#/Example 6.6/Properties/AssemblyInfo.cs | 29 + .../C#/Example 6.6/Properties/Resources.cs | 70 + .../C#/Example 6.6/Properties/Resources.resx | 117 ++ .../C#/Example 6.6/Properties/Settings.cs | 42 + .../Example 6.6/Properties/Settings.settings | 7 + .../C#/Example 6.6/bin/Debug/BookDataSet.xsd | 41 + .../C#/Example 6.6/bin/Debug/BookDataSet.xsx | 7 + .../C#/Example 6.6/bin/Debug/Books.xml | 35 + .../C#/Example 6.6/bin/Debug/Example 6.6.exe | Bin 0 -> 20480 bytes .../C#/Example 6.6/bin/Debug/Example 6.6.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Example 6.6.vshost.exe | Bin 0 -> 5120 bytes .../Example 6.6.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 6.6/obj/Debug/Example 6.6.exe | Bin 0 -> 20480 bytes .../C#/Example 6.6/obj/Debug/Example 6.6.pdb | Bin 0 -> 22016 bytes ...Example_6_6.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Example 6.6/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Example 6.6.csproj.FileList.txt | 7 + .../C#/Example 6.7/BookDataSet.Designer.cs | 795 ++++++++++ Code/Chapter 6/C#/Example 6.7/BookDataSet.cs | 6 + Code/Chapter 6/C#/Example 6.7/BookDataSet.xsc | 0 Code/Chapter 6/C#/Example 6.7/BookDataSet.xsd | 41 + Code/Chapter 6/C#/Example 6.7/BookDataSet.xss | 21 + Code/Chapter 6/C#/Example 6.7/BookDataSet.xsx | 7 + .../C#/Example 6.7/Example 6.7.csproj | 77 + .../C#/Example 6.7/Example 6.7.csproj.user | 7 + Code/Chapter 6/C#/Example 6.7/Program.cs | 39 + .../C#/Example 6.7/Properties/AssemblyInfo.cs | 29 + .../C#/Example 6.7/Properties/Resources.cs | 70 + .../C#/Example 6.7/Properties/Resources.resx | 117 ++ .../C#/Example 6.7/Properties/Settings.cs | 42 + .../Example 6.7/Properties/Settings.settings | 7 + .../C#/Example 6.7/bin/Debug/Books.xml | 35 + .../C#/Example 6.7/bin/Debug/Example 6.7.exe | Bin 0 -> 36864 bytes .../C#/Example 6.7/bin/Debug/Example 6.7.pdb | Bin 0 -> 79360 bytes .../bin/Debug/Example 6.7.vshost.exe | Bin 0 -> 5120 bytes .../Example 6.7.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 6.7/obj/Debug/Example 6.7.exe | Bin 0 -> 36864 bytes .../C#/Example 6.7/obj/Debug/Example 6.7.pdb | Bin 0 -> 79360 bytes ...Example_6_7.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Example 6.7/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../Debug/TempPE/BookDataSet.Designer.cs.dll | Bin 0 -> 32768 bytes .../obj/Example 6.7.csproj.FileList.txt | 7 + Code/Chapter 6/C#/Example 6.8/BookDataSet.xsd | 35 + Code/Chapter 6/C#/Example 6.8/BuildDS.cmd | 1 + .../C#/Example 6.9/BookDataSet.Designer.cs | 825 ++++++++++ Code/Chapter 6/C#/Example 6.9/BookDataSet.xsc | 0 Code/Chapter 6/C#/Example 6.9/BookDataSet.xsd | 49 + Code/Chapter 6/C#/Example 6.9/BookDataSet.xss | 0 Code/Chapter 6/C#/Example 6.9/BookDataSet.xsx | 7 + .../C#/Example 6.9/Example 6.9.csproj | 82 + .../C#/Example 6.9/Example 6.9.csproj.user | 7 + .../C#/Example 6.9/Form1.Designer.cs | 88 ++ Code/Chapter 6/C#/Example 6.9/Form1.cs | 38 + Code/Chapter 6/C#/Example 6.9/Program.cs | 23 + .../C#/Example 6.9/Properties/AssemblyInfo.cs | 29 + .../C#/Example 6.9/Properties/Resources.cs | 70 + .../C#/Example 6.9/Properties/Resources.resx | 117 ++ .../C#/Example 6.9/Properties/Settings.cs | 42 + .../Example 6.9/Properties/Settings.settings | 7 + .../C#/Example 6.9/bin/Debug/Books.xml | 35 + .../C#/Example 6.9/bin/Debug/Example 6.9.exe | Bin 0 -> 36864 bytes .../C#/Example 6.9/bin/Debug/Example 6.9.pdb | Bin 0 -> 87552 bytes .../bin/Debug/Example 6.9.vshost.exe | Bin 0 -> 5632 bytes .../Example 6.9.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 6.9/obj/Debug/Example 6.9.exe | Bin 0 -> 36864 bytes .../C#/Example 6.9/obj/Debug/Example 6.9.pdb | Bin 0 -> 87552 bytes ...Example_6_9.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Example 6.9/obj/Debug/ResGen.cache | Bin 0 -> 1516 bytes .../Debug/TempPE/BookDataSet.Designer.cs.dll | Bin 0 -> 32768 bytes .../obj/Example 6.9.csproj.FileList.txt | 7 + Code/Chapter 6/VB.NET/Chapter 6.sln | 62 + Code/Chapter 6/VB.NET/Chapter 6.suo | Bin 0 -> 58880 bytes .../VB.NET/Exercise 6.1/Exercise 6.1.vbproj | 98 ++ .../Exercise 6.1/Exercise 6.1.vbproj.user | 7 + Code/Chapter 6/VB.NET/Exercise 6.1/Module1.vb | 42 + .../Exercise 6.1/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 6.1/My Project/MyApplication.vb | 12 + .../Exercise 6.1/My Project/MyResources.resx | 117 ++ .../Exercise 6.1/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 6.1/My Project/MySettings.vb | 38 + Code/Chapter 6/VB.NET/Exercise 6.1/app.config | 25 + .../VB.NET/Exercise 6.1/bin/Exercise 6.1.exe | Bin 0 -> 24576 bytes .../Exercise 6.1/bin/Exercise 6.1.exe.config | 25 + .../VB.NET/Exercise 6.1/bin/Exercise 6.1.pdb | Bin 0 -> 38400 bytes .../Exercise 6.1/bin/Exercise 6.1.vshost.exe | Bin 0 -> 5120 bytes .../bin/Exercise 6.1.vshost.exe.config | 25 + .../VB.NET/Exercise 6.1/bin/Exercise 6.1.xml | 11 + .../Exercise 6.1/obj/Debug/Exercise 6.1.exe | Bin 0 -> 24576 bytes .../Exercise 6.1/obj/Debug/Exercise 6.1.pdb | Bin 0 -> 38400 bytes ...Exercise 6.1.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 6.1/obj/Debug/Exercise 6.1.xml | 11 + .../Debug/Exercise_6_1.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 6.1/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../obj/Exercise 6.1.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 6.2/Exercise 6.2.vbproj | 98 ++ .../Exercise 6.2/Exercise 6.2.vbproj.user | 7 + .../VB.NET/Exercise 6.2/Exercise 6.suo | Bin 0 -> 2560 bytes Code/Chapter 6/VB.NET/Exercise 6.2/Module1.vb | 119 ++ .../Exercise 6.2/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 6.2/My Project/MyApplication.vb | 12 + .../Exercise 6.2/My Project/MyResources.resx | 117 ++ .../Exercise 6.2/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 6.2/My Project/MySettings.vb | 38 + Code/Chapter 6/VB.NET/Exercise 6.2/app.config | 25 + .../VB.NET/Exercise 6.2/bin/Exercise 6.1.exe | Bin 0 -> 28672 bytes .../Exercise 6.2/bin/Exercise 6.1.exe.config | 25 + .../VB.NET/Exercise 6.2/bin/Exercise 6.1.pdb | Bin 0 -> 46592 bytes .../Exercise 6.2/bin/Exercise 6.1.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 6.1.vshost.exe.config | 25 + .../VB.NET/Exercise 6.2/bin/Exercise 6.1.xml | 11 + .../Exercise 6.2/obj/Debug/Exercise 6.1.exe | Bin 0 -> 28672 bytes .../Exercise 6.2/obj/Debug/Exercise 6.1.pdb | Bin 0 -> 46592 bytes .../Exercise 6.2/obj/Debug/Exercise 6.1.xml | 11 + ...Exercise 6.2.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Debug/Exercise_6_1.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 6.2/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../obj/Exercise 6.2.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 6.3/Exercise 6.3.vbproj | 111 ++ .../Exercise 6.3/Exercise 6.3.vbproj.user | 7 + .../VB.NET/Exercise 6.3/Form1.Designer.vb | 139 ++ Code/Chapter 6/VB.NET/Exercise 6.3/Form1.resx | 132 ++ Code/Chapter 6/VB.NET/Exercise 6.3/Form1.vb | 52 + .../Exercise 6.3/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 6.3/My Project/MyApplication.vb | 31 + .../Exercise 6.3/My Project/MyEvents.vb | 13 + .../Exercise 6.3/My Project/MyResources.resx | 117 ++ .../Exercise 6.3/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 6.3/My Project/MySettings.vb | 38 + Code/Chapter 6/VB.NET/Exercise 6.3/app.config | 25 + .../VB.NET/Exercise 6.3/bin/Exercise 6.3.exe | Bin 0 -> 32768 bytes .../Exercise 6.3/bin/Exercise 6.3.exe.config | 25 + .../VB.NET/Exercise 6.3/bin/Exercise 6.3.pdb | Bin 0 -> 56832 bytes .../Exercise 6.3/bin/Exercise 6.3.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 6.3.vshost.exe.config | 25 + .../VB.NET/Exercise 6.3/bin/Exercise 6.3.xml | 11 + .../Exercise 6.3/obj/Debug/Exercise 6.3.exe | Bin 0 -> 32768 bytes .../Exercise 6.3/obj/Debug/Exercise 6.3.pdb | Bin 0 -> 56832 bytes ...Exercise 6.3.vbproj.GenerateResource.Cache | Bin 0 -> 844 bytes .../Exercise 6.3/obj/Debug/Exercise 6.3.xml | 11 + .../obj/Debug/Exercise_6_3.Form1.resources | Bin 0 -> 180 bytes .../Debug/Exercise_6_3.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 6.3/obj/Debug/ResGen.cache | Bin 0 -> 1480 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 6.3.vbproj.FileList.txt | 11 + .../VB.NET/Exercise 6.4/Exercise 6.4.vbproj | 98 ++ .../Exercise 6.4/Exercise 6.4.vbproj.user | 7 + Code/Chapter 6/VB.NET/Exercise 6.4/Module1.vb | 62 + .../Exercise 6.4/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 6.4/My Project/MyApplication.vb | 13 + .../Exercise 6.4/My Project/MyResources.resx | 117 ++ .../Exercise 6.4/My Project/MyResources.vb | 60 + .../My Project/MySettings.settings | 7 + .../Exercise 6.4/My Project/MySettings.vb | 39 + Code/Chapter 6/VB.NET/Exercise 6.4/app.config | 23 + .../VB.NET/Exercise 6.4/bin/Exercise 6.4.exe | Bin 0 -> 24576 bytes .../Exercise 6.4/bin/Exercise 6.4.exe.config | 23 + .../VB.NET/Exercise 6.4/bin/Exercise 6.4.pdb | Bin 0 -> 38400 bytes .../Exercise 6.4/bin/Exercise 6.4.vshost.exe | Bin 0 -> 5120 bytes .../bin/Exercise 6.4.vshost.exe.config | 23 + .../VB.NET/Exercise 6.4/bin/Exercise 6.4.xml | 20 + .../Exercise 6.4/obj/Debug/Exercise 6.4.exe | Bin 0 -> 24576 bytes .../Exercise 6.4/obj/Debug/Exercise 6.4.pdb | Bin 0 -> 38400 bytes ...Exercise 6.4.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 6.4/obj/Debug/Exercise 6.4.xml | 20 + .../Debug/Exercise_6_4.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 6.4/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6144 bytes .../obj/Exercise 6.4.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 6.5/Exercise 6.5.vbproj | 98 ++ .../Exercise 6.5/Exercise 6.5.vbproj.user | 7 + Code/Chapter 6/VB.NET/Exercise 6.5/Module1.vb | 17 + .../Exercise 6.5/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 6.5/My Project/MyApplication.vb | 12 + .../Exercise 6.5/My Project/MyResources.resx | 117 ++ .../Exercise 6.5/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 6.5/My Project/MySettings.vb | 38 + Code/Chapter 6/VB.NET/Exercise 6.5/app.config | 25 + .../VB.NET/Exercise 6.5/bin/BookDataSet.xsd | 23 + .../VB.NET/Exercise 6.5/bin/Books.xml | 10 + .../VB.NET/Exercise 6.5/bin/Exercise 6.5.exe | Bin 0 -> 24576 bytes .../Exercise 6.5/bin/Exercise 6.5.exe.config | 25 + .../VB.NET/Exercise 6.5/bin/Exercise 6.5.pdb | Bin 0 -> 38400 bytes .../Exercise 6.5/bin/Exercise 6.5.vshost.exe | Bin 0 -> 5120 bytes .../bin/Exercise 6.5.vshost.exe.config | 25 + .../VB.NET/Exercise 6.5/bin/Exercise 6.5.xml | 11 + .../Exercise 6.5/obj/Debug/Exercise 6.5.exe | Bin 0 -> 24576 bytes .../Exercise 6.5/obj/Debug/Exercise 6.5.pdb | Bin 0 -> 38400 bytes ...Exercise 6.5.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 6.5/obj/Debug/Exercise 6.5.xml | 11 + .../Debug/Exercise_6_5.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 6.5/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../obj/Exercise 6.5.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 6.6/Exercise 6.6.vbproj | 98 ++ .../Exercise 6.6/Exercise 6.6.vbproj.user | 7 + Code/Chapter 6/VB.NET/Exercise 6.6/Module1.vb | 31 + .../Exercise 6.6/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 6.6/My Project/MyApplication.vb | 12 + .../Exercise 6.6/My Project/MyResources.resx | 117 ++ .../Exercise 6.6/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 6.6/My Project/MySettings.vb | 38 + Code/Chapter 6/VB.NET/Exercise 6.6/app.config | 25 + .../VB.NET/Exercise 6.6/bin/BookDataSet.xsd | 47 + .../VB.NET/Exercise 6.6/bin/BookDataSet.xsx | 7 + .../VB.NET/Exercise 6.6/bin/Books.xml | 35 + .../VB.NET/Exercise 6.6/bin/Exercise 6.6.exe | Bin 0 -> 24576 bytes .../Exercise 6.6/bin/Exercise 6.6.exe.config | 25 + .../VB.NET/Exercise 6.6/bin/Exercise 6.6.pdb | Bin 0 -> 38400 bytes .../Exercise 6.6/bin/Exercise 6.6.vshost.exe | Bin 0 -> 5120 bytes .../bin/Exercise 6.6.vshost.exe.config | 25 + .../VB.NET/Exercise 6.6/bin/Exercise 6.6.xml | 11 + .../Exercise 6.6/obj/Debug/Exercise 6.6.exe | Bin 0 -> 24576 bytes .../Exercise 6.6/obj/Debug/Exercise 6.6.pdb | Bin 0 -> 38400 bytes ...Exercise 6.6.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 6.6/obj/Debug/Exercise 6.6.xml | 11 + .../Debug/Exercise_6_6.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 6.6/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../obj/Exercise 6.6.vbproj.FileList.txt | 10 + .../Exercise 6.7/BookDataSet.Designer.vb | 798 ++++++++++ .../VB.NET/Exercise 6.7/BookDataSet.xsc | 0 .../VB.NET/Exercise 6.7/BookDataSet.xsd | 47 + .../VB.NET/Exercise 6.7/BookDataSet.xss | 0 .../VB.NET/Exercise 6.7/BookDataSet.xsx | 7 + .../VB.NET/Exercise 6.7/Exercise 6.7.vbproj | 119 ++ .../Exercise 6.7/Exercise 6.7.vbproj.user | 7 + Code/Chapter 6/VB.NET/Exercise 6.7/Module1.vb | 29 + .../Exercise 6.7/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 6.7/My Project/MyApplication.vb | 12 + .../Exercise 6.7/My Project/MyResources.resx | 117 ++ .../Exercise 6.7/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 6.7/My Project/MySettings.vb | 38 + Code/Chapter 6/VB.NET/Exercise 6.7/app.config | 25 + .../VB.NET/Exercise 6.7/bin/Books.xml | 35 + .../VB.NET/Exercise 6.7/bin/Exercise 6.7.exe | Bin 0 -> 45056 bytes .../Exercise 6.7/bin/Exercise 6.7.exe.config | 25 + .../VB.NET/Exercise 6.7/bin/Exercise 6.7.pdb | Bin 0 -> 132608 bytes .../Exercise 6.7/bin/Exercise 6.7.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 6.7.vshost.exe.config | 25 + .../VB.NET/Exercise 6.7/bin/Exercise 6.7.xml | 11 + .../Exercise 6.7/obj/Debug/Exercise 6.7.exe | Bin 0 -> 45056 bytes .../Exercise 6.7/obj/Debug/Exercise 6.7.pdb | Bin 0 -> 132608 bytes ...Exercise 6.7.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 6.7/obj/Debug/Exercise 6.7.xml | 11 + .../Debug/Exercise_6_7.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 6.7/obj/Debug/ResGen.cache | Bin 0 -> 1417 bytes .../Debug/TempPE/BookDataSet.Designer.vb.dll | Bin 0 -> 23040 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 6.7.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 6.8/BookDataSet.vb | 1263 ++++++++++++++++ .../VB.NET/Exercise 6.8/BookDataSet.xsd | 35 + .../Chapter 6/VB.NET/Exercise 6.8/BuildDS.cmd | 1 + .../Exercise 6.9/BookDataSet.Designer.vb | 826 ++++++++++ .../VB.NET/Exercise 6.9/BookDataSet.xsc | 0 .../VB.NET/Exercise 6.9/BookDataSet.xsd | 49 + .../VB.NET/Exercise 6.9/BookDataSet.xss | 0 .../VB.NET/Exercise 6.9/BookDataSet.xsx | 7 + .../VB.NET/Exercise 6.9/Exercise 6.9.vbproj | 133 ++ .../Exercise 6.9/Exercise 6.9.vbproj.user | 7 + .../VB.NET/Exercise 6.9/Form1.Designer.vb | 83 + Code/Chapter 6/VB.NET/Exercise 6.9/Form1.resx | 123 ++ Code/Chapter 6/VB.NET/Exercise 6.9/Form1.vb | 22 + .../Exercise 6.9/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 6.9/My Project/MyApplication.vb | 30 + .../Exercise 6.9/My Project/MyEvents.vb | 13 + .../Exercise 6.9/My Project/MyResources.resx | 117 ++ .../Exercise 6.9/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 6.9/My Project/MySettings.vb | 38 + Code/Chapter 6/VB.NET/Exercise 6.9/app.config | 25 + .../VB.NET/Exercise 6.9/bin/Books.xml | 35 + .../VB.NET/Exercise 6.9/bin/Exercise 6.9.exe | Bin 0 -> 49152 bytes .../Exercise 6.9/bin/Exercise 6.9.exe.config | 25 + .../VB.NET/Exercise 6.9/bin/Exercise 6.9.pdb | Bin 0 -> 155136 bytes .../VB.NET/Exercise 6.9/bin/Exercise 6.9.xml | 11 + .../Exercise 6.9/obj/Debug/Exercise 6.9.exe | Bin 0 -> 49152 bytes .../Exercise 6.9/obj/Debug/Exercise 6.9.pdb | Bin 0 -> 155136 bytes ...Exercise 6.9.vbproj.GenerateResource.Cache | Bin 0 -> 844 bytes .../Exercise 6.9/obj/Debug/Exercise 6.9.xml | 11 + .../obj/Debug/Exercise_6_9.Form1.resources | Bin 0 -> 180 bytes .../Debug/Exercise_6_9.MyResources.resources | Bin 0 -> 180 bytes .../Debug/TempPE/BookDataSet.Designer.vb.dll | Bin 0 -> 36864 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6144 bytes .../obj/Exercise 6.9.vbproj.FileList.txt | 11 + Code/Chapter 7/C#/Chapter7.sln | 50 + Code/Chapter 7/C#/Chapter7.suo | Bin 0 -> 53158 bytes .../C#/Exercise 7.1/Exercise 7.1.csproj | 90 ++ .../C#/Exercise 7.1/Exercise 7.1.csproj.user | 5 + .../C#/Exercise 7.1/Form1.Designer.cs | 260 ++++ Code/Chapter 7/C#/Exercise 7.1/Form1.cs | 39 + Code/Chapter 7/C#/Exercise 7.1/Form1.resx | 224 +++ Code/Chapter 7/C#/Exercise 7.1/Program.cs | 19 + .../Exercise 7.1/Properties/AssemblyInfo.cs | 33 + .../Properties/Resources.Designer.cs | 67 + .../C#/Exercise 7.1/Properties/Resources.resx | 117 ++ .../Properties/Settings.Designer.cs | 37 + .../Exercise 7.1/Properties/Settings.settings | 16 + .../C#/Exercise 7.1/TestDataSet.Designer.cs | 753 ++++++++++ .../Chapter 7/C#/Exercise 7.1/TestDataSet.xsc | 1 + .../Chapter 7/C#/Exercise 7.1/TestDataSet.xsd | 117 ++ .../Chapter 7/C#/Exercise 7.1/TestDataSet.xss | 7 + Code/Chapter 7/C#/Exercise 7.1/app.config | 22 + .../Exercise 7.1/bin/Debug/Exercise 7.1.exe | Bin 0 -> 49152 bytes .../bin/Debug/Exercise 7.1.exe.config | 22 + .../Exercise 7.1/bin/Debug/Exercise 7.1.pdb | Bin 0 -> 67072 bytes .../bin/Debug/Exercise 7.1.vshost.exe | Bin 0 -> 5632 bytes .../bin/Debug/Exercise 7.1.vshost.exe.config | 22 + .../bin/Debug/WindowsApplication3.exe.config | 22 + .../bin/Debug/WindowsApplication3.vshost.exe | Bin 0 -> 5632 bytes .../WindowsApplication3.vshost.exe.config | 22 + ...Exercise 7.1.csproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../Exercise 7.1/obj/Debug/Exercise 7.1.exe | Bin 0 -> 49152 bytes .../Exercise 7.1/obj/Debug/Exercise 7.1.pdb | Bin 0 -> 67072 bytes .../obj/Debug/Exercise_7_1.Form1.resources | Bin 0 -> 5278 bytes ...xercise_7_1.Properties.Resources.resources | Bin 0 -> 180 bytes .../Properties.Resources.Designer.cs.dll | Bin 0 -> 4608 bytes .../Debug/TempPE/TestDataSet.Designer.cs.dll | Bin 0 -> 36864 bytes .../obj/Exercise 7.1.csproj.FileList.txt | 9 + .../WindowsApplication3.csproj.FileList.txt | 1 + .../C#/Exercise 7.2/Exercise 7.2.csproj | 64 + .../C#/Exercise 7.2/Exercise 7.2.csproj.user | 7 + .../C#/Exercise 7.2/Form1.Designer.cs | 81 + Code/Chapter 7/C#/Exercise 7.2/Form1.cs | 47 + Code/Chapter 7/C#/Exercise 7.2/Form1.resx | 117 ++ Code/Chapter 7/C#/Exercise 7.2/Program.cs | 23 + .../Exercise 7.2/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 7.2/Properties/Resources.cs | 70 + .../C#/Exercise 7.2/Properties/Resources.resx | 117 ++ .../C#/Exercise 7.2/Properties/Settings.cs | 42 + .../Exercise 7.2/Properties/Settings.settings | 7 + .../Exercise 7.2/bin/Debug/Exercise 7.2.exe | Bin 0 -> 20480 bytes .../Exercise 7.2/bin/Debug/Exercise 7.2.pdb | Bin 0 -> 34304 bytes .../bin/Debug/Exercise 7.2.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 7.2.csproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../Exercise 7.2/obj/Debug/Exercise 7.2.exe | Bin 0 -> 20480 bytes .../Exercise 7.2/obj/Debug/Exercise 7.2.pdb | Bin 0 -> 34304 bytes .../obj/Debug/Exercise_7_2.Form1.resources | Bin 0 -> 180 bytes ...xercise_7_2.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 7.2/obj/Debug/ResGen.cache | Bin 0 -> 1413 bytes .../obj/Exercise 7.2.csproj.FileList.txt | 8 + .../C#/Exercise 7.3/Exercise 7.3.csproj | 64 + .../C#/Exercise 7.3/Exercise 7.3.csproj.user | 7 + .../C#/Exercise 7.3/Form1.Designer.cs | 93 ++ Code/Chapter 7/C#/Exercise 7.3/Form1.cs | 76 + Code/Chapter 7/C#/Exercise 7.3/Form1.resx | 120 ++ Code/Chapter 7/C#/Exercise 7.3/Program.cs | 23 + .../Exercise 7.3/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 7.3/Properties/Resources.cs | 70 + .../C#/Exercise 7.3/Properties/Resources.resx | 117 ++ .../C#/Exercise 7.3/Properties/Settings.cs | 42 + .../Exercise 7.3/Properties/Settings.settings | 7 + .../Exercise 7.3/bin/Debug/Exercise 7.3.exe | Bin 0 -> 20480 bytes .../Exercise 7.3/bin/Debug/Exercise 7.3.pdb | Bin 0 -> 34304 bytes .../bin/Debug/Exercise 7.3.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 7.3.csproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../Exercise 7.3/obj/Debug/Exercise 7.3.exe | Bin 0 -> 20480 bytes .../Exercise 7.3/obj/Debug/Exercise 7.3.pdb | Bin 0 -> 34304 bytes .../obj/Debug/Exercise_7_3.Form1.resources | Bin 0 -> 180 bytes ...xercise_7_3.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 7.3/obj/Debug/ResGen.cache | Bin 0 -> 1471 bytes .../obj/Exercise 7.3.csproj.FileList.txt | 8 + .../C#/Exercise 7.4/Exercise 7.4.csproj | 64 + .../C#/Exercise 7.4/Exercise 7.4.csproj.user | 7 + .../C#/Exercise 7.4/Form1.Designer.cs | 84 ++ Code/Chapter 7/C#/Exercise 7.4/Form1.cs | 62 + Code/Chapter 7/C#/Exercise 7.4/Form1.resx | 117 ++ Code/Chapter 7/C#/Exercise 7.4/Program.cs | 23 + .../Exercise 7.4/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 7.4/Properties/Resources.cs | 70 + .../C#/Exercise 7.4/Properties/Resources.resx | 117 ++ .../C#/Exercise 7.4/Properties/Settings.cs | 42 + .../Exercise 7.4/Properties/Settings.settings | 7 + .../Exercise 7.4/bin/Debug/Exercise 7.4.exe | Bin 0 -> 20480 bytes .../Exercise 7.4/bin/Debug/Exercise 7.4.pdb | Bin 0 -> 34304 bytes .../bin/Debug/Exercise 7.4.vshost.exe | Bin 0 -> 5632 bytes .../C#/Exercise 7.4/bin/Debug/myData.Xml | 54 + ...Exercise 7.4.csproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../Exercise 7.4/obj/Debug/Exercise 7.4.exe | Bin 0 -> 20480 bytes .../Exercise 7.4/obj/Debug/Exercise 7.4.pdb | Bin 0 -> 34304 bytes .../obj/Debug/Exercise_7_4.Form1.resources | Bin 0 -> 180 bytes ...xercise_7_4.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 7.4/obj/Debug/ResGen.cache | Bin 0 -> 1413 bytes .../obj/Exercise 7.4.csproj.FileList.txt | 8 + Code/Chapter 7/C#/Exercise 7.5/DB.MDB | Bin 0 -> 139264 bytes .../C#/Exercise 7.5/Exercise 7.5.csproj | 53 + .../C#/Exercise 7.5/Exercise 7.5.csproj.user | 7 + Code/Chapter 7/C#/Exercise 7.5/Program.cs | 41 + .../Exercise 7.5/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 7.5/Properties/Resources.cs | 70 + .../C#/Exercise 7.5/Properties/Resources.resx | 117 ++ .../C#/Exercise 7.5/Properties/Settings.cs | 42 + .../Exercise 7.5/Properties/Settings.settings | 7 + .../Exercise 7.5/bin/Debug/Exercise 7.5.exe | Bin 0 -> 20480 bytes .../Exercise 7.5/bin/Debug/Exercise 7.5.pdb | Bin 0 -> 28160 bytes .../bin/Debug/Exercise 7.5.vshost.exe | Bin 0 -> 5120 bytes ...Exercise 7.5.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 7.5/obj/Debug/Exercise 7.5.exe | Bin 0 -> 20480 bytes .../Exercise 7.5/obj/Debug/Exercise 7.5.pdb | Bin 0 -> 28160 bytes ...xercise_7_5.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 7.5/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Exercise 7.5.csproj.FileList.txt | 7 + .../C#/Exercise 7.6/Exercise 7.6.csproj | 53 + .../C#/Exercise 7.6/Exercise 7.6.csproj.user | 7 + Code/Chapter 7/C#/Exercise 7.6/Program.cs | 60 + .../Exercise 7.6/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 7.6/Properties/Resources.cs | 70 + .../C#/Exercise 7.6/Properties/Resources.resx | 117 ++ .../C#/Exercise 7.6/Properties/Settings.cs | 42 + .../Exercise 7.6/Properties/Settings.settings | 7 + .../Exercise 7.6/bin/Debug/Exercise 7.6.exe | Bin 0 -> 20480 bytes .../Exercise 7.6/bin/Debug/Exercise 7.6.pdb | Bin 0 -> 26112 bytes ...Exercise 7.6.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 7.6/obj/Debug/Exercise 7.6.exe | Bin 0 -> 20480 bytes .../Exercise 7.6/obj/Debug/Exercise 7.6.pdb | Bin 0 -> 26112 bytes ...xercise_7_6.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 7.6/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Exercise 7.6.csproj.FileList.txt | 7 + Code/Chapter 7/SQL/CreateDatabase.Sql | 47 + Code/Chapter 7/VB.NET/Chapter 7.sln | 50 + Code/Chapter 7/VB.NET/Chapter 7.suo | Bin 0 -> 61952 bytes .../VB.NET/Exercise 7.1/Exercise 7.1.vbproj | 118 ++ .../Exercise 7.1/Exercise 7.1.vbproj.user | 6 + .../VB.NET/Exercise 7.1/Form1.Designer.vb | 234 +++ Code/Chapter 7/VB.NET/Exercise 7.1/Form1.resx | 224 +++ Code/Chapter 7/VB.NET/Exercise 7.1/Form1.vb | 18 + .../My Project/Application.Designer.vb | 38 + .../Exercise 7.1/My Project/Application.myapp | 11 + .../My Project/ApplicationEvents.vb | 15 + .../Exercise 7.1/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 7.1/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 76 + .../Exercise 7.1/My Project/Settings.settings | 16 + .../Exercise 7.1/TestDataSet.Designer.vb | 750 +++++++++ .../VB.NET/Exercise 7.1/TestDataSet.vb | 4 + .../VB.NET/Exercise 7.1/TestDataSet.xsc | 1 + .../VB.NET/Exercise 7.1/TestDataSet.xsd | 117 ++ .../VB.NET/Exercise 7.1/TestDataSet.xss | 7 + Code/Chapter 7/VB.NET/Exercise 7.1/app.config | 47 + .../Exercise 7.1/bin/Debug/Exercise 7.1.exe | Bin 0 -> 65536 bytes .../bin/Debug/Exercise 7.1.exe.config | 47 + .../Exercise 7.1/bin/Debug/Exercise 7.1.pdb | Bin 0 -> 148992 bytes .../bin/Debug/Exercise 7.1.vshost.exe | Bin 0 -> 5632 bytes .../bin/Debug/Exercise 7.1.vshost.exe.config | 47 + .../Exercise 7.1/bin/Debug/Exercise_7.1.xml | 24 + .../Exercise 7.1/obj/Debug/Exercise 7.1.exe | Bin 0 -> 65536 bytes .../Exercise 7.1/obj/Debug/Exercise 7.1.pdb | Bin 0 -> 148992 bytes ...Exercise 7.1.vbproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../Exercise 7.1/obj/Debug/Exercise_7.1.xml | 24 + .../obj/Debug/Exercise_7_1.Form1.resources | Bin 0 -> 5278 bytes .../Debug/Exercise_7_1.Resources.resources | Bin 0 -> 180 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 7680 bytes .../Debug/TempPE/TestDataSet.Designer.vb.dll | Bin 0 -> 36864 bytes .../obj/Exercise 7.1.vbproj.FileList.txt | 11 + .../VB.NET/Exercise 7.2/Exercise 7.2.vbproj | 111 ++ .../Exercise 7.2/Exercise 7.2.vbproj.user | 7 + .../VB.NET/Exercise 7.2/Form1.Designer.vb | 75 + Code/Chapter 7/VB.NET/Exercise 7.2/Form1.resx | 117 ++ Code/Chapter 7/VB.NET/Exercise 7.2/Form1.vb | 22 + .../Exercise 7.2/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 7.2/My Project/MyApplication.vb | 28 + .../Exercise 7.2/My Project/MyEvents.vb | 13 + .../Exercise 7.2/My Project/MyResources.resx | 117 ++ .../Exercise 7.2/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 7.2/My Project/MySettings.vb | 38 + Code/Chapter 7/VB.NET/Exercise 7.2/app.config | 25 + .../VB.NET/Exercise 7.2/bin/Exercise 7.2.exe | Bin 0 -> 28672 bytes .../Exercise 7.2/bin/Exercise 7.2.exe.config | 25 + .../VB.NET/Exercise 7.2/bin/Exercise 7.2.pdb | Bin 0 -> 54784 bytes .../Exercise 7.2/bin/Exercise 7.2.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 7.2.vshost.exe.config | 25 + .../VB.NET/Exercise 7.2/bin/Exercise 7.2.xml | 11 + .../Exercise 7.2/obj/Debug/Exercise 7.2.exe | Bin 0 -> 28672 bytes .../Exercise 7.2/obj/Debug/Exercise 7.2.pdb | Bin 0 -> 54784 bytes ...Exercise 7.2.vbproj.GenerateResource.Cache | Bin 0 -> 844 bytes .../Exercise 7.2/obj/Debug/Exercise 7.2.xml | 11 + .../obj/Debug/Exercise_7_2.Form1.resources | Bin 0 -> 180 bytes .../Debug/Exercise_7_2.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 7.2/obj/Debug/ResGen.cache | Bin 0 -> 1480 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6144 bytes .../obj/Exercise 7.2.vbproj.FileList.txt | 11 + .../VB.NET/Exercise 7.3/Exercise 7.3.vbproj | 111 ++ .../Exercise 7.3/Exercise 7.3.vbproj.user | 7 + .../VB.NET/Exercise 7.3/Form1.Designer.vb | 86 ++ Code/Chapter 7/VB.NET/Exercise 7.3/Form1.resx | 120 ++ Code/Chapter 7/VB.NET/Exercise 7.3/Form1.vb | 52 + .../Exercise 7.3/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 7.3/My Project/MyApplication.vb | 29 + .../Exercise 7.3/My Project/MyEvents.vb | 13 + .../Exercise 7.3/My Project/MyResources.resx | 117 ++ .../Exercise 7.3/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 7.3/My Project/MySettings.vb | 38 + Code/Chapter 7/VB.NET/Exercise 7.3/app.config | 25 + .../VB.NET/Exercise 7.3/bin/Exercise 7.3.exe | Bin 0 -> 32768 bytes .../Exercise 7.3/bin/Exercise 7.3.exe.config | 25 + .../VB.NET/Exercise 7.3/bin/Exercise 7.3.pdb | Bin 0 -> 56832 bytes .../Exercise 7.3/bin/Exercise 7.3.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 7.3.vshost.exe.config | 25 + .../VB.NET/Exercise 7.3/bin/Exercise 7.3.xml | 11 + .../Exercise 7.3/obj/Debug/Exercise 7.3.exe | Bin 0 -> 32768 bytes .../Exercise 7.3/obj/Debug/Exercise 7.3.pdb | Bin 0 -> 56832 bytes ...Exercise 7.3.vbproj.GenerateResource.Cache | Bin 0 -> 844 bytes .../Exercise 7.3/obj/Debug/Exercise 7.3.xml | 11 + .../obj/Debug/Exercise_7_3.Form1.resources | Bin 0 -> 180 bytes .../Debug/Exercise_7_3.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 7.3/obj/Debug/ResGen.cache | Bin 0 -> 1480 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 7.3.vbproj.FileList.txt | 11 + .../VB.NET/Exercise 7.4/Exercise 7.4.vbproj | 111 ++ .../Exercise 7.4/Exercise 7.4.vbproj.user | 7 + .../VB.NET/Exercise 7.4/Form1.Designer.vb | 78 + Code/Chapter 7/VB.NET/Exercise 7.4/Form1.resx | 117 ++ Code/Chapter 7/VB.NET/Exercise 7.4/Form1.vb | 38 + .../Exercise 7.4/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 7.4/My Project/MyApplication.vb | 28 + .../Exercise 7.4/My Project/MyEvents.vb | 13 + .../Exercise 7.4/My Project/MyResources.resx | 117 ++ .../Exercise 7.4/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 7.4/My Project/MySettings.vb | 38 + Code/Chapter 7/VB.NET/Exercise 7.4/app.config | 25 + .../VB.NET/Exercise 7.4/bin/Exercise 7.4.exe | Bin 0 -> 32768 bytes .../Exercise 7.4/bin/Exercise 7.4.exe.config | 25 + .../VB.NET/Exercise 7.4/bin/Exercise 7.4.pdb | Bin 0 -> 56832 bytes .../Exercise 7.4/bin/Exercise 7.4.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 7.4.vshost.exe.config | 25 + .../VB.NET/Exercise 7.4/bin/Exercise 7.4.xml | 11 + .../VB.NET/Exercise 7.4/bin/myData.Xml | 54 + .../Exercise 7.4/obj/Debug/Exercise 7.4.exe | Bin 0 -> 32768 bytes .../Exercise 7.4/obj/Debug/Exercise 7.4.pdb | Bin 0 -> 56832 bytes ...Exercise 7.4.vbproj.GenerateResource.Cache | Bin 0 -> 844 bytes .../Exercise 7.4/obj/Debug/Exercise 7.4.xml | 11 + .../obj/Debug/Exercise_7_4.Form1.resources | Bin 0 -> 180 bytes .../Debug/Exercise_7_4.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 7.4/obj/Debug/ResGen.cache | Bin 0 -> 1422 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 7.4.vbproj.FileList.txt | 11 + Code/Chapter 7/VB.NET/Exercise 7.5/DB.MDB | Bin 0 -> 139264 bytes .../VB.NET/Exercise 7.5/Exercise 7.5.vbproj | 98 ++ .../Exercise 7.5/Exercise 7.5.vbproj.user | 7 + .../VB.NET/Exercise 7.5/Exercise 7.suo | Bin 0 -> 2560 bytes Code/Chapter 7/VB.NET/Exercise 7.5/Module1.vb | 32 + .../Exercise 7.5/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 7.5/My Project/MyApplication.vb | 12 + .../Exercise 7.5/My Project/MyResources.resx | 117 ++ .../Exercise 7.5/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 7.5/My Project/MySettings.vb | 38 + Code/Chapter 7/VB.NET/Exercise 7.5/app.config | 25 + .../VB.NET/Exercise 7.5/bin/Exercise 7.5.exe | Bin 0 -> 24576 bytes .../Exercise 7.5/bin/Exercise 7.5.exe.config | 25 + .../VB.NET/Exercise 7.5/bin/Exercise 7.5.pdb | Bin 0 -> 38400 bytes .../Exercise 7.5/bin/Exercise 7.5.vshost.exe | Bin 0 -> 5120 bytes .../bin/Exercise 7.5.vshost.exe.config | 25 + .../VB.NET/Exercise 7.5/bin/Exercise 7.5.xml | 11 + .../Exercise 7.5/obj/Debug/Exercise 7.5.exe | Bin 0 -> 24576 bytes .../Exercise 7.5/obj/Debug/Exercise 7.5.pdb | Bin 0 -> 38400 bytes ...Exercise 7.5.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 7.5/obj/Debug/Exercise 7.5.xml | 11 + .../Debug/Exercise_7_5.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 7.5/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../obj/Exercise 7.5.vbproj.FileList.txt | 10 + Code/Chapter 7/VB.NET/Exercise 7.6/DB.MDB | Bin 0 -> 139264 bytes .../VB.NET/Exercise 7.6/Exercise 7.6.vbproj | 98 ++ .../Exercise 7.6/Exercise 7.6.vbproj.user | 7 + Code/Chapter 7/VB.NET/Exercise 7.6/Module1.vb | 53 + .../Exercise 7.6/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 7.6/My Project/MyApplication.vb | 12 + .../Exercise 7.6/My Project/MyResources.resx | 117 ++ .../Exercise 7.6/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 7.6/My Project/MySettings.vb | 38 + Code/Chapter 7/VB.NET/Exercise 7.6/app.config | 25 + .../VB.NET/Exercise 7.6/bin/Exercise 7.6.exe | Bin 0 -> 24576 bytes .../Exercise 7.6/bin/Exercise 7.6.exe.config | 25 + .../VB.NET/Exercise 7.6/bin/Exercise 7.6.pdb | Bin 0 -> 38400 bytes .../Exercise 7.6/bin/Exercise 7.6.vshost.exe | Bin 0 -> 5120 bytes .../bin/Exercise 7.6.vshost.exe.config | 25 + .../VB.NET/Exercise 7.6/bin/Exercise 7.6.xml | 11 + .../Exercise 7.6/obj/Debug/Exercise 7.6.exe | Bin 0 -> 24576 bytes .../Exercise 7.6/obj/Debug/Exercise 7.6.pdb | Bin 0 -> 38400 bytes ...Exercise 7.6.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 7.6/obj/Debug/Exercise 7.6.xml | 11 + .../Debug/Exercise_7_6.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 7.6/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 7.6.vbproj.FileList.txt | 10 + Code/Chapter 8/C#/Chapter 8.sln | 80 + Code/Chapter 8/C#/Chapter 8.suo | Bin 0 -> 76704 bytes .../C#/CreateDataSet/CreateDataSet.csproj | 72 + .../CreateDataSet/CreateDataSet.csproj.user | 7 + .../C#/CreateDataSet/CustProd.Designer.cs | 1232 +++++++++++++++ Code/Chapter 8/C#/CreateDataSet/CustProd.xsc | 5 + Code/Chapter 8/C#/CreateDataSet/CustProd.xsd | 77 + Code/Chapter 8/C#/CreateDataSet/CustProd.xss | 38 + .../C#/CreateDataSet/DataSetFiller.cs | 28 + .../CreateDataSet/Properties/AssemblyInfo.cs | 29 + .../C#/CreateDataSet/Properties/Resources.cs | 70 + .../CreateDataSet/Properties/Resources.resx | 117 ++ .../C#/CreateDataSet/Properties/Settings.cs | 42 + .../Properties/Settings.settings | 7 + .../CreateDataSet/bin/Debug/CreateDataSet.dll | Bin 0 -> 40960 bytes .../CreateDataSet/bin/Debug/CreateDataSet.pdb | Bin 0 -> 87552 bytes .../obj/CreateDataSet.csproj.FileList.txt | 7 + ...eateDataSet.Properties.Resources.resources | Bin 0 -> 180 bytes ...reateDataSet.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../CreateDataSet/obj/Debug/CreateDataSet.dll | Bin 0 -> 40960 bytes .../CreateDataSet/obj/Debug/CreateDataSet.pdb | Bin 0 -> 87552 bytes .../obj/Debug/CreateDataSet.refactor.dll | Bin 0 -> 32768 bytes .../C#/CreateDataSet/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../obj/Debug/TempPE/CustProd.Designer.cs.dll | Bin 0 -> 40960 bytes Code/Chapter 8/C#/EditData/EditData.csproj | 68 + .../C#/EditData/EditData.csproj.user | 7 + Code/Chapter 8/C#/EditData/Form1.Designer.cs | 224 +++ Code/Chapter 8/C#/EditData/Form1.cs | 63 + Code/Chapter 8/C#/EditData/Program.cs | 23 + .../C#/EditData/Properties/AssemblyInfo.cs | 29 + .../C#/EditData/Properties/Resources.cs | 70 + .../C#/EditData/Properties/Resources.resx | 117 ++ .../C#/EditData/Properties/Settings.cs | 42 + .../C#/EditData/Properties/Settings.settings | 7 + .../C#/EditData/bin/Debug/EditData.exe | Bin 0 -> 24576 bytes .../C#/EditData/bin/Debug/EditData.pdb | Bin 0 -> 30208 bytes .../C#/EditData/bin/Debug/EditData.vshost.exe | Bin 0 -> 5632 bytes .../EditData.Properties.Resources.resources | Bin 0 -> 180 bytes .../EditData.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/EditData/obj/Debug/EditData.exe | Bin 0 -> 24576 bytes .../C#/EditData/obj/Debug/EditData.pdb | Bin 0 -> 30208 bytes .../C#/EditData/obj/Debug/ResGen.cache | Bin 0 -> 1535 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 0 -> 4491 bytes .../EditData/obj/EditData.csproj.FileList.txt | 9 + .../C#/Example 8.4/Exercise 8.4.csproj | 62 + .../C#/Example 8.4/Exercise 8.4.csproj.user | 7 + Code/Chapter 8/C#/Example 8.4/Program.cs | 42 + .../C#/Example 8.4/Properties/AssemblyInfo.cs | 29 + .../C#/Example 8.4/Properties/Resources.cs | 61 + .../C#/Example 8.4/Properties/Resources.resx | 117 ++ .../C#/Example 8.4/Properties/Settings.cs | 38 + .../Example 8.4/Properties/Settings.settings | 7 + Code/Chapter 8/C#/Example 8.4/app.config | 3 + .../C#/Example 8.4/bin/Debug/Exercise 8.4.exe | Bin 0 -> 20480 bytes .../bin/Debug/Exercise 8.4.exe.config | 3 + .../C#/Example 8.4/bin/Debug/Exercise 8.4.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Exercise 8.4.vshost.exe | Bin 0 -> 5632 bytes .../bin/Debug/Exercise 8.4.vshost.exe.config | 3 + ...Exercise 8.4.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../C#/Example 8.4/obj/Debug/Exercise 8.4.exe | Bin 0 -> 20480 bytes .../C#/Example 8.4/obj/Debug/Exercise 8.4.pdb | Bin 0 -> 22016 bytes ...xercise_8_4.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Example 8.4/obj/Debug/ResGen.cache | Bin 0 -> 1333 bytes .../Debug/TempPE/Properties.Resources.cs.dll | Bin 0 -> 3584 bytes .../obj/Exercise 8.4.csproj.FileList.txt | 10 + .../C#/Exercise 8.1/Exercise 8.1.csproj | 60 + .../C#/Exercise 8.1/Exercise 8.1.csproj.user | 7 + Code/Chapter 8/C#/Exercise 8.1/Program.cs | 48 + .../Exercise 8.1/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 8.1/Properties/Resources.cs | 70 + .../C#/Exercise 8.1/Properties/Resources.resx | 117 ++ .../C#/Exercise 8.1/Properties/Settings.cs | 42 + .../Exercise 8.1/Properties/Settings.settings | 7 + .../Exercise 8.1/bin/Debug/Exercise 8.1.exe | Bin 0 -> 20480 bytes .../Exercise 8.1/bin/Debug/Exercise 8.1.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Exercise 8.1.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 8.1.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 8.1/obj/Debug/Exercise 8.1.exe | Bin 0 -> 20480 bytes .../Exercise 8.1/obj/Debug/Exercise 8.1.pdb | Bin 0 -> 22016 bytes ...xercise_8_1.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 8.1/obj/Debug/ResGen.cache | Bin 0 -> 1333 bytes .../obj/Exercise 8.1.csproj.FileList.txt | 9 + .../C#/Exercise 8.2/Exercise 8.2.csproj | 60 + .../C#/Exercise 8.2/Exercise 8.2.csproj.user | 7 + Code/Chapter 8/C#/Exercise 8.2/Program.cs | 38 + .../Exercise 8.2/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 8.2/Properties/Resources.cs | 70 + .../C#/Exercise 8.2/Properties/Resources.resx | 117 ++ .../C#/Exercise 8.2/Properties/Settings.cs | 42 + .../Exercise 8.2/Properties/Settings.settings | 7 + .../Exercise 8.2/bin/Debug/Exercise 8.2.exe | Bin 0 -> 16384 bytes .../Exercise 8.2/bin/Debug/Exercise 8.2.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Exercise 8.2.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 8.2.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 8.2/obj/Debug/Exercise 8.2.exe | Bin 0 -> 16384 bytes .../Exercise 8.2/obj/Debug/Exercise 8.2.pdb | Bin 0 -> 22016 bytes ...xercise_8_2.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 8.2/obj/Debug/ResGen.cache | Bin 0 -> 1333 bytes .../obj/Exercise 8.2.csproj.FileList.txt | 9 + .../C#/Exercise 8.3/Exercise 8.3.csproj | 60 + .../C#/Exercise 8.3/Exercise 8.3.csproj.user | 7 + Code/Chapter 8/C#/Exercise 8.3/Program.cs | 38 + .../Exercise 8.3/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 8.3/Properties/Resources.cs | 70 + .../C#/Exercise 8.3/Properties/Resources.resx | 117 ++ .../C#/Exercise 8.3/Properties/Settings.cs | 42 + .../Exercise 8.3/Properties/Settings.settings | 7 + .../Exercise 8.3/bin/Debug/Exercise 8.3.exe | Bin 0 -> 16384 bytes .../Exercise 8.3/bin/Debug/Exercise 8.3.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Exercise 8.3.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 8.3.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 8.3/obj/Debug/Exercise 8.3.exe | Bin 0 -> 16384 bytes .../Exercise 8.3/obj/Debug/Exercise 8.3.pdb | Bin 0 -> 22016 bytes ...xercise_8_3.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 8.3/obj/Debug/ResGen.cache | Bin 0 -> 1333 bytes .../obj/Exercise 8.3.csproj.FileList.txt | 9 + .../C#/Exercise 8.5/Exercise 8.5.csproj | 68 + .../C#/Exercise 8.5/Exercise 8.5.csproj.user | 7 + .../C#/Exercise 8.5/Form1.Designer.cs | 77 + Code/Chapter 8/C#/Exercise 8.5/Form1.cs | 34 + Code/Chapter 8/C#/Exercise 8.5/Program.cs | 23 + .../Exercise 8.5/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 8.5/Properties/Resources.cs | 70 + .../C#/Exercise 8.5/Properties/Resources.resx | 117 ++ .../C#/Exercise 8.5/Properties/Settings.cs | 42 + .../Exercise 8.5/Properties/Settings.settings | 7 + .../Exercise 8.5/bin/Debug/Exercise 8.5.exe | Bin 0 -> 20480 bytes .../Exercise 8.5/bin/Debug/Exercise 8.5.pdb | Bin 0 -> 28160 bytes .../bin/Debug/Exercise 8.5.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 8.5.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 8.5/obj/Debug/Exercise 8.5.exe | Bin 0 -> 20480 bytes .../Exercise 8.5/obj/Debug/Exercise 8.5.pdb | Bin 0 -> 28160 bytes ...xercise_8_5.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 8.5/obj/Debug/ResGen.cache | Bin 0 -> 1535 bytes .../obj/Exercise 8.5.csproj.FileList.txt | 9 + .../C#/Exercise 8.6/Exercise 8.6.csproj | 68 + .../C#/Exercise 8.6/Exercise 8.6.csproj.user | 7 + .../C#/Exercise 8.6/Form1.Designer.cs | 83 + Code/Chapter 8/C#/Exercise 8.6/Form1.cs | 41 + Code/Chapter 8/C#/Exercise 8.6/Program.cs | 23 + .../Exercise 8.6/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 8.6/Properties/Resources.cs | 70 + .../C#/Exercise 8.6/Properties/Resources.resx | 117 ++ .../C#/Exercise 8.6/Properties/Settings.cs | 42 + .../Exercise 8.6/Properties/Settings.settings | 7 + .../Exercise 8.6/bin/Debug/Exercise 8.6.exe | Bin 0 -> 20480 bytes .../Exercise 8.6/bin/Debug/Exercise 8.6.pdb | Bin 0 -> 28160 bytes .../bin/Debug/Exercise 8.6.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 8.6.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 8.6/obj/Debug/Exercise 8.6.exe | Bin 0 -> 20480 bytes .../Exercise 8.6/obj/Debug/Exercise 8.6.pdb | Bin 0 -> 28160 bytes ...xercise_8_6.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 8.6/obj/Debug/ResGen.cache | Bin 0 -> 1535 bytes .../obj/Exercise 8.6.csproj.FileList.txt | 9 + .../C#/Exercise 8.7/Exercise 8.7.csproj | 68 + .../C#/Exercise 8.7/Exercise 8.7.csproj.user | 7 + .../C#/Exercise 8.7/Form1.Designer.cs | 105 ++ Code/Chapter 8/C#/Exercise 8.7/Form1.cs | 61 + Code/Chapter 8/C#/Exercise 8.7/Program.cs | 23 + .../Exercise 8.7/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 8.7/Properties/Resources.cs | 70 + .../C#/Exercise 8.7/Properties/Resources.resx | 117 ++ .../C#/Exercise 8.7/Properties/Settings.cs | 42 + .../Exercise 8.7/Properties/Settings.settings | 7 + .../Exercise 8.7/bin/Debug/Exercise 8.7.exe | Bin 0 -> 20480 bytes .../Exercise 8.7/bin/Debug/Exercise 8.7.pdb | Bin 0 -> 30208 bytes .../bin/Debug/Exercise 8.7.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 8.7.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 8.7/obj/Debug/Exercise 8.7.exe | Bin 0 -> 20480 bytes .../Exercise 8.7/obj/Debug/Exercise 8.7.pdb | Bin 0 -> 30208 bytes ...xercise_8_7.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 8.7/obj/Debug/ResGen.cache | Bin 0 -> 1535 bytes .../obj/Exercise 8.7.csproj.FileList.txt | 9 + .../C#/Exercise 8.8/Exercise 8.8.csproj | 68 + .../C#/Exercise 8.8/Exercise 8.8.csproj.user | 7 + .../C#/Exercise 8.8/Form1.Designer.cs | 122 ++ Code/Chapter 8/C#/Exercise 8.8/Form1.cs | 50 + Code/Chapter 8/C#/Exercise 8.8/Program.cs | 23 + .../Exercise 8.8/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 8.8/Properties/Resources.cs | 70 + .../C#/Exercise 8.8/Properties/Resources.resx | 117 ++ .../C#/Exercise 8.8/Properties/Settings.cs | 42 + .../Exercise 8.8/Properties/Settings.settings | 7 + .../Exercise 8.8/bin/Debug/Exercise 8.8.exe | Bin 0 -> 20480 bytes .../Exercise 8.8/bin/Debug/Exercise 8.8.pdb | Bin 0 -> 30208 bytes .../bin/Debug/Exercise 8.8.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 8.8.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 8.8/obj/Debug/Exercise 8.8.exe | Bin 0 -> 20480 bytes .../Exercise 8.8/obj/Debug/Exercise 8.8.pdb | Bin 0 -> 30208 bytes ...xercise_8_8.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 8.8/obj/Debug/ResGen.cache | Bin 0 -> 1535 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 0 -> 4491 bytes .../obj/Exercise 8.8.csproj.FileList.txt | 9 + .../C#/Exercise 8.9/Exercise 8.9.csproj | 68 + .../C#/Exercise 8.9/Exercise 8.9.csproj.user | 7 + .../C#/Exercise 8.9/Form1.Designer.cs | 69 + Code/Chapter 8/C#/Exercise 8.9/Form1.cs | 42 + Code/Chapter 8/C#/Exercise 8.9/Program.cs | 23 + .../Exercise 8.9/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 8.9/Properties/Resources.cs | 70 + .../C#/Exercise 8.9/Properties/Resources.resx | 117 ++ .../C#/Exercise 8.9/Properties/Settings.cs | 42 + .../Exercise 8.9/Properties/Settings.settings | 7 + .../bin/Debug/Exercise 8.9.EXE_xdd.xml | 91 ++ .../Exercise 8.9/bin/Debug/Exercise 8.9.exe | Bin 0 -> 20480 bytes .../bin/Debug/Exercise 8.9.exe\303\235.xml" | 91 ++ .../Exercise 8.9/bin/Debug/Exercise 8.9.pdb | Bin 0 -> 28160 bytes .../bin/Debug/Exercise 8.9.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 8.9.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 8.9/obj/Debug/Exercise 8.9.exe | Bin 0 -> 20480 bytes .../Exercise 8.9/obj/Debug/Exercise 8.9.pdb | Bin 0 -> 28160 bytes ...xercise_8_9.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 8.9/obj/Debug/ResGen.cache | Bin 0 -> 1535 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 0 -> 7568 bytes .../obj/Exercise 8.9.csproj.FileList.txt | 9 + Code/Chapter 8/Data.xml | 92 ++ Code/Chapter 8/VB.NET/Chapter 8.sln | 80 + Code/Chapter 8/VB.NET/Chapter 8.suo | Bin 0 -> 88064 bytes .../VB.NET/CreateDataSet/CreateDataSet.vbproj | 115 ++ .../CreateDataSet/CreateDataSet.vbproj.user | 7 + .../VB.NET/CreateDataSet/CustProd.Designer.vb | 1221 +++++++++++++++ .../VB.NET/CreateDataSet/CustProd.xsc | 0 .../VB.NET/CreateDataSet/CustProd.xsd | 77 + .../VB.NET/CreateDataSet/CustProd.xss | 0 .../VB.NET/CreateDataSet/DataSetFiller.vb | 16 + .../CreateDataSet/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../CreateDataSet/My Project/MyApplication.vb | 12 + .../CreateDataSet/My Project/MyResources.resx | 117 ++ .../CreateDataSet/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../CreateDataSet/My Project/MySettings.vb | 38 + .../CreateDataSet/bin/CreateDataSet.dll | Bin 0 -> 53248 bytes .../CreateDataSet/bin/CreateDataSet.pdb | Bin 0 -> 183808 bytes .../CreateDataSet/bin/CreateDataSet.xml | 11 + .../obj/CreateDataSet.vbproj.FileList.txt | 9 + .../Debug/CreateDataSet.MyResources.resources | Bin 0 -> 180 bytes .../CreateDataSet/obj/Debug/CreateDataSet.dll | Bin 0 -> 53248 bytes .../CreateDataSet/obj/Debug/CreateDataSet.pdb | Bin 0 -> 183808 bytes ...reateDataSet.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../CreateDataSet/obj/Debug/CreateDataSet.xml | 11 + .../CreateDataSet/obj/Debug/ResGen.cache | Bin 0 -> 1316 bytes .../obj/Debug/TempPE/CustProd.Designer.vb.dll | Bin 0 -> 45056 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6656 bytes .../Chapter 8/VB.NET/EditData/EditData.vbproj | 115 ++ .../VB.NET/EditData/EditData.vbproj.user | 7 + .../VB.NET/EditData/Form1.Designer.vb | 212 +++ Code/Chapter 8/VB.NET/EditData/Form1.vb | 40 + .../EditData/My Project/AssemblyInfo.vb | 35 + .../EditData/My Project/MyApplication.myapp | 10 + .../EditData/My Project/MyApplication.vb | 28 + .../VB.NET/EditData/My Project/MyEvents.vb | 13 + .../EditData/My Project/MyResources.resx | 117 ++ .../VB.NET/EditData/My Project/MyResources.vb | 62 + .../EditData/My Project/MySettings.settings | 7 + .../VB.NET/EditData/My Project/MySettings.vb | 38 + Code/Chapter 8/VB.NET/EditData/app.config | 25 + .../VB.NET/EditData/bin/EditData.exe | Bin 0 -> 36864 bytes .../VB.NET/EditData/bin/EditData.exe.config | 25 + .../VB.NET/EditData/bin/EditData.pdb | Bin 0 -> 58880 bytes .../VB.NET/EditData/bin/EditData.vshost.exe | Bin 0 -> 5632 bytes .../EditData/bin/EditData.vshost.exe.config | 25 + .../VB.NET/EditData/bin/EditData.xml | 11 + .../obj/Debug/EditData.MyResources.resources | Bin 0 -> 180 bytes .../VB.NET/EditData/obj/Debug/EditData.exe | Bin 0 -> 36864 bytes .../VB.NET/EditData/obj/Debug/EditData.pdb | Bin 0 -> 58880 bytes .../EditData.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../VB.NET/EditData/obj/Debug/EditData.xml | 11 + .../VB.NET/EditData/obj/Debug/ResGen.cache | Bin 0 -> 1542 bytes .../EditData/obj/EditData.vbproj.FileList.txt | 13 + .../VB.NET/Exercise 8.1/Exercise 8.1.vbproj | 105 ++ .../Exercise 8.1/Exercise 8.1.vbproj.user | 7 + Code/Chapter 8/VB.NET/Exercise 8.1/Module1.vb | 33 + .../Exercise 8.1/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 8.1/My Project/MyApplication.vb | 12 + .../Exercise 8.1/My Project/MyResources.resx | 117 ++ .../Exercise 8.1/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 8.1/My Project/MySettings.vb | 38 + Code/Chapter 8/VB.NET/Exercise 8.1/app.config | 25 + .../VB.NET/Exercise 8.1/bin/Exercise 8.1.exe | Bin 0 -> 24576 bytes .../Exercise 8.1/bin/Exercise 8.1.exe.config | 25 + .../VB.NET/Exercise 8.1/bin/Exercise 8.1.pdb | Bin 0 -> 40448 bytes .../Exercise 8.1/bin/Exercise 8.1.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 8.1.vshost.exe.config | 25 + .../VB.NET/Exercise 8.1/bin/Exercise 8.1.xml | 11 + .../Exercise 8.1/obj/Debug/Exercise 8.1.exe | Bin 0 -> 24576 bytes .../Exercise 8.1/obj/Debug/Exercise 8.1.pdb | Bin 0 -> 40448 bytes ...Exercise 8.1.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 8.1/obj/Debug/Exercise 8.1.xml | 11 + .../Debug/Exercise_8_1.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 8.1/obj/Debug/ResGen.cache | Bin 0 -> 1434 bytes .../obj/Exercise 8.1.vbproj.FileList.txt | 13 + .../VB.NET/Exercise 8.2/Exercise 8.2.vbproj | 105 ++ .../Exercise 8.2/Exercise 8.2.vbproj.user | 7 + Code/Chapter 8/VB.NET/Exercise 8.2/Module1.vb | 21 + .../Exercise 8.2/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 8.2/My Project/MyApplication.vb | 12 + .../Exercise 8.2/My Project/MyResources.resx | 117 ++ .../Exercise 8.2/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 8.2/My Project/MySettings.vb | 38 + Code/Chapter 8/VB.NET/Exercise 8.2/app.config | 25 + .../VB.NET/Exercise 8.2/bin/Exercise 8.2.exe | Bin 0 -> 24576 bytes .../Exercise 8.2/bin/Exercise 8.2.exe.config | 25 + .../VB.NET/Exercise 8.2/bin/Exercise 8.2.pdb | Bin 0 -> 40448 bytes .../Exercise 8.2/bin/Exercise 8.2.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 8.2.vshost.exe.config | 25 + .../VB.NET/Exercise 8.2/bin/Exercise 8.2.xml | 11 + .../Exercise 8.2/obj/Debug/Exercise 8.2.exe | Bin 0 -> 24576 bytes .../Exercise 8.2/obj/Debug/Exercise 8.2.pdb | Bin 0 -> 40448 bytes ...Exercise 8.2.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 8.2/obj/Debug/Exercise 8.2.xml | 11 + .../Debug/Exercise_8_2.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 8.2/obj/Debug/ResGen.cache | Bin 0 -> 1434 bytes .../obj/Exercise 8.2.vbproj.FileList.txt | 13 + .../VB.NET/Exercise 8.3/Exercise 8.3.vbproj | 105 ++ .../Exercise 8.3/Exercise 8.3.vbproj.user | 7 + Code/Chapter 8/VB.NET/Exercise 8.3/Module1.vb | 22 + .../Exercise 8.3/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 8.3/My Project/MyApplication.vb | 12 + .../Exercise 8.3/My Project/MyResources.resx | 117 ++ .../Exercise 8.3/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 8.3/My Project/MySettings.vb | 38 + Code/Chapter 8/VB.NET/Exercise 8.3/app.config | 25 + .../VB.NET/Exercise 8.3/bin/Exercise 8.3.exe | Bin 0 -> 24576 bytes .../Exercise 8.3/bin/Exercise 8.3.exe.config | 25 + .../VB.NET/Exercise 8.3/bin/Exercise 8.3.pdb | Bin 0 -> 40448 bytes .../Exercise 8.3/bin/Exercise 8.3.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 8.3.vshost.exe.config | 25 + .../VB.NET/Exercise 8.3/bin/Exercise 8.3.xml | 11 + .../Exercise 8.3/obj/Debug/Exercise 8.3.exe | Bin 0 -> 24576 bytes .../Exercise 8.3/obj/Debug/Exercise 8.3.pdb | Bin 0 -> 40448 bytes ...Exercise 8.3.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 8.3/obj/Debug/Exercise 8.3.xml | 11 + .../Debug/Exercise_8_3.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 8.3/obj/Debug/ResGen.cache | Bin 0 -> 1434 bytes .../obj/Exercise 8.3.vbproj.FileList.txt | 13 + .../VB.NET/Exercise 8.4/Exercise 8.4.vbproj | 105 ++ .../Exercise 8.4/Exercise 8.4.vbproj.user | 7 + Code/Chapter 8/VB.NET/Exercise 8.4/Module1.vb | 30 + .../Exercise 8.4/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 8.4/My Project/MyApplication.vb | 12 + .../Exercise 8.4/My Project/MyResources.resx | 117 ++ .../Exercise 8.4/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 8.4/My Project/MySettings.vb | 38 + Code/Chapter 8/VB.NET/Exercise 8.4/app.config | 25 + .../VB.NET/Exercise 8.4/bin/Exercise 8.4.exe | Bin 0 -> 24576 bytes .../Exercise 8.4/bin/Exercise 8.4.exe.config | 25 + .../VB.NET/Exercise 8.4/bin/Exercise 8.4.pdb | Bin 0 -> 40448 bytes .../Exercise 8.4/bin/Exercise 8.4.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 8.4.vshost.exe.config | 25 + .../VB.NET/Exercise 8.4/bin/Exercise 8.4.xml | 11 + .../Exercise 8.4/obj/Debug/Exercise 8.4.exe | Bin 0 -> 24576 bytes .../Exercise 8.4/obj/Debug/Exercise 8.4.pdb | Bin 0 -> 40448 bytes ...Exercise 8.4.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 8.4/obj/Debug/Exercise 8.4.xml | 11 + .../Debug/Exercise_8_4.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 8.4/obj/Debug/ResGen.cache | Bin 0 -> 1434 bytes .../obj/Exercise 8.4.vbproj.FileList.txt | 13 + .../VB.NET/Exercise 8.5/Exercise 8.5.vbproj | 115 ++ .../Exercise 8.5/Exercise 8.5.vbproj.user | 7 + .../VB.NET/Exercise 8.5/Form1.Designer.vb | 72 + Code/Chapter 8/VB.NET/Exercise 8.5/Form1.vb | 15 + .../Exercise 8.5/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 8.5/My Project/MyApplication.vb | 29 + .../Exercise 8.5/My Project/MyEvents.vb | 13 + .../Exercise 8.5/My Project/MyResources.resx | 117 ++ .../Exercise 8.5/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 8.5/My Project/MySettings.vb | 38 + Code/Chapter 8/VB.NET/Exercise 8.5/app.config | 25 + .../VB.NET/Exercise 8.5/bin/Exercise 8.5.exe | Bin 0 -> 28672 bytes .../Exercise 8.5/bin/Exercise 8.5.exe.config | 25 + .../VB.NET/Exercise 8.5/bin/Exercise 8.5.pdb | Bin 0 -> 54784 bytes .../Exercise 8.5/bin/Exercise 8.5.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 8.5.vshost.exe.config | 25 + .../VB.NET/Exercise 8.5/bin/Exercise 8.5.xml | 11 + .../Exercise 8.5/obj/Debug/Exercise 8.5.exe | Bin 0 -> 28672 bytes .../Exercise 8.5/obj/Debug/Exercise 8.5.pdb | Bin 0 -> 54784 bytes ...Exercise 8.5.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 8.5/obj/Debug/Exercise 8.5.xml | 11 + .../Debug/Exercise_8_5.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 8.5/obj/Debug/ResGen.cache | Bin 0 -> 1542 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6144 bytes .../obj/Exercise 8.5.vbproj.FileList.txt | 13 + .../VB.NET/Exercise 8.6/Exercise 8.6.vbproj | 115 ++ .../Exercise 8.6/Exercise 8.6.vbproj.user | 7 + .../VB.NET/Exercise 8.6/Form1.Designer.vb | 77 + Code/Chapter 8/VB.NET/Exercise 8.6/Form1.vb | 22 + .../Exercise 8.6/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 8.6/My Project/MyApplication.vb | 29 + .../Exercise 8.6/My Project/MyEvents.vb | 13 + .../Exercise 8.6/My Project/MyResources.resx | 117 ++ .../Exercise 8.6/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 8.6/My Project/MySettings.vb | 38 + Code/Chapter 8/VB.NET/Exercise 8.6/app.config | 25 + .../VB.NET/Exercise 8.6/bin/Exercise 8.6.exe | Bin 0 -> 28672 bytes .../Exercise 8.6/bin/Exercise 8.6.exe.config | 25 + .../VB.NET/Exercise 8.6/bin/Exercise 8.6.pdb | Bin 0 -> 54784 bytes .../Exercise 8.6/bin/Exercise 8.6.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 8.6.vshost.exe.config | 25 + .../VB.NET/Exercise 8.6/bin/Exercise 8.6.xml | 11 + .../Exercise 8.6/obj/Debug/Exercise 8.6.exe | Bin 0 -> 28672 bytes .../Exercise 8.6/obj/Debug/Exercise 8.6.pdb | Bin 0 -> 54784 bytes ...Exercise 8.6.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 8.6/obj/Debug/Exercise 8.6.xml | 11 + .../Debug/Exercise_8_6.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 8.6/obj/Debug/ResGen.cache | Bin 0 -> 1542 bytes .../obj/Exercise 8.6.vbproj.FileList.txt | 13 + .../VB.NET/Exercise 8.7/Exercise 8.7.vbproj | 115 ++ .../Exercise 8.7/Exercise 8.7.vbproj.user | 7 + .../VB.NET/Exercise 8.7/Form1.Designer.vb | 97 ++ Code/Chapter 8/VB.NET/Exercise 8.7/Form1.vb | 46 + .../Exercise 8.7/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 8.7/My Project/MyApplication.vb | 29 + .../Exercise 8.7/My Project/MyEvents.vb | 13 + .../Exercise 8.7/My Project/MyResources.resx | 117 ++ .../Exercise 8.7/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 8.7/My Project/MySettings.vb | 38 + Code/Chapter 8/VB.NET/Exercise 8.7/app.config | 25 + .../VB.NET/Exercise 8.7/bin/Exercise 8.7.exe | Bin 0 -> 32768 bytes .../Exercise 8.7/bin/Exercise 8.7.exe.config | 25 + .../VB.NET/Exercise 8.7/bin/Exercise 8.7.pdb | Bin 0 -> 56832 bytes .../Exercise 8.7/bin/Exercise 8.7.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 8.7.vshost.exe.config | 25 + .../VB.NET/Exercise 8.7/bin/Exercise 8.7.xml | 11 + .../Exercise 8.7/obj/Debug/Exercise 8.7.exe | Bin 0 -> 32768 bytes .../Exercise 8.7/obj/Debug/Exercise 8.7.pdb | Bin 0 -> 56832 bytes ...Exercise 8.7.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 8.7/obj/Debug/Exercise 8.7.xml | 11 + .../Debug/Exercise_8_7.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 8.7/obj/Debug/ResGen.cache | Bin 0 -> 1542 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 8.7.vbproj.FileList.txt | 13 + .../VB.NET/Exercise 8.8/Exercise 8.8.vbproj | 115 ++ .../Exercise 8.8/Exercise 8.8.vbproj.user | 7 + .../VB.NET/Exercise 8.8/Form1.Designer.vb | 114 ++ Code/Chapter 8/VB.NET/Exercise 8.8/Form1.vb | 36 + .../Exercise 8.8/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 8.8/My Project/MyApplication.vb | 29 + .../Exercise 8.8/My Project/MyEvents.vb | 13 + .../Exercise 8.8/My Project/MyResources.resx | 117 ++ .../Exercise 8.8/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 8.8/My Project/MySettings.vb | 38 + Code/Chapter 8/VB.NET/Exercise 8.8/app.config | 25 + .../VB.NET/Exercise 8.8/bin/Exercise 8.8.exe | Bin 0 -> 32768 bytes .../Exercise 8.8/bin/Exercise 8.8.exe.config | 25 + .../VB.NET/Exercise 8.8/bin/Exercise 8.8.pdb | Bin 0 -> 56832 bytes .../Exercise 8.8/bin/Exercise 8.8.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 8.8.vshost.exe.config | 25 + .../VB.NET/Exercise 8.8/bin/Exercise 8.8.xml | 11 + .../Exercise 8.8/obj/Debug/Exercise 8.8.exe | Bin 0 -> 32768 bytes .../Exercise 8.8/obj/Debug/Exercise 8.8.pdb | Bin 0 -> 56832 bytes ...Exercise 8.8.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 8.8/obj/Debug/Exercise 8.8.xml | 11 + .../Debug/Exercise_8_8.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 8.8/obj/Debug/ResGen.cache | Bin 0 -> 1542 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 0 -> 5122 bytes .../obj/Exercise 8.8.vbproj.FileList.txt | 13 + .../VB.NET/Exercise 8.9/Exercise 8.9.vbproj | 116 ++ .../Exercise 8.9/Exercise 8.9.vbproj.user | 7 + .../VB.NET/Exercise 8.9/Form1.Designer.vb | 64 + Code/Chapter 8/VB.NET/Exercise 8.9/Form1.vb | 26 + .../Exercise 8.9/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 8.9/My Project/MyApplication.vb | 29 + .../Exercise 8.9/My Project/MyEvents.vb | 13 + .../Exercise 8.9/My Project/MyResources.resx | 117 ++ .../Exercise 8.9/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 8.9/My Project/MySettings.vb | 38 + Code/Chapter 8/VB.NET/Exercise 8.9/app.config | 25 + .../VB.NET/Exercise 8.9/bin/Exercise 8.9.exe | Bin 0 -> 28672 bytes .../Exercise 8.9/bin/Exercise 8.9.exe.config | 25 + .../Exercise 8.9/bin/Exercise 8.9.exe_xdd.xml | 91 ++ .../VB.NET/Exercise 8.9/bin/Exercise 8.9.pdb | Bin 0 -> 54784 bytes .../Exercise 8.9/bin/Exercise 8.9.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 8.9.vshost.exe.config | 25 + .../VB.NET/Exercise 8.9/bin/Exercise 8.9.xml | 11 + .../Exercise 8.9/obj/Debug/Exercise 8.9.exe | Bin 0 -> 28672 bytes .../Exercise 8.9/obj/Debug/Exercise 8.9.pdb | Bin 0 -> 54784 bytes ...Exercise 8.9.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 8.9/obj/Debug/Exercise 8.9.xml | 11 + .../Debug/Exercise_8_9.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 8.9/obj/Debug/ResGen.cache | Bin 0 -> 1636 bytes .../obj/Debug/ResolveAssemblyReference.cache | Bin 0 -> 5152 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6144 bytes .../obj/Exercise 8.9.vbproj.FileList.txt | 13 + Code/Chapter 9/C#/Chapter 9.sln | 68 + Code/Chapter 9/C#/Chapter 9.suo | Bin 0 -> 65536 bytes .../C#/Exercise 9.1/ClassDiagram1.cd | 1 + .../C#/Exercise 9.1/Exercise 9.1.csproj | 90 ++ .../C#/Exercise 9.1/Exercise 9.1.csproj.user | 5 + .../C#/Exercise 9.1/Form1.Designer.cs | 246 +++ Code/Chapter 9/C#/Exercise 9.1/Form1.cs | 37 + Code/Chapter 9/C#/Exercise 9.1/Form1.resx | 218 +++ Code/Chapter 9/C#/Exercise 9.1/Program.cs | 19 + .../Exercise 9.1/Properties/AssemblyInfo.cs | 33 + .../Properties/Resources.Designer.cs | 67 + .../C#/Exercise 9.1/Properties/Resources.resx | 117 ++ .../Properties/Settings.Designer.cs | 37 + .../Exercise 9.1/Properties/Settings.settings | 16 + .../C#/Exercise 9.1/TestDataSet.Designer.cs | 682 +++++++++ .../Chapter 9/C#/Exercise 9.1/TestDataSet.xsc | 1 + .../Chapter 9/C#/Exercise 9.1/TestDataSet.xsd | 99 ++ .../Chapter 9/C#/Exercise 9.1/TestDataSet.xss | 1 + Code/Chapter 9/C#/Exercise 9.1/app.config | 22 + .../Exercise 9.1/bin/Debug/Exercise 9.1.exe | Bin 0 -> 49152 bytes .../bin/Debug/Exercise 9.1.exe.config | 22 + .../Exercise 9.1/bin/Debug/Exercise 9.1.pdb | Bin 0 -> 62976 bytes .../bin/Debug/Exercise 9.1.vshost.exe | Bin 0 -> 5632 bytes .../bin/Debug/Exercise 9.1.vshost.exe.config | 22 + ...Exercise 9.1.csproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../Exercise 9.1/obj/Debug/Exercise 9.1.exe | Bin 0 -> 49152 bytes .../Exercise 9.1/obj/Debug/Exercise 9.1.pdb | Bin 0 -> 62976 bytes .../obj/Debug/Exercise_9_1.Form1.resources | Bin 0 -> 5278 bytes ...xercise_9_1.Properties.Resources.resources | Bin 0 -> 180 bytes .../Properties.Resources.Designer.cs.dll | Bin 0 -> 4608 bytes .../Debug/TempPE/TestDataSet.Designer.cs.dll | Bin 0 -> 32768 bytes .../obj/Exercise 9.1.csproj.FileList.txt | 9 + .../C#/Exercise 9.2/Exercise 9.2.csproj | 54 + .../C#/Exercise 9.2/Exercise 9.2.csproj.user | 7 + Code/Chapter 9/C#/Exercise 9.2/Program.cs | 28 + .../Exercise 9.2/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 9.2/Properties/Resources.cs | 70 + .../C#/Exercise 9.2/Properties/Resources.resx | 117 ++ .../C#/Exercise 9.2/Properties/Settings.cs | 42 + .../Exercise 9.2/Properties/Settings.settings | 7 + .../Exercise 9.2/bin/Debug/Exercise 9.2.exe | Bin 0 -> 16384 bytes .../Exercise 9.2/bin/Debug/Exercise 9.2.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Exercise 9.2.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 9.2.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 9.2/obj/Debug/Exercise 9.2.exe | Bin 0 -> 16384 bytes .../Exercise 9.2/obj/Debug/Exercise 9.2.pdb | Bin 0 -> 22016 bytes ...xercise_9_2.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 9.2/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Exercise 9.2.csproj.FileList.txt | 7 + .../C#/Exercise 9.3/Exercise 9.3.csproj | 53 + .../C#/Exercise 9.3/Exercise 9.3.csproj.user | 7 + Code/Chapter 9/C#/Exercise 9.3/Program.cs | 90 ++ .../Exercise 9.3/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 9.3/Properties/Resources.cs | 70 + .../C#/Exercise 9.3/Properties/Resources.resx | 117 ++ .../C#/Exercise 9.3/Properties/Settings.cs | 42 + .../Exercise 9.3/Properties/Settings.settings | 7 + .../Exercise 9.3/bin/Debug/Exercise 9.3.exe | Bin 0 -> 20480 bytes .../Exercise 9.3/bin/Debug/Exercise 9.3.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Exercise 9.3.vshost.exe | Bin 0 -> 5120 bytes ...Exercise 9.3.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 9.3/obj/Debug/Exercise 9.3.exe | Bin 0 -> 20480 bytes .../Exercise 9.3/obj/Debug/Exercise 9.3.pdb | Bin 0 -> 22016 bytes ...xercise_9_3.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 9.3/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Exercise 9.3.csproj.FileList.txt | 7 + .../C#/Exercise 9.4/Exercise 9.4.csproj | 61 + .../C#/Exercise 9.4/Exercise 9.4.csproj.user | 7 + .../C#/Exercise 9.4/Form1.Designer.cs | 80 + Code/Chapter 9/C#/Exercise 9.4/Form1.cs | 86 ++ Code/Chapter 9/C#/Exercise 9.4/Program.cs | 23 + .../Exercise 9.4/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 9.4/Properties/Resources.cs | 70 + .../C#/Exercise 9.4/Properties/Resources.resx | 117 ++ .../C#/Exercise 9.4/Properties/Settings.cs | 42 + .../Exercise 9.4/Properties/Settings.settings | 7 + .../Exercise 9.4/bin/Debug/Exercise 9.4.exe | Bin 0 -> 20480 bytes .../Exercise 9.4/bin/Debug/Exercise 9.4.pdb | Bin 0 -> 28160 bytes .../bin/Debug/Exercise 9.4.vshost.exe | Bin 0 -> 5120 bytes ...Exercise 9.4.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 9.4/obj/Debug/Exercise 9.4.exe | Bin 0 -> 20480 bytes .../Exercise 9.4/obj/Debug/Exercise 9.4.pdb | Bin 0 -> 28160 bytes ...xercise_9_4.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 9.4/obj/Debug/ResGen.cache | Bin 0 -> 1413 bytes .../obj/Exercise 9.4.csproj.FileList.txt | 7 + .../C#/Exercise 9.5/CustProd.Designer.cs | 1232 +++++++++++++++ Code/Chapter 9/C#/Exercise 9.5/CustProd.xsc | 0 Code/Chapter 9/C#/Exercise 9.5/CustProd.xsd | 77 + Code/Chapter 9/C#/Exercise 9.5/CustProd.xss | 0 .../C#/Exercise 9.5/Exercise 9.5.csproj | 81 + .../C#/Exercise 9.5/Exercise 9.5.csproj.user | 7 + .../C#/Exercise 9.5/Form1.Designer.cs | 202 +++ Code/Chapter 9/C#/Exercise 9.5/Form1.cs | 44 + Code/Chapter 9/C#/Exercise 9.5/Program.cs | 23 + .../Exercise 9.5/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 9.5/Properties/Resources.cs | 61 + .../C#/Exercise 9.5/Properties/Resources.resx | 117 ++ .../C#/Exercise 9.5/Properties/Settings.cs | 38 + .../Exercise 9.5/Properties/Settings.settings | 7 + Code/Chapter 9/C#/Exercise 9.5/app.config | 3 + .../Exercise 9.5/bin/Debug/CreateDataSet.dll | Bin 0 -> 57344 bytes .../Exercise 9.5/bin/Debug/CreateDataSet.pdb | Bin 0 -> 118272 bytes .../C#/Exercise 9.5/bin/Debug/Data.xml | 92 ++ .../C#/Exercise 9.5/bin/Debug/EditData.exe | Bin 0 -> 24576 bytes .../C#/Exercise 9.5/bin/Debug/EditData.pdb | Bin 0 -> 24064 bytes .../bin/Debug/EditData.vshost.exe | Bin 0 -> 5120 bytes .../Exercise 9.5/bin/Debug/Exercise 9.5.exe | Bin 0 -> 49152 bytes .../bin/Debug/Exercise 9.5.exe.config | 3 + .../Exercise 9.5/bin/Debug/Exercise 9.5.pdb | Bin 0 -> 95744 bytes .../bin/Debug/Exercise 9.5.vshost.exe | Bin 0 -> 5120 bytes .../bin/Debug/Exercise 9.5.vshost.exe.config | 3 + .../EditData.Properties.Resources.resources | Bin 0 -> 188 bytes .../C#/Exercise 9.5/obj/Debug/EditData.exe | Bin 0 -> 24576 bytes .../C#/Exercise 9.5/obj/Debug/EditData.pdb | Bin 0 -> 24064 bytes ...Exercise 9.5.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 9.5/obj/Debug/Exercise 9.5.exe | Bin 0 -> 49152 bytes .../Exercise 9.5/obj/Debug/Exercise 9.5.pdb | Bin 0 -> 95744 bytes ...xercise_9_5.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 9.5/obj/Debug/ResGen.cache | Bin 0 -> 1516 bytes .../obj/Debug/TempPE/CustProd.Designer.cs.dll | Bin 0 -> 40960 bytes .../Debug/TempPE/Properties.Resources.cs.dll | Bin 0 -> 3584 bytes .../Debug/TempPE/testDataSet.Designer.cs.dll | Bin 0 -> 40960 bytes .../obj/Exercise 9.5.csproj.FileList.txt | 8 + .../C#/Exercise 9.6/Exercise 9.6.csproj | 79 + .../C#/Exercise 9.6/Exercise 9.6.csproj.user | 7 + .../C#/Exercise 9.6/Form1.Designer.cs | 173 +++ Code/Chapter 9/C#/Exercise 9.6/Form1.cs | 112 ++ Code/Chapter 9/C#/Exercise 9.6/Program.cs | 23 + .../Exercise 9.6/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 9.6/Properties/Resources.cs | 70 + .../C#/Exercise 9.6/Properties/Resources.resx | 117 ++ .../C#/Exercise 9.6/Properties/Settings.cs | 42 + .../Exercise 9.6/Properties/Settings.settings | 7 + .../C#/Exercise 9.6/VariousTables.Designer.cs | 1323 ++++++++++++++++ .../C#/Exercise 9.6/VariousTables.xsc | 5 + .../C#/Exercise 9.6/VariousTables.xsd | 57 + .../C#/Exercise 9.6/VariousTables.xss | 10 + .../Exercise 9.6/bin/Debug/Exercise 9.6.exe | Bin 0 -> 45056 bytes .../Exercise 9.6/bin/Debug/Exercise 9.6.pdb | Bin 0 -> 101888 bytes .../bin/Debug/Exercise 9.6.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 9.6.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 9.6/obj/Debug/Exercise 9.6.exe | Bin 0 -> 45056 bytes .../Exercise 9.6/obj/Debug/Exercise 9.6.pdb | Bin 0 -> 101888 bytes ...xercise_9_6.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 9.6/obj/Debug/ResGen.cache | Bin 0 -> 1516 bytes .../TempPE/VariousTables.Designer.cs.dll | Bin 0 -> 40960 bytes .../obj/Exercise 9.6.csproj.FileList.txt | 7 + .../C#/Exercise 9.7/Exercise 9.7.csproj | 53 + .../C#/Exercise 9.7/Exercise 9.7.csproj.user | 7 + Code/Chapter 9/C#/Exercise 9.7/Program.cs | 89 ++ .../Exercise 9.7/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 9.7/Properties/Resources.cs | 70 + .../C#/Exercise 9.7/Properties/Resources.resx | 117 ++ .../C#/Exercise 9.7/Properties/Settings.cs | 42 + .../Exercise 9.7/Properties/Settings.settings | 7 + .../C#/Exercise 9.7/bin/Debug/DB.MDB | Bin 0 -> 139264 bytes .../Exercise 9.7/bin/Debug/Exercise 9.7.exe | Bin 0 -> 20480 bytes .../Exercise 9.7/bin/Debug/Exercise 9.7.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Exercise 9.7.vshost.exe | Bin 0 -> 5120 bytes ...Exercise 9.7.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 9.7/obj/Debug/Exercise 9.7.exe | Bin 0 -> 20480 bytes .../Exercise 9.7/obj/Debug/Exercise 9.7.pdb | Bin 0 -> 22016 bytes ...xercise_9_7.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 9.7/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Exercise 9.7.csproj.FileList.txt | 7 + .../C#/Exercise 9.8/Exercise 9.8.csproj | 53 + .../C#/Exercise 9.8/Exercise 9.8.csproj.user | 7 + Code/Chapter 9/C#/Exercise 9.8/Program.cs | 98 ++ .../Exercise 9.8/Properties/AssemblyInfo.cs | 29 + .../C#/Exercise 9.8/Properties/Resources.cs | 70 + .../C#/Exercise 9.8/Properties/Resources.resx | 117 ++ .../C#/Exercise 9.8/Properties/Settings.cs | 42 + .../Exercise 9.8/Properties/Settings.settings | 7 + .../C#/Exercise 9.8/bin/Debug/DB.MDB | Bin 0 -> 139264 bytes .../Exercise 9.8/bin/Debug/Exercise 9.8.exe | Bin 0 -> 20480 bytes .../Exercise 9.8/bin/Debug/Exercise 9.8.pdb | Bin 0 -> 22016 bytes .../bin/Debug/Exercise 9.8.vshost.exe | Bin 0 -> 5632 bytes ...Exercise 9.8.csproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../Exercise 9.8/obj/Debug/Exercise 9.8.exe | Bin 0 -> 20480 bytes .../Exercise 9.8/obj/Debug/Exercise 9.8.pdb | Bin 0 -> 22016 bytes ...xercise_9_8.Properties.Resources.resources | Bin 0 -> 180 bytes .../C#/Exercise 9.8/obj/Debug/ResGen.cache | Bin 0 -> 1211 bytes .../obj/Exercise 9.8.csproj.FileList.txt | 7 + Code/Chapter 9/C#/SqlBulkCopy/Program.cs | 33 + .../C#/SqlBulkCopy/Properties/AssemblyInfo.cs | 33 + .../C#/SqlBulkCopy/SqlBulkCopy.csproj | 40 + .../C#/SqlBulkCopy/SqlBulkCopy.csproj.user | 5 + .../C#/SqlBulkCopy/bin/Debug/SqlBulkCopy.exe | Bin 0 -> 16384 bytes .../C#/SqlBulkCopy/bin/Debug/SqlBulkCopy.pdb | Bin 0 -> 13824 bytes .../C#/SqlBulkCopy/obj/Debug/SqlBulkCopy.exe | Bin 0 -> 16384 bytes .../C#/SqlBulkCopy/obj/Debug/SqlBulkCopy.pdb | Bin 0 -> 13824 bytes .../obj/SqlBulkCopy.csproj.FileList.txt | 5 + Code/Chapter 9/SQL/CreateTest.Sql | 10 + Code/Chapter 9/SQL/Exercise 9.2.txt | 9 + Code/Chapter 9/SQL/Exercise 9.4.sql | 53 + Code/Chapter 9/VB.NET/Chapter 9.sln | 68 + Code/Chapter 9/VB.NET/Chapter 9.suo | Bin 0 -> 71168 bytes .../VB.NET/Exercise 9.1/Exercise 9.1.vbproj | 115 ++ .../Exercise 9.1/Exercise 9.1.vbproj.user | 6 + .../VB.NET/Exercise 9.1/Form1.Designer.vb | 220 +++ Code/Chapter 9/VB.NET/Exercise 9.1/Form1.resx | 218 +++ Code/Chapter 9/VB.NET/Exercise 9.1/Form1.vb | 18 + .../My Project/Application.Designer.vb | 38 + .../Exercise 9.1/My Project/Application.myapp | 11 + .../My Project/ApplicationEvents.vb | 15 + .../Exercise 9.1/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../Exercise 9.1/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 76 + .../Exercise 9.1/My Project/Settings.settings | 16 + .../Exercise 9.1/TestDataSet.Designer.vb | 682 +++++++++ .../VB.NET/Exercise 9.1/TestDataSet.xsc | 1 + .../VB.NET/Exercise 9.1/TestDataSet.xsd | 99 ++ .../VB.NET/Exercise 9.1/TestDataSet.xss | 1 + Code/Chapter 9/VB.NET/Exercise 9.1/app.config | 43 + .../Exercise 9.1/bin/Debug/Exercise 9.1.exe | Bin 0 -> 61440 bytes .../bin/Debug/Exercise 9.1.exe.config | 43 + .../Exercise 9.1/bin/Debug/Exercise 9.1.pdb | Bin 0 -> 142848 bytes .../bin/Debug/Exercise 9.1.vshost.exe | Bin 0 -> 5632 bytes .../bin/Debug/Exercise 9.1.vshost.exe.config | 43 + .../Exercise 9.1/bin/Debug/Exercise_9.1.xml | 24 + .../Exercise 9.1/obj/Debug/Exercise 9.1.exe | Bin 0 -> 61440 bytes .../Exercise 9.1/obj/Debug/Exercise 9.1.pdb | Bin 0 -> 142848 bytes ...Exercise 9.1.vbproj.GenerateResource.Cache | Bin 0 -> 842 bytes .../Exercise 9.1/obj/Debug/Exercise_9.1.xml | 24 + .../obj/Debug/Exercise_9_1.Form1.resources | Bin 0 -> 5278 bytes .../Debug/Exercise_9_1.Resources.resources | Bin 0 -> 180 bytes .../My Project.Resources.Designer.vb.dll | Bin 0 -> 7680 bytes .../Debug/TempPE/TestDataSet.Designer.vb.dll | Bin 0 -> 36864 bytes .../obj/Exercise 9.1.vbproj.FileList.txt | 11 + .../VB.NET/Exercise 9.2/Exercise 9.2.vbproj | 98 ++ .../Exercise 9.2/Exercise 9.2.vbproj.user | 7 + Code/Chapter 9/VB.NET/Exercise 9.2/Module1.vb | 16 + .../Exercise 9.2/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 9.2/My Project/MyApplication.vb | 12 + .../Exercise 9.2/My Project/MyResources.resx | 117 ++ .../Exercise 9.2/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 9.2/My Project/MySettings.vb | 38 + Code/Chapter 9/VB.NET/Exercise 9.2/app.config | 25 + .../VB.NET/Exercise 9.2/bin/Exercise 9.2.exe | Bin 0 -> 24576 bytes .../Exercise 9.2/bin/Exercise 9.2.exe.config | 25 + .../VB.NET/Exercise 9.2/bin/Exercise 9.2.pdb | Bin 0 -> 38400 bytes .../VB.NET/Exercise 9.2/bin/Exercise 9.2.xml | 11 + .../Exercise 9.2/obj/Debug/Exercise 9.2.exe | Bin 0 -> 24576 bytes .../Exercise 9.2/obj/Debug/Exercise 9.2.pdb | Bin 0 -> 38400 bytes ...Exercise 9.2.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 9.2/obj/Debug/Exercise 9.2.xml | 11 + .../Debug/Exercise_9_2.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 9.2/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 9.2.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 9.3/Exercise 9.3.vbproj | 98 ++ .../Exercise 9.3/Exercise 9.3.vbproj.user | 7 + Code/Chapter 9/VB.NET/Exercise 9.3/Module1.vb | 74 + .../Exercise 9.3/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 9.3/My Project/MyApplication.vb | 12 + .../Exercise 9.3/My Project/MyResources.resx | 117 ++ .../Exercise 9.3/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 9.3/My Project/MySettings.vb | 38 + Code/Chapter 9/VB.NET/Exercise 9.3/app.config | 25 + .../VB.NET/Exercise 9.3/bin/Exercise 9.3.exe | Bin 0 -> 28672 bytes .../Exercise 9.3/bin/Exercise 9.3.exe.config | 25 + .../VB.NET/Exercise 9.3/bin/Exercise 9.3.pdb | Bin 0 -> 40448 bytes .../Exercise 9.3/bin/Exercise 9.3.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 9.3.vshost.exe.config | 25 + .../VB.NET/Exercise 9.3/bin/Exercise 9.3.xml | 11 + .../Exercise 9.3/obj/Debug/Exercise 9.3.exe | Bin 0 -> 28672 bytes .../Exercise 9.3/obj/Debug/Exercise 9.3.pdb | Bin 0 -> 40448 bytes ...Exercise 9.3.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 9.3/obj/Debug/Exercise 9.3.xml | 11 + .../Debug/Exercise_9_3.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 9.3/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../obj/Exercise 9.3.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 9.4/Exercise 9.4.vbproj | 108 ++ .../Exercise 9.4/Exercise 9.4.vbproj.user | 7 + .../VB.NET/Exercise 9.4/Form1.Designer.vb | 74 + Code/Chapter 9/VB.NET/Exercise 9.4/Form1.vb | 66 + .../Exercise 9.4/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 9.4/My Project/MyApplication.vb | 28 + .../Exercise 9.4/My Project/MyEvents.vb | 13 + .../Exercise 9.4/My Project/MyResources.resx | 117 ++ .../Exercise 9.4/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 9.4/My Project/MySettings.vb | 38 + Code/Chapter 9/VB.NET/Exercise 9.4/app.config | 25 + .../VB.NET/Exercise 9.4/bin/Exercise 9.4.exe | Bin 0 -> 32768 bytes .../Exercise 9.4/bin/Exercise 9.4.exe.config | 25 + .../VB.NET/Exercise 9.4/bin/Exercise 9.4.pdb | Bin 0 -> 56832 bytes .../Exercise 9.4/bin/Exercise 9.4.vshost.exe | Bin 0 -> 5120 bytes .../bin/Exercise 9.4.vshost.exe.config | 25 + .../VB.NET/Exercise 9.4/bin/Exercise 9.4.xml | 11 + .../Exercise 9.4/obj/Debug/Exercise 9.4.exe | Bin 0 -> 32768 bytes .../Exercise 9.4/obj/Debug/Exercise 9.4.pdb | Bin 0 -> 56832 bytes ...Exercise 9.4.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 9.4/obj/Debug/Exercise 9.4.xml | 11 + .../Debug/Exercise_9_4.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 9.4/obj/Debug/ResGen.cache | Bin 0 -> 1422 bytes .../obj/Exercise 9.4.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 9.5/CustProd.Designer.vb | 1221 +++++++++++++++ .../VB.NET/Exercise 9.5/CustProd.xsc | 0 .../VB.NET/Exercise 9.5/CustProd.xsd | 77 + .../VB.NET/Exercise 9.5/CustProd.xss | 0 .../VB.NET/Exercise 9.5/Exercise 9.5.vbproj | 127 ++ .../Exercise 9.5/Exercise 9.5.vbproj.user | 7 + .../VB.NET/Exercise 9.5/Form1.Designer.vb | 192 +++ Code/Chapter 9/VB.NET/Exercise 9.5/Form1.vb | 24 + .../Exercise 9.5/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 9.5/My Project/MyApplication.vb | 29 + .../Exercise 9.5/My Project/MyEvents.vb | 13 + .../Exercise 9.5/My Project/MyResources.resx | 117 ++ .../Exercise 9.5/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 9.5/My Project/MySettings.vb | 38 + Code/Chapter 9/VB.NET/Exercise 9.5/app.config | 25 + .../VB.NET/Exercise 9.5/bin/Data.xml | 92 ++ .../VB.NET/Exercise 9.5/bin/Exercise 9.5.exe | Bin 0 -> 61440 bytes .../Exercise 9.5/bin/Exercise 9.5.exe.config | 25 + .../VB.NET/Exercise 9.5/bin/Exercise 9.5.pdb | Bin 0 -> 208384 bytes .../Exercise 9.5/bin/Exercise 9.5.vshost.exe | Bin 0 -> 5120 bytes .../bin/Exercise 9.5.vshost.exe.config | 25 + .../VB.NET/Exercise 9.5/bin/Exercise 9.5.xml | 11 + .../Exercise 9.5/obj/Debug/Exercise 9.5.exe | Bin 0 -> 61440 bytes .../Exercise 9.5/obj/Debug/Exercise 9.5.pdb | Bin 0 -> 208384 bytes ...Exercise 9.5.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 9.5/obj/Debug/Exercise 9.5.xml | 11 + .../Debug/Exercise_9_5.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 9.5/obj/Debug/ResGen.cache | Bin 0 -> 1619 bytes .../obj/Debug/TempPE/CustProd.Designer.vb.dll | Bin 0 -> 45056 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6656 bytes .../obj/Exercise 9.5.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 9.6/Exercise 9.6.vbproj | 127 ++ .../Exercise 9.6/Exercise 9.6.vbproj.user | 7 + .../VB.NET/Exercise 9.6/Form1.Designer.vb | 164 ++ Code/Chapter 9/VB.NET/Exercise 9.6/Form1.vb | 82 + .../Exercise 9.6/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 10 + .../Exercise 9.6/My Project/MyApplication.vb | 28 + .../Exercise 9.6/My Project/MyEvents.vb | 13 + .../Exercise 9.6/My Project/MyResources.resx | 117 ++ .../Exercise 9.6/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 16 + .../Exercise 9.6/My Project/MySettings.vb | 63 + .../Exercise 9.6/VariousTables.Designer.vb | 1336 +++++++++++++++++ .../VB.NET/Exercise 9.6/VariousTables.xsc | 0 .../VB.NET/Exercise 9.6/VariousTables.xsd | 57 + .../VB.NET/Exercise 9.6/VariousTables.xss | 0 Code/Chapter 9/VB.NET/Exercise 9.6/app.config | 23 + .../VB.NET/Exercise 9.6/bin/Exercise 9.6.exe | Bin 0 -> 61440 bytes .../Exercise 9.6/bin/Exercise 9.6.exe.config | 23 + .../VB.NET/Exercise 9.6/bin/Exercise 9.6.pdb | Bin 0 -> 235008 bytes .../Exercise 9.6/bin/Exercise 9.6.vshost.exe | Bin 0 -> 5120 bytes .../bin/Exercise 9.6.vshost.exe.config | 23 + .../VB.NET/Exercise 9.6/bin/Exercise 9.6.xml | 11 + .../Exercise 9.6/obj/Debug/Exercise 9.6.exe | Bin 0 -> 61440 bytes .../Exercise 9.6/obj/Debug/Exercise 9.6.pdb | Bin 0 -> 235008 bytes ...Exercise 9.6.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 9.6/obj/Debug/Exercise 9.6.xml | 11 + .../Debug/Exercise_9_6.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 9.6/obj/Debug/ResGen.cache | Bin 0 -> 1619 bytes .../TempPE/My Project.MyResources.vb.dll | Bin 0 -> 6144 bytes .../TempPE/VariousTables.Designer.vb.dll | Bin 0 -> 40960 bytes .../Debug/TempPE/testDataSet.Designer.vb.dll | Bin 0 -> 40960 bytes .../obj/Exercise 9.6.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 9.7/Exercise 9.7.vbproj | 98 ++ .../Exercise 9.7/Exercise 9.7.vbproj.user | 7 + Code/Chapter 9/VB.NET/Exercise 9.7/Module1.vb | 68 + .../Exercise 9.7/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 9.7/My Project/MyApplication.vb | 12 + .../Exercise 9.7/My Project/MyResources.resx | 117 ++ .../Exercise 9.7/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 9.7/My Project/MySettings.vb | 38 + Code/Chapter 9/VB.NET/Exercise 9.7/app.config | 25 + Code/Chapter 9/VB.NET/Exercise 9.7/bin/DB.MDB | Bin 0 -> 139264 bytes .../VB.NET/Exercise 9.7/bin/Exercise 9.7.exe | Bin 0 -> 24576 bytes .../Exercise 9.7/bin/Exercise 9.7.exe.config | 25 + .../VB.NET/Exercise 9.7/bin/Exercise 9.7.pdb | Bin 0 -> 38400 bytes .../Exercise 9.7/bin/Exercise 9.7.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 9.7.vshost.exe.config | 25 + .../VB.NET/Exercise 9.7/bin/Exercise 9.7.xml | 11 + .../Exercise 9.7/obj/Debug/Exercise 9.7.exe | Bin 0 -> 24576 bytes .../Exercise 9.7/obj/Debug/Exercise 9.7.pdb | Bin 0 -> 38400 bytes ...Exercise 9.7.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 9.7/obj/Debug/Exercise 9.7.xml | 11 + .../Debug/Exercise_9_7.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 9.7/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../obj/Exercise 9.7.vbproj.FileList.txt | 10 + .../VB.NET/Exercise 9.8/Exercise 9.8.vbproj | 98 ++ .../Exercise 9.8/Exercise 9.8.vbproj.user | 7 + Code/Chapter 9/VB.NET/Exercise 9.8/Module1.vb | 77 + .../Exercise 9.8/My Project/AssemblyInfo.vb | 35 + .../My Project/MyApplication.myapp | 9 + .../Exercise 9.8/My Project/MyApplication.vb | 12 + .../Exercise 9.8/My Project/MyResources.resx | 117 ++ .../Exercise 9.8/My Project/MyResources.vb | 62 + .../My Project/MySettings.settings | 7 + .../Exercise 9.8/My Project/MySettings.vb | 38 + Code/Chapter 9/VB.NET/Exercise 9.8/app.config | 25 + Code/Chapter 9/VB.NET/Exercise 9.8/bin/DB.MDB | Bin 0 -> 139264 bytes .../VB.NET/Exercise 9.8/bin/Exercise 9.8.exe | Bin 0 -> 24576 bytes .../Exercise 9.8/bin/Exercise 9.8.exe.config | 25 + .../VB.NET/Exercise 9.8/bin/Exercise 9.8.pdb | Bin 0 -> 38400 bytes .../Exercise 9.8/bin/Exercise 9.8.vshost.exe | Bin 0 -> 5632 bytes .../bin/Exercise 9.8.vshost.exe.config | 25 + .../VB.NET/Exercise 9.8/bin/Exercise 9.8.xml | 11 + .../Exercise 9.8/obj/Debug/Exercise 9.8.exe | Bin 0 -> 24576 bytes .../Exercise 9.8/obj/Debug/Exercise 9.8.pdb | Bin 0 -> 38400 bytes ...Exercise 9.8.vbproj.GenerateResource.Cache | Bin 0 -> 786 bytes .../Exercise 9.8/obj/Debug/Exercise 9.8.xml | 11 + .../Debug/Exercise_9_8.MyResources.resources | Bin 0 -> 180 bytes .../Exercise 9.8/obj/Debug/ResGen.cache | Bin 0 -> 1314 bytes .../obj/Exercise 9.8.vbproj.FileList.txt | 10 + Code/Chapter 9/VB.NET/SqlBulkCopy/Module1.vb | 24 + .../My Project/Application.Designer.vb | 13 + .../SqlBulkCopy/My Project/Application.myapp | 10 + .../SqlBulkCopy/My Project/AssemblyInfo.vb | 37 + .../My Project/Resources.Designer.vb | 64 + .../SqlBulkCopy/My Project/Resources.resx | 117 ++ .../My Project/Settings.Designer.vb | 66 + .../SqlBulkCopy/My Project/Settings.settings | 7 + .../VB.NET/SqlBulkCopy/SqlBulkCopy.vbproj | 84 ++ .../SqlBulkCopy/SqlBulkCopy.vbproj.user | 5 + .../SqlBulkCopy/bin/Debug/SqlBulkCopy.exe | Bin 0 -> 24576 bytes .../SqlBulkCopy/bin/Debug/SqlBulkCopy.pdb | Bin 0 -> 42496 bytes .../SqlBulkCopy/bin/Debug/SqlBulkCopy.xml | 24 + .../SqlBulkCopy/obj/Debug/SqlBulkCopy.exe | Bin 0 -> 24576 bytes .../SqlBulkCopy/obj/Debug/SqlBulkCopy.pdb | Bin 0 -> 42496 bytes .../SqlBulkCopy.vbproj.GenerateResource.Cache | Bin 0 -> 784 bytes .../SqlBulkCopy/obj/Debug/SqlBulkCopy.xml | 24 + .../Debug/SqlBulkCopyDemo.Resources.resources | Bin 0 -> 180 bytes .../obj/SqlBulkCopy.vbproj.FileList.txt | 9 + LICENSE.txt | 27 + README.md | 15 + contributing.md | 14 + 2883 files changed, 92650 insertions(+) create mode 100644 2343.pdf create mode 100644 2344.pdf create mode 100644 2499.html create mode 100644 9781590595121.jpg create mode 100644 Code/Chapter 10/C#/Chapter 10.sln create mode 100644 Code/Chapter 10/C#/Chapter 10.suo create mode 100644 Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.Designer.cs create mode 100644 Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xsc create mode 100644 Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xsd create mode 100644 Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xss create mode 100644 Code/Chapter 10/C#/Exercise 10.1/Exercise 10.1.csproj create mode 100644 Code/Chapter 10/C#/Exercise 10.1/Exercise 10.1.csproj.user create mode 100644 Code/Chapter 10/C#/Exercise 10.1/Form1.Designer.cs create mode 100644 Code/Chapter 10/C#/Exercise 10.1/Form1.cs create mode 100644 Code/Chapter 10/C#/Exercise 10.1/Form1.resx create mode 100644 Code/Chapter 10/C#/Exercise 10.1/Program.cs create mode 100644 Code/Chapter 10/C#/Exercise 10.1/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 10/C#/Exercise 10.1/Properties/Resources.cs create mode 100644 Code/Chapter 10/C#/Exercise 10.1/Properties/Resources.resx create mode 100644 Code/Chapter 10/C#/Exercise 10.1/Properties/Settings.cs create mode 100644 Code/Chapter 10/C#/Exercise 10.1/Properties/Settings.settings create mode 100644 Code/Chapter 10/C#/Exercise 10.1/app.config create mode 100644 Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.exe create mode 100644 Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.exe.config create mode 100644 Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.pdb create mode 100644 Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.vshost.exe create mode 100644 Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.vshost.exe.config create mode 100644 Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise 10.1.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise 10.1.exe create mode 100644 Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise 10.1.pdb create mode 100644 Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise_10_1.Form1.resources create mode 100644 Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise_10_1.Properties.Resources.resources create mode 100644 Code/Chapter 10/C#/Exercise 10.1/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 10/C#/Exercise 10.1/obj/Debug/TempPE/AnimalsAndPets.Designer.cs.dll create mode 100644 Code/Chapter 10/C#/Exercise 10.1/obj/Debug/TempPE/AnimalsDataSet.Designer.cs.dll create mode 100644 Code/Chapter 10/C#/Exercise 10.1/obj/Exercise 10.1.csproj.FileList.txt create mode 100644 Code/Chapter 10/SQL/database setup script.sql create mode 100644 Code/Chapter 10/VB.NET/Chapter 10.sln create mode 100644 Code/Chapter 10/VB.NET/Chapter 10.suo create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.Designer.vb create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.xsc create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.xsd create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.xss create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/Exercise 10.1.vbproj create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/Exercise 10.1.vbproj.user create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/Form1.Designer.vb create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/Form1.vb create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyApplication.myapp create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyApplication.vb create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyEvents.vb create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyResources.resx create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyResources.vb create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MySettings.settings create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MySettings.vb create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/app.config create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.exe create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.exe.config create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.pdb create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.vshost.exe create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.vshost.exe.config create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.xml create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise 10.1.exe create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise 10.1.pdb create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise 10.1.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise 10.1.xml create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise_10_1.MyResources.resources create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/TempPE/AnimalsDataSet.Designer.vb.dll create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 10/VB.NET/Exercise 10.1/obj/Exercise 10.1.vbproj.FileList.txt create mode 100644 Code/Chapter 11/C#/AccChanges/AccChanges.csproj create mode 100644 Code/Chapter 11/C#/AccChanges/AccChanges.csproj.user create mode 100644 Code/Chapter 11/C#/AccChanges/Form1.Designer.cs create mode 100644 Code/Chapter 11/C#/AccChanges/Form1.cs create mode 100644 Code/Chapter 11/C#/AccChanges/Form1.resx create mode 100644 Code/Chapter 11/C#/AccChanges/Program.cs create mode 100644 Code/Chapter 11/C#/AccChanges/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 11/C#/AccChanges/Properties/Resources.Designer.cs create mode 100644 Code/Chapter 11/C#/AccChanges/Properties/Resources.resx create mode 100644 Code/Chapter 11/C#/AccChanges/Properties/Settings.Designer.cs create mode 100644 Code/Chapter 11/C#/AccChanges/Properties/Settings.settings create mode 100644 Code/Chapter 11/C#/AccChanges/bin/Debug/AccChanges.exe create mode 100644 Code/Chapter 11/C#/AccChanges/bin/Debug/AccChanges.pdb create mode 100644 Code/Chapter 11/C#/AccChanges/bin/Debug/AccChanges.vshost.exe create mode 100644 Code/Chapter 11/C#/AccChanges/obj/AccChanges.csproj.FileList.txt create mode 100644 Code/Chapter 11/C#/AccChanges/obj/Debug/AccChanges.Form1.resources create mode 100644 Code/Chapter 11/C#/AccChanges/obj/Debug/AccChanges.Properties.Resources.resources create mode 100644 Code/Chapter 11/C#/AccChanges/obj/Debug/AccChanges.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 11/C#/AccChanges/obj/Debug/AccChanges.exe create mode 100644 Code/Chapter 11/C#/AccChanges/obj/Debug/AccChanges.pdb create mode 100644 Code/Chapter 11/C#/Chapter 11.sln create mode 100644 Code/Chapter 11/C#/Chapter 11.suo create mode 100644 Code/Chapter 11/C#/Exercise 11.1/Exercise 11.1.csproj create mode 100644 Code/Chapter 11/C#/Exercise 11.1/Exercise 11.1.csproj.user create mode 100644 Code/Chapter 11/C#/Exercise 11.1/Program.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.1/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.1/Properties/Resources.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.1/Properties/Resources.resx create mode 100644 Code/Chapter 11/C#/Exercise 11.1/Properties/Settings.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.1/Properties/Settings.settings create mode 100644 Code/Chapter 11/C#/Exercise 11.1/bin/Debug/Exercise 11.1.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.1/bin/Debug/Exercise 11.1.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.1/bin/Debug/Exercise 11.1.vshost.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.1/obj/Debug/Exercise 11.1.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 11/C#/Exercise 11.1/obj/Debug/Exercise 11.1.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.1/obj/Debug/Exercise 11.1.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.1/obj/Debug/Exercise_11_1.Properties.Resources.resources create mode 100644 Code/Chapter 11/C#/Exercise 11.1/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 11/C#/Exercise 11.1/obj/Exercise 11.1.csproj.FileList.txt create mode 100644 Code/Chapter 11/C#/Exercise 11.2/Exercise 11.2.csproj create mode 100644 Code/Chapter 11/C#/Exercise 11.2/Exercise 11.2.csproj.user create mode 100644 Code/Chapter 11/C#/Exercise 11.2/Program.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.2/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.2/Properties/Resources.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.2/Properties/Resources.resx create mode 100644 Code/Chapter 11/C#/Exercise 11.2/Properties/Settings.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.2/Properties/Settings.settings create mode 100644 Code/Chapter 11/C#/Exercise 11.2/bin/Debug/Exercise 11.2.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.2/bin/Debug/Exercise 11.2.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.2/bin/Debug/Exercise 11.2.vshost.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.2/obj/Debug/Exercise 11.2.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 11/C#/Exercise 11.2/obj/Debug/Exercise 11.2.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.2/obj/Debug/Exercise 11.2.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.2/obj/Debug/Exercise_11_2.Properties.Resources.resources create mode 100644 Code/Chapter 11/C#/Exercise 11.2/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 11/C#/Exercise 11.2/obj/Exercise 11.2.csproj.FileList.txt create mode 100644 Code/Chapter 11/C#/Exercise 11.3/Exercise 11.3.csproj create mode 100644 Code/Chapter 11/C#/Exercise 11.3/Exercise 11.3.csproj.user create mode 100644 Code/Chapter 11/C#/Exercise 11.3/Program.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.3/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.3/Properties/Resources.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.3/Properties/Resources.resx create mode 100644 Code/Chapter 11/C#/Exercise 11.3/Properties/Settings.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.3/Properties/Settings.settings create mode 100644 Code/Chapter 11/C#/Exercise 11.3/bin/Debug/Exercise 11.3.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.3/bin/Debug/Exercise 11.3.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.3/bin/Debug/Exercise 11.3.vshost.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.3/obj/Debug/Exercise 11.3.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 11/C#/Exercise 11.3/obj/Debug/Exercise 11.3.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.3/obj/Debug/Exercise 11.3.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.3/obj/Debug/Exercise_11_3.Properties.Resources.resources create mode 100644 Code/Chapter 11/C#/Exercise 11.3/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 11/C#/Exercise 11.3/obj/Exercise 11.3.csproj.FileList.txt create mode 100644 Code/Chapter 11/C#/Exercise 11.4/Exercise 11.4.csproj create mode 100644 Code/Chapter 11/C#/Exercise 11.4/Exercise 11.4.csproj.user create mode 100644 Code/Chapter 11/C#/Exercise 11.4/Program.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.4/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.4/Properties/Resources.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.4/Properties/Resources.resx create mode 100644 Code/Chapter 11/C#/Exercise 11.4/Properties/Settings.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.4/Properties/Settings.settings create mode 100644 Code/Chapter 11/C#/Exercise 11.4/bin/Debug/Exercise 11.4.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.4/bin/Debug/Exercise 11.4.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.4/bin/Debug/Exercise 11.4.vshost.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.4/obj/Debug/Exercise 11.4.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 11/C#/Exercise 11.4/obj/Debug/Exercise 11.4.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.4/obj/Debug/Exercise 11.4.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.4/obj/Debug/Exercise_11_4.Properties.Resources.resources create mode 100644 Code/Chapter 11/C#/Exercise 11.4/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 11/C#/Exercise 11.4/obj/Exercise 11.4.csproj.FileList.txt create mode 100644 Code/Chapter 11/C#/Exercise 11.5/Exercise 11.5.csproj create mode 100644 Code/Chapter 11/C#/Exercise 11.5/Exercise 11.5.csproj.user create mode 100644 Code/Chapter 11/C#/Exercise 11.5/Program.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.5/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 11/C#/Exercise 11.5/bin/Debug/ConsoleApplication5.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.5/bin/Debug/ConsoleApplication5.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.5/bin/Debug/ConsoleApplication5.vshost.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.5/bin/Debug/Exercise_11_5.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.5/bin/Debug/Exercise_11_5.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.5/bin/Debug/Exercise_11_5.vshost.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.5/obj/ConsoleApplication5.csproj.FileList.txt create mode 100644 Code/Chapter 11/C#/Exercise 11.5/obj/Debug/ConsoleApplication5.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.5/obj/Debug/ConsoleApplication5.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.5/obj/Debug/Exercise_11_5.exe create mode 100644 Code/Chapter 11/C#/Exercise 11.5/obj/Debug/Exercise_11_5.pdb create mode 100644 Code/Chapter 11/C#/Exercise 11.5/obj/Exercise 11.5.csproj.FileList.txt create mode 100644 Code/Chapter 11/SQL/CreateDatabase.sql create mode 100644 Code/Chapter 11/SQL/CreateDistributedDatabase.sql create mode 100644 Code/Chapter 11/VB.NET/AccChanges/AccChanges.vbproj create mode 100644 Code/Chapter 11/VB.NET/AccChanges/AccChanges.vbproj.user create mode 100644 Code/Chapter 11/VB.NET/AccChanges/Form1.Designer.vb create mode 100644 Code/Chapter 11/VB.NET/AccChanges/Form1.resx create mode 100644 Code/Chapter 11/VB.NET/AccChanges/Form1.vb create mode 100644 Code/Chapter 11/VB.NET/AccChanges/My Project/Application.Designer.vb create mode 100644 Code/Chapter 11/VB.NET/AccChanges/My Project/Application.myapp create mode 100644 Code/Chapter 11/VB.NET/AccChanges/My Project/ApplicationEvents.vb create mode 100644 Code/Chapter 11/VB.NET/AccChanges/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 11/VB.NET/AccChanges/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 11/VB.NET/AccChanges/My Project/Resources.resx create mode 100644 Code/Chapter 11/VB.NET/AccChanges/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 11/VB.NET/AccChanges/My Project/Settings.settings create mode 100644 Code/Chapter 11/VB.NET/AccChanges/bin/Debug/AccChanges.exe create mode 100644 Code/Chapter 11/VB.NET/AccChanges/bin/Debug/AccChanges.pdb create mode 100644 Code/Chapter 11/VB.NET/AccChanges/bin/Debug/AccChanges.vshost.exe create mode 100644 Code/Chapter 11/VB.NET/AccChanges/bin/Debug/AccChanges.xml create mode 100644 Code/Chapter 11/VB.NET/AccChanges/obj/AccChanges.vbproj.FileList.txt create mode 100644 Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.Form1.resources create mode 100644 Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.Resources.resources create mode 100644 Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.exe create mode 100644 Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.pdb create mode 100644 Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.xml create mode 100644 Code/Chapter 11/VB.NET/AccChanges/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 11/VB.NET/Chapter 11.sln create mode 100644 Code/Chapter 11/VB.NET/Chapter 11.suo create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/AssemblyInfo.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/Exercise 11.1.vbproj create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/Exercise 11.1.vbproj.user create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/Module1.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyApplication.myapp create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyApplication.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyResources.resx create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MySettings.settings create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MySettings.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/SimpleTransaction.sln create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/SimpleTransaction.sln.old create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/SimpleTransaction.suo create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/app.config create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.exe.config create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.vshost.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.vshost.exe.config create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.xml create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/bin/SimpleTransaction.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/bin/SimpleTransaction.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/bin/SimpleTransaction.vshost.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Chapter10.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Exercise 11.1.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Exercise_11_1.MyResources.resources create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Exercise_11_1.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Exercise_11_1.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Exercise_11_1.xml create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/SimpleTransaction.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/SimpleTransaction.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.1/obj/Exercise 11.1.vbproj.FileList.txt create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/Exercise 11.2.vbproj create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/Exercise 11.2.vbproj.user create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/Module1.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyApplication.myapp create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyApplication.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyResources.resx create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyResources.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MySettings.settings create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MySettings.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/app.config create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/bin/Exercise 11.2.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/bin/Exercise 11.2.exe.config create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/bin/Exercise 11.2.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/bin/Exercise 11.2.xml create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise 11.2.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise 11.2.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise 11.2.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise 11.2.xml create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise_11_2.MyResources.resources create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.2/obj/Exercise 11.2.vbproj.FileList.txt create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/Exercise 11.3.vbproj create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/Exercise 11.3.vbproj.user create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/Module1.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyApplication.myapp create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyApplication.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyResources.resx create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyResources.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MySettings.settings create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MySettings.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/app.config create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.exe.config create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.xml create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.xml create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise_11_3.MyResources.resources create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.3/obj/Exercise 11.3.vbproj.FileList.txt create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/Exercise 11.4.vbproj create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/Exercise 11.4.vbproj.user create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/Module1.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyApplication.Designer.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyApplication.myapp create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyResources.resx create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyResources.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MySettings.settings create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MySettings.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/app.config create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/bin/Exercise 11.4.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/bin/Exercise 11.4.exe.config create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/bin/Exercise 11.4.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/bin/Exercise 11.4.xml create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise 11.4.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise 11.4.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise 11.4.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise 11.4.xml create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise_11_4.MyResources.resources create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.4/obj/Exercise 11.4.vbproj.FileList.txt create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/Exercise 11.5.vbproj create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/Exercise 11.5.vbproj.user create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/Module1.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Application.Designer.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Application.myapp create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Resources.resx create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Settings.settings create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise 11.4.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise 11.4.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise 11.4.vshost.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise_11.5.xml create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise_11_5.vshost.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/Exercise 11.4.exe create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/Exercise 11.4.pdb create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/Exercise 11.5.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/Exercise_11.5.xml create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/Exercise_11_4.Resources.resources create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 11/VB.NET/Exercise 11.5/obj/Exercise 11.5.vbproj.FileList.txt create mode 100644 Code/Chapter 12/C#/Chapter 12.sln create mode 100644 Code/Chapter 12/C#/Chapter 12.suo create mode 100644 Code/Chapter 12/C#/Exercise 12-2/Exercise 12-2.csproj create mode 100644 Code/Chapter 12/C#/Exercise 12-2/Exercise 12-2.csproj.user create mode 100644 Code/Chapter 12/C#/Exercise 12-2/Program.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-2/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-2/bin/Debug/Exercise 12-2.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-2/bin/Debug/Exercise 12-2.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-2/obj/Debug/Exercise 12-2.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-2/obj/Debug/Exercise 12-2.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-2/obj/Exercise 12-2.csproj.FileList.txt create mode 100644 Code/Chapter 12/C#/Exercise 12-3/Exercise 12-3.csproj create mode 100644 Code/Chapter 12/C#/Exercise 12-3/Exercise 12-3.csproj.user create mode 100644 Code/Chapter 12/C#/Exercise 12-3/Program.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-3/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-3/bin/Debug/Exercise 12-3.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-3/bin/Debug/Exercise 12-3.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-3/bin/Debug/Exercise 12-3.vshost.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-3/obj/Debug/Exercise 12-3.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-3/obj/Debug/Exercise 12-3.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-3/obj/Exercise 12-3.csproj.FileList.txt create mode 100644 Code/Chapter 12/C#/Exercise 12-4/Exercise 12-4.csproj create mode 100644 Code/Chapter 12/C#/Exercise 12-4/Exercise 12-4.csproj.user create mode 100644 Code/Chapter 12/C#/Exercise 12-4/Program.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-4/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-4/bin/Debug/Exercise 12-4.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-4/bin/Debug/Exercise 12-4.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-4/bin/Debug/Exercise 12-4.vshost.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-4/obj/Debug/Exercise 12-4.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-4/obj/Debug/Exercise 12-4.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-4/obj/Debug/ResolveAssemblyReference.cache create mode 100644 Code/Chapter 12/C#/Exercise 12-4/obj/Exercise 12-4.csproj.FileList.txt create mode 100644 Code/Chapter 12/C#/Exercise 12-5/Exercise 12-5.csproj create mode 100644 Code/Chapter 12/C#/Exercise 12-5/Exercise 12-5.csproj.user create mode 100644 Code/Chapter 12/C#/Exercise 12-5/Program.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-5/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-5/bin/Debug/Exercise 12-5.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-5/bin/Debug/Exercise 12-5.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-5/bin/Debug/Exercise 12-5.vshost.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-5/bin/Debug/command.xml create mode 100644 Code/Chapter 12/C#/Exercise 12-5/obj/Debug/Exercise 12-5.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-5/obj/Debug/Exercise 12-5.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-5/obj/Exercise 12-5.csproj.FileList.txt create mode 100644 Code/Chapter 12/C#/Exercise 12-6/Exercise 12-6.csproj create mode 100644 Code/Chapter 12/C#/Exercise 12-6/Exercise 12-6.csproj.user create mode 100644 Code/Chapter 12/C#/Exercise 12-6/Program.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-6/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-6/bin/Debug/Exercise 12-6.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-6/bin/Debug/Exercise 12-6.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-6/bin/Debug/Exercise 12-6.vshost.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-6/bin/Debug/updategram.xml create mode 100644 Code/Chapter 12/C#/Exercise 12-6/obj/Debug/Exercise 12-6.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-6/obj/Debug/Exercise 12-6.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-6/obj/Exercise 12-6.csproj.FileList.txt create mode 100644 Code/Chapter 12/C#/Exercise 12-7/Exercise 12-7.csproj create mode 100644 Code/Chapter 12/C#/Exercise 12-7/Exercise 12-7.csproj.user create mode 100644 Code/Chapter 12/C#/Exercise 12-7/Program.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-7/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 12/C#/Exercise 12-7/bin/Debug/Exercise 12-7.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-7/bin/Debug/Exercise 12-7.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-7/bin/Debug/Exercise 12-7.vshost.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-7/bin/Debug/Person.Contact.xsd create mode 100644 Code/Chapter 12/C#/Exercise 12-7/obj/Debug/Exercise 12-7.exe create mode 100644 Code/Chapter 12/C#/Exercise 12-7/obj/Debug/Exercise 12-7.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12-7/obj/Debug/ResolveAssemblyReference.cache create mode 100644 Code/Chapter 12/C#/Exercise 12-7/obj/Exercise 12-7.csproj.FileList.txt create mode 100644 Code/Chapter 12/C#/Exercise 12.1/Exercise 12-1.csproj create mode 100644 Code/Chapter 12/C#/Exercise 12.1/Exercise 12-1.csproj.user create mode 100644 Code/Chapter 12/C#/Exercise 12.1/Program.cs create mode 100644 Code/Chapter 12/C#/Exercise 12.1/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 12/C#/Exercise 12.1/Properties/Resources.cs create mode 100644 Code/Chapter 12/C#/Exercise 12.1/Properties/Resources.resx create mode 100644 Code/Chapter 12/C#/Exercise 12.1/Properties/Settings.cs create mode 100644 Code/Chapter 12/C#/Exercise 12.1/Properties/Settings.settings create mode 100644 Code/Chapter 12/C#/Exercise 12.1/bin/Debug/Exercise 12.1.exe create mode 100644 Code/Chapter 12/C#/Exercise 12.1/bin/Debug/Exercise 12.1.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12.1/bin/Debug/Exercise 12.1.vshost.exe create mode 100644 Code/Chapter 12/C#/Exercise 12.1/bin/Debug/Output.xml create mode 100644 Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12-1.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12.1.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12.1.exe create mode 100644 Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12.1.pdb create mode 100644 Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise_12_1.Properties.Resources.resources create mode 100644 Code/Chapter 12/C#/Exercise 12.1/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 12/C#/Exercise 12.1/obj/Exercise 12-1.csproj.FileList.txt create mode 100644 Code/Chapter 12/C#/Exercise 12.1/obj/Exercise 12.1.csproj.FileList.txt create mode 100644 Code/Chapter 12/SQL/ForXMLExplicit.sql create mode 100644 Code/Chapter 12/SQL/OpenXMLDemo.sql create mode 100644 Code/Chapter 12/SQL/OpenXMLSP.sql create mode 100644 Code/Chapter 12/VB.NET/Chapter 12.sln create mode 100644 Code/Chapter 12/VB.NET/Chapter 12.suo create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/Exercise 12-1.vbproj create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/Exercise 12-1.vbproj.user create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/Module1.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Application.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Application.myapp create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Resources.resx create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Settings.settings create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/bin/Debug/Exercise 12-1.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/bin/Debug/Exercise 12-1.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/bin/Debug/Exercise 12-1.vshost.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/bin/Debug/Exercise 12-1.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/obj/Debug/Exercise 12-1.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/obj/Debug/Exercise 12-1.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/obj/Debug/Exercise 12-1.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/obj/Debug/Exercise 12-1.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/obj/Debug/Exercise_12_1.Resources.resources create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-1/obj/Exercise 12-1.vbproj.FileList.txt create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/AssemblyInfo.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/Exercise 12-2.vbproj create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/Exercise 12-2.vbproj.user create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/Module.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Application.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Application.myapp create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Resources.resx create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Settings.settings create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/OpenXMLDemo.sln create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/OpenXMLDemo.suo create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/bin/Exercise 12-2.vshost.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/bin/Exercise_12_2.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/bin/Exercise_12_2.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/bin/Exercise_12_2.vshost.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/bin/Exercise_12_2.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/bin/OpenXMLDemo.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/bin/OpenXMLDemo.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/bin/OpenXMLDemo.vshost.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/Exercise 12-2.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/Exercise_12_2.Resources.resources create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/Exercise_12_2.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/Exercise_12_2.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/Exercise_12_2.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/OpenXMLDemo.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/OpenXMLDemo.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/obj/Exercise 12-2.vbproj.FileList.txt create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-2/obj/OpenXMLDemo.vbproj.FileList.txt create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/Exercise 12-3.vbproj create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/Exercise 12-3.vbproj.user create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/Module1.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Application.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Application.myapp create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Resources.resx create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Settings.settings create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/bin/Debug/Exercise 12-3.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/bin/Debug/Exercise 12-3.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/bin/Debug/Exercise 12-3.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise 12-3.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise 12-3.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise 12-3.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise 12-3.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise_12_3.Resources.resources create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-3/obj/Exercise 12-3.vbproj.FileList.txt create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/Exercise 12-4.vbproj create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/Exercise 12-4.vbproj.user create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/Module1.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Application.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Application.myapp create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Resources.resx create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Settings.settings create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/bin/Debug/Exercise 12-4.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/bin/Debug/Exercise 12-4.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/bin/Debug/Exercise 12-4.vshost.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/bin/Debug/Exercise 12-4.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise_12_4.Resources.resources create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-4/obj/Exercise 12-4.vbproj.FileList.txt create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/Exercise 12-5.vbproj create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/Exercise 12-5.vbproj.user create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/Module1.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Application.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Application.myapp create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Resources.resx create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Settings.settings create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/Exercise 12-5.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/Exercise 12-5.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/Exercise 12-5.vshost.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/Exercise 12-5.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/command.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/obj/Debug/Exercise 12-5.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/obj/Debug/Exercise 12-5.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/obj/Debug/Exercise 12-5.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/obj/Debug/Exercise 12-5.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/obj/Debug/Exercise_12_5.Resources.resources create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-5/obj/Exercise 12-5.vbproj.FileList.txt create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/Exercise 12-6.vbproj create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/Exercise 12-6.vbproj.user create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/Module1.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Application.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Application.myapp create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Resources.resx create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Settings.settings create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/Exercise 12-6.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/Exercise 12-6.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/Exercise 12-6.vshost.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/Exercise 12-6.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/updategram.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise 12-6.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise 12-6.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise 12-6.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise 12-6.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise_12_6.Resources.resources create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/ResolveAssemblyReference.cache create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-6/obj/Exercise 12-6.vbproj.FileList.txt create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/Exercise 12-7.vbproj create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/Exercise 12-7.vbproj.user create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/Module1.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Application.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Application.myapp create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Resources.resx create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Settings.settings create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.vshost.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Person.Contact.xsd create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise 12-7.exe create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise 12-7.pdb create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise 12-7.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise 12-7.xml create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise_12_7.Resources.resources create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/ResolveAssemblyReference.cache create mode 100644 Code/Chapter 12/VB.NET/Exercise 12-7/obj/Exercise 12-7.vbproj.FileList.txt create mode 100644 Code/Chapter 13/C#/Chapter 13.sln create mode 100644 Code/Chapter 13/C#/Chapter 13.suo create mode 100644 Code/Chapter 13/C#/HandWrittenUDF/HandWrittenUDF.csproj create mode 100644 Code/Chapter 13/C#/HandWrittenUDF/HandWrittenUDF.csproj.user create mode 100644 Code/Chapter 13/C#/HandWrittenUDF/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 13/C#/HandWrittenUDF/UserDefinedFunctions.cs create mode 100644 Code/Chapter 13/C#/HandWrittenUDF/bin/Debug/HandWrittenUDF.dll create mode 100644 Code/Chapter 13/C#/HandWrittenUDF/bin/Debug/HandWrittenUDF.pdb create mode 100644 Code/Chapter 13/C#/HandWrittenUDF/obj/Debug/HandWrittenUDF.dll create mode 100644 Code/Chapter 13/C#/HandWrittenUDF/obj/Debug/HandWrittenUDF.pdb create mode 100644 Code/Chapter 13/C#/HandWrittenUDF/obj/HandWrittenUDF.csproj.FileList.txt create mode 100644 Code/Chapter 13/C#/HandWrittenUDFTest/HandWrittenUDFTest.csproj create mode 100644 Code/Chapter 13/C#/HandWrittenUDFTest/HandWrittenUDFTest.csproj.user create mode 100644 Code/Chapter 13/C#/HandWrittenUDFTest/Program.cs create mode 100644 Code/Chapter 13/C#/HandWrittenUDFTest/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 13/C#/HandWrittenUDFTest/bin/Debug/HandWrittenUDFTest.exe create mode 100644 Code/Chapter 13/C#/HandWrittenUDFTest/bin/Debug/HandWrittenUDFTest.pdb create mode 100644 Code/Chapter 13/C#/HandWrittenUDFTest/bin/Debug/HandWrittenUDFTest.vshost.exe create mode 100644 Code/Chapter 13/C#/HandWrittenUDFTest/obj/Debug/HandWrittenUDFTest.exe create mode 100644 Code/Chapter 13/C#/HandWrittenUDFTest/obj/Debug/HandWrittenUDFTest.pdb create mode 100644 Code/Chapter 13/C#/HandWrittenUDFTest/obj/HandWrittenUDFTest.csproj.FileList.txt create mode 100644 Code/Chapter 13/C#/SqlServerAggregate/AssemblyInfo.cs create mode 100644 Code/Chapter 13/C#/SqlServerAggregate/Concatenator.cs create mode 100644 Code/Chapter 13/C#/SqlServerAggregate/SqlServerAggregate.csproj create mode 100644 Code/Chapter 13/C#/SqlServerAggregate/SqlServerAggregate.csproj.user create mode 100644 Code/Chapter 13/C#/SqlServerAggregate/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/C#/SqlServerAggregate/bin/Debug/SqlServerAggregate.dll create mode 100644 Code/Chapter 13/C#/SqlServerAggregate/bin/Debug/SqlServerAggregate.pdb create mode 100644 Code/Chapter 13/C#/SqlServerAggregate/obj/Debug/SqlServerAggregate.dll create mode 100644 Code/Chapter 13/C#/SqlServerAggregate/obj/Debug/SqlServerAggregate.pdb create mode 100644 Code/Chapter 13/C#/SqlServerAggregate/obj/SqlServerAggregate.csproj.FileList.txt create mode 100644 Code/Chapter 13/C#/SqlServerStoredProc/AssemblyInfo.cs create mode 100644 Code/Chapter 13/C#/SqlServerStoredProc/GetNames.cs create mode 100644 Code/Chapter 13/C#/SqlServerStoredProc/SqlServerStoredProc.csproj create mode 100644 Code/Chapter 13/C#/SqlServerStoredProc/SqlServerStoredProc.csproj.user create mode 100644 Code/Chapter 13/C#/SqlServerStoredProc/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/C#/SqlServerStoredProc/bin/Debug/SqlServerStoredProc.dll create mode 100644 Code/Chapter 13/C#/SqlServerStoredProc/bin/Debug/SqlServerStoredProc.pdb create mode 100644 Code/Chapter 13/C#/SqlServerStoredProc/obj/Debug/SqlServerStoredProc.dll create mode 100644 Code/Chapter 13/C#/SqlServerStoredProc/obj/Debug/SqlServerStoredProc.pdb create mode 100644 Code/Chapter 13/C#/SqlServerStoredProc/obj/SqlServerStoredProc.csproj.FileList.txt create mode 100644 Code/Chapter 13/C#/SqlServerTVF/AssemblyInfo.cs create mode 100644 Code/Chapter 13/C#/SqlServerTVF/NameToAscii.cs create mode 100644 Code/Chapter 13/C#/SqlServerTVF/SqlServerTVF.csproj create mode 100644 Code/Chapter 13/C#/SqlServerTVF/SqlServerTVF.csproj.user create mode 100644 Code/Chapter 13/C#/SqlServerTVF/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/C#/SqlServerTVF/bin/Debug/SqlServerTVF.dll create mode 100644 Code/Chapter 13/C#/SqlServerTVF/bin/Debug/SqlServerTVF.pdb create mode 100644 Code/Chapter 13/C#/SqlServerTVF/obj/Debug/SqlServerTVF.dll create mode 100644 Code/Chapter 13/C#/SqlServerTVF/obj/Debug/SqlServerTVF.pdb create mode 100644 Code/Chapter 13/C#/SqlServerTVF/obj/SqlServerTVF.csproj.FileList.txt create mode 100644 Code/Chapter 13/C#/SqlServerTrigger/AssemblyInfo.cs create mode 100644 Code/Chapter 13/C#/SqlServerTrigger/MonkeyTrigger.cs create mode 100644 Code/Chapter 13/C#/SqlServerTrigger/SqlServerTrigger.csproj create mode 100644 Code/Chapter 13/C#/SqlServerTrigger/SqlServerTrigger.csproj.user create mode 100644 Code/Chapter 13/C#/SqlServerTrigger/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/C#/SqlServerTrigger/bin/Debug/SqlServerTrigger.dll create mode 100644 Code/Chapter 13/C#/SqlServerTrigger/bin/Debug/SqlServerTrigger.pdb create mode 100644 Code/Chapter 13/C#/SqlServerTrigger/obj/Debug/SqlServerTrigger.dll create mode 100644 Code/Chapter 13/C#/SqlServerTrigger/obj/Debug/SqlServerTrigger.pdb create mode 100644 Code/Chapter 13/C#/SqlServerTrigger/obj/SqlServerTrigger.csproj.FileList.txt create mode 100644 Code/Chapter 13/C#/SqlServerUDF/AssemblyInfo.cs create mode 100644 Code/Chapter 13/C#/SqlServerUDF/GetRandomNumber.cs create mode 100644 Code/Chapter 13/C#/SqlServerUDF/SqlServerUDF.csproj create mode 100644 Code/Chapter 13/C#/SqlServerUDF/SqlServerUDF.csproj.user create mode 100644 Code/Chapter 13/C#/SqlServerUDF/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/C#/SqlServerUDF/bin/Debug/SqlServerUDF.dll create mode 100644 Code/Chapter 13/C#/SqlServerUDF/bin/Debug/SqlServerUDF.pdb create mode 100644 Code/Chapter 13/C#/SqlServerUDF/obj/Debug/SqlServerUDF.dll create mode 100644 Code/Chapter 13/C#/SqlServerUDF/obj/Debug/SqlServerUDF.pdb create mode 100644 Code/Chapter 13/C#/SqlServerUDF/obj/SqlServerProject.csproj.FileList.txt create mode 100644 Code/Chapter 13/C#/SqlServerUDF/obj/SqlServerUDF.csproj.FileList.txt create mode 100644 Code/Chapter 13/C#/SqlTVFExternalAccess/AssemblyInfo.cs create mode 100644 Code/Chapter 13/C#/SqlTVFExternalAccess/ListDirectory.cs create mode 100644 Code/Chapter 13/C#/SqlTVFExternalAccess/SqlTVFExternalAccess.csproj create mode 100644 Code/Chapter 13/C#/SqlTVFExternalAccess/SqlTVFExternalAccess.csproj.user create mode 100644 Code/Chapter 13/C#/SqlTVFExternalAccess/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/C#/SqlTVFExternalAccess/bin/Debug/SqlTVFExternalAccess.dll create mode 100644 Code/Chapter 13/C#/SqlTVFExternalAccess/bin/Debug/SqlTVFExternalAccess.pdb create mode 100644 Code/Chapter 13/C#/SqlTVFExternalAccess/obj/Debug/SqlTVFExternalAccess.dll create mode 100644 Code/Chapter 13/C#/SqlTVFExternalAccess/obj/Debug/SqlTVFExternalAccess.pdb create mode 100644 Code/Chapter 13/C#/SqlTVFExternalAccess/obj/SqlTVFExternalAccess.csproj.FileList.txt create mode 100644 Code/Chapter 13/SQL/Readme.txt create mode 100644 Code/Chapter 13/VB.NET/Chapter 13.sln create mode 100644 Code/Chapter 13/VB.NET/Chapter 13.suo create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/HandWrittenUDF.vbproj create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/HandWrittenUDF.vbproj.user create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Application.Designer.vb create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Application.myapp create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Resources.resx create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Settings.settings create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/UserDefinedFunctions.vb create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/bin/Debug/HandWrittenUDF.dll create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/bin/Debug/HandWrittenUDF.pdb create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/bin/Debug/HandWrittenUDF.xml create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.Resources.resources create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.dll create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.pdb create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.xml create mode 100644 Code/Chapter 13/VB.NET/HandWrittenUDF/obj/HandWrittenUDF.vbproj.FileList.txt create mode 100644 Code/Chapter 13/VB.NET/SqlServerAggregate/AssemblyInfo.vb create mode 100644 Code/Chapter 13/VB.NET/SqlServerAggregate/Concatenator.vb create mode 100644 Code/Chapter 13/VB.NET/SqlServerAggregate/SqlServerAggregate.vbproj create mode 100644 Code/Chapter 13/VB.NET/SqlServerAggregate/SqlServerAggregate.vbproj.user create mode 100644 Code/Chapter 13/VB.NET/SqlServerAggregate/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/VB.NET/SqlServerAggregate/bin/SqlServerAggregate.dll create mode 100644 Code/Chapter 13/VB.NET/SqlServerAggregate/bin/SqlServerAggregate.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlServerAggregate/obj/Debug/SqlServerAggregate.dll create mode 100644 Code/Chapter 13/VB.NET/SqlServerAggregate/obj/Debug/SqlServerAggregate.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlServerAggregate/obj/SqlServerAggregate.vbproj.FileList.txt create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/AssemblyInfo.vb create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/GetNames.vb create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/My Project/Application.Designer.vb create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/My Project/Application.myapp create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/SqlServerStoredProc.vbproj create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/SqlServerStoredProc.vbproj.user create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/bin/SqlServerStoredProc.dll create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/bin/SqlServerStoredProc.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/obj/Debug/SqlServerStoredProc.dll create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/obj/Debug/SqlServerStoredProc.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlServerStoredProc/obj/SqlServerStoredProc.vbproj.FileList.txt create mode 100644 Code/Chapter 13/VB.NET/SqlServerTVF/AssemblyInfo.vb create mode 100644 Code/Chapter 13/VB.NET/SqlServerTVF/NameToAscii.vb create mode 100644 Code/Chapter 13/VB.NET/SqlServerTVF/SqlServerTVF.vbproj create mode 100644 Code/Chapter 13/VB.NET/SqlServerTVF/SqlServerTVF.vbproj.user create mode 100644 Code/Chapter 13/VB.NET/SqlServerTVF/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/VB.NET/SqlServerTVF/bin/SqlServerTVF.dll create mode 100644 Code/Chapter 13/VB.NET/SqlServerTVF/bin/SqlServerTVF.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlServerTVF/obj/Debug/SqlServerTVF.dll create mode 100644 Code/Chapter 13/VB.NET/SqlServerTVF/obj/Debug/SqlServerTVF.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlServerTVF/obj/SqlServerTVF.vbproj.FileList.txt create mode 100644 Code/Chapter 13/VB.NET/SqlServerTrigger/AssemblyInfo.vb create mode 100644 Code/Chapter 13/VB.NET/SqlServerTrigger/MonkeyTrigger.vb create mode 100644 Code/Chapter 13/VB.NET/SqlServerTrigger/SqlServerTrigger.vbproj create mode 100644 Code/Chapter 13/VB.NET/SqlServerTrigger/SqlServerTrigger.vbproj.user create mode 100644 Code/Chapter 13/VB.NET/SqlServerTrigger/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/VB.NET/SqlServerTrigger/bin/SqlServerTrigger.dll create mode 100644 Code/Chapter 13/VB.NET/SqlServerTrigger/bin/SqlServerTrigger.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlServerTrigger/obj/Debug/SqlServerTrigger.dll create mode 100644 Code/Chapter 13/VB.NET/SqlServerTrigger/obj/Debug/SqlServerTrigger.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlServerTrigger/obj/SqlServerTrigger.vbproj.FileList.txt create mode 100644 Code/Chapter 13/VB.NET/SqlServerUDF/AssemblyInfo.vb create mode 100644 Code/Chapter 13/VB.NET/SqlServerUDF/GetRandomNumber.vb create mode 100644 Code/Chapter 13/VB.NET/SqlServerUDF/SqlServerUDF.vbproj create mode 100644 Code/Chapter 13/VB.NET/SqlServerUDF/SqlServerUDF.vbproj.user create mode 100644 Code/Chapter 13/VB.NET/SqlServerUDF/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/VB.NET/SqlServerUDF/bin/SqlServerUDF.dll create mode 100644 Code/Chapter 13/VB.NET/SqlServerUDF/bin/SqlServerUDF.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlServerUDF/bin/SqlServerUDF.vshost.exe create mode 100644 Code/Chapter 13/VB.NET/SqlServerUDF/obj/Debug/SqlServerUDF.dll create mode 100644 Code/Chapter 13/VB.NET/SqlServerUDF/obj/Debug/SqlServerUDF.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlServerUDF/obj/SqlServerUDF.vbproj.FileList.txt create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/AssemblyInfo.vb create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/ListDirectory.vb create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/My Project/Application.Designer.vb create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/My Project/Application.myapp create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/SqlTVFExternalAccess.vbproj create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/SqlTVFExternalAccess.vbproj.user create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/Test Scripts/Test.sql create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/bin/SqlTVFExternalAccess.dll create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/bin/SqlTVFExternalAccess.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/obj/Debug/SqlTVFExternalAccess.dll create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/obj/Debug/SqlTVFExternalAccess.pdb create mode 100644 Code/Chapter 13/VB.NET/SqlTVFExternalAccess/obj/SqlTVFExternalAccess.vbproj.FileList.txt create mode 100644 Code/Chapter 3/C#/Chapter3.sln create mode 100644 Code/Chapter 3/C#/Chapter3.suo create mode 100644 Code/Chapter 3/C#/ConsoleApp/ConsoleApp.csproj create mode 100644 Code/Chapter 3/C#/ConsoleApp/ConsoleApp.csproj.user create mode 100644 Code/Chapter 3/C#/ConsoleApp/Program.cs create mode 100644 Code/Chapter 3/C#/ConsoleApp/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 3/C#/ConsoleApp/Properties/Settings.Designer.cs create mode 100644 Code/Chapter 3/C#/ConsoleApp/Properties/Settings.settings create mode 100644 Code/Chapter 3/C#/ConsoleApp/TestDataSet.Designer.cs create mode 100644 Code/Chapter 3/C#/ConsoleApp/TestDataSet.xsc create mode 100644 Code/Chapter 3/C#/ConsoleApp/TestDataSet.xsd create mode 100644 Code/Chapter 3/C#/ConsoleApp/TestDataSet.xss create mode 100644 Code/Chapter 3/C#/ConsoleApp/app.config create mode 100644 Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.exe create mode 100644 Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.exe.config create mode 100644 Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.pdb create mode 100644 Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.vshost.exe create mode 100644 Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.vshost.exe.config create mode 100644 Code/Chapter 3/C#/ConsoleApp/obj/ConsoleApp.csproj.FileList.txt create mode 100644 Code/Chapter 3/C#/ConsoleApp/obj/Debug/ConsoleApp.exe create mode 100644 Code/Chapter 3/C#/ConsoleApp/obj/Debug/ConsoleApp.pdb create mode 100644 Code/Chapter 3/C#/ConsoleApp/obj/Debug/TempPE/TestDataSet.Designer.cs.dll create mode 100644 Code/Chapter 3/C#/ConsoleApp2/ConsoleApp2.csproj create mode 100644 Code/Chapter 3/C#/ConsoleApp2/ConsoleApp2.csproj.user create mode 100644 Code/Chapter 3/C#/ConsoleApp2/Program.cs create mode 100644 Code/Chapter 3/C#/ConsoleApp2/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 3/C#/ConsoleApp2/bin/Debug/ConsoleApp2.exe create mode 100644 Code/Chapter 3/C#/ConsoleApp2/bin/Debug/ConsoleApp2.pdb create mode 100644 Code/Chapter 3/C#/ConsoleApp2/bin/Debug/ConsoleApp2.vshost.exe create mode 100644 Code/Chapter 3/C#/ConsoleApp2/obj/ConsoleApp2.csproj.FileList.txt create mode 100644 Code/Chapter 3/C#/ConsoleApp2/obj/Debug/ConsoleApp2.exe create mode 100644 Code/Chapter 3/C#/ConsoleApp2/obj/Debug/ConsoleApp2.pdb create mode 100644 Code/Chapter 3/C#/DragDropWebsite/Default.aspx create mode 100644 Code/Chapter 3/C#/DragDropWebsite/Default.aspx.cs create mode 100644 Code/Chapter 3/C#/DragDropWebsite/Web.Config create mode 100644 Code/Chapter 3/C#/DragDropWinApp/DragDropWinApp.csproj create mode 100644 Code/Chapter 3/C#/DragDropWinApp/DragDropWinApp.csproj.user create mode 100644 Code/Chapter 3/C#/DragDropWinApp/Form1.Designer.cs create mode 100644 Code/Chapter 3/C#/DragDropWinApp/Form1.cs create mode 100644 Code/Chapter 3/C#/DragDropWinApp/Form1.resx create mode 100644 Code/Chapter 3/C#/DragDropWinApp/Program.cs create mode 100644 Code/Chapter 3/C#/DragDropWinApp/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 3/C#/DragDropWinApp/Properties/Resources.Designer.cs create mode 100644 Code/Chapter 3/C#/DragDropWinApp/Properties/Resources.resx create mode 100644 Code/Chapter 3/C#/DragDropWinApp/Properties/Settings.Designer.cs create mode 100644 Code/Chapter 3/C#/DragDropWinApp/Properties/Settings.settings create mode 100644 Code/Chapter 3/C#/DragDropWinApp/TestDataSet.Designer.cs create mode 100644 Code/Chapter 3/C#/DragDropWinApp/TestDataSet.cs create mode 100644 Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xsc create mode 100644 Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xsd create mode 100644 Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xss create mode 100644 Code/Chapter 3/C#/DragDropWinApp/app.config create mode 100644 Code/Chapter 3/C#/DragDropWinApp/bin/Debug/DragDropWinApp.exe create mode 100644 Code/Chapter 3/C#/DragDropWinApp/bin/Debug/DragDropWinApp.exe.config create mode 100644 Code/Chapter 3/C#/DragDropWinApp/bin/Debug/DragDropWinApp.pdb create mode 100644 Code/Chapter 3/C#/DragDropWinApp/bin/Debug/DragDropWinApp.vshost.exe create mode 100644 Code/Chapter 3/C#/DragDropWinApp/bin/Debug/DragDropWinApp.vshost.exe.config create mode 100644 Code/Chapter 3/C#/DragDropWinApp/obj/Debug/DragDropWinApp.Form1.resources create mode 100644 Code/Chapter 3/C#/DragDropWinApp/obj/Debug/DragDropWinApp.Properties.Resources.resources create mode 100644 Code/Chapter 3/C#/DragDropWinApp/obj/Debug/DragDropWinApp.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 3/C#/DragDropWinApp/obj/Debug/DragDropWinApp.exe create mode 100644 Code/Chapter 3/C#/DragDropWinApp/obj/Debug/DragDropWinApp.pdb create mode 100644 Code/Chapter 3/C#/DragDropWinApp/obj/Debug/TempPE/TestDataSet.Designer.cs.dll create mode 100644 Code/Chapter 3/C#/DragDropWinApp/obj/DragDropWinApp.csproj.FileList.txt create mode 100644 Code/Chapter 3/SQL/Create Database.sql create mode 100644 Code/Chapter 3/VB.NET/Chapter3.sln create mode 100644 Code/Chapter 3/VB.NET/Chapter3.suo create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/ConsoleApp.vbproj create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/ConsoleApp.vbproj.user create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/Module1.vb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/My Project/Application.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/My Project/Application.myapp create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/My Project/Resources.resx create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/My Project/Settings.settings create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xsc create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xsd create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xss create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/app.config create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/bin/Debug/ConsoleApp.exe create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/bin/Debug/ConsoleApp.exe.config create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/bin/Debug/ConsoleApp.pdb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/bin/Debug/ConsoleApp.xml create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/obj/ConsoleApp.vbproj.FileList.txt create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.Resources.resources create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.exe create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.pdb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.xml create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/TempPE/TestDataSet.Designer.vb.dll create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/ConsoleApp2.vbproj create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/ConsoleApp2.vbproj.user create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/Module1.vb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Application.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Application.myapp create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Resources.resx create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Settings.settings create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.exe create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.pdb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.vshost.exe create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.xml create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/obj/ConsoleApp2.vbproj.FileList.txt create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.Resources.resources create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.exe create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.pdb create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.xml create mode 100644 Code/Chapter 3/VB.NET/DragDropWebsite/Default.aspx create mode 100644 Code/Chapter 3/VB.NET/DragDropWebsite/Default.aspx.cs create mode 100644 Code/Chapter 3/VB.NET/DragDropWebsite/Web.Config create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/DragDropWinApp.vbproj create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/DragDropWinApp.vbproj.user create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/Form1.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/Form1.resx create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/Form1.vb create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Application.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Application.myapp create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/My Project/ApplicationEvents.vb create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Resources.resx create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Settings.settings create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.Designer.vb create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xsc create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xsd create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xss create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/app.config create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.exe create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.exe.config create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.pdb create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.vshost.exe create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.vshost.exe.config create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.xml create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/DragDropWinApp.Form1.resources create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/DragDropWinApp.Resources.resources create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/DragDropWinApp.exe create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/DragDropWinApp.pdb create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/DragDropWinApp.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/DragDropWinApp.xml create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/TempPE/TestDataSet.Designer.vb.dll create mode 100644 Code/Chapter 3/VB.NET/DragDropWinApp/obj/DragDropWinApp.vbproj.FileList.txt create mode 100644 Code/Chapter 4/C#/Chapter 4.sln create mode 100644 Code/Chapter 4/C#/Chapter 4.suo create mode 100644 Code/Chapter 4/C#/Example 4.1/Exercise 4.1.csproj create mode 100644 Code/Chapter 4/C#/Example 4.1/Exercise 4.1.csproj.user create mode 100644 Code/Chapter 4/C#/Example 4.1/Program.cs create mode 100644 Code/Chapter 4/C#/Example 4.1/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 4/C#/Example 4.1/Properties/Resources.Designer.cs create mode 100644 Code/Chapter 4/C#/Example 4.1/Properties/Resources.resx create mode 100644 Code/Chapter 4/C#/Example 4.1/Properties/Settings.Designer.cs create mode 100644 Code/Chapter 4/C#/Example 4.1/Properties/Settings.settings create mode 100644 Code/Chapter 4/C#/Example 4.1/bin/Debug/Example 4.1.vshost.exe create mode 100644 Code/Chapter 4/C#/Example 4.1/bin/Debug/Exercise 4.1.exe create mode 100644 Code/Chapter 4/C#/Example 4.1/bin/Debug/Exercise 4.1.pdb create mode 100644 Code/Chapter 4/C#/Example 4.1/bin/Debug/Exercise 4.1.vshost.exe create mode 100644 Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise 4.1.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise 4.1.exe create mode 100644 Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise 4.1.pdb create mode 100644 Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise_4_1.Properties.Resources.resources create mode 100644 Code/Chapter 4/C#/Example 4.1/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll create mode 100644 Code/Chapter 4/C#/Example 4.1/obj/Exercise 4.1.csproj.FileList.txt create mode 100644 Code/Chapter 4/C#/Example 4.2/Exercise 4.2.csproj create mode 100644 Code/Chapter 4/C#/Example 4.2/Exercise 4.2.csproj.user create mode 100644 Code/Chapter 4/C#/Example 4.2/Program.cs create mode 100644 Code/Chapter 4/C#/Example 4.2/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 4/C#/Example 4.2/Properties/Resources.Designer.cs create mode 100644 Code/Chapter 4/C#/Example 4.2/Properties/Resources.resx create mode 100644 Code/Chapter 4/C#/Example 4.2/Properties/Settings.Designer.cs create mode 100644 Code/Chapter 4/C#/Example 4.2/Properties/Settings.settings create mode 100644 Code/Chapter 4/C#/Example 4.2/app.config create mode 100644 Code/Chapter 4/C#/Example 4.2/bin/Debug/Exercise 4.2.exe create mode 100644 Code/Chapter 4/C#/Example 4.2/bin/Debug/Exercise 4.2.exe.config create mode 100644 Code/Chapter 4/C#/Example 4.2/bin/Debug/Exercise 4.2.pdb create mode 100644 Code/Chapter 4/C#/Example 4.2/obj/Debug/Exercise 4.2.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 4/C#/Example 4.2/obj/Debug/Exercise 4.2.exe create mode 100644 Code/Chapter 4/C#/Example 4.2/obj/Debug/Exercise 4.2.pdb create mode 100644 Code/Chapter 4/C#/Example 4.2/obj/Debug/Exercise_4_2.Properties.Resources.resources create mode 100644 Code/Chapter 4/C#/Example 4.2/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll create mode 100644 Code/Chapter 4/C#/Example 4.2/obj/Exercise 4.2.csproj.FileList.txt create mode 100644 Code/Chapter 4/C#/Example 4.3/Example 4.suo create mode 100644 Code/Chapter 4/C#/Example 4.3/Exercise 4.3.csproj create mode 100644 Code/Chapter 4/C#/Example 4.3/Exercise 4.3.csproj.user create mode 100644 Code/Chapter 4/C#/Example 4.3/Program.cs create mode 100644 Code/Chapter 4/C#/Example 4.3/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 4/C#/Example 4.3/Properties/Resources.Designer.cs create mode 100644 Code/Chapter 4/C#/Example 4.3/Properties/Resources.resx create mode 100644 Code/Chapter 4/C#/Example 4.3/Properties/Settings.Designer.cs create mode 100644 Code/Chapter 4/C#/Example 4.3/Properties/Settings.settings create mode 100644 Code/Chapter 4/C#/Example 4.3/bin/Debug/Exercise 4.3.exe create mode 100644 Code/Chapter 4/C#/Example 4.3/bin/Debug/Exercise 4.3.pdb create mode 100644 Code/Chapter 4/C#/Example 4.3/obj/Debug/Exercise 4.3.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 4/C#/Example 4.3/obj/Debug/Exercise 4.3.exe create mode 100644 Code/Chapter 4/C#/Example 4.3/obj/Debug/Exercise 4.3.pdb create mode 100644 Code/Chapter 4/C#/Example 4.3/obj/Debug/Exercise_4_3.Properties.Resources.resources create mode 100644 Code/Chapter 4/C#/Example 4.3/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll create mode 100644 Code/Chapter 4/C#/Example 4.3/obj/Exercise 4.3.csproj.FileList.txt create mode 100644 Code/Chapter 4/VB.NET/Chapter 4.sln create mode 100644 Code/Chapter 4/VB.NET/Chapter 4.suo create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/Exercise 4.1.vbproj create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/Exercise 4.1.vbproj.user create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/Module1.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Application.Designer.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Application.myapp create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Resources.resx create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Settings.settings create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise 4.1.exe create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise 4.1.pdb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise 4.1.vshost.exe create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise_4.1.xml create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise 4.1.exe create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise 4.1.pdb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise 4.1.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise_4.1.xml create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise_4_1.Resources.resources create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.1/obj/Exercise 4.1.vbproj.FileList.txt create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/Exercise 4.2.vbproj create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/Exercise 4.2.vbproj.user create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/Module1.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Application.Designer.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Application.myapp create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Resources.resx create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Settings.settings create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/bin/Debug/Exercise 4.2.exe create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/bin/Debug/Exercise 4.2.pdb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/bin/Debug/Exercise_4.2.xml create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/Exercise 4.2.exe create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/Exercise 4.2.pdb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/Exercise 4.2.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/Exercise_4.2.xml create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/Exercise_4_2.Resources.resources create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.2/obj/Exercise 4.2.vbproj.FileList.txt create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/Exercise 4.3.vbproj create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/Exercise 4.3.vbproj.user create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/Module1.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Application.Designer.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Application.myapp create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Resources.resx create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Settings.settings create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/bin/Debug/Exercise 4.3.exe create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/bin/Debug/Exercise 4.3.pdb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/bin/Debug/Exercise_4.3.xml create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise 4.3.exe create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise 4.3.pdb create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise 4.3.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise_4.3.xml create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise_4_3.Resources.resources create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 4/VB.NET/Exercise 4.3/obj/Exercise 4.3.vbproj.FileList.txt create mode 100644 Code/Chapter 5/C#/Chapter 5.sln create mode 100644 Code/Chapter 5/C#/Chapter 5.suo create mode 100644 Code/Chapter 5/C#/Example 5.1/Example 5.1.csproj create mode 100644 Code/Chapter 5/C#/Example 5.1/Example 5.1.csproj.user create mode 100644 Code/Chapter 5/C#/Example 5.1/Example 5.suo create mode 100644 Code/Chapter 5/C#/Example 5.1/Program.cs create mode 100644 Code/Chapter 5/C#/Example 5.1/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 5/C#/Example 5.1/Properties/Resources.cs create mode 100644 Code/Chapter 5/C#/Example 5.1/Properties/Resources.resx create mode 100644 Code/Chapter 5/C#/Example 5.1/Properties/Settings.cs create mode 100644 Code/Chapter 5/C#/Example 5.1/Properties/Settings.settings create mode 100644 Code/Chapter 5/C#/Example 5.1/bin/Debug/Example 5.1.exe create mode 100644 Code/Chapter 5/C#/Example 5.1/bin/Debug/Example 5.1.pdb create mode 100644 Code/Chapter 5/C#/Example 5.1/bin/Debug/Example 5.1.vshost.exe create mode 100644 Code/Chapter 5/C#/Example 5.1/obj/Debug/Example 5.1.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 5/C#/Example 5.1/obj/Debug/Example 5.1.exe create mode 100644 Code/Chapter 5/C#/Example 5.1/obj/Debug/Example 5.1.pdb create mode 100644 Code/Chapter 5/C#/Example 5.1/obj/Debug/Example_5_1.Properties.Resources.resources create mode 100644 Code/Chapter 5/C#/Example 5.1/obj/Example 5.1.csproj.FileList.txt create mode 100644 Code/Chapter 5/C#/Example 5.2/Example 5.2.csproj create mode 100644 Code/Chapter 5/C#/Example 5.2/Example 5.2.csproj.user create mode 100644 Code/Chapter 5/C#/Example 5.2/Example 5.suo create mode 100644 Code/Chapter 5/C#/Example 5.2/Program.cs create mode 100644 Code/Chapter 5/C#/Example 5.2/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 5/C#/Example 5.2/Properties/Resources.cs create mode 100644 Code/Chapter 5/C#/Example 5.2/Properties/Resources.resx create mode 100644 Code/Chapter 5/C#/Example 5.2/Properties/Settings.cs create mode 100644 Code/Chapter 5/C#/Example 5.2/Properties/Settings.settings create mode 100644 Code/Chapter 5/C#/Example 5.2/app.config create mode 100644 Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.exe create mode 100644 Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.exe.config create mode 100644 Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.pdb create mode 100644 Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.vshost.exe create mode 100644 Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.vshost.exe.config create mode 100644 Code/Chapter 5/C#/Example 5.2/obj/Debug/Example 5.2.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 5/C#/Example 5.2/obj/Debug/Example 5.2.exe create mode 100644 Code/Chapter 5/C#/Example 5.2/obj/Debug/Example 5.2.pdb create mode 100644 Code/Chapter 5/C#/Example 5.2/obj/Debug/Example_5_2.Properties.Resources.resources create mode 100644 Code/Chapter 5/C#/Example 5.2/obj/Example 5.2.csproj.FileList.txt create mode 100644 Code/Chapter 5/C#/Example 5.3/Example 5.3.csproj create mode 100644 Code/Chapter 5/C#/Example 5.3/Example 5.3.csproj.user create mode 100644 Code/Chapter 5/C#/Example 5.3/Example 5.suo create mode 100644 Code/Chapter 5/C#/Example 5.3/Form1.Designer.cs create mode 100644 Code/Chapter 5/C#/Example 5.3/Form1.cs create mode 100644 Code/Chapter 5/C#/Example 5.3/Form1.resx create mode 100644 Code/Chapter 5/C#/Example 5.3/Program.cs create mode 100644 Code/Chapter 5/C#/Example 5.3/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 5/C#/Example 5.3/Properties/Resources.cs create mode 100644 Code/Chapter 5/C#/Example 5.3/Properties/Resources.resx create mode 100644 Code/Chapter 5/C#/Example 5.3/Properties/Settings.cs create mode 100644 Code/Chapter 5/C#/Example 5.3/Properties/Settings.settings create mode 100644 Code/Chapter 5/C#/Example 5.3/bin/Debug/Exampple 5.4.exe create mode 100644 Code/Chapter 5/C#/Example 5.3/bin/Debug/Exampple 5.4.pdb create mode 100644 Code/Chapter 5/C#/Example 5.3/bin/Debug/Exampple 5.4.vshost.exe create mode 100644 Code/Chapter 5/C#/Example 5.3/obj/Debug/Example 5.3.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 5/C#/Example 5.3/obj/Debug/Example_5_3.Form1.resources create mode 100644 Code/Chapter 5/C#/Example 5.3/obj/Debug/Exampple 5.4.exe create mode 100644 Code/Chapter 5/C#/Example 5.3/obj/Debug/Exampple 5.4.pdb create mode 100644 Code/Chapter 5/C#/Example 5.3/obj/Debug/Exampple_5_4.Properties.Resources.resources create mode 100644 Code/Chapter 5/C#/Example 5.3/obj/Example 5.3.csproj.FileList.txt create mode 100644 Code/Chapter 5/C#/Example 5.4/Example 5.4.csproj create mode 100644 Code/Chapter 5/C#/Example 5.4/Example 5.4.csproj.user create mode 100644 Code/Chapter 5/C#/Example 5.4/Example 5.suo create mode 100644 Code/Chapter 5/C#/Example 5.4/Form1.Designer.cs create mode 100644 Code/Chapter 5/C#/Example 5.4/Form1.cs create mode 100644 Code/Chapter 5/C#/Example 5.4/Form1.resx create mode 100644 Code/Chapter 5/C#/Example 5.4/Program.cs create mode 100644 Code/Chapter 5/C#/Example 5.4/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 5/C#/Example 5.4/Properties/Resources.cs create mode 100644 Code/Chapter 5/C#/Example 5.4/Properties/Resources.resx create mode 100644 Code/Chapter 5/C#/Example 5.4/Properties/Settings.cs create mode 100644 Code/Chapter 5/C#/Example 5.4/Properties/Settings.settings create mode 100644 Code/Chapter 5/C#/Example 5.4/bin/Debug/Exampple 5.4.exe create mode 100644 Code/Chapter 5/C#/Example 5.4/bin/Debug/Exampple 5.4.pdb create mode 100644 Code/Chapter 5/C#/Example 5.4/bin/Debug/Exampple 5.4.vshost.exe create mode 100644 Code/Chapter 5/C#/Example 5.4/obj/Debug/Example 5.4.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 5/C#/Example 5.4/obj/Debug/Example_5_4.Form1.resources create mode 100644 Code/Chapter 5/C#/Example 5.4/obj/Debug/Exampple 5.4.exe create mode 100644 Code/Chapter 5/C#/Example 5.4/obj/Debug/Exampple 5.4.pdb create mode 100644 Code/Chapter 5/C#/Example 5.4/obj/Debug/Exampple_5_4.Properties.Resources.resources create mode 100644 Code/Chapter 5/C#/Example 5.4/obj/Example 5.4.csproj.FileList.txt create mode 100644 Code/Chapter 5/C#/Example 5.5/Example 5.5.csproj create mode 100644 Code/Chapter 5/C#/Example 5.5/Example 5.5.csproj.user create mode 100644 Code/Chapter 5/C#/Example 5.5/Example 5.suo create mode 100644 Code/Chapter 5/C#/Example 5.5/Program.cs create mode 100644 Code/Chapter 5/C#/Example 5.5/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 5/C#/Example 5.5/Properties/Resources.cs create mode 100644 Code/Chapter 5/C#/Example 5.5/Properties/Resources.resx create mode 100644 Code/Chapter 5/C#/Example 5.5/Properties/Settings.cs create mode 100644 Code/Chapter 5/C#/Example 5.5/Properties/Settings.settings create mode 100644 Code/Chapter 5/C#/Example 5.5/app.config create mode 100644 Code/Chapter 5/C#/Example 5.5/bin/Debug/Example 5.2.exe create mode 100644 Code/Chapter 5/C#/Example 5.5/bin/Debug/Example 5.2.exe.config create mode 100644 Code/Chapter 5/C#/Example 5.5/bin/Debug/Example 5.2.pdb create mode 100644 Code/Chapter 5/C#/Example 5.5/obj/Debug/Example 5.2.exe create mode 100644 Code/Chapter 5/C#/Example 5.5/obj/Debug/Example 5.2.pdb create mode 100644 Code/Chapter 5/C#/Example 5.5/obj/Debug/Example 5.5.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 5/C#/Example 5.5/obj/Debug/Example_5_2.Properties.Resources.resources create mode 100644 Code/Chapter 5/C#/Example 5.5/obj/Example 5.5.csproj.FileList.txt create mode 100644 Code/Chapter 5/C#/UDT/AssemblyInfo.cs create mode 100644 Code/Chapter 5/C#/UDT/Test Scripts/Test.sql create mode 100644 Code/Chapter 5/C#/UDT/UDT.csproj create mode 100644 Code/Chapter 5/C#/UDT/UDT.csproj.user create mode 100644 Code/Chapter 5/C#/UDT/XYCoOrdinate.cs create mode 100644 Code/Chapter 5/C#/UDT/bin/Debug/UDT.dll create mode 100644 Code/Chapter 5/C#/UDT/bin/Debug/UDT.pdb create mode 100644 Code/Chapter 5/C#/UDT/obj/Debug/UDT.dll create mode 100644 Code/Chapter 5/C#/UDT/obj/Debug/UDT.pdb create mode 100644 Code/Chapter 5/C#/UDT/obj/UDT.csproj.FileList.txt create mode 100644 Code/Chapter 5/VB.NET/Chapter 5.sln create mode 100644 Code/Chapter 5/VB.NET/Chapter 5.suo create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/Exercise 5.1.vbproj create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/Exercise 5.1.vbproj.user create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/Module1.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Application.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Application.myapp create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Resources.resx create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Settings.settings create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise 5.1.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise 5.1.pdb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise 5.1.vshost.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise_5.1.xml create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise 5.1.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise 5.1.pdb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise 5.1.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise_5.1.xml create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise_5_1.Resources.resources create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.1/obj/Exercise 5.1.vbproj.FileList.txt create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/Exercise 5.2.vbproj create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/Exercise 5.2.vbproj.user create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/Module1.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Application.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Application.myapp create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Resources.resx create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Settings.settings create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/bin/Debug/Exercise 5.2.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/bin/Debug/Exercise 5.2.pdb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/bin/Debug/Exercise 5.2.vshost.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/bin/Debug/Exercise_5.2.xml create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise 5.2.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise 5.2.pdb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise 5.2.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise_5.2.xml create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise_5_2.Resources.resources create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.2/obj/Exercise 5.2.vbproj.FileList.txt create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/Exercise 5.3.vbproj create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/Exercise 5.3.vbproj.user create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/Form1.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/Form1.resx create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/Form1.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Application.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Application.myapp create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/My Project/ApplicationEvents.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Resources.resx create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Settings.settings create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/bin/Debug/Exercise 5.3.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/bin/Debug/Exercise 5.3.pdb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/bin/Debug/Exercise_5.3.xml create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise 5.3.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise 5.3.pdb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise 5.3.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise_5.3.xml create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise_5_3.Form1.resources create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise_5_3.Resources.resources create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.3/obj/Exercise 5.3.vbproj.FileList.txt create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/Exercise 5.4.vbproj create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/Exercise 5.4.vbproj.user create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/Form1.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/Form1.resx create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/Form1.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Application.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Application.myapp create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/My Project/ApplicationEvents.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Resources.resx create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Settings.settings create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/bin/Debug/Exercise 5.4.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/bin/Debug/Exercise 5.4.pdb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/bin/Debug/Exercise_5.4.xml create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise 5.4.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise 5.4.pdb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise 5.4.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise_5.4.xml create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise_5_4.Form1.resources create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise_5_4.Resources.resources create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.4/obj/Exercise 5.4.vbproj.FileList.txt create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/Exercise 5.5.vbproj create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/Exercise 5.5.vbproj.user create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/Module1.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Application.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Application.myapp create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Resources.resx create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Settings.settings create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/bin/Debug/Exercise 5.5.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/bin/Debug/Exercise 5.5.pdb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/bin/Debug/Exercise_5.5.xml create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise 5.5.exe create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise 5.5.pdb create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise 5.5.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise_5.5.xml create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise_5_5.Resources.resources create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 5/VB.NET/Exercise 5.5/obj/Exercise 5.5.vbproj.FileList.txt create mode 100644 Code/Chapter 5/VB.NET/UDT/AssemblyInfo.vb create mode 100644 Code/Chapter 5/VB.NET/UDT/Test Scripts/Test.sql create mode 100644 Code/Chapter 5/VB.NET/UDT/UDT.vbproj create mode 100644 Code/Chapter 5/VB.NET/UDT/UDT.vbproj.user create mode 100644 Code/Chapter 5/VB.NET/UDT/XYCoOrdinate.vb create mode 100644 Code/Chapter 5/VB.NET/UDT/bin/UDT.dll create mode 100644 Code/Chapter 5/VB.NET/UDT/bin/UDT.pdb create mode 100644 Code/Chapter 5/VB.NET/UDT/obj/Debug/UDT.dll create mode 100644 Code/Chapter 5/VB.NET/UDT/obj/Debug/UDT.pdb create mode 100644 Code/Chapter 5/VB.NET/UDT/obj/UDT.vbproj.FileList.txt create mode 100644 Code/Chapter 6/C#/Chapter 6.sln create mode 100644 Code/Chapter 6/C#/Chapter 6.suo create mode 100644 Code/Chapter 6/C#/Example 6.1/Example 6.1.csproj create mode 100644 Code/Chapter 6/C#/Example 6.1/Example 6.1.csproj.user create mode 100644 Code/Chapter 6/C#/Example 6.1/Program.cs create mode 100644 Code/Chapter 6/C#/Example 6.1/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 6/C#/Example 6.1/Properties/Resources.cs create mode 100644 Code/Chapter 6/C#/Example 6.1/Properties/Resources.resx create mode 100644 Code/Chapter 6/C#/Example 6.1/Properties/Settings.cs create mode 100644 Code/Chapter 6/C#/Example 6.1/Properties/Settings.settings create mode 100644 Code/Chapter 6/C#/Example 6.1/bin/Debug/Example 6.1.exe create mode 100644 Code/Chapter 6/C#/Example 6.1/bin/Debug/Example 6.1.pdb create mode 100644 Code/Chapter 6/C#/Example 6.1/bin/Debug/Example 6.1.vshost.exe create mode 100644 Code/Chapter 6/C#/Example 6.1/bin/Debug/productsTable.xml create mode 100644 Code/Chapter 6/C#/Example 6.1/obj/Debug/Example 6.1.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/C#/Example 6.1/obj/Debug/Example 6.1.exe create mode 100644 Code/Chapter 6/C#/Example 6.1/obj/Debug/Example 6.1.pdb create mode 100644 Code/Chapter 6/C#/Example 6.1/obj/Debug/Example_6_1.Properties.Resources.resources create mode 100644 Code/Chapter 6/C#/Example 6.1/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/C#/Example 6.1/obj/Example 6.1.csproj.FileList.txt create mode 100644 Code/Chapter 6/C#/Example 6.2/Example 6.2.csproj create mode 100644 Code/Chapter 6/C#/Example 6.2/Example 6.2.csproj.user create mode 100644 Code/Chapter 6/C#/Example 6.2/Example 6.suo create mode 100644 Code/Chapter 6/C#/Example 6.2/Program.cs create mode 100644 Code/Chapter 6/C#/Example 6.2/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 6/C#/Example 6.2/Properties/Resources.cs create mode 100644 Code/Chapter 6/C#/Example 6.2/Properties/Resources.resx create mode 100644 Code/Chapter 6/C#/Example 6.2/Properties/Settings.cs create mode 100644 Code/Chapter 6/C#/Example 6.2/Properties/Settings.settings create mode 100644 Code/Chapter 6/C#/Example 6.2/bin/Debug/Example 6.1.exe create mode 100644 Code/Chapter 6/C#/Example 6.2/bin/Debug/Example 6.1.pdb create mode 100644 Code/Chapter 6/C#/Example 6.2/bin/Debug/Example 6.1.vshost.exe create mode 100644 Code/Chapter 6/C#/Example 6.2/bin/Debug/productsTable.xml create mode 100644 Code/Chapter 6/C#/Example 6.2/obj/Debug/Example 6.1.exe create mode 100644 Code/Chapter 6/C#/Example 6.2/obj/Debug/Example 6.1.pdb create mode 100644 Code/Chapter 6/C#/Example 6.2/obj/Debug/Example 6.2.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/C#/Example 6.2/obj/Debug/Example_6_1.Properties.Resources.resources create mode 100644 Code/Chapter 6/C#/Example 6.2/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/C#/Example 6.2/obj/Example 6.2.csproj.FileList.txt create mode 100644 Code/Chapter 6/C#/Example 6.3/Example 6.3.csproj create mode 100644 Code/Chapter 6/C#/Example 6.3/Example 6.3.csproj.user create mode 100644 Code/Chapter 6/C#/Example 6.3/Form1.Designer.cs create mode 100644 Code/Chapter 6/C#/Example 6.3/Form1.cs create mode 100644 Code/Chapter 6/C#/Example 6.3/Program.cs create mode 100644 Code/Chapter 6/C#/Example 6.3/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 6/C#/Example 6.3/Properties/Resources.cs create mode 100644 Code/Chapter 6/C#/Example 6.3/Properties/Resources.resx create mode 100644 Code/Chapter 6/C#/Example 6.3/Properties/Settings.cs create mode 100644 Code/Chapter 6/C#/Example 6.3/Properties/Settings.settings create mode 100644 Code/Chapter 6/C#/Example 6.3/bin/Debug/Example 6.3.exe create mode 100644 Code/Chapter 6/C#/Example 6.3/bin/Debug/Example 6.3.pdb create mode 100644 Code/Chapter 6/C#/Example 6.3/bin/Debug/Example 6.3.vshost.exe create mode 100644 Code/Chapter 6/C#/Example 6.3/obj/Debug/Example 6.3.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/C#/Example 6.3/obj/Debug/Example 6.3.exe create mode 100644 Code/Chapter 6/C#/Example 6.3/obj/Debug/Example 6.3.pdb create mode 100644 Code/Chapter 6/C#/Example 6.3/obj/Debug/Example_6_3.Properties.Resources.resources create mode 100644 Code/Chapter 6/C#/Example 6.3/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/C#/Example 6.3/obj/Example 6.3.csproj.FileList.txt create mode 100644 Code/Chapter 6/C#/Example 6.4/Example 6.4.csproj create mode 100644 Code/Chapter 6/C#/Example 6.4/Example 6.4.csproj.user create mode 100644 Code/Chapter 6/C#/Example 6.4/Program.cs create mode 100644 Code/Chapter 6/C#/Example 6.4/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 6/C#/Example 6.4/Properties/Resources.cs create mode 100644 Code/Chapter 6/C#/Example 6.4/Properties/Resources.resx create mode 100644 Code/Chapter 6/C#/Example 6.4/Properties/Settings.cs create mode 100644 Code/Chapter 6/C#/Example 6.4/Properties/Settings.settings create mode 100644 Code/Chapter 6/C#/Example 6.4/bin/Debug/DS_Serialization.exe create mode 100644 Code/Chapter 6/C#/Example 6.4/bin/Debug/DS_Serialization.pdb create mode 100644 Code/Chapter 6/C#/Example 6.4/bin/Debug/DS_Serialization.vshost.exe create mode 100644 Code/Chapter 6/C#/Example 6.4/bin/Debug/ds.dat create mode 100644 Code/Chapter 6/C#/Example 6.4/obj/Debug/DS_Serialization.Properties.Resources.resources create mode 100644 Code/Chapter 6/C#/Example 6.4/obj/Debug/DS_Serialization.exe create mode 100644 Code/Chapter 6/C#/Example 6.4/obj/Debug/DS_Serialization.pdb create mode 100644 Code/Chapter 6/C#/Example 6.4/obj/Debug/Example 6.4.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/C#/Example 6.4/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/C#/Example 6.4/obj/Example 6.4.csproj.FileList.txt create mode 100644 Code/Chapter 6/C#/Example 6.5/Example 6.5.csproj create mode 100644 Code/Chapter 6/C#/Example 6.5/Example 6.5.csproj.user create mode 100644 Code/Chapter 6/C#/Example 6.5/Program.cs create mode 100644 Code/Chapter 6/C#/Example 6.5/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 6/C#/Example 6.5/Properties/Resources.cs create mode 100644 Code/Chapter 6/C#/Example 6.5/Properties/Resources.resx create mode 100644 Code/Chapter 6/C#/Example 6.5/Properties/Settings.cs create mode 100644 Code/Chapter 6/C#/Example 6.5/Properties/Settings.settings create mode 100644 Code/Chapter 6/C#/Example 6.5/bin/Debug/BookDataSet.xsd create mode 100644 Code/Chapter 6/C#/Example 6.5/bin/Debug/Books.xml create mode 100644 Code/Chapter 6/C#/Example 6.5/bin/Debug/Exercise 6.5.exe create mode 100644 Code/Chapter 6/C#/Example 6.5/bin/Debug/Exercise 6.5.pdb create mode 100644 Code/Chapter 6/C#/Example 6.5/obj/Debug/Example 6.5.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/C#/Example 6.5/obj/Debug/Exercise 6.5.exe create mode 100644 Code/Chapter 6/C#/Example 6.5/obj/Debug/Exercise 6.5.pdb create mode 100644 Code/Chapter 6/C#/Example 6.5/obj/Debug/Exercise_6_5.Properties.Resources.resources create mode 100644 Code/Chapter 6/C#/Example 6.5/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/C#/Example 6.5/obj/Example 6.5.csproj.FileList.txt create mode 100644 Code/Chapter 6/C#/Example 6.6/Example 6.6.csproj create mode 100644 Code/Chapter 6/C#/Example 6.6/Example 6.6.csproj.user create mode 100644 Code/Chapter 6/C#/Example 6.6/Program.cs create mode 100644 Code/Chapter 6/C#/Example 6.6/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 6/C#/Example 6.6/Properties/Resources.cs create mode 100644 Code/Chapter 6/C#/Example 6.6/Properties/Resources.resx create mode 100644 Code/Chapter 6/C#/Example 6.6/Properties/Settings.cs create mode 100644 Code/Chapter 6/C#/Example 6.6/Properties/Settings.settings create mode 100644 Code/Chapter 6/C#/Example 6.6/bin/Debug/BookDataSet.xsd create mode 100644 Code/Chapter 6/C#/Example 6.6/bin/Debug/BookDataSet.xsx create mode 100644 Code/Chapter 6/C#/Example 6.6/bin/Debug/Books.xml create mode 100644 Code/Chapter 6/C#/Example 6.6/bin/Debug/Example 6.6.exe create mode 100644 Code/Chapter 6/C#/Example 6.6/bin/Debug/Example 6.6.pdb create mode 100644 Code/Chapter 6/C#/Example 6.6/bin/Debug/Example 6.6.vshost.exe create mode 100644 Code/Chapter 6/C#/Example 6.6/obj/Debug/Example 6.6.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/C#/Example 6.6/obj/Debug/Example 6.6.exe create mode 100644 Code/Chapter 6/C#/Example 6.6/obj/Debug/Example 6.6.pdb create mode 100644 Code/Chapter 6/C#/Example 6.6/obj/Debug/Example_6_6.Properties.Resources.resources create mode 100644 Code/Chapter 6/C#/Example 6.6/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/C#/Example 6.6/obj/Example 6.6.csproj.FileList.txt create mode 100644 Code/Chapter 6/C#/Example 6.7/BookDataSet.Designer.cs create mode 100644 Code/Chapter 6/C#/Example 6.7/BookDataSet.cs create mode 100644 Code/Chapter 6/C#/Example 6.7/BookDataSet.xsc create mode 100644 Code/Chapter 6/C#/Example 6.7/BookDataSet.xsd create mode 100644 Code/Chapter 6/C#/Example 6.7/BookDataSet.xss create mode 100644 Code/Chapter 6/C#/Example 6.7/BookDataSet.xsx create mode 100644 Code/Chapter 6/C#/Example 6.7/Example 6.7.csproj create mode 100644 Code/Chapter 6/C#/Example 6.7/Example 6.7.csproj.user create mode 100644 Code/Chapter 6/C#/Example 6.7/Program.cs create mode 100644 Code/Chapter 6/C#/Example 6.7/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 6/C#/Example 6.7/Properties/Resources.cs create mode 100644 Code/Chapter 6/C#/Example 6.7/Properties/Resources.resx create mode 100644 Code/Chapter 6/C#/Example 6.7/Properties/Settings.cs create mode 100644 Code/Chapter 6/C#/Example 6.7/Properties/Settings.settings create mode 100644 Code/Chapter 6/C#/Example 6.7/bin/Debug/Books.xml create mode 100644 Code/Chapter 6/C#/Example 6.7/bin/Debug/Example 6.7.exe create mode 100644 Code/Chapter 6/C#/Example 6.7/bin/Debug/Example 6.7.pdb create mode 100644 Code/Chapter 6/C#/Example 6.7/bin/Debug/Example 6.7.vshost.exe create mode 100644 Code/Chapter 6/C#/Example 6.7/obj/Debug/Example 6.7.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/C#/Example 6.7/obj/Debug/Example 6.7.exe create mode 100644 Code/Chapter 6/C#/Example 6.7/obj/Debug/Example 6.7.pdb create mode 100644 Code/Chapter 6/C#/Example 6.7/obj/Debug/Example_6_7.Properties.Resources.resources create mode 100644 Code/Chapter 6/C#/Example 6.7/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/C#/Example 6.7/obj/Debug/TempPE/BookDataSet.Designer.cs.dll create mode 100644 Code/Chapter 6/C#/Example 6.7/obj/Example 6.7.csproj.FileList.txt create mode 100644 Code/Chapter 6/C#/Example 6.8/BookDataSet.xsd create mode 100644 Code/Chapter 6/C#/Example 6.8/BuildDS.cmd create mode 100644 Code/Chapter 6/C#/Example 6.9/BookDataSet.Designer.cs create mode 100644 Code/Chapter 6/C#/Example 6.9/BookDataSet.xsc create mode 100644 Code/Chapter 6/C#/Example 6.9/BookDataSet.xsd create mode 100644 Code/Chapter 6/C#/Example 6.9/BookDataSet.xss create mode 100644 Code/Chapter 6/C#/Example 6.9/BookDataSet.xsx create mode 100644 Code/Chapter 6/C#/Example 6.9/Example 6.9.csproj create mode 100644 Code/Chapter 6/C#/Example 6.9/Example 6.9.csproj.user create mode 100644 Code/Chapter 6/C#/Example 6.9/Form1.Designer.cs create mode 100644 Code/Chapter 6/C#/Example 6.9/Form1.cs create mode 100644 Code/Chapter 6/C#/Example 6.9/Program.cs create mode 100644 Code/Chapter 6/C#/Example 6.9/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 6/C#/Example 6.9/Properties/Resources.cs create mode 100644 Code/Chapter 6/C#/Example 6.9/Properties/Resources.resx create mode 100644 Code/Chapter 6/C#/Example 6.9/Properties/Settings.cs create mode 100644 Code/Chapter 6/C#/Example 6.9/Properties/Settings.settings create mode 100644 Code/Chapter 6/C#/Example 6.9/bin/Debug/Books.xml create mode 100644 Code/Chapter 6/C#/Example 6.9/bin/Debug/Example 6.9.exe create mode 100644 Code/Chapter 6/C#/Example 6.9/bin/Debug/Example 6.9.pdb create mode 100644 Code/Chapter 6/C#/Example 6.9/bin/Debug/Example 6.9.vshost.exe create mode 100644 Code/Chapter 6/C#/Example 6.9/obj/Debug/Example 6.9.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/C#/Example 6.9/obj/Debug/Example 6.9.exe create mode 100644 Code/Chapter 6/C#/Example 6.9/obj/Debug/Example 6.9.pdb create mode 100644 Code/Chapter 6/C#/Example 6.9/obj/Debug/Example_6_9.Properties.Resources.resources create mode 100644 Code/Chapter 6/C#/Example 6.9/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/C#/Example 6.9/obj/Debug/TempPE/BookDataSet.Designer.cs.dll create mode 100644 Code/Chapter 6/C#/Example 6.9/obj/Example 6.9.csproj.FileList.txt create mode 100644 Code/Chapter 6/VB.NET/Chapter 6.sln create mode 100644 Code/Chapter 6/VB.NET/Chapter 6.suo create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/Exercise 6.1.vbproj create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/Exercise 6.1.vbproj.user create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/Module1.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyApplication.myapp create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyApplication.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyResources.resx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyResources.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MySettings.settings create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MySettings.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/app.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.vshost.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.vshost.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise 6.1.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise 6.1.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise 6.1.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise 6.1.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise_6_1.MyResources.resources create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.1/obj/Exercise 6.1.vbproj.FileList.txt create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/Exercise 6.2.vbproj create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/Exercise 6.2.vbproj.user create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/Exercise 6.suo create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/Module1.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyApplication.myapp create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyApplication.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyResources.resx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyResources.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MySettings.settings create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MySettings.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/app.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.vshost.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.vshost.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/Exercise 6.1.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/Exercise 6.1.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/Exercise 6.1.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/Exercise 6.2.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/Exercise_6_1.MyResources.resources create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.2/obj/Exercise 6.2.vbproj.FileList.txt create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/Exercise 6.3.vbproj create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/Exercise 6.3.vbproj.user create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/Form1.Designer.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/Form1.resx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/Form1.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyApplication.myapp create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyApplication.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyEvents.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyResources.resx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyResources.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MySettings.settings create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MySettings.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/app.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.vshost.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.vshost.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise 6.3.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise 6.3.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise 6.3.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise 6.3.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise_6_3.Form1.resources create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise_6_3.MyResources.resources create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.3/obj/Exercise 6.3.vbproj.FileList.txt create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/Exercise 6.4.vbproj create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/Exercise 6.4.vbproj.user create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/Module1.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyApplication.myapp create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyApplication.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyResources.resx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyResources.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MySettings.settings create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MySettings.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/app.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.vshost.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.vshost.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/Exercise 6.4.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/Exercise 6.4.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/Exercise 6.4.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/Exercise 6.4.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/Exercise_6_4.MyResources.resources create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.4/obj/Exercise 6.4.vbproj.FileList.txt create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/Exercise 6.5.vbproj create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/Exercise 6.5.vbproj.user create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/Module1.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyApplication.myapp create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyApplication.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyResources.resx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyResources.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MySettings.settings create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MySettings.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/app.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/bin/BookDataSet.xsd create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/bin/Books.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.vshost.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.vshost.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise 6.5.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise 6.5.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise 6.5.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise 6.5.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise_6_5.MyResources.resources create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.5/obj/Exercise 6.5.vbproj.FileList.txt create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/Exercise 6.6.vbproj create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/Exercise 6.6.vbproj.user create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/Module1.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyApplication.myapp create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyApplication.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyResources.resx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyResources.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MySettings.settings create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MySettings.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/app.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/bin/BookDataSet.xsd create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/bin/BookDataSet.xsx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/bin/Books.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.vshost.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.vshost.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise_6_6.MyResources.resources create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.6/obj/Exercise 6.6.vbproj.FileList.txt create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.Designer.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xsc create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xsd create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xss create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xsx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/Exercise 6.7.vbproj create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/Exercise 6.7.vbproj.user create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/Module1.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyApplication.myapp create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyApplication.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyResources.resx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyResources.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MySettings.settings create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MySettings.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/app.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/bin/Books.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.vshost.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.vshost.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise_6_7.MyResources.resources create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/TempPE/BookDataSet.Designer.vb.dll create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.7/obj/Exercise 6.7.vbproj.FileList.txt create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.8/BookDataSet.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.8/BookDataSet.xsd create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.8/BuildDS.cmd create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.Designer.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xsc create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xsd create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xss create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xsx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/Exercise 6.9.vbproj create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/Exercise 6.9.vbproj.user create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/Form1.Designer.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/Form1.resx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/Form1.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyApplication.myapp create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyApplication.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyEvents.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyResources.resx create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyResources.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MySettings.settings create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MySettings.vb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/app.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/bin/Books.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/bin/Exercise 6.9.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/bin/Exercise 6.9.exe.config create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/bin/Exercise 6.9.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/bin/Exercise 6.9.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise 6.9.exe create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise 6.9.pdb create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise 6.9.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise 6.9.xml create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise_6_9.Form1.resources create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise_6_9.MyResources.resources create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/TempPE/BookDataSet.Designer.vb.dll create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 6/VB.NET/Exercise 6.9/obj/Exercise 6.9.vbproj.FileList.txt create mode 100644 Code/Chapter 7/C#/Chapter7.sln create mode 100644 Code/Chapter 7/C#/Chapter7.suo create mode 100644 Code/Chapter 7/C#/Exercise 7.1/Exercise 7.1.csproj create mode 100644 Code/Chapter 7/C#/Exercise 7.1/Exercise 7.1.csproj.user create mode 100644 Code/Chapter 7/C#/Exercise 7.1/Form1.Designer.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.1/Form1.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.1/Form1.resx create mode 100644 Code/Chapter 7/C#/Exercise 7.1/Program.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.1/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.1/Properties/Resources.Designer.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.1/Properties/Resources.resx create mode 100644 Code/Chapter 7/C#/Exercise 7.1/Properties/Settings.Designer.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.1/Properties/Settings.settings create mode 100644 Code/Chapter 7/C#/Exercise 7.1/TestDataSet.Designer.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xsc create mode 100644 Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xsd create mode 100644 Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xss create mode 100644 Code/Chapter 7/C#/Exercise 7.1/app.config create mode 100644 Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.exe.config create mode 100644 Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.vshost.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.vshost.exe.config create mode 100644 Code/Chapter 7/C#/Exercise 7.1/bin/Debug/WindowsApplication3.exe.config create mode 100644 Code/Chapter 7/C#/Exercise 7.1/bin/Debug/WindowsApplication3.vshost.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.1/bin/Debug/WindowsApplication3.vshost.exe.config create mode 100644 Code/Chapter 7/C#/Exercise 7.1/obj/Debug/Exercise 7.1.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/C#/Exercise 7.1/obj/Debug/Exercise 7.1.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.1/obj/Debug/Exercise 7.1.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.1/obj/Debug/Exercise_7_1.Form1.resources create mode 100644 Code/Chapter 7/C#/Exercise 7.1/obj/Debug/Exercise_7_1.Properties.Resources.resources create mode 100644 Code/Chapter 7/C#/Exercise 7.1/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll create mode 100644 Code/Chapter 7/C#/Exercise 7.1/obj/Debug/TempPE/TestDataSet.Designer.cs.dll create mode 100644 Code/Chapter 7/C#/Exercise 7.1/obj/Exercise 7.1.csproj.FileList.txt create mode 100644 Code/Chapter 7/C#/Exercise 7.1/obj/WindowsApplication3.csproj.FileList.txt create mode 100644 Code/Chapter 7/C#/Exercise 7.2/Exercise 7.2.csproj create mode 100644 Code/Chapter 7/C#/Exercise 7.2/Exercise 7.2.csproj.user create mode 100644 Code/Chapter 7/C#/Exercise 7.2/Form1.Designer.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.2/Form1.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.2/Form1.resx create mode 100644 Code/Chapter 7/C#/Exercise 7.2/Program.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.2/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.2/Properties/Resources.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.2/Properties/Resources.resx create mode 100644 Code/Chapter 7/C#/Exercise 7.2/Properties/Settings.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.2/Properties/Settings.settings create mode 100644 Code/Chapter 7/C#/Exercise 7.2/bin/Debug/Exercise 7.2.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.2/bin/Debug/Exercise 7.2.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.2/bin/Debug/Exercise 7.2.vshost.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.2/obj/Debug/Exercise 7.2.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/C#/Exercise 7.2/obj/Debug/Exercise 7.2.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.2/obj/Debug/Exercise 7.2.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.2/obj/Debug/Exercise_7_2.Form1.resources create mode 100644 Code/Chapter 7/C#/Exercise 7.2/obj/Debug/Exercise_7_2.Properties.Resources.resources create mode 100644 Code/Chapter 7/C#/Exercise 7.2/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 7/C#/Exercise 7.2/obj/Exercise 7.2.csproj.FileList.txt create mode 100644 Code/Chapter 7/C#/Exercise 7.3/Exercise 7.3.csproj create mode 100644 Code/Chapter 7/C#/Exercise 7.3/Exercise 7.3.csproj.user create mode 100644 Code/Chapter 7/C#/Exercise 7.3/Form1.Designer.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.3/Form1.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.3/Form1.resx create mode 100644 Code/Chapter 7/C#/Exercise 7.3/Program.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.3/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.3/Properties/Resources.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.3/Properties/Resources.resx create mode 100644 Code/Chapter 7/C#/Exercise 7.3/Properties/Settings.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.3/Properties/Settings.settings create mode 100644 Code/Chapter 7/C#/Exercise 7.3/bin/Debug/Exercise 7.3.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.3/bin/Debug/Exercise 7.3.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.3/bin/Debug/Exercise 7.3.vshost.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.3/obj/Debug/Exercise 7.3.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/C#/Exercise 7.3/obj/Debug/Exercise 7.3.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.3/obj/Debug/Exercise 7.3.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.3/obj/Debug/Exercise_7_3.Form1.resources create mode 100644 Code/Chapter 7/C#/Exercise 7.3/obj/Debug/Exercise_7_3.Properties.Resources.resources create mode 100644 Code/Chapter 7/C#/Exercise 7.3/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 7/C#/Exercise 7.3/obj/Exercise 7.3.csproj.FileList.txt create mode 100644 Code/Chapter 7/C#/Exercise 7.4/Exercise 7.4.csproj create mode 100644 Code/Chapter 7/C#/Exercise 7.4/Exercise 7.4.csproj.user create mode 100644 Code/Chapter 7/C#/Exercise 7.4/Form1.Designer.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.4/Form1.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.4/Form1.resx create mode 100644 Code/Chapter 7/C#/Exercise 7.4/Program.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.4/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.4/Properties/Resources.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.4/Properties/Resources.resx create mode 100644 Code/Chapter 7/C#/Exercise 7.4/Properties/Settings.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.4/Properties/Settings.settings create mode 100644 Code/Chapter 7/C#/Exercise 7.4/bin/Debug/Exercise 7.4.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.4/bin/Debug/Exercise 7.4.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.4/bin/Debug/Exercise 7.4.vshost.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.4/bin/Debug/myData.Xml create mode 100644 Code/Chapter 7/C#/Exercise 7.4/obj/Debug/Exercise 7.4.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/C#/Exercise 7.4/obj/Debug/Exercise 7.4.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.4/obj/Debug/Exercise 7.4.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.4/obj/Debug/Exercise_7_4.Form1.resources create mode 100644 Code/Chapter 7/C#/Exercise 7.4/obj/Debug/Exercise_7_4.Properties.Resources.resources create mode 100644 Code/Chapter 7/C#/Exercise 7.4/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 7/C#/Exercise 7.4/obj/Exercise 7.4.csproj.FileList.txt create mode 100644 Code/Chapter 7/C#/Exercise 7.5/DB.MDB create mode 100644 Code/Chapter 7/C#/Exercise 7.5/Exercise 7.5.csproj create mode 100644 Code/Chapter 7/C#/Exercise 7.5/Exercise 7.5.csproj.user create mode 100644 Code/Chapter 7/C#/Exercise 7.5/Program.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.5/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.5/Properties/Resources.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.5/Properties/Resources.resx create mode 100644 Code/Chapter 7/C#/Exercise 7.5/Properties/Settings.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.5/Properties/Settings.settings create mode 100644 Code/Chapter 7/C#/Exercise 7.5/bin/Debug/Exercise 7.5.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.5/bin/Debug/Exercise 7.5.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.5/bin/Debug/Exercise 7.5.vshost.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.5/obj/Debug/Exercise 7.5.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/C#/Exercise 7.5/obj/Debug/Exercise 7.5.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.5/obj/Debug/Exercise 7.5.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.5/obj/Debug/Exercise_7_5.Properties.Resources.resources create mode 100644 Code/Chapter 7/C#/Exercise 7.5/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 7/C#/Exercise 7.5/obj/Exercise 7.5.csproj.FileList.txt create mode 100644 Code/Chapter 7/C#/Exercise 7.6/Exercise 7.6.csproj create mode 100644 Code/Chapter 7/C#/Exercise 7.6/Exercise 7.6.csproj.user create mode 100644 Code/Chapter 7/C#/Exercise 7.6/Program.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.6/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.6/Properties/Resources.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.6/Properties/Resources.resx create mode 100644 Code/Chapter 7/C#/Exercise 7.6/Properties/Settings.cs create mode 100644 Code/Chapter 7/C#/Exercise 7.6/Properties/Settings.settings create mode 100644 Code/Chapter 7/C#/Exercise 7.6/bin/Debug/Exercise 7.6.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.6/bin/Debug/Exercise 7.6.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.6/obj/Debug/Exercise 7.6.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/C#/Exercise 7.6/obj/Debug/Exercise 7.6.exe create mode 100644 Code/Chapter 7/C#/Exercise 7.6/obj/Debug/Exercise 7.6.pdb create mode 100644 Code/Chapter 7/C#/Exercise 7.6/obj/Debug/Exercise_7_6.Properties.Resources.resources create mode 100644 Code/Chapter 7/C#/Exercise 7.6/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 7/C#/Exercise 7.6/obj/Exercise 7.6.csproj.FileList.txt create mode 100644 Code/Chapter 7/SQL/CreateDatabase.Sql create mode 100644 Code/Chapter 7/VB.NET/Chapter 7.sln create mode 100644 Code/Chapter 7/VB.NET/Chapter 7.suo create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/Exercise 7.1.vbproj create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/Exercise 7.1.vbproj.user create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/Form1.Designer.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/Form1.resx create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/Form1.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Application.Designer.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Application.myapp create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/My Project/ApplicationEvents.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Resources.resx create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Settings.settings create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.Designer.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xsc create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xsd create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xss create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/app.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.vshost.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.vshost.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise_7.1.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise 7.1.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise 7.1.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise 7.1.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise_7.1.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise_7_1.Form1.resources create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise_7_1.Resources.resources create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/TempPE/TestDataSet.Designer.vb.dll create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.1/obj/Exercise 7.1.vbproj.FileList.txt create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/Exercise 7.2.vbproj create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/Exercise 7.2.vbproj.user create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/Form1.Designer.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/Form1.resx create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/Form1.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyApplication.myapp create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyApplication.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyEvents.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyResources.resx create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyResources.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MySettings.settings create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MySettings.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/app.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.vshost.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.vshost.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise 7.2.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise 7.2.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise 7.2.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise 7.2.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise_7_2.Form1.resources create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise_7_2.MyResources.resources create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.2/obj/Exercise 7.2.vbproj.FileList.txt create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/Exercise 7.3.vbproj create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/Exercise 7.3.vbproj.user create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/Form1.Designer.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/Form1.resx create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/Form1.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyApplication.myapp create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyApplication.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyEvents.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyResources.resx create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyResources.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MySettings.settings create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MySettings.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/app.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.vshost.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.vshost.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise_7_3.Form1.resources create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise_7_3.MyResources.resources create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.3/obj/Exercise 7.3.vbproj.FileList.txt create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/Exercise 7.4.vbproj create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/Exercise 7.4.vbproj.user create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/Form1.Designer.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/Form1.resx create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/Form1.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyApplication.myapp create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyApplication.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyEvents.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyResources.resx create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyResources.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MySettings.settings create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MySettings.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/app.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.vshost.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.vshost.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/bin/myData.Xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise_7_4.Form1.resources create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise_7_4.MyResources.resources create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.4/obj/Exercise 7.4.vbproj.FileList.txt create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/DB.MDB create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/Exercise 7.5.vbproj create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/Exercise 7.5.vbproj.user create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/Exercise 7.suo create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/Module1.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyApplication.myapp create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyApplication.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyResources.resx create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyResources.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MySettings.settings create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MySettings.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/app.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.vshost.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.vshost.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise 7.5.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise 7.5.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise 7.5.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise 7.5.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise_7_5.MyResources.resources create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.5/obj/Exercise 7.5.vbproj.FileList.txt create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/DB.MDB create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/Exercise 7.6.vbproj create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/Exercise 7.6.vbproj.user create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/Module1.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyApplication.myapp create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyApplication.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyResources.resx create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyResources.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MySettings.settings create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MySettings.vb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/app.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.vshost.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.vshost.exe.config create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise 7.6.exe create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise 7.6.pdb create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise 7.6.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise 7.6.xml create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise_7_6.MyResources.resources create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 7/VB.NET/Exercise 7.6/obj/Exercise 7.6.vbproj.FileList.txt create mode 100644 Code/Chapter 8/C#/Chapter 8.sln create mode 100644 Code/Chapter 8/C#/Chapter 8.suo create mode 100644 Code/Chapter 8/C#/CreateDataSet/CreateDataSet.csproj create mode 100644 Code/Chapter 8/C#/CreateDataSet/CreateDataSet.csproj.user create mode 100644 Code/Chapter 8/C#/CreateDataSet/CustProd.Designer.cs create mode 100644 Code/Chapter 8/C#/CreateDataSet/CustProd.xsc create mode 100644 Code/Chapter 8/C#/CreateDataSet/CustProd.xsd create mode 100644 Code/Chapter 8/C#/CreateDataSet/CustProd.xss create mode 100644 Code/Chapter 8/C#/CreateDataSet/DataSetFiller.cs create mode 100644 Code/Chapter 8/C#/CreateDataSet/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 8/C#/CreateDataSet/Properties/Resources.cs create mode 100644 Code/Chapter 8/C#/CreateDataSet/Properties/Resources.resx create mode 100644 Code/Chapter 8/C#/CreateDataSet/Properties/Settings.cs create mode 100644 Code/Chapter 8/C#/CreateDataSet/Properties/Settings.settings create mode 100644 Code/Chapter 8/C#/CreateDataSet/bin/Debug/CreateDataSet.dll create mode 100644 Code/Chapter 8/C#/CreateDataSet/bin/Debug/CreateDataSet.pdb create mode 100644 Code/Chapter 8/C#/CreateDataSet/obj/CreateDataSet.csproj.FileList.txt create mode 100644 Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.Properties.Resources.resources create mode 100644 Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.dll create mode 100644 Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.pdb create mode 100644 Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.refactor.dll create mode 100644 Code/Chapter 8/C#/CreateDataSet/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/C#/CreateDataSet/obj/Debug/TempPE/CustProd.Designer.cs.dll create mode 100644 Code/Chapter 8/C#/EditData/EditData.csproj create mode 100644 Code/Chapter 8/C#/EditData/EditData.csproj.user create mode 100644 Code/Chapter 8/C#/EditData/Form1.Designer.cs create mode 100644 Code/Chapter 8/C#/EditData/Form1.cs create mode 100644 Code/Chapter 8/C#/EditData/Program.cs create mode 100644 Code/Chapter 8/C#/EditData/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 8/C#/EditData/Properties/Resources.cs create mode 100644 Code/Chapter 8/C#/EditData/Properties/Resources.resx create mode 100644 Code/Chapter 8/C#/EditData/Properties/Settings.cs create mode 100644 Code/Chapter 8/C#/EditData/Properties/Settings.settings create mode 100644 Code/Chapter 8/C#/EditData/bin/Debug/EditData.exe create mode 100644 Code/Chapter 8/C#/EditData/bin/Debug/EditData.pdb create mode 100644 Code/Chapter 8/C#/EditData/bin/Debug/EditData.vshost.exe create mode 100644 Code/Chapter 8/C#/EditData/obj/Debug/EditData.Properties.Resources.resources create mode 100644 Code/Chapter 8/C#/EditData/obj/Debug/EditData.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/C#/EditData/obj/Debug/EditData.exe create mode 100644 Code/Chapter 8/C#/EditData/obj/Debug/EditData.pdb create mode 100644 Code/Chapter 8/C#/EditData/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/C#/EditData/obj/Debug/ResolveAssemblyReference.cache create mode 100644 Code/Chapter 8/C#/EditData/obj/EditData.csproj.FileList.txt create mode 100644 Code/Chapter 8/C#/Example 8.4/Exercise 8.4.csproj create mode 100644 Code/Chapter 8/C#/Example 8.4/Exercise 8.4.csproj.user create mode 100644 Code/Chapter 8/C#/Example 8.4/Program.cs create mode 100644 Code/Chapter 8/C#/Example 8.4/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 8/C#/Example 8.4/Properties/Resources.cs create mode 100644 Code/Chapter 8/C#/Example 8.4/Properties/Resources.resx create mode 100644 Code/Chapter 8/C#/Example 8.4/Properties/Settings.cs create mode 100644 Code/Chapter 8/C#/Example 8.4/Properties/Settings.settings create mode 100644 Code/Chapter 8/C#/Example 8.4/app.config create mode 100644 Code/Chapter 8/C#/Example 8.4/bin/Debug/Exercise 8.4.exe create mode 100644 Code/Chapter 8/C#/Example 8.4/bin/Debug/Exercise 8.4.exe.config create mode 100644 Code/Chapter 8/C#/Example 8.4/bin/Debug/Exercise 8.4.pdb create mode 100644 Code/Chapter 8/C#/Example 8.4/bin/Debug/Exercise 8.4.vshost.exe create mode 100644 Code/Chapter 8/C#/Example 8.4/bin/Debug/Exercise 8.4.vshost.exe.config create mode 100644 Code/Chapter 8/C#/Example 8.4/obj/Debug/Exercise 8.4.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/C#/Example 8.4/obj/Debug/Exercise 8.4.exe create mode 100644 Code/Chapter 8/C#/Example 8.4/obj/Debug/Exercise 8.4.pdb create mode 100644 Code/Chapter 8/C#/Example 8.4/obj/Debug/Exercise_8_4.Properties.Resources.resources create mode 100644 Code/Chapter 8/C#/Example 8.4/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/C#/Example 8.4/obj/Debug/TempPE/Properties.Resources.cs.dll create mode 100644 Code/Chapter 8/C#/Example 8.4/obj/Exercise 8.4.csproj.FileList.txt create mode 100644 Code/Chapter 8/C#/Exercise 8.1/Exercise 8.1.csproj create mode 100644 Code/Chapter 8/C#/Exercise 8.1/Exercise 8.1.csproj.user create mode 100644 Code/Chapter 8/C#/Exercise 8.1/Program.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.1/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.1/Properties/Resources.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.1/Properties/Resources.resx create mode 100644 Code/Chapter 8/C#/Exercise 8.1/Properties/Settings.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.1/Properties/Settings.settings create mode 100644 Code/Chapter 8/C#/Exercise 8.1/bin/Debug/Exercise 8.1.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.1/bin/Debug/Exercise 8.1.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.1/bin/Debug/Exercise 8.1.vshost.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.1/obj/Debug/Exercise 8.1.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/C#/Exercise 8.1/obj/Debug/Exercise 8.1.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.1/obj/Debug/Exercise 8.1.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.1/obj/Debug/Exercise_8_1.Properties.Resources.resources create mode 100644 Code/Chapter 8/C#/Exercise 8.1/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/C#/Exercise 8.1/obj/Exercise 8.1.csproj.FileList.txt create mode 100644 Code/Chapter 8/C#/Exercise 8.2/Exercise 8.2.csproj create mode 100644 Code/Chapter 8/C#/Exercise 8.2/Exercise 8.2.csproj.user create mode 100644 Code/Chapter 8/C#/Exercise 8.2/Program.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.2/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.2/Properties/Resources.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.2/Properties/Resources.resx create mode 100644 Code/Chapter 8/C#/Exercise 8.2/Properties/Settings.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.2/Properties/Settings.settings create mode 100644 Code/Chapter 8/C#/Exercise 8.2/bin/Debug/Exercise 8.2.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.2/bin/Debug/Exercise 8.2.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.2/bin/Debug/Exercise 8.2.vshost.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.2/obj/Debug/Exercise 8.2.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/C#/Exercise 8.2/obj/Debug/Exercise 8.2.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.2/obj/Debug/Exercise 8.2.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.2/obj/Debug/Exercise_8_2.Properties.Resources.resources create mode 100644 Code/Chapter 8/C#/Exercise 8.2/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/C#/Exercise 8.2/obj/Exercise 8.2.csproj.FileList.txt create mode 100644 Code/Chapter 8/C#/Exercise 8.3/Exercise 8.3.csproj create mode 100644 Code/Chapter 8/C#/Exercise 8.3/Exercise 8.3.csproj.user create mode 100644 Code/Chapter 8/C#/Exercise 8.3/Program.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.3/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.3/Properties/Resources.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.3/Properties/Resources.resx create mode 100644 Code/Chapter 8/C#/Exercise 8.3/Properties/Settings.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.3/Properties/Settings.settings create mode 100644 Code/Chapter 8/C#/Exercise 8.3/bin/Debug/Exercise 8.3.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.3/bin/Debug/Exercise 8.3.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.3/bin/Debug/Exercise 8.3.vshost.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.3/obj/Debug/Exercise 8.3.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/C#/Exercise 8.3/obj/Debug/Exercise 8.3.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.3/obj/Debug/Exercise 8.3.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.3/obj/Debug/Exercise_8_3.Properties.Resources.resources create mode 100644 Code/Chapter 8/C#/Exercise 8.3/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/C#/Exercise 8.3/obj/Exercise 8.3.csproj.FileList.txt create mode 100644 Code/Chapter 8/C#/Exercise 8.5/Exercise 8.5.csproj create mode 100644 Code/Chapter 8/C#/Exercise 8.5/Exercise 8.5.csproj.user create mode 100644 Code/Chapter 8/C#/Exercise 8.5/Form1.Designer.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.5/Form1.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.5/Program.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.5/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.5/Properties/Resources.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.5/Properties/Resources.resx create mode 100644 Code/Chapter 8/C#/Exercise 8.5/Properties/Settings.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.5/Properties/Settings.settings create mode 100644 Code/Chapter 8/C#/Exercise 8.5/bin/Debug/Exercise 8.5.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.5/bin/Debug/Exercise 8.5.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.5/bin/Debug/Exercise 8.5.vshost.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.5/obj/Debug/Exercise 8.5.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/C#/Exercise 8.5/obj/Debug/Exercise 8.5.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.5/obj/Debug/Exercise 8.5.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.5/obj/Debug/Exercise_8_5.Properties.Resources.resources create mode 100644 Code/Chapter 8/C#/Exercise 8.5/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/C#/Exercise 8.5/obj/Exercise 8.5.csproj.FileList.txt create mode 100644 Code/Chapter 8/C#/Exercise 8.6/Exercise 8.6.csproj create mode 100644 Code/Chapter 8/C#/Exercise 8.6/Exercise 8.6.csproj.user create mode 100644 Code/Chapter 8/C#/Exercise 8.6/Form1.Designer.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.6/Form1.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.6/Program.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.6/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.6/Properties/Resources.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.6/Properties/Resources.resx create mode 100644 Code/Chapter 8/C#/Exercise 8.6/Properties/Settings.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.6/Properties/Settings.settings create mode 100644 Code/Chapter 8/C#/Exercise 8.6/bin/Debug/Exercise 8.6.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.6/bin/Debug/Exercise 8.6.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.6/bin/Debug/Exercise 8.6.vshost.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.6/obj/Debug/Exercise 8.6.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/C#/Exercise 8.6/obj/Debug/Exercise 8.6.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.6/obj/Debug/Exercise 8.6.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.6/obj/Debug/Exercise_8_6.Properties.Resources.resources create mode 100644 Code/Chapter 8/C#/Exercise 8.6/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/C#/Exercise 8.6/obj/Exercise 8.6.csproj.FileList.txt create mode 100644 Code/Chapter 8/C#/Exercise 8.7/Exercise 8.7.csproj create mode 100644 Code/Chapter 8/C#/Exercise 8.7/Exercise 8.7.csproj.user create mode 100644 Code/Chapter 8/C#/Exercise 8.7/Form1.Designer.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.7/Form1.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.7/Program.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.7/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.7/Properties/Resources.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.7/Properties/Resources.resx create mode 100644 Code/Chapter 8/C#/Exercise 8.7/Properties/Settings.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.7/Properties/Settings.settings create mode 100644 Code/Chapter 8/C#/Exercise 8.7/bin/Debug/Exercise 8.7.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.7/bin/Debug/Exercise 8.7.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.7/bin/Debug/Exercise 8.7.vshost.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.7/obj/Debug/Exercise 8.7.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/C#/Exercise 8.7/obj/Debug/Exercise 8.7.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.7/obj/Debug/Exercise 8.7.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.7/obj/Debug/Exercise_8_7.Properties.Resources.resources create mode 100644 Code/Chapter 8/C#/Exercise 8.7/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/C#/Exercise 8.7/obj/Exercise 8.7.csproj.FileList.txt create mode 100644 Code/Chapter 8/C#/Exercise 8.8/Exercise 8.8.csproj create mode 100644 Code/Chapter 8/C#/Exercise 8.8/Exercise 8.8.csproj.user create mode 100644 Code/Chapter 8/C#/Exercise 8.8/Form1.Designer.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.8/Form1.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.8/Program.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.8/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.8/Properties/Resources.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.8/Properties/Resources.resx create mode 100644 Code/Chapter 8/C#/Exercise 8.8/Properties/Settings.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.8/Properties/Settings.settings create mode 100644 Code/Chapter 8/C#/Exercise 8.8/bin/Debug/Exercise 8.8.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.8/bin/Debug/Exercise 8.8.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.8/bin/Debug/Exercise 8.8.vshost.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.8/obj/Debug/Exercise 8.8.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/C#/Exercise 8.8/obj/Debug/Exercise 8.8.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.8/obj/Debug/Exercise 8.8.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.8/obj/Debug/Exercise_8_8.Properties.Resources.resources create mode 100644 Code/Chapter 8/C#/Exercise 8.8/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/C#/Exercise 8.8/obj/Debug/ResolveAssemblyReference.cache create mode 100644 Code/Chapter 8/C#/Exercise 8.8/obj/Exercise 8.8.csproj.FileList.txt create mode 100644 Code/Chapter 8/C#/Exercise 8.9/Exercise 8.9.csproj create mode 100644 Code/Chapter 8/C#/Exercise 8.9/Exercise 8.9.csproj.user create mode 100644 Code/Chapter 8/C#/Exercise 8.9/Form1.Designer.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.9/Form1.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.9/Program.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.9/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.9/Properties/Resources.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.9/Properties/Resources.resx create mode 100644 Code/Chapter 8/C#/Exercise 8.9/Properties/Settings.cs create mode 100644 Code/Chapter 8/C#/Exercise 8.9/Properties/Settings.settings create mode 100644 Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.EXE_xdd.xml create mode 100644 Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.exe create mode 100644 "Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.exe\303\235.xml" create mode 100644 Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.vshost.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise 8.9.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise 8.9.exe create mode 100644 Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise 8.9.pdb create mode 100644 Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise_8_9.Properties.Resources.resources create mode 100644 Code/Chapter 8/C#/Exercise 8.9/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/C#/Exercise 8.9/obj/Debug/ResolveAssemblyReference.cache create mode 100644 Code/Chapter 8/C#/Exercise 8.9/obj/Exercise 8.9.csproj.FileList.txt create mode 100644 Code/Chapter 8/Data.xml create mode 100644 Code/Chapter 8/VB.NET/Chapter 8.sln create mode 100644 Code/Chapter 8/VB.NET/Chapter 8.suo create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/CreateDataSet.vbproj create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/CreateDataSet.vbproj.user create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/CustProd.Designer.vb create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/CustProd.xsc create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/CustProd.xsd create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/CustProd.xss create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/DataSetFiller.vb create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyApplication.myapp create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyApplication.vb create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyResources.resx create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyResources.vb create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/My Project/MySettings.settings create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/My Project/MySettings.vb create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/bin/CreateDataSet.dll create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/bin/CreateDataSet.pdb create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/bin/CreateDataSet.xml create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/obj/CreateDataSet.vbproj.FileList.txt create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.MyResources.resources create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.dll create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.pdb create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.xml create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/TempPE/CustProd.Designer.vb.dll create mode 100644 Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 8/VB.NET/EditData/EditData.vbproj create mode 100644 Code/Chapter 8/VB.NET/EditData/EditData.vbproj.user create mode 100644 Code/Chapter 8/VB.NET/EditData/Form1.Designer.vb create mode 100644 Code/Chapter 8/VB.NET/EditData/Form1.vb create mode 100644 Code/Chapter 8/VB.NET/EditData/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 8/VB.NET/EditData/My Project/MyApplication.myapp create mode 100644 Code/Chapter 8/VB.NET/EditData/My Project/MyApplication.vb create mode 100644 Code/Chapter 8/VB.NET/EditData/My Project/MyEvents.vb create mode 100644 Code/Chapter 8/VB.NET/EditData/My Project/MyResources.resx create mode 100644 Code/Chapter 8/VB.NET/EditData/My Project/MyResources.vb create mode 100644 Code/Chapter 8/VB.NET/EditData/My Project/MySettings.settings create mode 100644 Code/Chapter 8/VB.NET/EditData/My Project/MySettings.vb create mode 100644 Code/Chapter 8/VB.NET/EditData/app.config create mode 100644 Code/Chapter 8/VB.NET/EditData/bin/EditData.exe create mode 100644 Code/Chapter 8/VB.NET/EditData/bin/EditData.exe.config create mode 100644 Code/Chapter 8/VB.NET/EditData/bin/EditData.pdb create mode 100644 Code/Chapter 8/VB.NET/EditData/bin/EditData.vshost.exe create mode 100644 Code/Chapter 8/VB.NET/EditData/bin/EditData.vshost.exe.config create mode 100644 Code/Chapter 8/VB.NET/EditData/bin/EditData.xml create mode 100644 Code/Chapter 8/VB.NET/EditData/obj/Debug/EditData.MyResources.resources create mode 100644 Code/Chapter 8/VB.NET/EditData/obj/Debug/EditData.exe create mode 100644 Code/Chapter 8/VB.NET/EditData/obj/Debug/EditData.pdb create mode 100644 Code/Chapter 8/VB.NET/EditData/obj/Debug/EditData.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/VB.NET/EditData/obj/Debug/EditData.xml create mode 100644 Code/Chapter 8/VB.NET/EditData/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/VB.NET/EditData/obj/EditData.vbproj.FileList.txt create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/Exercise 8.1.vbproj create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/Exercise 8.1.vbproj.user create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/Module1.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyApplication.myapp create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyApplication.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyResources.resx create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyResources.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MySettings.settings create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MySettings.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/app.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.vshost.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.vshost.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise_8_1.MyResources.resources create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.1/obj/Exercise 8.1.vbproj.FileList.txt create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/Exercise 8.2.vbproj create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/Exercise 8.2.vbproj.user create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/Module1.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyApplication.myapp create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyApplication.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyResources.resx create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyResources.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MySettings.settings create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MySettings.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/app.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.vshost.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.vshost.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/Exercise 8.2.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/Exercise 8.2.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/Exercise 8.2.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/Exercise 8.2.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/Exercise_8_2.MyResources.resources create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.2/obj/Exercise 8.2.vbproj.FileList.txt create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/Exercise 8.3.vbproj create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/Exercise 8.3.vbproj.user create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/Module1.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyApplication.myapp create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyApplication.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyResources.resx create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyResources.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MySettings.settings create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MySettings.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/app.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.vshost.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.vshost.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise 8.3.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise 8.3.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise 8.3.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise 8.3.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise_8_3.MyResources.resources create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.3/obj/Exercise 8.3.vbproj.FileList.txt create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/Exercise 8.4.vbproj create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/Exercise 8.4.vbproj.user create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/Module1.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyApplication.myapp create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyApplication.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyResources.resx create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyResources.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MySettings.settings create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MySettings.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/app.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.vshost.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.vshost.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise 8.4.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise 8.4.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise 8.4.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise 8.4.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise_8_4.MyResources.resources create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.4/obj/Exercise 8.4.vbproj.FileList.txt create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/Exercise 8.5.vbproj create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/Exercise 8.5.vbproj.user create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/Form1.Designer.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/Form1.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyApplication.myapp create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyApplication.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyEvents.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyResources.resx create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyResources.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MySettings.settings create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MySettings.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/app.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.vshost.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.vshost.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise_8_5.MyResources.resources create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.5/obj/Exercise 8.5.vbproj.FileList.txt create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/Exercise 8.6.vbproj create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/Exercise 8.6.vbproj.user create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/Form1.Designer.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/Form1.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyApplication.myapp create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyApplication.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyEvents.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyResources.resx create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyResources.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MySettings.settings create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MySettings.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/app.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.vshost.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.vshost.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/obj/Debug/Exercise 8.6.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/obj/Debug/Exercise 8.6.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/obj/Debug/Exercise 8.6.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/obj/Debug/Exercise 8.6.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/obj/Debug/Exercise_8_6.MyResources.resources create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.6/obj/Exercise 8.6.vbproj.FileList.txt create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/Exercise 8.7.vbproj create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/Exercise 8.7.vbproj.user create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/Form1.Designer.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/Form1.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyApplication.myapp create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyApplication.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyEvents.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyResources.resx create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyResources.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MySettings.settings create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MySettings.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/app.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.vshost.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.vshost.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise 8.7.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise 8.7.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise 8.7.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise 8.7.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise_8_7.MyResources.resources create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.7/obj/Exercise 8.7.vbproj.FileList.txt create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/Exercise 8.8.vbproj create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/Exercise 8.8.vbproj.user create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/Form1.Designer.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/Form1.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyApplication.myapp create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyApplication.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyEvents.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyResources.resx create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyResources.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MySettings.settings create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MySettings.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/app.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.vshost.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.vshost.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise_8_8.MyResources.resources create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/ResolveAssemblyReference.cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.8/obj/Exercise 8.8.vbproj.FileList.txt create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/Exercise 8.9.vbproj create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/Exercise 8.9.vbproj.user create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/Form1.Designer.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/Form1.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyApplication.myapp create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyApplication.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyEvents.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyResources.resx create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyResources.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MySettings.settings create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MySettings.vb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/app.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.exe_xdd.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.vshost.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.vshost.exe.config create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/Exercise 8.9.exe create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/Exercise 8.9.pdb create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/Exercise 8.9.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/Exercise 8.9.xml create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/Exercise_8_9.MyResources.resources create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/ResolveAssemblyReference.cache create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 8/VB.NET/Exercise 8.9/obj/Exercise 8.9.vbproj.FileList.txt create mode 100644 Code/Chapter 9/C#/Chapter 9.sln create mode 100644 Code/Chapter 9/C#/Chapter 9.suo create mode 100644 Code/Chapter 9/C#/Exercise 9.1/ClassDiagram1.cd create mode 100644 Code/Chapter 9/C#/Exercise 9.1/Exercise 9.1.csproj create mode 100644 Code/Chapter 9/C#/Exercise 9.1/Exercise 9.1.csproj.user create mode 100644 Code/Chapter 9/C#/Exercise 9.1/Form1.Designer.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.1/Form1.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.1/Form1.resx create mode 100644 Code/Chapter 9/C#/Exercise 9.1/Program.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.1/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.1/Properties/Resources.Designer.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.1/Properties/Resources.resx create mode 100644 Code/Chapter 9/C#/Exercise 9.1/Properties/Settings.Designer.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.1/Properties/Settings.settings create mode 100644 Code/Chapter 9/C#/Exercise 9.1/TestDataSet.Designer.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xsc create mode 100644 Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xsd create mode 100644 Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xss create mode 100644 Code/Chapter 9/C#/Exercise 9.1/app.config create mode 100644 Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.exe.config create mode 100644 Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.vshost.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.vshost.exe.config create mode 100644 Code/Chapter 9/C#/Exercise 9.1/obj/Debug/Exercise 9.1.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/C#/Exercise 9.1/obj/Debug/Exercise 9.1.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.1/obj/Debug/Exercise 9.1.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.1/obj/Debug/Exercise_9_1.Form1.resources create mode 100644 Code/Chapter 9/C#/Exercise 9.1/obj/Debug/Exercise_9_1.Properties.Resources.resources create mode 100644 Code/Chapter 9/C#/Exercise 9.1/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll create mode 100644 Code/Chapter 9/C#/Exercise 9.1/obj/Debug/TempPE/TestDataSet.Designer.cs.dll create mode 100644 Code/Chapter 9/C#/Exercise 9.1/obj/Exercise 9.1.csproj.FileList.txt create mode 100644 Code/Chapter 9/C#/Exercise 9.2/Exercise 9.2.csproj create mode 100644 Code/Chapter 9/C#/Exercise 9.2/Exercise 9.2.csproj.user create mode 100644 Code/Chapter 9/C#/Exercise 9.2/Program.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.2/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.2/Properties/Resources.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.2/Properties/Resources.resx create mode 100644 Code/Chapter 9/C#/Exercise 9.2/Properties/Settings.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.2/Properties/Settings.settings create mode 100644 Code/Chapter 9/C#/Exercise 9.2/bin/Debug/Exercise 9.2.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.2/bin/Debug/Exercise 9.2.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.2/bin/Debug/Exercise 9.2.vshost.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.2/obj/Debug/Exercise 9.2.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/C#/Exercise 9.2/obj/Debug/Exercise 9.2.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.2/obj/Debug/Exercise 9.2.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.2/obj/Debug/Exercise_9_2.Properties.Resources.resources create mode 100644 Code/Chapter 9/C#/Exercise 9.2/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/C#/Exercise 9.2/obj/Exercise 9.2.csproj.FileList.txt create mode 100644 Code/Chapter 9/C#/Exercise 9.3/Exercise 9.3.csproj create mode 100644 Code/Chapter 9/C#/Exercise 9.3/Exercise 9.3.csproj.user create mode 100644 Code/Chapter 9/C#/Exercise 9.3/Program.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.3/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.3/Properties/Resources.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.3/Properties/Resources.resx create mode 100644 Code/Chapter 9/C#/Exercise 9.3/Properties/Settings.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.3/Properties/Settings.settings create mode 100644 Code/Chapter 9/C#/Exercise 9.3/bin/Debug/Exercise 9.3.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.3/bin/Debug/Exercise 9.3.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.3/bin/Debug/Exercise 9.3.vshost.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.3/obj/Debug/Exercise 9.3.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/C#/Exercise 9.3/obj/Debug/Exercise 9.3.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.3/obj/Debug/Exercise 9.3.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.3/obj/Debug/Exercise_9_3.Properties.Resources.resources create mode 100644 Code/Chapter 9/C#/Exercise 9.3/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/C#/Exercise 9.3/obj/Exercise 9.3.csproj.FileList.txt create mode 100644 Code/Chapter 9/C#/Exercise 9.4/Exercise 9.4.csproj create mode 100644 Code/Chapter 9/C#/Exercise 9.4/Exercise 9.4.csproj.user create mode 100644 Code/Chapter 9/C#/Exercise 9.4/Form1.Designer.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.4/Form1.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.4/Program.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.4/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.4/Properties/Resources.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.4/Properties/Resources.resx create mode 100644 Code/Chapter 9/C#/Exercise 9.4/Properties/Settings.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.4/Properties/Settings.settings create mode 100644 Code/Chapter 9/C#/Exercise 9.4/bin/Debug/Exercise 9.4.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.4/bin/Debug/Exercise 9.4.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.4/bin/Debug/Exercise 9.4.vshost.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.4/obj/Debug/Exercise 9.4.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/C#/Exercise 9.4/obj/Debug/Exercise 9.4.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.4/obj/Debug/Exercise 9.4.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.4/obj/Debug/Exercise_9_4.Properties.Resources.resources create mode 100644 Code/Chapter 9/C#/Exercise 9.4/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/C#/Exercise 9.4/obj/Exercise 9.4.csproj.FileList.txt create mode 100644 Code/Chapter 9/C#/Exercise 9.5/CustProd.Designer.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.5/CustProd.xsc create mode 100644 Code/Chapter 9/C#/Exercise 9.5/CustProd.xsd create mode 100644 Code/Chapter 9/C#/Exercise 9.5/CustProd.xss create mode 100644 Code/Chapter 9/C#/Exercise 9.5/Exercise 9.5.csproj create mode 100644 Code/Chapter 9/C#/Exercise 9.5/Exercise 9.5.csproj.user create mode 100644 Code/Chapter 9/C#/Exercise 9.5/Form1.Designer.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.5/Form1.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.5/Program.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.5/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.5/Properties/Resources.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.5/Properties/Resources.resx create mode 100644 Code/Chapter 9/C#/Exercise 9.5/Properties/Settings.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.5/Properties/Settings.settings create mode 100644 Code/Chapter 9/C#/Exercise 9.5/app.config create mode 100644 Code/Chapter 9/C#/Exercise 9.5/bin/Debug/CreateDataSet.dll create mode 100644 Code/Chapter 9/C#/Exercise 9.5/bin/Debug/CreateDataSet.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Data.xml create mode 100644 Code/Chapter 9/C#/Exercise 9.5/bin/Debug/EditData.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.5/bin/Debug/EditData.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.5/bin/Debug/EditData.vshost.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.exe.config create mode 100644 Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.vshost.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.vshost.exe.config create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Debug/EditData.Properties.Resources.resources create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Debug/EditData.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Debug/EditData.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Debug/Exercise 9.5.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Debug/Exercise 9.5.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Debug/Exercise 9.5.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Debug/Exercise_9_5.Properties.Resources.resources create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Debug/TempPE/CustProd.Designer.cs.dll create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Debug/TempPE/Properties.Resources.cs.dll create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Debug/TempPE/testDataSet.Designer.cs.dll create mode 100644 Code/Chapter 9/C#/Exercise 9.5/obj/Exercise 9.5.csproj.FileList.txt create mode 100644 Code/Chapter 9/C#/Exercise 9.6/Exercise 9.6.csproj create mode 100644 Code/Chapter 9/C#/Exercise 9.6/Exercise 9.6.csproj.user create mode 100644 Code/Chapter 9/C#/Exercise 9.6/Form1.Designer.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.6/Form1.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.6/Program.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.6/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.6/Properties/Resources.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.6/Properties/Resources.resx create mode 100644 Code/Chapter 9/C#/Exercise 9.6/Properties/Settings.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.6/Properties/Settings.settings create mode 100644 Code/Chapter 9/C#/Exercise 9.6/VariousTables.Designer.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.6/VariousTables.xsc create mode 100644 Code/Chapter 9/C#/Exercise 9.6/VariousTables.xsd create mode 100644 Code/Chapter 9/C#/Exercise 9.6/VariousTables.xss create mode 100644 Code/Chapter 9/C#/Exercise 9.6/bin/Debug/Exercise 9.6.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.6/bin/Debug/Exercise 9.6.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.6/bin/Debug/Exercise 9.6.vshost.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.6/obj/Debug/Exercise 9.6.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/C#/Exercise 9.6/obj/Debug/Exercise 9.6.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.6/obj/Debug/Exercise 9.6.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.6/obj/Debug/Exercise_9_6.Properties.Resources.resources create mode 100644 Code/Chapter 9/C#/Exercise 9.6/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/C#/Exercise 9.6/obj/Debug/TempPE/VariousTables.Designer.cs.dll create mode 100644 Code/Chapter 9/C#/Exercise 9.6/obj/Exercise 9.6.csproj.FileList.txt create mode 100644 Code/Chapter 9/C#/Exercise 9.7/Exercise 9.7.csproj create mode 100644 Code/Chapter 9/C#/Exercise 9.7/Exercise 9.7.csproj.user create mode 100644 Code/Chapter 9/C#/Exercise 9.7/Program.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.7/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.7/Properties/Resources.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.7/Properties/Resources.resx create mode 100644 Code/Chapter 9/C#/Exercise 9.7/Properties/Settings.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.7/Properties/Settings.settings create mode 100644 Code/Chapter 9/C#/Exercise 9.7/bin/Debug/DB.MDB create mode 100644 Code/Chapter 9/C#/Exercise 9.7/bin/Debug/Exercise 9.7.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.7/bin/Debug/Exercise 9.7.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.7/bin/Debug/Exercise 9.7.vshost.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.7/obj/Debug/Exercise 9.7.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/C#/Exercise 9.7/obj/Debug/Exercise 9.7.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.7/obj/Debug/Exercise 9.7.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.7/obj/Debug/Exercise_9_7.Properties.Resources.resources create mode 100644 Code/Chapter 9/C#/Exercise 9.7/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/C#/Exercise 9.7/obj/Exercise 9.7.csproj.FileList.txt create mode 100644 Code/Chapter 9/C#/Exercise 9.8/Exercise 9.8.csproj create mode 100644 Code/Chapter 9/C#/Exercise 9.8/Exercise 9.8.csproj.user create mode 100644 Code/Chapter 9/C#/Exercise 9.8/Program.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.8/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.8/Properties/Resources.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.8/Properties/Resources.resx create mode 100644 Code/Chapter 9/C#/Exercise 9.8/Properties/Settings.cs create mode 100644 Code/Chapter 9/C#/Exercise 9.8/Properties/Settings.settings create mode 100644 Code/Chapter 9/C#/Exercise 9.8/bin/Debug/DB.MDB create mode 100644 Code/Chapter 9/C#/Exercise 9.8/bin/Debug/Exercise 9.8.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.8/bin/Debug/Exercise 9.8.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.8/bin/Debug/Exercise 9.8.vshost.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.8/obj/Debug/Exercise 9.8.csproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/C#/Exercise 9.8/obj/Debug/Exercise 9.8.exe create mode 100644 Code/Chapter 9/C#/Exercise 9.8/obj/Debug/Exercise 9.8.pdb create mode 100644 Code/Chapter 9/C#/Exercise 9.8/obj/Debug/Exercise_9_8.Properties.Resources.resources create mode 100644 Code/Chapter 9/C#/Exercise 9.8/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/C#/Exercise 9.8/obj/Exercise 9.8.csproj.FileList.txt create mode 100644 Code/Chapter 9/C#/SqlBulkCopy/Program.cs create mode 100644 Code/Chapter 9/C#/SqlBulkCopy/Properties/AssemblyInfo.cs create mode 100644 Code/Chapter 9/C#/SqlBulkCopy/SqlBulkCopy.csproj create mode 100644 Code/Chapter 9/C#/SqlBulkCopy/SqlBulkCopy.csproj.user create mode 100644 Code/Chapter 9/C#/SqlBulkCopy/bin/Debug/SqlBulkCopy.exe create mode 100644 Code/Chapter 9/C#/SqlBulkCopy/bin/Debug/SqlBulkCopy.pdb create mode 100644 Code/Chapter 9/C#/SqlBulkCopy/obj/Debug/SqlBulkCopy.exe create mode 100644 Code/Chapter 9/C#/SqlBulkCopy/obj/Debug/SqlBulkCopy.pdb create mode 100644 Code/Chapter 9/C#/SqlBulkCopy/obj/SqlBulkCopy.csproj.FileList.txt create mode 100644 Code/Chapter 9/SQL/CreateTest.Sql create mode 100644 Code/Chapter 9/SQL/Exercise 9.2.txt create mode 100644 Code/Chapter 9/SQL/Exercise 9.4.sql create mode 100644 Code/Chapter 9/VB.NET/Chapter 9.sln create mode 100644 Code/Chapter 9/VB.NET/Chapter 9.suo create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/Exercise 9.1.vbproj create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/Exercise 9.1.vbproj.user create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/Form1.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/Form1.resx create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/Form1.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Application.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Application.myapp create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/My Project/ApplicationEvents.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Resources.resx create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Settings.settings create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xsc create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xsd create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xss create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/app.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.vshost.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.vshost.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise_9.1.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise 9.1.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise 9.1.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise 9.1.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise_9.1.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise_9_1.Form1.resources create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise_9_1.Resources.resources create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/TempPE/TestDataSet.Designer.vb.dll create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.1/obj/Exercise 9.1.vbproj.FileList.txt create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/Exercise 9.2.vbproj create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/Exercise 9.2.vbproj.user create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/Module1.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyApplication.myapp create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyApplication.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyResources.resx create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyResources.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MySettings.settings create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MySettings.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/app.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/bin/Exercise 9.2.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/bin/Exercise 9.2.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/bin/Exercise 9.2.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/bin/Exercise 9.2.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise 9.2.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise 9.2.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise 9.2.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise 9.2.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise_9_2.MyResources.resources create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.2/obj/Exercise 9.2.vbproj.FileList.txt create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/Exercise 9.3.vbproj create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/Exercise 9.3.vbproj.user create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/Module1.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyApplication.myapp create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyApplication.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyResources.resx create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyResources.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MySettings.settings create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MySettings.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/app.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.vshost.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.vshost.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise_9_3.MyResources.resources create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.3/obj/Exercise 9.3.vbproj.FileList.txt create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/Exercise 9.4.vbproj create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/Exercise 9.4.vbproj.user create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/Form1.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/Form1.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyApplication.myapp create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyApplication.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyEvents.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyResources.resx create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyResources.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MySettings.settings create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MySettings.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/app.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.vshost.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.vshost.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise 9.4.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise 9.4.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise 9.4.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise 9.4.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise_9_4.MyResources.resources create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.4/obj/Exercise 9.4.vbproj.FileList.txt create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/CustProd.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/CustProd.xsc create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/CustProd.xsd create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/CustProd.xss create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/Exercise 9.5.vbproj create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/Exercise 9.5.vbproj.user create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/Form1.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/Form1.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyApplication.myapp create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyApplication.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyEvents.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyResources.resx create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyResources.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MySettings.settings create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MySettings.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/app.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/bin/Data.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.vshost.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.vshost.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise 9.5.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise 9.5.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise 9.5.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise 9.5.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise_9_5.MyResources.resources create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/TempPE/CustProd.Designer.vb.dll create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.5/obj/Exercise 9.5.vbproj.FileList.txt create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/Exercise 9.6.vbproj create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/Exercise 9.6.vbproj.user create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/Form1.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/Form1.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyApplication.myapp create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyApplication.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyEvents.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyResources.resx create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyResources.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MySettings.settings create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MySettings.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.xsc create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.xsd create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.xss create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/app.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.vshost.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.vshost.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/Exercise 9.6.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/Exercise 9.6.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/Exercise 9.6.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/Exercise 9.6.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/Exercise_9_6.MyResources.resources create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/TempPE/My Project.MyResources.vb.dll create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/TempPE/VariousTables.Designer.vb.dll create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/TempPE/testDataSet.Designer.vb.dll create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.6/obj/Exercise 9.6.vbproj.FileList.txt create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/Exercise 9.7.vbproj create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/Exercise 9.7.vbproj.user create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/Module1.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyApplication.myapp create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyApplication.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyResources.resx create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyResources.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MySettings.settings create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MySettings.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/app.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/bin/DB.MDB create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.vshost.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.vshost.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise_9_7.MyResources.resources create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.7/obj/Exercise 9.7.vbproj.FileList.txt create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/Exercise 9.8.vbproj create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/Exercise 9.8.vbproj.user create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/Module1.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyApplication.myapp create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyApplication.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyResources.resx create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyResources.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MySettings.settings create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MySettings.vb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/app.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/bin/DB.MDB create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.vshost.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.vshost.exe.config create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise 9.8.exe create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise 9.8.pdb create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise 9.8.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise 9.8.xml create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise_9_8.MyResources.resources create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/ResGen.cache create mode 100644 Code/Chapter 9/VB.NET/Exercise 9.8/obj/Exercise 9.8.vbproj.FileList.txt create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/Module1.vb create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Application.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Application.myapp create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/AssemblyInfo.vb create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Resources.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Resources.resx create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Settings.Designer.vb create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Settings.settings create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/SqlBulkCopy.vbproj create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/SqlBulkCopy.vbproj.user create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/bin/Debug/SqlBulkCopy.exe create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/bin/Debug/SqlBulkCopy.pdb create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/bin/Debug/SqlBulkCopy.xml create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopy.exe create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopy.pdb create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopy.vbproj.GenerateResource.Cache create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopy.xml create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopyDemo.Resources.resources create mode 100644 Code/Chapter 9/VB.NET/SqlBulkCopy/obj/SqlBulkCopy.vbproj.FileList.txt create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 contributing.md diff --git a/2343.pdf b/2343.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d9f17bedcc150c363778ed44d9da41d0ce708924 GIT binary patch literal 144043 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%0A4>FikSF8kNC`wv=uz^q|i z2^lJ#%i#PDY3D$S|4gUnvy0R^6;t~6kw}d{T6D<)f_^J zNbDIp*tGQ{*fu57UV;?ADc#G>E;@JS&Rt@-Qy-uY^#P%dw(5q}$A_2vV#MchOFl<7 z&Q0h;?(`lo83S6t@1s}SQDg*r0hapy#9nhJ>*VK!Kc9Rb- z?jqA(bI5t$y(MBKPTL4^5VK=wHMH&axvOFLc9`k1S@=9i)#LHBg_F>&- zl58~Cl1n-zg=W=Z-41Ip;gMSYESp$r0DzWTS7U?V=w)yIB>S{|z%)7MV!nPxB8vmt z-`12_b(>w_z>GKMz%wVK3pzPyevMEr#p6XB`#}1!etMWHD(R--vR4V4=vPBF zp>^_2?ei$W^&Qc_3KI_Ewf5eNomj~l8$^1!XvI%m9|G_|^Gq~Op|H6sJOi4|1vsX) zVP2zqnQ;s?K|Gc?F+P4Xr#&Xyy2WhUneUUNk(g84nI}3Q+0ODC8f?0xbg^~G!g43g zjD;#A+U7MCS-ZNZfx$M-FF<$Xc%hh;(OKG$I;JFGQIcy`Bo4D!&1t&1jhQh7xzRo8 z9=sx1C@qyjP&hrPQeT>o(^R{^S5%gZh#dZ4f+*_eea<9efRjlPEX!U=#&*P?kFJ-d zwS2sYSf7YF<0!nYg&W!d43!r4-5n;80m=8tSuAH8;xR62EmMyPiXhS$*KzKOe>gDs zFOB-JsU%JM9a}nZY)pUiuV;L#K+w+_XlKh`?Ww0I<7oXgTJEnZ*p5-lmNZk>T7S? z4%6t5e_$sRmsFECJW5kZcDao@T9-_KB}>yHk)EmT z`arf^-8lN28qi=J~vI+4QSD!)MA>p3G8QQRqj z$Z)&c6W>tKPQeC5_M7jYU|z>yA;v&M`b=8}6&RC0xy|03R;b=a=};lHrFP9WQ@4yv zUThezZwIfCiUSg(h*c4KmP1UG?x~6E6JRNRgxu=qu+Gb{+;@Ou{VZeMeDI z#YvJ=c`M1ia!V?icCw9i8+36|x3+oE2u59`nC2iK*UxQN=PZ6uG5Ln&F?UMeFrd%0 zJ6!CGfmYpkN|oZ8gOsg3&>0Ul9I9X<sopjswD_El$(79NueGnJ~1UkJZq!Kcwh&hDvPeoKk6cH^<1~fhuNW$Hb z$pABZ^^!oF&3{UE_4A|qwR`v8 zM9)wEyKTGOTb|2-1;KGbIAI2+qWKMrZ_xt84%Jqw9y-*cC znXwarkq1+MYx8@^L?Cpn^dFD+g|{IuLi$mv6&;sF0ZvlTgfQnpiY&hv&BeMXrNJh) zwUs<|RC4KMLn{HXXa-4TC2c)Agd^{kItI(JC*y=u-55_myeTdBvlw^=YerDj6c3a_ zFJy0T9F+ac9DPO>$f1{G_LOKa9v$#@$wi`#7rCU9OYhl&ka{LG_4`Hb?D_j9`!vQE zpX+vvEh{{J%ykmpCh&Z#W*6xd{O6y8<83QzF+lQZht;CcvN_#fgM4AZY%ic`eho8& z3ua+!U@m4VWZxUsTi!#q zmc>W_G~IN^OVRLuStgN#T{hP9Y2^%R_41a%)w5@=>{U}U%y_d0nary%9})gn=VdgP z^;(gCm}Ra>)p@`Qp$24VIFup$Y!*a1N=s;@;ml)s8~))k1ps>)#^j6y>7BEGn!-q_ zVFNAD{#3`5bXN%m4G&lXk+wJWE2J&?6+PdrYFt z@`$jkpY_H-EDPkvI@alHAHSRA-qyJBj<2blxK!)fDyf=;6GqBmEYdmjiIIE2Gs|ir zoVJ0HoT4*{W1;fA69zF}b`vs~AjYx`1bkF3gvMhTCJ-E56bDI=`7Y!5_DO=0{LRA1 zHVT^HsIqZnU4HmRPIqj*h#VA9%&{&SO1?HI5W-|WQAy|cz^H~GA{_QJiqPKl)S=(E z|40nHAiF(oQcOPAp+h_{qd_>-&8k?2E8Y>nJjBa{|Ig;`eKSBsn4vl3z+Un_Ru3wwq?z}fFMQw0(cZ9&(kc~vbV%nFX+A)vKqcao zUF0uod+}9v+VV*1oi-sDV?&kp@00To5=i`3^!{bKDwCv)2D)j6_+gy0douvPw)*DB=mk8?v=&J` zQ)IRU#uwt!0a1l<#`n`Afc$Ob#<)IHpZv5ZqoXq0q0vfrbJv)V6cWfaQ8l^C%o zzlb|UR!GEtg5f3WDjJmU>7_=zMu9mb+8fV}uB2Q`{LPEW9x0|r^I5i6rjw{7N+p*F z6DV@IYmde?*h`pFb{|8Sil`qbzycTJ0c5OB!`C+=y;Q9S(i|i41HZ>)&SN|0_R@gQ z_pd*z0@Ir1UCvP89>&U!Gu?kV!~H0^Huq%OqjjIB3Nf*yAm-yC;oMQnNGx?}H=m2s z5lDMh9op-?TD#{(bf&_3&J~;K+pZ~jO9aej=m+)ajeB2eou2^qm4G#;IHMfNG`j+& z#ukRTtnT8=ukH-^CEe3|c0QgNq{ng}HfXx8t?z>4U5d8boUl6+`M!bE06FPdJ(d=G zm6b-xG$FdvVqwxZX115dFaxDtR_YI}^^Ek?l~bs6Dc}@XZBBkjLfLN6tw(?E(`Mlb z6jFX4r*205+%P^R9K!wgErDDv?liktOhz3{BrwYSHrUxXl=4y``Ms9mWE8gPOeDWm zpM{m#V>(L$-&Nt#AK&)#UN7+H`+Stx)~bXsi!as69ve9py$T#`>&1&UUx_`IDBgIo zeK47AclB@+@39XS51@?^?prH9JAzSYL?zipdMs8=##{PsNmoegl47k8Py8izC~p6~ zBbmwcpA=F4Okz$@1em=Fl)xZ6A0Du3^|H|jzsdN;lBwKO3>=2yYHz6#%#XLQ=FwN7 z6>(Q&EK5NE{pQbQ%~8IZ%9k=KO;AxxXF!o|(iX=r#m5#SyBx}@yMeo!%U|KTrwL@xhxfcOVK z#+I5`M4m&WxLi8%b*(sI_<~kh$&Kl?@!zp!;v7k*V*6JPtFowA{zYjq!|#?uJWr}U z;}J9%v8k*A%LP|kpGF%gQC9n3<+GSS7i`@Q9@NK83{nImWEZg`!9myj2ej~bh}ZOz zmvr?*jeU)3MxP0nW|O;B)^R2S77tJy=63bQYwLR#+mfy{ZQ`QdmS1(?`kON#$0Exk zt7736ZY2<2`^5X5fCfCYo!0}CjQ7WQf8XVl1!TuK^ILY+CHCE=r|R1Ks(rjEm7~mv z1)8iVXIBmnw}J|@Q*5B@dyVezrxoYrtkSH4-RWZ6#4jsI?^}Z53*k z@Wq92R(a#ZKp485vz3Sq+U{EWy^{syv;IUCczFd449b9a;g5+;Uc7wrb#$MG80d&q zRm$J>=d#)k;bV>mKv4i;IUz6*NO}1jAtg-Iu>`CrG1w5bn9$EMWri)&%>@e8e|`Vu z3xm-E&-;a$9f%dz>ML3EB=6nM|H^B(e5YH^J$1~)?HWYd7&(n}I`~WNh9bs@4Sc*@ zqC~2w5b9wp#(P)~puyn#gl#~(Fd#?!li&R^qQ35D;0l!Lecez@Y{#J|v9cj;=3ir) zlJtSP_-jhGDp=LQw6sx?QGABTTznpPf7~Pd0UHUypV?)1rd>2jFB6>;;cV@4* zfBP|>5Oublh&DM#^ayd9Fi2+gRJNc=LX5P~BOc`l-801TW%`Vt)CAmNcw@#ugzqb< zyOF$N_CEhso9Mtk$G8i9BeK$Ov+TS-5Hb-=^h?jdsSVhj4WmcaMpRW+mX}vXRYk<18@*eU_xt!|?7o}#LB;ez#Ttxs z;CgN23*21$ey!E4_V-Uu2gZ}K;yl<$cp!%*zwFwUYOr3Ba$L)8B~5`wg0o8WbkpIv z^p72eu4$OuL%rh@@Y1*TB9%_eb@g*7+yi}NAy1L|x23HHKMJ6L!4u?Mfiex7R!M*| zx~Kxd-;S&<)5 zQ@DDa&0>DMvQmZdAa5zpvP3d{9tS_ou~K5b6nk2HBV{5huCb+NX5Xdk>u1#0k~QAUqNH(R0ph?e)Aii%x(fRvO~Qh39+aK0^fBj|8sHz#EEFFtQQ ziCS8gN<#jBkbl`Rg`{`ehu5UGWHK(WvS!m7!{^4y4(n;BhV>p@M3CVD%qBj#;p=it zhWBVa#9h!CxdD%+D0sTxyYb|Qz(-j^EPQMfBqXnnIHc@h1yJ4U`bpZ-b&4C(UwWm+ zZ`$S3ArWQTHz8aZy3J(dR$61HhhMrcmR zB%NZHzzgE$RMtlgaaP}@KwOzPTrl9Rsj*Dy5_@F+QK+F;QCCz`)#6_z{mzQj6MQb^ z>ah67MmkW0H`w3qC7Z{WjGcDAqrUsJ-KTH!9;-CHxnXKVn5ScsIqZsli}D5eXV{(v z%}ZIpN3Ikxdqs4C0fEvA0p*ZIR}vC9X{3l86vTx8b$cR-N#JlC_=uHDSSEe1>eogH z$%_ipi33W7xhIZ7o%cT^l%&t{uM!j2Pc7Knuf{G<^vAmmEBZY)b z#M*9`^e9p~SiI@S1eIcC4xzci>`bU-AG*eUTt{DzP-nCz65@^tpcFBG-?*dgfz2BHj`RB?9fRL-z0B z3eLtj>oV32Jdc)b^!US#Jg<+>i_wUAwf#&q)XLaOsQce!woVY-x;9MwDGbYnGRXat z1|GRGgrbf9V^rj|$c403s1VUZ{U`d?TRPo~c~jJ)b-DB@)K1vTKpF};P85!u=0#()e&6Ryi!GcK&@Yz-tX&aV@jo=L^oOGe4l6i7MiwVC<0{khQP zFRwi1^S5yKH0D$v$XrfejSm+&;j=C%&4Z4d;JYv@^@EOBd-T(G$eOCCqp)F{hBWqCYnThw5eN&BB!NwBI&!Nd~FF2)NL^u%(? z|9Z8+XY>bo_TDUB`NYD%o~HX6*Vu*{-mWEzOvXG}ydbz{=(U!L`cC99Sr}*;A$!>S z#dm6jAC1}tdl|FSU(s(lPrR1Mw+T$g3|YJorbSt1i(U=n)wQpWq2G6KuZao$S|)`b zR5z2)EP-NaQ(Ixs$>IaZG}2<8GNWu0$((Q5zoTa7q!T%%ZA0Q%kia8GzAAq0MJPT& zWL2C|T9>3AMvw*xMOwCK^#B?@M8tyfY!vhq2xuv01gTgv-ZR?SysIKV?@3jpiZypD zEL_VRxSWjXT%<)>F`;aH+kXl9ZS$hdLKp-W9Y|}#UO*XH!Ga`#7vWU!WW%jKdaKpp z6jfHSa`D#Mva-^{MoEC(2wVY40rwd5wv6OICQOJ4Cflm&E>#WWC{xhD_u*5eOmr>~ zMv|i`?C8QUM#e>I2B@@`R%hhJv-3993qyoL(CDKFh$p-!^tpca?)lt{E*mb~?rY9& zulz4NkGY@Qx5=qw)>M`!DjKgRWY7|;a9HK)-%ZuZZpuI{-YO~gLiNLne*t!{Hy=NYbot7jN|k}kwM&VX+VEwt+0I(#X(*1Mh|*^ zi}bHEgVS(H+9>{d1H)d>aP25;ERQ=txSW0{vLL$B!^6YBplHCutaOFES1T3`e$H1; z$=AjsQ(q(yHi5Q7z-A~6DsW%knx~;e|dBl&&G>Y3g0R!W0C+^1J(iCJj z(=3o2A8Ts&=U2T=ml~RxgfPQ)rgWxe4|c6RNv6(I zU!@r!O+prq6qDeEW4=w(r+xh;VSDjGIFdMW8Ak4REuEq3SV&<6R3fY%SiH-(loBpi z%k1stoRIdA*7XP36Ym9FAK6hpD;m1YtyLML*cynwIaT; z7m71cmb#kV-MYHn-I}_VmYSND;`%vlEz6g-+ZIi>D!*FY;?vs`1AoxdF2;5)si4RL zcn5zQ?dv<;kUGP$WH3yp*15Qid{{GRUiOxy?Y`?2Y^)VRTtK5O%^z2UW0!FoPaITLNVx~qC?PMG=5Ys2hmk8b<;Mr%y(*B z9YDNAP@%6Nxbz2Gzq+P7b*-i2zvZ<)P;QRD$0G=A__nWieJF2Ft@u40@1}lAjccH; zhjkIi?KK}k-|K&-|NDaR9nfs(sWr@tO;H`K!Z@!+CH!=2tUf7y1mE}lSy=dK9|806 z<3B{bwNfLvSenc|65+lCF{t&a`A!)_Y8R$)z8G9y|2huGjzjdcoud-@CdO4x4V`-T zO+I(JQmZDNNzu26m?@^FU@72Oge7mMrlf-T&E)|`2Kf=R!E%L1^&w$VSgfUtk#vQH zMq#4k(`1($DV3DVeu<04JG?L^3YM~GH-$w*C0&Fsy^r51bIZxCm$w;=E(TAPtRSz^ z`D~Y=D7W^O8(VLKP-r<0@7L+kuh+1;bg%PRa$F<$ebr-VAzM0UW!p*gxc;@rj^>WG zO4lzPZ)JMi8e57wy(E6?IZbF;2b1B&KK3!o;KM` zM(o#;HU1LcGZ_2_=(1!$GFprfAyL}_Su|%Q0c~aE956Wk)&N)Luw@Ya5nd!7Dn$wx zuf}djrW|MVjg<4@I~j0E&5J_J7RSYIc$gIlIme!kM07QEWPDycWS4!|DzG20h%O)r zT7f)~n44ihXmOM<`Kke3s_t10hXAg7f;=1$NO-t5o)e{Tz(w(Qba{FVaj{#z8BLS_ z#Y&>@^XusUl+vx8UK{k)fdt8(LANz;D);m_ShA7zS;o|waWGjQOf*H1NaL%9z7Yzg zZioKgL#w{t6oT3!$cd{Q^&&P{4izF*iC=wfY2#x`*3T`Xi0s27{hyJY!}!|MOGD=S zDd4=$q}PYimt&4s>&>n24B*1UF6t_S&3Bl`UY~p*aEw#C4+Ow4|HzADqW?d0jsNRz z%Kw#XWaVV}|Kr}es6eSGuVeW!bzz`FCY%mp4os3D5<-qEiz;bu&jrCyPm~jekY*r3 zHHH8c7b%w=YFs)AO6UmEOvVsKP+GMdI6CyBu@x1w80(a$R^Tmt2y{(l_Ar*^zBD_} z@V#z*?%wwPI`!T{GnOG`2ohrQj3(GJp=L0%oZvvi6+XgxDerG!o#1vKDvo=?v@^-) zY%Rlx6nD5v8&IB_ZvtY>z>4ojo zvy<4v8M8A-mf|`KIo1Y7Mw>G`J!v`P8z1;S!nnSZcTVnc2(mT?Z&`;B=>p-oJ*W&0fw1fS##ef-V=G6SM zb_{>(_D=ZZbx-~ryYCIytk}OTS9NPrwiZfvO z<~RXPl+DXI^bGZAx+=S?jZ=&dMscy7g{jl%lkL*|1X_)3l4U7r?%WyOX_Jzg?AzEn>^qh?ov+jJ%8_cYwZVp@V{y0z0POz%r z#o*0RtWi9uOk`$;ViprdR=y|Qvv_Rt*fR0b`^69odW%}C4z}*BvaIwhAh@!3rOWE) zrHN+04Mf{^b}gJb-STh2s>RxQbc@O6?3T^u)D4ggEn5_v;TfaThH)F}D)ZHPPaCGr z$n6QWdWbdd)=XP-o;B+$-IWo3)6aE|a;+=OVeLSVA-pXu(syjg#!#I%=rqOJjMz1V zQ-^v&U`^4ZxWZ@oT1-Si!XQM2W1~XV1!IExWVZVJ=;M7i3pk1~_-4eGA8U%4nub1U z8c+>G)5JaHT2aWRg1E}CKVJl*NYH&s*0|3hjDXZP4pF}9qZ)y_Uo$uo+_Bqgl<-%i zLGzy92DMQ>ydJU)gyzYC<-P}pP7?w|Kf$Nw*FQ*O>WiTHgHRV%jv_BQnj0HSVA*G? zcTv(mB8G>Wn(E4jX6N`kzv_?RDOmto1`8|kAyuwCo{vA3s)##!0sxqt^cR#_Tr%m zBG;N*ecW5LmDA-jY*bt%7`kwuvsLX%({)PE<==fMsjUqNq9_j5l7#*%h4JfmZX$=V zI*D@e^QU$;X`r5)`@8L2a&&&CX81M(w-p$W`hup2?(vv}k5T7fTOiBkN8lFFbI#+v9!fi!&U1KU1Fp5J9~5mO>%Q zkXS@;67?FPclS`7iiOUC=#dPF_}1p;WBcXU11a`#(PQVFD%Pv=MEz)MKQJ2mczOUB z@XDW`e4xS;5&_y@Wc~uh1U4jb5kYqbMpn;`ujPZuMfZi?(~?NnTYlHq9@vzL6{#`r z7g$o)kbio%JCD*acb z3@M^n?_OZ2kexkSX++F^6tI#~ZCUGcx=nZxhVm%>Cv~IegtO1xgPPP)tKT!<-?=L) zq)??qC@ymzR0t$;>>IH%JR_SVk}nu?Af!HyeY$bS$A99`Ij1_p_!fcq!v)J0swhb! zymCFEd)mAGCU>zH@Of>-0>jmBE;v746mLBMshg@`DsHeS3BIMn%Fo@qJsdchC8YNz zb1F$Y`Ip$baP2-m9K{4>x^qMu^rLp-5 ztgcfT#gnlQC^{382Pd|Q+~&Hl+l5DWM&8#u#%bZ=9wcwzF9Ul0hHoR~#!M|{T*(+b zB8z5n1Qw|Ig-$G(;NxxtK`QMQvq|diMH*=v@q-RfxtD+f0a?0G!Z*bKph9#@$srvO_ zNX3q5MD`a&b-Zha?n*Joy0qITEz=(UCyw8`mErgLdp1C8jhTc@ct7xeK!#{D`QsKM zMCtVsfeZcrUQ$6+k${;t9lTg)RGlQVaJ=xVpA`h~z&0aKkkVmHZAs?A_bbNgegJ;N z7@7D45z1?;wO|6f7L`VV{?X|LJIbQFYj(CUdO;5I|?#U7l%Zqa^I;}-BvZ_GhT;M{8AMQhiUFSRWTE>?u2@}m8dQdY|; zZ_)Gd>TNVJ&Cmhb`TM|nqhoaS!*z4^1>bSdN2E@iJ)4S_ib}<0BDJy;Prbd_uMmov z5yL-6aB4{X6WH)eEE~>5*_8VX(Np-HbD&`M<#~jR;Ql1!zDEe^BlIVe4Gc^tY+sNy zmL=PK?9X+e{mvm1{CHp&m7LjOlwS&NIv@&kJAkVNqgLXV5s&m$jt>6t-6jp z6PjwHao=FNdGXy4A4@s`&)o1f|1B}ez?4H(1e5#o?kzr{pA2 zOHxe+?hWf4o^%78pOlAHGOy9`I#Xr@&;?KL+o3*RN8~Ed4{CEHNSq=2Z9t^rd?xIG zrFYD{U+K%XBBD>qmBy0o#9`HJ$mDCtPysqJT{9OxebRRn8O#p=v7IK`t7vgzcLUVu z#H~QXPhA=WeYXVbkPE4MB@9Z5md}PkUi>k3bsjroVlX~w(87X%W^tN}$`qodJ5e;$ zY&x7#+D(Py=9OL`#q@>AAwqZ%?#slpm*|y!qf5J+kGeo*KP0_`!&;`W-zwJ&z{+4V z7Rn$tslUoMbX|yTKEp5GCa)o53iM-1|B>=c-T`hOFaGC$Q={iu1Y&#S4!?HKJ0zuS1-873jl*rUy*F*41K!!DVyF~flu2M4Wb0j=hB z@m~M^2QbNO&vX0Zfr(s#>URfqH7q&ysD$V7Yg2jup$1QTFmzIIU`p09!jo1rXtj*;> zh6(g*cJaU!{td~!??qalC!!8~c+a(ZNE&h(7=D@U86k)YcbJgqAy7TcuQ*vKN%$9L z@v|@%eFGQ9BB8J^7JR)vOc0Ik$Yx{C&>>`$`uY#Wo>fe}(OKx2Ki#v6-cplhHw<`aRLd&T||4dB`%U~;(Emb^*IaH8bm~gVxJz?$~ z7-CL+oS6oZDuS)!5LlOrW(pwPoU<@#Taa^pQ8$O?rUiC(y(Df5Y_=ot$iQU(X$FkP+y=6{&V!EDCB zI;fMZp+IyP4I?6t0VPi!ke5P#ikBf0Y=4_b{Nnrgz3b0y#>6IoyD7J4hbjNRSye{z zNu84$%fsC4;hr5GSorAii2H(`{IKHSGi$}-mjVf2dG#}x(6DHocZ6nsRcA_}^Jdp{ zyxX>=ZX6)lm8^gfd~g5vgzA1BxD58zbi5ySMSPvJKLo+s9Nmm)^LC^4-Bqr#+dTyz zEtEA$ktk6Q>&qt4W3??g-G7HJ1xi(scoY%bJ|)yu9&GH zhO{ncVGt&^1e;iOdh}V*Laf{eQs&$T!_YLkS-4DOr-xX*Yd{<}aj=DKUQ1s-JT}2i zoT^*(C1Kn!SCb_6X@x*DWyd!ifx*3H0dV4NpnMlY-WHS?fils-`@q~1+?yPoB#T{w za@&tN2lw32jbx4F2#+m?gQGl$PZ{mMK6gH^mS1+`z5m@mJMMFc^ZE_mj=CH8ZL74I z$XPVoqpoIjRE;SAGnI+)$MsJz`?OzYI@CnX?Ug3peEV%|*K0nWYn5n*V>cG1HWCdb zQWtET){p9T9=v$?+6!;gt|`JoYXAZ%a{F6FQ%%9ONeuEOxPun&gQBYT&GqZa{w z?Hy_+|n}QrqZ~E>-|Ud4uHaH ztjR=vU?eBv-OJ++s#374KI-1GO_ll(LYV})j2^gITtTP4DgG-d=a&x4)~j@!VRaY< zytzU@PAGq)HRf*&{j=n}X43ks6DS|*Ql1GVp*H_4ufzAiy zQku&6HN=U@Ekt&5cqr%`+wLZ*ku*)7bWAJ|Z z_N;&>e8D+&@Qc+3e*#k$|oNbO8=<^Rzf8~G6i@FOMB1t=9fuf(@g7@0Wue(GR z9Rk2+dRlHJtOAG5L4Sw?1Vk|@1j7lMZK(Cm5@a^1(+Z~<_9!{iWt#*9_z0S-LlE0V zj}+|w=D;Vn)@0VK6Q@8&Bw*htmQ})`Ilyye&B74e&Gu@9-Z*-?#*;~GXFys%l0ld! z>hIv0EKEJp?iG?weK$hPKgBzExMVRFsB2SpXN>7;3-?E(iuU@U?y0dfd~_W;cx@07 z0gzwwq5PmWOJSZ%;0%h^MUL17iYE0ozF?*0d>3hs=tGh-A&C|Anz6+^fX zW?I@nxmX2T3_Rd!sN);qIit%V#3QUY`8Uq}XGTe+jMm&^7t%W%Zz{0c>1D=L*LKeg z>^;TN62|8A#@$c;c8phjcCc)!NmaEo-odN%Nm6~81&qI3z^yi}>Pkoc(+1vUf8NAd zV~-uroUIl+Mg(2F#>awnIMc6b6_DsVctz+9Azh$418=t&&ejrH3(mpu?l7sE>ayLi zhB%)pqHc2TCqH_%(@VV|1WQ56;s){h?}C4OXN8qAY*B5~MRT@r<1S!0PNb1X7_u{# z?;Dvn0i-T9m!?KBO{I)<^Sp6sR(6pzzd*U z;o=(O)|Mo<{jY^r#q%oMTw*7ZD3SIcNa!-A2N%}ABxJS1X<&}AN!b>L^JhX6 zFinqS#U41f*oEpO!EBhW$eWPX)nYp`124wbq^;^1TP&y=IOdBQ|0OW#coLWP_N^(I zL&MIC)3c7@l+O>LRQ@zPgKLja$5o%92*)7KrI#cQ!(?79o(@QRhH*U8TywGihwWJ% z`J`4}K){nfROT%Q@ho#mm9DSu1WGf1g8&xU?>@#BYfk&h?l9+6-zsO#;mz>PG53Z= zpnN$`9P;puNs=U1g<fN6suBYEfuUx&C-v(2uHqf=XpSzICPE0s zQrMMpr%FmuI-(zFq8Zu?%0D`qivxHvqfrp9ASC`VeKBRS4L&y^wB|rnC16N`Py}!ze$YPp03@hK&96{O0u_d@EKxDe)0rZs;u79p00UMqn&DR zqTxxcs;xSRuFLtVkV#K7yK zlu=4NR)h$VH4vo=cOY?UnrMikr!NbdD0G5~0CvKxr9`6eh#f9~$C6O4u2xOdY{>D& z6Uf=9L&4ov`p;Fme7@XW-TmD0-o0H7%(i!zTY_I9hvvr)$`%d_ti74_%U(#0w#LAs%FHe-mzJrC?>2d}j(YBS7!~Tz}3H@V-*2e&mk1^Q|g!ORa z_X|(nA7>25Z1~dE+e%BpHU!S%C8gN^hQ)4W!8ge+Aw3W`-G|;M76;=cjRY(3m8&eA z1mXR^noI?>tle0}&VfK{fNNGFHFp{KM-7b)3kNtU1Xf^aq=Xu0&0bxfz#}w5^6Dp{ zhFOBa540QSZGQh4PLlhsRnlG|pibmW$}0LiOv}cwEd%+B(l35bOK`MD{~7%ef~7Q5 zXs-qrKqV0H0#us=r77O@6huqg9n~2j>%qS{nWQIzy&v-Al)LXuWly70rc!eidvDAh2yr-h57EC6Z<{G~0Su)x z{Jd!_3Cbtr?t73^=mV@eI*Dn>ckNAo=xb(?KtJ_bS8VHiFYN3^&3dWTs+vvr+XmGWt+SNzwmP z*8nw$2JXf$k9W(`T3>~5S#6%BnT?E}0+cWj0OeM3F<*fa#mM0{(#UzAJVg`>*`hTM zAA!J4mtXunp|No=YSdb5Q%vkQHs}Blz@pDY&KRmAfK{9Hexy@8CjfqpTg0GM8T-G6 zZL`TO&MtwczPkFVm+nQGe+V{7WtADTX^>K-!$G#Vw zb+0|@0B-k~Md!6biPX@1(ZLo<<3vUmK0mUlvS1j!T=A5-U3eodmc(M0G4Eeu%T1n z2#bQ<(#lp;je*)z*BObmsX#zls8)#oQqn1d0k%-Icphri;$XHPPX!x)o?fh zK5q`$X1?ncC(Pxr*6*TS2IN}kwVQGH*rF%f#fb6ved2f~QYNRV?;_-FN}aM!$=)%iS2TU1zA*()424IzjPwLXJ(Cf4_6bC#9& zjt8d&>#>}9`9`<|mQFvsS_vr2d!=wS8ctViO^{|KLR@k$xOc|j2WCpW!Z&9N-LD~p zb30bBg_c?|ZhV7@G>Jl1Ygd!O+a z@cOx|bf#?PWIEtFfDEF6BU+z=GH;;zd)=#F-Xo?qCfy>$-}WC|aDU`5f2XEfZ*6;7 zwS91r!Z%#N8ieO>xX$w)U-3Y(|86vq6dojcT<{?$gY{{QaxAtTJa6%A1dsf;gR=Ji z<%np6(4MsQFr&a5R1y<^__r|tq-K(ZxFc<%{1MxvY%NIAE$52v0_%z!?c}yoz*d3# z@su;js#*i(79bq*6u(RL45B`}TW%(;vV0?8u01Fb{A$2$tx&m;tHyF8p?m`;lRflu z!& z(7~5WSjFn2{tZjHjf0jq^tJ)U+`Ix&a@zLnMUq47ab09YL_a`t-4b?w=td(4^t^xn zHXAdKR`QFmR94?|lCc;=UeQ&*jq^tyd93hHQPz{mT&@ZsrQq0R(GB&zgEOs?6A5vjeB-LG-1HeTolZlFiTaV)OF*9v*% z&F_DN;_m-IK)&`_F<3=@{K}ru5&aexa$V!ea{tYfZGSeds`o?P{($pnd4K);gWw3$ zxM@JSM{meWE}P&`{tlW&mGzTnTZur>NsPQpTCX_rr{h6hdSh@NF$69^GmcIYv7_Ob zD5)J`R)B2WkARyNXzVh0eL#4AmLp46Y-H9W=i(d--TAL2-S-Xlw zJfWlq%lNcMdwcl&r(T~zNIpw>Il|`Ju)1mtAZd&ni)k&)rhbh@C@ijw0E)N-Ff1mj z#;Z_ZQ}bpjKamm_SFXf@_YkuVgn_}7$l{W5`Pzu5yjZUBgI4WT{g2CPOJ>!o$uGB( zJH=aHZ;IFM#}D_SF!4hQMRmsB`E&@Xdxv@&RIisn!65=Df36;4-nh$X=_`Yo^E2{A$VGRmt%v61|KAQERhNCi!%Iuo@gn+tJ`g=wOpk_|)x_1A!y3 zo>^76Ej|L~mFE6ZrG_g@c|p3vdI+@ja?-OSks*l_n%^QLA<&Yz1(a(7ZqbN=Cu?T3? zZA75mF6mWQWe<$~^aL>yM`G@l>}<;Vo%#FYddJdZKr_)Tkbylp&%38qJh?R)UH&x|Dl9^#%SnRj5j zT0TB2xmB-=8Cx?+QNUoOD6tZX#|<79zza%JB&E!}Zh9=g4JB>F!0#QEUNa+rp^Lq|@TZia0Soh&g0|;TFwJo3AN}m9ke(wH zLxUG4F!E503bDi;qo7s0ZJYeIxy>3YJ!@f3wYw6II%|TvzZ|cNleuxW(|nBr0IzW% z@#pa1`orD)&lD?rALOs9Uxs%TQ&hGtG?TI$cC+v27q%|dD$0jf&%JF+t!r~f>&Y`Q zGbE5wwBV7|)S&ghcMAF)SH&daBpcW^5%4$K?#vF-ZON-KK__p(?gbE@+Sa43gX$ZG zhSNuue#rBQ;zBJk2cvVW^(?s!($IB4@)I!4fC_LeR|kCH5N5EHdgQL^w)_bfQZRx2 z4CJ~*4J{`iFW>NEdyTf%Mw63D_|Y+`K0?<}n(HL=L?%|Y$3eF%LQr`RjY;<;Nt9id zh2*=KC}oW$3Tk|TG$kXSB8y|szy*2b&V)XD0+}skJ{u&jk;F&zX;H|=xe2{YMxCg1 z1c}|eWxp1Ta*5vq{>}@P?0RVX=_dDr#;y=)X=Qytl{=cP{G_(qh2MCx7Lbf^FCJb3s?DT*bNnF5Da=TB?zc;l%<@5y+**=uor8*wCbtrC7SeGd_)8FxBPDXx%$+5VArR z^!1EV_`g0{xC;wLGdV+LTg85K==x{5gpxqX0a4&8oGl~5Eh!3;Bf>ZWPr)`xf)){ZI4zH{zMsNv9+GHB9+MX&!oUUgmbXJ`xp0dGRUqcxqEw5ypv`Q1KLwvk-e8Is6wduv zudv(QlahP9j>2yun)g)N>t#cxoSPGaCg_TJ&s`2;p0qihuLVCKzA-oubdXEN-a~`jM`jQ7tTBaBhczCJ`6{JQekm5y>&&?20CKNjD&gpFw z!2Lt5yItKL(fF?S0lbtkP4ufuZ*0{WJYCesccdehmi! z2WdA?M*6oCDOvwHky6RY-bBUBMF*%PCZPuu_i&L^aWQf+Lns4+doAmsFj?o+&*{a0mxd}nYmb*05qhPc!V9C%$%Kh*tl6)3}jqQO@S(w zRxU2C|FK<{+DVs&(agb_2B_-kVD{JCO*3Z)Gn4;z1onR(frXLjvmz>1US>M%T#Rg- ztV~R-0A^N3W)^NHCT2aL1mN%LeECOFib~Qzbu%YtD||7iG zb|yw{Rz2VsGiQ5OClfPg0O#NO2mWW2P6>M_Ti{=dzlsAe1LcieoUA-_{tEZW1o(TY z2mI6mfb%aEeqJ_b7bi0#TSPdiNE?l{SaME;7(?d_n8|`C6x={?2N?Ke3y-&hH&7Mv za-9q2%e^#qv|RD14Sj|`GiSB627d3c`u=Zs;)3@NM`v_9#B#F+{{BtG6B1XxWLMCn zjH(GqT=G)hk3k_60a6Xv`*DKH7zKyLG+xslzIzfbw;^I4F`g1?(24+&L*$8Jv0G$z z8Rt7RSLcods|+zu{oUa$ESBxa1!c6)_rS)S-9Er#2% z245lfgjX;xf$$gek%XlP%GCbj=QD6+=kMA!mP@IYh~J>*Gsj~%Cf60lSQ<%e^S~x1dq7-=c zO{ky~z}OCZ3DXUYrXN0*{&-xvVx5sO(f$T&$mKv{cjwTDxR?ngs@{5#wbSpxdFeof z(|KwFD4&Tn-}RFEdEgnmCM5O>(SQ^l29>GPTtvSV8yW#uu~{B?S-`Zh5w6dYh1d0P z7Xp=Kd?kj7l|-Yp!7|gt*%%&58j}hgIrEgzbX6tjtbr*{ndjO+5AocYQ00x$7TL3M zybBMLLm6C=1ybRbKXym1^BC+t=oiQ78KDvdZXXkuRqGXAJi4}2b;Jr zC^5+q_f{PW_e0<3c-28Kk;MpehrNexueG;R`s(BPge4^mbc$5i7eTd2T z0?OGt+%VuQh@j6-K8vw4kUUPKYD1b2{uUW*cr7vTw5~?Envu#n{4mTac&VF^MQ$}S zO(2tH#ow`Z8V>No_!bQ*zVPLDIpGATT0Q zKs!PTLBvVe<1EjO4sOJ>4*`OH^wCf|<2s;$j^Z$9|?bAYy{oM||x_{K|$aRAnI z?hVv*?tF^Io4IKJBnI`ylQg`+g#O58MwEy{8`t4(QE<0;1 zCa87=$&=k|Zgc(TUzheEu1GRRFlhQ1o~-fA^z#EXWtulw~&#Ifn21w)Z+U?8p^cmkpsG2Ie0|w$cn*`*yY)ik)pvqVd3rrsISlwM zB>0}%69+Y>PFRt;4+Rw7wyhgwt_!Ra&UzOqHcj<<4o~AORhWrw+uC%HLPtDFAGaM7 z*r|@Mp|zY%N$EJ*eSP-`r5JU564*D&ZEciioNr%)tE@sF_)tTpX5<$cwoEsMDJyI9 zwN)p~Kppi|Cy-H2q1D_CGb?Bc{p~6)(K9P@xZ8*qaYJHXCwdU6PLCqxz7nWTC^pm} zSJ>^BoF=Dumxb>8j*#wHpJn-TWaLs>a-+s^5F{{5tA6kqTJ} z{4O$DxS9_a7_RCL5r0b|Sw&Kps2fn(Y@(51y&oSc`XTT}z5l+ma-Qq|>FA+K{7p`PYE^Ij{l$$JoO4&k~s#S^o zOZ{K|=hX3+j{k)^OkA>lm2#;sL19Ru0+2p{demjp9EI5n zpEt+=dOGMnCCFs1P0laQcA#{&8472hiZTv}7_}MQOzLN~2SxtI0tOI|$hOqIhf!># zqe=MmYfsg&3y@23&-0K&*jU<@*oGi?i^OREu1Wn@NOVzqI~OxM7iYjf*y?ZnD18zh zP|3*YbNlC|`1|a?*#E`B04AWknW>f0U&Qt|Nd7}A1KIzjivU&4JY4=?@cu91 zfAO&TWK`yV)2#kGTaIh2IqkKgzJtAs3MSDc9*Sc~3szs;$Q>SXnV7XSn?HgU7{Zz) zO(&(WzZAVG+=`yqfwVu>t9VMOePs*-t$THOJb^dXjGNrt7_2*&MBV@NqJGzkzm)Wk zF;+6_rM)bQ#$n|EUG5hRH$Kse-W zMW<8iw@|Kx_WzBjrWkV?q=sF^^Zil{S{X-Nxo^}86CVQG6)~F_gGlU8|4D&l0Dkycye8l@@Z!BYvG>6F815O({>g)*%HKLMwg-)LuKG+6kIzs zaZ-G(YKR(feu-GMF0C>**t1k3m*Somw3vR0@% zj97Th!MJTV(WEbcuQP~qYEZ3@*O#t$ns;lez#)ZWQq#+09Z?cG*$a{Oig#40@rH5w zz{_`C?-6L6xyHuz2U|OPMoXp-Y_6}VA|Icp_K4h0p2H03m{TMkjH2kV4xvaz`{4)Y zCKawQt1`MPoE4s~d@#T8Q-F)b?=Pb{hU$O%zN`47u#kCduKqs8z6Hv`qVFAXE$IgmgZ&Rl z98BhlRy&Nt%OMmw^B-XM>ajZlYL2>`HD#AyCr2K-IhBXjsp4nUFPpxJwKIP!q}7vs zBL957jIZW8{6st^Kz>NIz&N0fIT!5>R4*;W3-VKc2h`!Mf6x4l6$houy?I@WGm`K< z(zZ`hTYzYc^I#Cr&KE()Pk-X;VCHs@_v`~=xHca-i(S?BJ9xa(n&Jmi(XTi+l!|v@ zXeXY`rpwq?F5~&$6m5MvX!5#)U?UuPK-$bKj`&_$MN#2bxR>J6XL_yu$KaSs3(%VEE6xqwKRtrj=B8qBZ;Dwg zp5MJ}L=KHiNC$^$@Jb>~G%vlIY;12SEHk7}b0?7L6&OcoPSjolq@C^w)xclG?H9dE z3DuJ6k~i0xSP60r=ALJA2g*!E)p#E02YTP2h;4g&OFoh`VoQ9#+Fy#Z+sHkLU9H@D zQZt#7XgFx>oJgR<}v+H7n1h~st+H6msbts*c=t5fYL z6z0S+Al+LGHn%!EK3IN@obw7C?*g(hddZ{fnTPXGGcv0_&TY*%U1$X0$E1U<&0O4%fWm1_(Rd@j zZE80uH|(GX#Ul`e%kV(?Hyo(GasWpc(UUZhLJ|u%#K*o?IQuV&PKO%-zplW7V@F3? zU8`LUq>RVIpJg?MvFA6W7jj+x{kr#~?C4%Uk0(HMW>%o}dC%XHXf5vU-Le&m7Wo;(Zuf`fz;KiAALI&Nspx`lF2g_YNmg zAvQUmzX+PWSC^v+Ln_F*H1&N7&u*f)Ayg!{o9BQ(AMb-IY>p{bT3zc~?Mg0H@~u`> zBJuJnFE2MyuWLVf&?SXp1qpatPV9$(4C`>BgX6bQ$8X@ju?YltxZ8>KCY3Jc%NUf5 zARvnT#O@IK zJ%Wn+fy*2*G;=&582HB<28P2)oM7BG283bXKz!}YHL2k|X4juDv_V_p?c9~s5@=eg zr~mP&Bw`9dA%Rq*iSWVpg_MrWk@N{ldYjJu330c$bN%BdiHTx8wB!iJ1C>k8FWB0z zo6+bUn8^xnKn9id{6TWEA09(CH&KsC1$9{0Q4D#QyG%NXgE~At6w=1Jjb?di3TTBg zqmiP6mE>7T11w00`i)6f5=uK7=mP8=BRg(J^o971w9jkr7i`Qd*HoJhNml9Xt7}-2 zgUidjjf0!{;*LSqqiCg)86`0V%X^XN@Klou({JI~v|L~~5Ju=O;cc=2;pFN z^(2pDt`vf3bHZNhklsE2jxD<4O(R-j2O26Z| zXM$+NS!*XC!m6CWccI4G)lBCT1ZEL_AXX*$i8VVP9@FX2&m4mC8`AT7FJNNx_#7YM z=GY3ZeO%f8^<=10cSZ8=F#f-+&wq2fxSff;sg<1tP|V8Q-0TzIKaHk3tSmrh2O|?R z02@2d($m4x%ns;a=454W3UszHa<&ApaRcq`%z!TL_MdiP;9s_0I{*hW(9H4E#0%hH z0~)yiI5~mx04@%oI)IxKXaqC{ngC6KW`1z=|40@?s=fp$Q9paX!JnGNU! zbOyS7{^AC@1DIKufu5faYyZjc|7Fkqk0&)&CiedeQmZP<+xG(yy6)(F&KtpDrIXb} z5=&H*otDEF?cCuMu&qcUio!o$jfQzHK>YY@1U(LITdvOQK>Y8L1-8N74P%Eq+dX0( z`tA%#unnQQs!ChWl)1O_pB%EW33%5O0Tg>zJ5Ksi00ujfclm7K@W-eD8Wf1VHq zc6Qe}<1Dd<^Q?Ldr#xP()}!%Ixl-R9hbl!;ZnA3ol6zNZV)a*8gD|wf>o?g07TGU!zY2FZ+)uLZVQ4pLH7D7(r1bi@h3l3fWMVd&w|H`(crYh~69 zHtrE<$`X&0d0gpk1K<-)?}R=BIG1Z+!pi@Yi7(eiD>!eL`)aHv`+l;=7MmIVvg=#N z8AsnP^?`_Gui~0a)?xXB7!(SGQa*X}-!+u~(=yM-&ip@2ffe$_N;6pl&lf1&4KRcm zg=RiZuZzs1H!{EggEfS-O&v5+Vk1W-B_YX_U{H_dtCl^}h7=cuu)qkUMZ!W+MkTG6 z3O62dEa&3c`;vXSd_;LSGbxtic{uf!A^5oIJn4PqebojHItPj(5_E2CmL_MSS+QVA zp&cty&P)*6Za`>(7x;?`9$U7Z-6 zvGbT+-0e`5GMR2+bwWlyaki!+ z70q^q^8FPXj#b_%e;j~8o6_gfrEZN8wYyueg%8Mb+Wzxo!gIG^Ch5&{Dz=6U6!x6rg3{ZwJ0dWWE7QN;V@&<87U5EC7VFJAd z4`K;O24R6X13BM705Je%1IvOegQA8m18KxI#O}fVoclNrvKlW0sswoqKz9Q_hg5|$ zOh*E<0o8aRv0D{>g5nu`;8Spuw67&OX z8W{jh4MuGgfD{PZYaZYXVhbVfM639~m@Fni3H;qaQ+ek2Hl# z`HScm`>&~SCUcIt@%0J5iF3n`(OVNM%{_?BVUqSpjdQhgzvc<%P3EPU{nn|Q%SMJd zuPiYI^HRT3>`BJSw#kD@*GZGfpX~{ZQ0Z>z{_+MK@774YBS$v-Y|cb&QF;?K)ir`n z*{vAvB<>7LJ?}BE;|w#l9cwMDVCEQ;rc){7>wI%8cU0~gkH(K)kEKN!d}5mqFu$k0 z-ZuAgjz|@gEy9oB^;zt>uMq5m9z7PLw3eR0J|y4lY8`698;qL$em8JaMoFtF+e2~( zDdhjWuDXun9OIqr=zA?z44T3gQ1or^eSOP%SASY~VSP7wcl|JNHaT(|Cqxba(dwD= zq`2cbM1(Hr+3%SOCJ15^9tyI9c;^x{@;i8=f?vn-X)^?5z-{9D2$ItepwS{#BiO=s zVZKn>m}zP(hYX8jFuaI0%ClkRU~Llapekd|U^r6Da%X%ul;oTiVj|d408H*+&m!SBL)`3Qq z{3NX`T~Tyf6jsztu04)E6cs(NHXy$nK0@uOcH4x(BL3}5A`8ik>?#HLm-2b)u57%_ zuL@n?C}m#BC;EPr*XI4)t3;^Gy&x|a=x6cow5oKBJ@HA?$Y0d8LCaEWIIW1+SaK)O zxcAh1+Zbth0Gs4pAE|p;{hjQxExIaL(fsKcU}(n^eRt>GJLUFmeOacXcy3+Umjo%s z#Ln^bN%c4-}#M|F0?%bK>7FDFA>jdDF#)R_esc z-xbo1T~Cvs^i)3UKc}T<5*c9fj-f$%&K+PB5O}}=jw?)%Pp1VAF*%TG%B9Q>$<<-) z=tY(0zLTJ>YN0n#cev+M&l;i^eNdIIN4krnU}T1#d4hq(A6@nggch59m7^8D(-CZf-2@eQR^ah?k{#adw-`$tnzW&1Ch|h+U$4apQjZZD{zj z9GA%RS83B?8+lhwwr@qAUx0sCo9z=FT)13Vf>uS}yb~P$GS(i&1&e@%4i)3+K*PBS zbj1%WmTRLk{@aa;--Ebg4d6aNOdnpCy%$A{MI%lp*M8G|;HU!l7+#$Ce#b)kENhy@ z#NCf2gvV9uV~NU?@oAcU$iuWND11iUw?i>UxX>}m^aR=a(LONeyC=iF(B`;3x3q>0 zW9P1@?-Gu`rcZ>!nwIyvH@~baE^G+!-9+RHeMB2BnpR{>(<;&s*!S7`^J#!ZLOj~_p_zA zxT{0B?fYpq0@++l{k*vTw=;&8%d9pZYbl5PZ3zYU`aS=?gx93NwF~JC!H4HU2W>nLK#PgDeAr0>Z}3% zMuz~T0+lBh8z@3??`g0K`QENnZA{mUM!R^1)Yma}dMY{HKKcM@tc|!?{_@;M|%-gkZsMT*7DSWG%&sl|1v| zy54%>O?Uuddx4U~pp;)D6^-m0m;^NWW;V$S3iS_Fb3=0glhACX@y!*+Q*KO!Jg0zgEXM~;2 zFdJe5OJbznxWlJuiLM-!Z-g^7dkzeKN|+E0JDlfIs>#@iDE-E>2t{ zzlGc)QcCl?woJnH-&by>ZpM!owLPJ(A|g@fz*eHZwET4>yUaoIB1q|=z~-G=g=lz-R0sd^{pgGDQ7Y5>f`L)c0P?qC`zxmD zSqicWl3un<2*zzDZ*qEnaCoYjYWVeiYq>s)Ip>BYSrie<`c7NkMtnePvZo1DdR}Uedt3a*HbEj{=5APq$xm~r;L7ig$OB;z;H~(U^ z!|pd|xx}X!^U2+^|ysCu)5a3?i@IBpXL`c6W`tBtCDy%`2_l924G`mZvfy z*)ugoEJsHm+v98VyPjCcNKs8pK0CM)6%5$M%QG^_2zY2)~FJrGaHu_(P6Adw?)W2 zH^!sK07CQd2L5)KdrBO&x}9Jr`!}WSnwB!d)TSqZoo)s1PeN-S>JSZj3n9H!+HbGA zSJ|n<6dEIvPUO8jJ?&Lek1$3z=U7Ys`&%cCt9N+WbFuD(Q9h^==4nxNSXajdWo1W4 zW#t7&SJ#CFSJJ-L_EtPEtk<8cL>~|SXUK8mC^3%hh(`8i_3!m`QXYOFj)HV>j;~s15@WI4v+m8SqTTe>m%Yoyhpf#NLI~!T%d1( z1IWhmG zxEo6Th!M5qrTa?64;TcRY#OH8b~uD^#;T>KnXy`b(lMQgAL z{4}7wKz_?ni^s@ZF)S2g&Ru}<301;y9^`g=HJ{h*uwuZXB?*b&`2j1du#B@G9<;mB zKX!Asy)NsTxok__^ekmtmIfHUF*`~R%IUisVSKAF(Mz6q%>7W#;u?x(-o*Qbi=dY2KfHDCJ$T zN9;N*4t^i7MS1MmWX3;UO+4VLDKRuZGdSSuaNV4SBp^mOHbmzx^az=o)4o9L@3<%)7ZwG% zTN9N@&f+CHBd1pr4|kiV>kzb(+_>1L-r61eYfOZ?=>1m0SIy&B*AG^t*=t*ZNSHTb|& zSZBV$+?d|ce_yPO3d#^sbG!#hlV={u717)I26nNemQrUxpj&=}6(9dp|L4Sxt$)W2 z57C8n^LS#%6cK8lJE8+vsxNCLqPWXBXg5ECfa;w z*U|h-wQ6i|X0~bbS3LP1N)C!+QZ(@#xLZv$6ci<~{r4nspKCZUc)F(nY(-+Bm0l$nN9Gt#NMHZEGHFU`;`pcpzUP%8r-EzLn=H2qya{u|t+=?GWVg7An zR|(toQudgfmm7@YfKtq_OYHcdN@{Wa$4HguOptsH4 z>HIaVMTrE*UsVCy(q(=RG=f}i9Z=%bQ{@@(W^SOSA7Kbl8KRcW_}LqhO^gvdR$dS$ zjgyafJ5s(Da@f^DT1;YQ9Srfl(VGFMiU*o>k)v5tK>MZW3>;0UWY*3N6$a_FcFX^m z7~XU!oQ{3IjQ?TLz+Ds6*LBbVJg@P&m2!8%zsNS?^W6$Ede18vqqzN+s%A=*~ z>;%kBy_tc8{03I0`Ea7RaPU?bcda((yfvpR>TWbuSAGo6NFZjCE?AYaY4_F7p<2Lt z%WOxEQ;z`4#RL8`pHq{pDGqG5tyG+1JfJOp*YtpcWH5Dep=xaUhRNRtN0SVBuvBlJ ztqQdu@QlUg9)vU4NQw=m{AA$BOqC9_Wy>Q3!?7T?p*Lr6uv>umjq!5FJ*doq<*9+I z1Joh`@OGNp4W_X}b(n=wC_l(AhVUC|{dHpPz=;?dZh~?&1q95i_bT1k&R3{Ac zPjf%oHp3z(3>rrZGz6+!(z`-c)R5tobQWvYN)6F(rs#Vyr!j;lI)bni*{X=1uAcHY zyF?>Uhdd{&qwAsll3(NIiCDa@@(22rCCS2WGEC2pJ}8Xq$}ShoX^XTYgWYH>87vlSc$ydz1@W?Lv<#v4)eUcCh@N3 z{<+;w&+cW=$wDBD$c!eqh~T^Skc1|gt>%TcrpL# zMG@pS8t1?Ga<_VW#@Oi(aAhH<9h`A9FV5)C3a+8_zjbrLP*w|)iN?WcPJR5 zVh7O#O{ght6x&&TP*>GiTeK#KJu`$!Ly5Ly6Q7a7z!}hv6ZT7xjKWIee zjxtqU)DFw-wlI@xXoi)7S(930+M>2GwfW`|&rNeoL@P$$%))A}`*~+rN%qRK-phIS zR#dc@8)dNCrM~%QO>1M*vkUw@G&yD^5Xn&)+qDImCDIN^Q_r@5SQ*aGJSWO6f zfw=Rd4FgTDq`BS-aS6%g2H^9G$Tf1_z}@KJ(y;nX$%9@wK(L-k6#726n}?GPeZ0PX zK%D0kzRzLlZv9e$$1L1H8zr97&qOd_Sb?o3cByAPh52thCAy|T@#er$g77ROYAgyy1 zZHYe(d}+h`MYkiNq8Ody^%8zxgR80ESc^HP9+K)#kvN@)Xz!Zq?gBOY5XoP0uR)i+ z+DryM*OCT?B1nGL{wVI34KQjKo7b+7)9fl=7t{%S3Fx$4BmU_4Tk9e=FnWO-7h4L2 zw*>O%Wu*GBRpHlHK=}M??V$ueyCo?XYd35$dvPf(ZIoHtAVtL<-&?!?{#EseYovu) z{OUDBiPATvGIB?oSa6mz;0p)E2x+oPA!!k>B1P5~RS0#J&Mp>jeN6Sf>wub7a^ zOi=PGG&irU6%L`@EW!h)T_QXp6rEj{XvF$t!|&e@-(T9%NLrp;K9oNMSRJ@0tzTZx zdCR@uQ6zsgu!cMSwi?!xeU%TqB`1lW-eYx@?ZWtyRcib~k{If_;g8?#Ng~9!4Kq`u zp5hYI?*qs38tYz!Wmdo|@znDr7(#lM8lRRCfBJbZ4P zKWyQUnPA}=Jh+%YMtMpqvjb;AvZeRpYrqWEdXV)Rym_Z^~NRP$-oUHxs|s z=baKv7RL3koB?0g!lsb7QBVp9aHao{K<8Urc4<7XFwBY~-~(C$%y~^njXGX4t@-yp zCcIO_*j>$yj5{9-j2l^& zP$5$p&O!4TtMGzD2%`$5qTR$Uj$>9&TltU71+px-iDXQL1?}*Fr<-vM&XZmF-$#Ip zTS<&o7MgGVjMlEni}}Os2b}v;%M43BrewRAen`MT%s>@CZpPaq6!{Akl)i+pMAv?F zL7GXZNkp0unx+uKj{vc-VbJ6jaP`-7i(Ux{424&7EPlEGp5=w}w{mBn!xo&L{Qm^E}A$m0BJD(yI6C9mWyO>#T z(B>wL0^0O`DG88SRv&7SoO}PEi$C~PvW1JA)d#{%Sh#ojNsCI9-V~u5A}Gp2ZH)zq zF#{yI=hSyEDdHku{kr#_9Vp|pF-{*BeDs!odb9z}nt5n%V$$EDrii{I8?y>US~ zTWU@aYGZT;j`-Tlc}CLe#32X2C%hwYQOhOSeLCn#h|C^-9&(Omz9>>z|l>| z_Oc zY!xxQlD{0sPs_a8CBHtKkKEnX*WWp{n7!5mn0+o*8hi*b`7+eO`@iN;>Q-lqQ6rnD zr@)@+jcTlLcPzJANJjYd^p~+g|XL1{F@k9xQxR{WGVcEF2 z-@N+%A^J9jMJgI89Rt6-a`xpWfJZr@T9vOs2eV}>7*(uX_ZYBcFV^L@dBNGlSoZA< z$Mh{ft&ghBtWhl1eRentu@?49!-YHM>a1w10gd?dRn3V!wxoxe4HB1{6YNi}(D$y+ zBSqveTA=or=d{3=Z}IMNRe1nOWlezE(>A2}(`p0upsoh;hHQ>B{_%4P+AKgTpk=HX zPbYEd5F}DC^Ge+G)2Y9rjQe~YP{EU=^ZmU(>w6(`{BBTO+7?jpSD}L>Z=AY4*Xj0t zd+*3it7LV>Zfn%@$4IL?4vaU!tPbPd?=(6%_y$+vZ=8jvI!rw&Z#fMWD@00F&gv)n z)<~T$>gIyufj5ZqJQkt9{5iH|@X>-(dSj2FD?VuS#pi8Q@BQdk64uEO@t{Da?o@I3 zN_mV<`XAGgAstnqV82^bJaO_ZdR}z;0k;qQ4QzjM>s!_mePmA)5+F<`ms$`BZoj|P z+4PtkH6jIfWlZAfsR(KeCO7@M-wx2Z9?1CkiC4}xSt00p9}Ru+)9#MX<%Yp$wL>GL z?*y^&&DGK0?^+>o#%r5&4RS+D9O^99QneyNin$B!vM-eVcs{)fJp zCnhWU79+wC5=2&W_nkdP4Da2xXD4z~vXx%=t9zF4WLPaf_;d1zeF6lyQWPOP2TK+^ zw&+rUpo-Nsw~=s3{uC_R80crn{9!im4YG=1msV`Bl8^va9z{D@t3zkjRQArs$;!`xJ7UB>Al^Epou>(7-By!9wF4nZMTA{o= zv9dlhg3#{bA*!(19+l5lyT#DpHGwN1 zqibe`BZN$5c72>4CD$qb3aJJZu*MHyMG>{M=vqM5RpQym)Dl+K9ulfNsJG;vD(~>= zk|Ux|5EUw04!FqWB7FBiKM4d?at{DO-D^yi=&u@|n5eefzIwY8+bY{!?ab7@Y z8tN7UNm~uo3;KzmV*G8F68pUoqP$5%*rof_3UEJT3J%taGjaY{Lz?=@9ILA*9#A2&3IjtTs6{_|zveoFy$?frn6Wro)3;NY?_g`@?yyZ5$%sFR`o+S^dRknzN8N6}iiWs6F@Dea z#YH6@2k0nC23d+R*HgdF(iSjylUaiZqoASoVu7-cc1wd7)L+TYu|>lSSVrKcXN+r3 z4$wfdbI0>=vA4*N%1qQs%Xd}0?k$vGbv3MCy~YtXAh(p9%U>$>QPyYQ4B^d=Vgz=* ze4V_6S{G^m#j@|@cVmut^-{8>$>&E;+2{DlsV6uMW%hKc0_X_d$GX1TMPuftNc+#T1H|E^5 z=)@}{-**sZuPZc>-nV*T|?qjMpH0pG4Wp^09>BNXIw(+SwVUb?k5UE7#A^tmU3z-0R?CrLCw>85!(a1)BqNpBj+V4H}SK2bLdiG zK}&QA!pyC{n455o2l%)l1Y9EPcBB;}ro3R$Sb#0P@DYNxQfILL97UMj7yp8r>5dek z@tnHPgCqnIg6DIpelBV_BL(>MGKv-)cqS-0$kK%=hoOWWv4Pn~u`<*ero(5R0GJe; ziOdA)cK&IgVe&9wJE2$LQU}-9*eej2BiG(9&_$haYvQ!UYegr=E^FKLB$J=j1w z9TzPM5uFGw=(=dJW4oZ0j2&SAN~SZktW|djviWF7_J%W9v)7vX9y9NHf)ze_7+K$F z8OFkJ5LqL`U5Qz~9Mz*h7l)0cLiu zDK4BoPdVz8@1q0ez(K%IwsuGppPrcL9H>Z&B6Tn4t;%|}>*=xn-L5A~J0E*EbJS6j zl2qDoihi)>SC#@qc#DSs1yww`+5mLusFlbO{A;ia&E^Wu<~Q_|4KCKt3x8E}QmN#c z^TVbj7pFeNb%yl?gDWp+46ZP)?JTT668OHGxj&qjh3r#iorh?^%4v%DX8xnXQFkkf zZaOh23UD)}peYGF&oL z801O#0jmBF#EI>a$`82Iv{u8n7!2wBa|IVR8uQLz6^qHG==Qe!!jo zd2x$VB_1dbHyyV*=ky8O2@N>KFCc1GhmnM9!}L$E~*QVlljQQuQOK7(Kb~>B0qRR`Y%ixGCb(`%-Sao`Z z^)E;4j03??`gp@qX7j2C5gt_^dj=2FmfTGdp2gz1{TuW!b;tG@?#gVU!yaNzE)m2Y zm?9v1My>_E;sgAo(P0VN;l!oFnH+sW35^9-YqUbk5LdaS+CwZ{Cg8z84R?u}1r0Gp z$NqR7`3ZET$nX6d^&HJ+X8WmuEjI#_Ln8r!VFcJUr$q%?YF#%6UcA~;>TdUVPv>s@ zs@Q-w7aw58?c{e0Ls89&0lV`_A@)f`bOn#n$vLg&Kgd+y*6yHp9hf`3G(ZP_aW?fc zSz?@mBQoq%TA*R4HZ4Q9E`3o|u#|9+kZ@3tG*A`QG_*DGtkS#&aSfK;U=4glbwvRt z6VQ3wBA(%Rqo_Pv;IQ^(bUB24YB}hj(C~Xb{^SMlA!Qldgj&QhQu~j>gh7Qmark-L zCX8Ek0>wMdezbG_z1IDpRpgRvQp{%Oz#j+!Dzq*52rP(9&RtWznhVi~1jf`KJOsN* z+)`*(3@P^>f{M20wR<(&zXq{3ok#TCJKnKLY>l6PS*e|qLT+Z-5k(vW_l zeI;jtl}ffC1|}~5npMI3`-un(Yh;e?BMl2mit#sSt(kHSvDduN*IBEOV4lP0&hW+A z(a!t$^g4l%4=qVA;lEEvXJ7rikmji71_V>!a57aS7U++85|owargxm6%MjE;?qJv9 zd!c$`?W(D}*JP!$|CW83^HhiZohsBqrxQ*WE7T!Sh2BTuHEva#IUNz5GyMCNpSU%U zI(<Xj`oOu(a8aS%=eexuu0Tg(2OA4W?0m&glP0~)CaXuQr>RPc2^gs; ziOF1#g~dvQe3#++x%-?M-C))ho_u`gK^ju?K~>{ZUss9ZJPQ70wf)rU9LY;-n|G$Y z-YZxrR&=q)M$%RzYu5b}&62rLxFVm21P6pAC-z5FL30MCu;`zV?5BwsRe%>l6-G_r z#|I}555Up%XnbP(jdXC+EMfGdI2^D$02S=#aXXoCypylj1Jb$)z!_t-o%t2rg+ z(6CyBo%E$K z6`=2T9mC%+Zv~bh-7uGc(H0Bl*ZUv2-g6PM#I3Fb9_iJvX(c;JUC%`@iRU0$_4)tV z?@Z}EUx2GYK{5FUIp+1ww+7){IPnzI*qYPKo%%zj>}vtYn7ZpRtJyv42A~seikIy^ z;#l}5Rn}kD%5E#Sy_u-0RI%z5E)lt!jY{eQ!2!eg2ziTmCg~Vd7-t;!P1v5L=}^zV z{TY-3RMCsY1)p8_#8_l;xWf-TndkSMU5?_)U}x;{4&hWNunqE@>m9KegbRD-sxsOz zK#&|5Z0-9R9J^!WEJRW_Ea`MO`j@Dqim8X6+*aub4-Gkf$OvSa^kZD$Kxv{s)gI-kra8O8#mI=& zUoINIUKGBr{77Fa4aF`TpSbolJJx3i+pm`Rwm|t+Icq5IKW(Ld`{0Wrn2t* zRl5I=ST|YVjs|y3;n_WWC&dL6y&FXVkiSDJSC4yChE$is!l$i>f#)Ba$KDG#klimi zaMJA&&+XK$UKQ?UKh*bs!sNAS2${;gOqAdXl}K=V!7;6p!}*NgQu{CAYnigAb%i+d z3!JaXW6G;(YD%lat5^98l{iRA%l1~l->8q_4|R;)9`2MCf!mC|c`GjtN}QlLejxu2 zGEuzH-MyI*pjOH?rG@j<5O*?uj3LkO`7Cotshwfz^w!8WD=vs^8Cmf2A zuwu({l7`5x>+iROGux&`)?24))SFyj#P)UwntrQjXQXKec6Z{uLhfz534K0m%%f^; zUew`i12EdMA+)vh$%4b-hui}7YX|5d&P|T39x2r}_1ys?6}o6f<^SX^E#9A5P@Oqu zsE0u=cDDfto#CVy1nn0HU(~42vg7(K1{U$o@;19@SJ}u)6UKbCaR+yGu=`GLG}3IO z5Odb_At9^X5`V;*pL4%|#}TDiU^2{Cq>VsT8bC>QNfTy5p+Lcy7b3JJ@kv*xzOg>d^kM9 z5Iw?p3G8$bJzDuhck2gs=gFRWsFI3XgVdnfT7%4}@FVKd1k!!uoi?`*jTtAz417HC z1e|C{uVAp@h7oE~r@bl^h3^yHx;_@XhbA=C#0=b=cg?_P5V*E1Vm1_WM^W#4#d%z! zI`Ij7y)As4XQV#|R~zJx@5|-`{DiSE;ns_Yzo)KFz)QypG%GWk>JBxaCWG{6oapcW zyKi(4K?$0~H{#0_Jrt5XBpwP>49z_CxJ`*cTbQ+&7BRg4{t3?vHuk(hwe4(eI8Z0a zY7wW_^SMYFXV=GdX;HyerlL2!w_p2=s}hBDK7LWPPuVWc?MR@2H6) ziO7o1{QGwL1o<_NpQtZzk z9L#X3OnSlLT;0lWcCP%LbxCybSDUfJzuI0QsHF4AO)NZoU3}eEW?^>&31VL};GX0s zqsvOs&P=eWRUSwjTrAb@K(f-``W@@WHh__DSF5rDa9$lqI=xrd3>}Dpr&IeQP>IhA zfNEee%ZcKOm&I}LeWQBm+!m(*+f!?5^1g!|wSY zpjOf9vlf#+06u9|DbEO|qT*+JTXtE@NSK|p0^v^?Z*U<2QB?c8PXA{t06BCj zZuIMGb8$1VbE~;a@Ju)-r3iVwnll1X()lWEM)lw?%iDVYqrVb;^1e=D+CY&5VF7~q zsZ^B=Eu%eV`jKPiq?oBOepT`mt4X*zhhmN7!o`p~wLugIw<)p%p-RETA(KG>KwV|D zF+2T)oqLx|NlW#$bZXz6QPo7Exta#AjHm&0#lfR}0WQn{3UOQYyV+PH2`tXn3ke0$w>9fhcRXa$mfU_+L zD1RU4fgYUehC#qdO$kX%uJ9rK+Owk4dLgKt9_7n@q{sStuJyf){n>w6jfU8%rqt-+(?q zQ~-G*$Z;>Y6)}JYa%f=SsX&Rry;y-ZQBb)_-+pkwJ@{ZhfJplSa^*D*t%~??Qe$EnUk1z&D-vr>nNEBdFTl*-N#RDcb>31Jrfj! zxoXRWYiydi*9PSU$yXQXFrq(6-edRmdRmv6$Z9i6GnHk!s6aShqfuWpI^{fh$529G zK@z~B!_Pi&w)NN~++|UX%&2H-X}pHT2N&Zt$QC?sNM*uL7I1;n(4{DOAC6*#L5FHo6ti$CuK zojp9g9_#)3wgw%d)X51|pEse}w02=XR1N!f!Rnw>ZB4*icUe$5L79bq82Wd4E+v=( zlk6a6rsr)HHbZYMMD;AOH~JRzAe^^rU_gc^#Ue)dIYCWFN`u%-NsZ$nV-QN6`z2Rn z;KHd@Y+XOaZrOD7YP4u@5A<#r=iML!w@MJAZ$IE|RF0BzsCV=JIb9m!7iq326rcFA zw(a8cYZwJj%b%BI*m|c2!|g#J>Oz@nA1(Ds9tuoQaUtmP+f6O6tSo*}h-|8cOkT#_ z#xsidzgn3X6q~P-Gm^o)6&991G`zlx6<-TXyhUiaJlqwoa=F?1?tVcay=;bY$oS8F z3W-)t^RE+9dqet&;@@fYX${vQO5?&|eXeXC_ogi|oid@Z#eRLlv-PP)ZSx{OdMI0~ zuR-8~t}0v=%|~n!DF#O1cbPT{XPJNV=5IeRG6eI#$)I-Zw$}rLdTvenBxAD>E`7%{ zVgObKpvO}k3GG+PV?ORzh&94Btv3`{M2jT`YZO%?r<~z$5O>pyQ&0K3hoJ`KLHJ4D zmN)3~1)kXH5S5+saIR7=@Ub-9s189VO3JYMcm>-YzRZ-PX_`kVVAuT#0kQj$d2FJ`P!*6ecrd%6;=&w#iBV`K=IF}`cE zlWJ-%t5565pWwxe&uq~QHCDCQU^FnAGcPw%)^{`Jsfjk|o@dTpw%dtDH2A? ze_*@B$$Ll34Kv~=hQ_}Q^LOfw_?*PolCo_8uW8DwLy!>|}NWp|K)I=Ghy7{iqT(s{fXELg?8JpvM@ z(>c6MJgkD)BYSb{LmHr@?-l$x-VJ29Ed+R_iTFO}%2Y|vq$w>x6^|N-a(4t3v(F=^ zR};=2#@bF`=EHTQFiT!&;x#S=K0wRJqiu+`Qa8nB}f z5D6n_#6D&pN~K5<*rNIIN0sZGe$FZJeSt7=rzl6AE4HemAJz6#wZ}Mj!yT@VW)o3{ zWi-zMr==rj!HkKXIehfN9(Lmf$`Pp+>@;$f9~Cj7o0YUS?{C-)`{1EBqtp1H-xkmU z5q~(PjeN?`pN-3np!uj(JWeesquorjb!xkzt2V#4Jz*Beb7v=0emHLoYj!s={6!6| z*j_y_x77J8&R%~bH^glQ#FFo-R_}0)VACI>)9xnVN9yf<8G86y1JH6olpI76l1R<9o zjw&;H7a%GmfDd-~gP_l64T2z#P+-p<3hp018YhSh+>gMAp9>EVXG=kq0v17zp6m<8 zPdbGz+4i zl|BwUOTP#qFPQutH}m*Jj#)5tZODu z6Jok}^d!tImUc!;PZoz}dsr4Sr|E{aIfoE+@5+ZtpGk*wm+4e%EuI}$@43$x(j!Yl zXPS@pGX+Izvcv+`35E`fV#XYs?n$m~Eq(8Jiz%z!?n9E>;Me3&Q-AnA45;QI`3Qsw z_7n;k4x<>PQjQXg?tXHa?>3Qp> zE&UGDXNRkE-FwN!t-XYnPSL!s!8Hb*0f|t|#S?VO3uU)r6hjGQ8OJCL0mBD+# z30ike4_++-t-UTn)1p0!0Obv@I)6L+HW%6 zD4*D$x<4kqTzYJ^T%!!9=b&q#TPIt6{Cz%KsdxrR_TGwWduNBl? z2oZ!DM7$A~8~=Kg+n%19L#<3(Myz@;ni$UeVf&&R=Dz0+I2R0o>2d1l?WXOtPjM|w zp#SzMy$I;r14+$N<<^m{x#(B(_#;)1hpHTO;R#2=9SCor6r7*wMIq6@Ea)l<=a|Vb3_%d<&g0?tDiKTC*BZ{>&F(d{5K~|$r z;zZ|VFa__SVa?MTW1}hwP@el&JEKR)QW5suYf3x@nrx>J0$k@bWr+fUmvpfd`DRV+w zei=4QUy~5Arps%`$sAr(@ez+U1`t&3kX#?-EQBsl`}xDSp{IL2@8y6PTT*f~*%XB= z@qSjqq`f?!294}UL(!R42-2JLTO81ox7)p_wW3rQylyh4fv5XQMnBdx$vx($D;Xqv zoYuJ+XL1nw>o-u&GD(I6AyfS?BK?g3`E_h+?C8rKXeUdJiV%2?no6+okwZ={@K%{LsKnCo1M2 ze{9W00*s5`2z1XG))LQg&n=$Tb)(MVwF^r*WA@@xj3$EljHtu-_N!kVKA`t*WTorr z*Ok5C*!1cnpP%UN6>H47Nw$wNt>r*$DLE!do*oZmcWC@C6Tl!Nx?M^D z?}rsN)VnB;C#5JOQGgvZ|2!fVxX%+jI+&QaoV2dyzJx0_xiIZwae$9ps`n@Skoc^R zZ9d?>A20~h#!le`ISG0B-qZSI*%WVjYPXII>N)A}I^>R6+tjZ?;}DrMv<>3}j^Z38 z__E_^ZK_B*>P55-=IQ*4DK8UV9^UrlY6ZPFGUci}COB zZ27;bQm0vahjQ2zCe^O1z3fVA3u;T^p?eu}iTlI~z_y@|2#Q5%>YBEy^L`?GfQl?f ztMe#~34ixQXIuq#e37z(Sjc@WF=z%}VnG8^s4RY!+&sW13@d1LJ5X9~bhp8t<_-_l zG&*`t>ZD2+XJ}p;X73rA`fb=)HW8c^PF_KRFcXrebGkNjvq2pCt1=^N&3W92mW zGXHm0Ht7J8Htg8*B4{7d_-`r_?dru-7^cN;7rFar(5b^7&xPpASh9O5e&^`uzj~tW za}79`+q;+?_mKR}%HIV4iMN44M_q-;C>Lla)gn8wseB%6RrU)*yB9LBH zSOk>!`su|JpfqG{@d(*vCtu2FNsqR~8Rwgs4-6uGng-cbvV#eJ= zCDcWznC2B2a8fXpwt_W+Itw5J&>GV{>Y<<}H~&j*_4?Efi#|xpZjV33y`pM1Y9!Ue zt2=N@GEd(La7-_>;Da!aVd9I2Op7Z@D+xDj+YWo}yYdq~7&Z5~Z(Mq8c5-iyo6zF}ny#z!&L*XLy~-7j7@PcI$~^8?E7P0S4>kG6oqk3%I_ z5p&|o06EOHG?`NCI$pE>K<0j6#KplAW+h75z>rF#&e44yG^WQH5jC~j>-tSt)YJC4JLhGGY8!P-a0$2Y+s*~Kf6oH zv;)^^%fuB;G0#&hP-O-_1A2!C8Zz22o*I%6iDoaMj#3w{iC#N86JifE$9iTEomZ?k zEIW-Y-M!L4OI=(lUS6haS{ZNe698B2Z~w$R<@k9b%Orms^R%#5DSqaNqWec}ezJ78 zP_Z68B0J-4jgf(oggIgv^#HZbCyfqfO+_M~%qQN0s?%m$e;yxPMrAcO+VSdD zzjV@*8yjXhGS9a+UH3 zHkKZrpv=*I^vyXSFtlIKy|f8iuVNIN=6rq zQVTQrCnp5elZ zD={oQb;1md)5stuEia;v5YMR5!msS{MjT=q!xJK~{5EQQD?D;w?Wh=pddP~z&ATf*7UO+g={Vk?-J$c)};7UAI!-4}zS|rFnTe-pUC=CBQ}SuEy9hl%%u4 z0uKPXxS&cV!@?lim)wGtfl_adkuF1^YqJWQpm!&I4ec~$q_gwHA3TD=9FkaCFqt)i zy_V!*c$fI$uo)7y1ViT*H4!V1syoY5ee;CL_7%}BelEaFuoTG=A9(x~r~siEed5PG z0t`XexgSg4q)auF%rKw%=pP|qU6ba=%L{*qiKUs5h-)pKhY=gBOb(|s3xtjU zq9(ptS+IE%LC??3sw&Ma_X69gCjA%_;L-&~<0pb*?M)}>tqgvL#3sX$*}Ijxpoty1 z8%_8*2{44=4iDrl9vJjHK3;ZSrwTNpOvf?DXEG}*U0YxR&#$9EVS|&eEJo57qL^5g z5fs|*GDIekaOUM9Fb_zMd;zmfhl1Mdkacgw*7CXlBRfcWeDCd-WUZs5CrL0d!?MxA zn1MZDWeS0?X5{Td)U_w?V!$d~>+;K?Xma=gtYdDmh?hD4p33!V^z?qHKXg zp}{;Erns$ue2WOsl1Aw<^A(r_5A6Q=W?lcpgj3(-Y1Qxfr$iTBG&40Vdx#f)n0!CS zt`!>#^*(X~`nI23r`b>9c!+CvSxs!5I;QSsc)cdzZDX~~s|y9~V$VgHCAz4Mw3Yp_TJF}wQY^ikt*;RNaSWVwU#^KVI~ns(f) z`mjQ-9k^zUJb4U>@Flgqil58qHHuqTj^!KTZe+q$RUoH2FkM#yzkEm9={M*zEZr1f zU0xzu6~kJ<<-@oLxV&GLo^Y`yB9rm^54TJ{fKqnyYHn)8tUR^rLS8(Z& zZE*SLIj`G#00{M6(E}NS?2_ zsWrKMhFnH|Vpp$g%+r+vuUY2Ak?Ub4^I@BP2XE)?x~s?I=H|P)pO#sU>WLfQA?2=? zG`LXrD|OMx)_h;-faQ%fx2Fe2yywM^-bY&svMv7v^ac zR=p0oUg2`M1jd!;3Y4=}flhB|`CtJQ(*_nP8HA0Ev0BsrBu24N{m2wYa}ZYh1yBzV zCbMJ7OIylRc4%jqgq!s+Ofsf*#?6g+fA%w?)rH~l_K;e#&>!Lnn=n_zHqMNrWU^8p zR07w@x9zl}7i#-xKRoMM{lZ*H_|pcqFI~z)B|GcwiT6D-_Ai6(ao6hKY@D2F{m~}O z)cpartbck`y==1*C$%=^cf{W8&4g;(+&Kt{~-DQ$_ zi7OSm(&EmG(xc@Bb)!n;bQf0UPWl~u8S6j|9tl>osi(t3pZDYT2#wCNLHEA&JGFZb z-|)jy(xTW5d*5}#i(&PA?f3a8l8k3NqunD{5dHV|t>zs+}~uB7c_MFq6Uz{Q~#E|k7rPFL4dDVK3a zO6c7wYj?L@QTNxQuszaZxtyhKBL5Scn}koY^wJzMBhvIw%YNeYUCSYV?s`@ZIgWDD z=cp$d;poc2s(<29N!yUEr@=?efETxT7k-K_0vj}oOeeKCBetT!A@NE+rssc!-4*^t z(#?^rn&d1wDw&q)@dj1y_JHz2_7F+&xKSxi+>>vCprCEANJ$33nF#BX#zZxz0*CC*VPYqG2uR|rYWGiu>d)H!uD2%0XRJSS+kX6Ne#6vRp)agTE#vo{lT z?z{=@38;f?CBr>hf|R5&uAniDCU|q%iA@!TUd6{cm|s!Z1=UEEeNv3k=OtD7IJm21 zVyxg>b?rE^{@})y?A0Qk3S*DQE`VnYR0MtyyQ=%FM6}z8(4=dsZ)#V} zvNPUvS0i7G(2L>%?8`&Nh)c@| zqK^m01ziI?_3tQGK`Yo&=fz(dqmA#cGE2m(6feeDTAwG2lN^|5#KZ@*fj^BTO_+} z4MHL)Du!4puZaCyN32_gc{=|z{irI$@ZkoGy=4*jjTMu)>1Lyn|dU8AO|V1`L}gQ2^ScvGWZpkEUUqiIXA zvE1n(_LX5nU9o8I?F2>W^elb&a$iHFoSQgCX^=9gZoGA$2cd_NpEioY)sau4acCF* zFiL@1FCM>?b0BJ&b#ODEAH0)ypn4+Y4tndgZ6R9B2b3o6@4rUA{-oF@hU>p=980o7 zLp`W*g123}#G0}4_&haM5JGl5XSGj@vw z*k(0Ixi15H^YD|`*Jn2KAnnO?U`ywP2JMGZ)>aF}EJps_tC7HBp_Vsa2$eOkOPv&^ z0uQYh0WX)Df(L&%Je`7R9}fT;BL%kMQEXZRBD}IBhMU786~8xB8xtqt9%df%Q>7b}M)0<2=2bDfy8Hj>104YI~BoF7<%rjTH*U8qiz9%i<#Zou9 zUh~^n>|GEN5K_F&dP4EiXF(B~YCXA#L(z}WvGe$H|EgqNNB6}K;ZEsBv9<1^d0W6p zs)4edp?OSLhajt2!#r%X`HLhF-}aGD6s|y?KlFJ%hFrFJ7#4;M40|sVr&BU)(CnEfSPQU*n6n}RQ;7+caIlWz>ys*`5pR0De=0n)aD}bMkL*zAa0S) zr&Ybi;NwlewI5nn;!=lnI`lkZWB3G5ED!0`jCqPJX)$wcKOEZssC`kN1v)1~8fCsj zYHYk}_(nTe!d+By9?nbMOw?|WjIImhOt^5oGB6FY=0q+Hz3|^ROhN$>N)bJb;sfsg z_>uxgjE4sl!W99B7tRJiMnFKQPy#@>_>BYpQ`KupQt3FU50UYR*T&&&Wz1^x*?K$n z+0ZY*Mn0PA=ixj*rgxL=|==s+V4$-JBV$+Jp8v$J1 z2fJb(?)F1-TBlVXXv%x1DH={Ey^U_m0qf#Pn|aAzLZgPdj2Nx^BB;WnVPnCfEJT@X z1d;;%l2_k0GcwDfn+~qwgxU<|Gq~fF``-;Jx|0zcUNlDA&*ETL>Kw6rIFV&?Na*~4 z!I(3>4g-mMzo0zv$S`fjY|=j^vR6>6pS6iYA=6Z#AbSW!?BL2*Cv2?0w!@)`#mHs= zYndmpUDmjdj`Me$EeyF~tZHaI*8+6X8+#hH+~C3To1uZPp<>zsqNV}WU5V%L%t40v z7IL2V3iq0#M2wy+slnfl1TWH18S%&>Yg9jxwrDo8u*W6BA|xIr<3h_$)W+kekp9UF zvbQu4(;u{NU5xVOtt9er2~4vsAQTF0P_A02*|w@m(Aq}8t*Z?l*cdR*JLV=e@rdxtN-#IFuW%kCHRJmL04>nHw5_IeK>t|l1P3D7`>w+n^ zaRbLuqX_Igo8UOP2LT|b;5gc7u|z>)g~tNlZKAp}PwWId`%syeyfE&-Z=TQ6iPa%G zSB)37Z%_r#n!8TNG^%7PN{e?NSnrs$3Bjg!W|Z|XwsqX-^P4&R`d>V2z9`5tJyDA^)3vTT3DBUS6j>>JVSKg7iZmSNDjl3=#xtXXRYAo7%+wLv|46FpL$nYRQ2 z?i6-42kAlRp{-JLH2B&t5kNrY`Tg!Xd@KU6v)THWh|n@Rf?r2xQY|a!(Km;YjmR5SpVX z#oq2n)&Bat3`o~Q%)0edmE{#TlMBv(CB)k+hxuD_6>&OHRIoD9wdF|w~A;aQ;zMU2$i^# zc-J9aH6=4}?;R&r{4FRO=aCzSjce{?r>sU>&l57L z^9Z5y%1_={ScPspsRQf|PlvDfslE+mRl^Ur6|gRubkBc~?I|Xvg|Z?c*+636dFcf( zN)JjO>Cvw9X9ZNynoeutJu*yff~x@JF2Yv`+DKTiA>Z9tIIFU25>vGW?`4mLTO>dL zxk@d$U-}m4H0*Lu#*!qP4{vf5K{&axQ9*r-b7_TRmL;%ikWomv812MV!cBB=Rs8TY zj8ENNT|l&#`e%c`MSb^pt?#<;8cMoq=^h{w;2s%qEB-gJTSJ$Uf{yA!%;Kxu@93`r zqFg_Y#ISwFU`f&+7|36q%z}IMbiT3m0>Xl@$CLLF;I&VbFvve7LWvMPxL`dyN#J(o zn@tp)F=z75bRWFk3!oGsEe0#LB<#c=aQdZ=ymZ>9P&~n~V1@W#$XM_u%D8avFxL55 z-_8VyT|G)EcNkj+VJ9FzQKvIdMA5p3=mg}>6*6RMy@HWQfz-JzU;sWqIe}1e%h1CW z$^#*AW9SOBdk$}g`(0itqp^m6k$|PY>Cl=`5?*buVSRgxS&qcrob}|s963{p7w5T zv^J`UI9pHe)UFo{;tqL@7Clij`RmWR1Fold8*TFk-1^sHAA{_}iV+h#cUf3h1yd1B3(xQ#04}trIOewq+;ZW?Vv*V zLbDmhT%;%ICs~fwh9g&{e9X?R$5B*|7ZE*o*aJ0d#wy1NzH z+G2Xff&_q-wS{JMcIUcv>$bm>d1`Z@1zSOEz;*!YE<>|;g*=sun%#M4AY|SahQM*0 zv5QEqP@H2Ba7v1RN)YL=aH8B^)JS`WBXt(e4@uX0L3-;vo4J%gi#5eytC0!kLNyJy zfu^?bojgJn3f}8^ITyt^BmW^nC_Felgjgc@=m(5AF+6yfn;$sxtdm#mB?WnV`#w93 zS`)65Q%u!PVM_LOt~1_9c9X|*Oq;{>q>cBE%T3mfi;r$Oeex~^#RA^*+*BX)-+^y% zu8lM~LGImxoReutAq%=j14n>KLeF(P`)V{TCk>mDMYpSGxG^o=U74y~CUb1C=(i5j zSJ$GuR%-S~uBQu*=c7(Y%ROH_eqcoeo{6^7y_m8c-zM*M$1GHW{p9mwG74I7VWd4xVz zMs{!bzDZ>?^{wRD0U~flL%cwXUpC9k7uClnqJ*g%%Sk6T%r%Tcl-n@;6P@<(gl2?o z1glcgt1+E|xM!S7_*#BkZUrJ&dm08vTPtPl>+9$5sNAB60;qT$bCrT7 z=8gV_h|i(LCwO@!@1Y88DEf3ASD>oh3{?qXcl-)JPkA7Ao*DE0z}|Ps24!Ilax_k( z;>@+$k$;P{ew<$W$*LO2hr5<##y;Mhrf%ItI|KCTTB}3dR1)l>T{!M>*2S)J%lEgA z10cxfP1C6E8JGvBMpB?hw+8`z$QBr4);~1f!3nOeWXuq~007>FFv$=d)3Lj2N|);) zI!)F8uGK~2HUkGSgkxVi?DxM-W5&M&h=W%vO)b>{T-C%6dayfZ~@ zx0$Fq2&Vuy)K?NZG#^bZg6lOYw(3_fR4MAM<(4V8bFPSf*FGM1kGyrp1GcyitXkuF_pgV5{B3_`;R`mNP&z*x%?v1Yl);q%(#%to{W?$ zJXtx{(!T>n4J~)iU+Nq}|K&L5PQ%T4)Is?E01D-viK^~;;r>N|VON4sscVYXEcHI);!WKmcr-emyKLeMbOoCBicM z?wfMuZm4Qc1|DbQ!{^s>N+`0TC@!--K%2xjk}f;1EkQI|!=4R`FkUHQli~>RI1=s9 zAqfK{Az+s|xY>~!FhR3ri&0X^aY-7Ay`O`7@4qV_E@^Zq^fEwNh_}SfGZC-uH^t7lK6??vsd&hZz=A9A&0E%4*Iio1`NP z2|zQSfh9RFRoLH?H!YW$>}2{I(Yt{QaM>E}?_x|mN9sTDw!TOVkJlaqexcWS??63y zT}x#UERjEOc$2mkP9XO$rz9Q>ij0dMOn{AM!Dms?9z*_@lbR^TLoX*ld8?S>6nFuXzRB0>DI+I_PnO**i!8KIYej+ z8T$CL4i-dypDWbzDg*;Z@m}+fCTV{o0@)p#e4>HAiEUAj4hJ$dsT8#xx^Nf7F^?G3 zodpQ}wgnW;bAbT8Mz}q8v9DBn^4Q%FPNm^%%ag__NUD{}o+-s1NfFI{`rMjCnC*)7 z>+KlU8gMmIqf^qhF#Z>FZyDU!vZU>rnb~coHZwCbw3!)XW@ct)W@ct)<~DQNZDw|x zuJ_(EbIunr_s+jNUxY$YC8=svR%vOy%FOkYRz1Gw&{7KcnPQ}lnq@yY21V!w%r}vm zy@X5FeqTKAy_kD;7P;gYEAp@st#TGNli{(TRWZ$gyqIF{7&D; zBd?uT?=%nvFx1kYjJ^>frc$^P}?f^ADv{ z2QmiLm(CmQ^PD1J*CGwQq!0<6Mc={WhvWq1NR$07qCyI|8ZK%+ZuJJwT+WUk4KU_O zkS5*XF0}0&@%wA1i63Mk8p9bPEfz(o%sV0?40w=M2|x9;tVVoPieD4&Xfo|1K@#@^ zNWzmQ`nXwHHM7G93}sD9CNeDe0IHe%({NSGaI|<$kJ-lt_GdlA1yd7#u&sw+ZKGl$ z)ynwt@fM=)!3mFTG>Jf!Af&CDwJdQEf%)qKgI#i~6}MfseADjR?74?^-l#VCO~su0 zRX7=*j~ttz`ea$&U=_<9sx)iEFC}-ZSvLm;8gwZ+(9cUpefwY0G&#(}E&Syby$NpR zBBk-h6sB56L;gc{Uk#iNK)FPm7E;RWXb_!woV9Rk^3~#@TFMGtwZ&yl2WaN=?&#pU zP8u;woBV#Vc)i9#mTVa?8&NsWhzeTvbeCL6X|l4UnWT!YFh4M59o)O8xvBu!77TQG z*F{ADjctMk#7mc|jt2JwEuyq4NG*|Ldpx}Q>`ZZv{E@`@rWWLq>QfGNAAjspKtS_* zd^jgDd~>Dx@`7N~(z1)HlB&0NdU=xX2hF8CfzF44z<`ZLWLHbcf*D1zM-;6Gv$=W7 zRl&Z3KaVca*zea!$011(WzWquKJmysq+n4~6)cBLNu%hNAqk_N5tPE2ynUnjVCM>A z_j#WSMbYq0yEHrNOvp8C@?e2XZkn8a`;q(7Ud5N?D)KD{rC!+GCV?o{sqb@ z`zcySJGnlPqg;JpOqAVJx3{8SfO#|mRSQo8YAYi0*l?E(^Ih-Rl-)GhFjlIuwsd2k z8y`afC_Id`h7>_4fZ&F0C0aL<}Uq zqHTD*(j+Tw8+86lqqn-=y>3H2zDC8y#I*@4BK~ljb2&p_sqy|JDoe+<+1`uj^jwz5 zsWnfWSlR8XLDDyDwmukj$8XDmzgD~})GaP(y#~2o40P{D%KTKOHo)!-(gDYyK#jy{1-F8C832RF-q6v>4^q*2=qYSMn^ zg1G-dE18>du`7IW0`yeo*{@2B!+x7?)kolwH3q#_Xj$Vibyix!h*j z_fG2w8rZG0uoZIUkXKYV^s`2(IKw6rg}Fnxk;G}qTw+$qPAWr*kx5t9{fo6Oca9V} zIBQhr95LfZz9mBFZ6(A$&+iw8@&wZJyun7ZunC)xfczU|X%rU}9>GA+CExwacM?80 z)?C2!Iv%@U!6DD7uHiU2DIZ-pzQncd>sDk?)Kl`(?n5i|*{;DlK4-$8*i@*#gIYy- zP@Bfje0}9Tq_xA&BxM53bI=<*XC$Dx)y*z z8u?QtXO+TDR9QV?L|_d9AqZ7yK%X7+7-tL= z=mgxZ9p#GMv>gX-gP#ykpahtjl+-nxZdDavi2}!m*NYTD%7%hkX0Nm-_0sx`i)xI{wO zdVR?aqZmD|G_p{y^1u6*Hq;VJz#F(r1PZm_Bi_LJ-Y+3bpP6T@&NfqoG*fmX zI=(QZs{1L6%LmecfZ_Da!daP?u%(sQTcm2w_AO^7p_#9pP(7%w+NSZskV*L-Dt%wZ z2K_8~aCD#EamYg_j$iJKoLAEak&$9~+FOt-3iV(L1?*93(=lLfWagGOZgBJo>LV(u zm0kvxxrUa!vWDeewZ#E79@NwgT~iK)>n4pR@Rz*~gwOX$#9w--526e&VjJ*jRfzr9 z{ZXFs;F=9pb;nNT0`;k-y}7NX@t@`p57<4On6NGf9Ft|zrgRIvTPAi|rg8+8Qbx-S=&&$_?vW?Bq;;nq;Q z0N5TK_PEA+sxU7m$?NDyV>{PH^INT$t>lEV4v&f~=JJJ13I4)955jMd&nX`(nLS*= zXp%Sm^BxbLan$6IlWlpkW_M`jB4opd$QN3A5ORSaXalDlTS{nn9R2N?3fna-dV?iF zZE>mX#Y{7h|JS_x(U2)+o}VYQHr6iAAHh;6kWl~9HHN8dro57GEyw)C=@VG z=67w(tGbTaL_RE?%{_h8@p41q1g*)%O;p@&E9?h%YOCCx;J?KIrBny$4u7;gTBL+o zb5_y&kc2l7L^?X=whbszs1(29;n8B6)^!3Rs*)5Vf)kc#>h;Aer$vtyPK4jQL67}+ zXmSM66%Y@`p~z@d{mWsZPD@u@K|Yzh+|WOMO0u+?P46-@VLrthg`(`EY4D`Ee50R^ z4=Q3B+QJYmv$8FrUSVftFG#829uH3vC&S}Jc2-QltK?I3ZCf}bWk^Kt2@}j*WxdrNq%+djN9`2LvBYW_YS`DQ zW=opZ`asQRUe=cs-6iZG|90UH5#CcD5?bp14EG(~Rsa@h_O6lhju#&!7Qo#>KjsI+ z64~23R6eC((!dUvxXZe|v~40pHy;!Q77VF>IJ^j{qANv^=te1aKRz&El8?ruXC0C9 zB|c;gplMD#fmHR6mpXfLp_K_}9O-|5L#J+z`GdD^4WY^DIo#7Y2BT3(-@iT#O*0R0 zQLn3613l-id-bgrPSKB!P7Ao0VviB+bK)52$Sw0XzKGJhK5kyY=)SSU)%?tb(_}uK zWps@3ICiCSs{k4F@LuLiycE!;d&^%G*r?Hw1d9J105E+IZ2U`ktYr{gUR zlk|)U=g8+5VRS5p-_rvMHd1^e~O| zFrD~oZ1#BMDXa}BT$5yjZR7S?(jy$ zT*VE{O~d=Dw0B_Bd|P;JErFy#FQV!bb#om-mlIt2_j-EzOEWT)OO>fi+VH%c7&YQc z6myRrU?RXk{Ck6~>*YyGWEJ{9!3fY$dF*x$DjRv*-f3q%?!&g9h|c$OgTQg(67hTH z4fUvo=vDS6>rzYpyikFZ)AnrWh|0*Jl_&tRsY;V9#tmHH+RMomDiNv6M+z!nE!a-H zcos6QSs^E#doj_?O4#eNZ{{()p9@IQ73>*iTRX6A_T@+a7yL@eHQio9o zH30*Hf-ktOtgApwc+12S;3ua0yI6o4M$zA-Gp|a~NyosXh#0NBEhqE6BfA?K*yJag zmp*_gv3)%2Zj$r!?sF!zcu*4pm3SkAu_ zbM((72R}2&i7-tm2W5TQTYMmM>(V|*pv>WGGH#Mq?TqvH{;f0jprg|K1L|crl(`@K z!_XuI!rEHw@OSB8+QX}e!d-Ia{ChA~{=q1nW4|P={D)zUASDQDt$r+_c^|Via~mAV=VmDl`CqIuttK4DDlS;dCrf63Hc=U zM;$94uLfB5apA7XoLDi&c&zC__~X{8Oh}yjJj5t+?kjlb5pI?>S8t)ogFhy=3_jAf zV6qszYBm#~lNJC`9nz9H;(58lL^6LG*8ub{NO_%v_Ow?6=>*Gs)zg#Js?^%rxlYNo z>~w)E&KJ!__H!My5lVlH!rHQct|{veFw0Bd<7ulk(MC%Rl_-s&S~}NFxu1t800lY) zO;)&_Y6wKE9nPq6p*KSi^(qTk@eMODfHLBPwW;M$s~MCTf>a4E3I^uW=DP(O*cI^2 zCJC{kqO^yT)+>>TnKknEmg3}wh9mPa6EJ}u{tNWB_Er!eH=k#5Ef>v-cX6OsadB1n zm)ghs^kXne1=RLo)~Zpmi6|jnQ9bgsZ|Ue`zYP_4M)V?UziW2N-KYLpomcn+`W#wZ z4(@aAn|IEKn2VE}@qOx$e;A4Q0OkAgwSfN67{aVfqzw5&x*7yHO#7(-2q=3jBU`nB zp8*D~*Oae3I{?LE|F=}fEtzGkEEwMNg|V>}@r~ zh|k-`QRS7G^edWErA~{VF?jjN`reLMKA>VW>%r|mu)dEH^z?<2sekMlmA4@D(C@%L*3N3?MMB~%4e6M!RT7R#qgBT-tpE8Tk2`# zn@BpNJDqIEbeQww(`HlOkUkLswn59yO~_P!lz%>tdiJFSc?vYd96_7HV5q+*TGVwV zb3{0zZqikzVdw^8^0;YouqoQZu?xn2b+$}kyeK1tx`!Y>4PjqIAOt<{U%2;~fq&|^b0Ha%<;q}3cLu_1X7L`;cXH4JyOcN-U}j0s(YB84Y@tfLE{mdiC{$hk|mCEA`Rp{%u-pwj(lX*mVeM_@`s>H z1!-i0vB{xn&cP{1fj+iXb?N6&m@(S(iu$hQjC2&hl%OhnV`k?Bqa*u%SS0-fvN62i zqv^7j)A&lR0LF47u~rQo?$q71fq(n#v?oSDlaIj^C@MpXZfSz&+@U<~;GhgwNHbkQ zq4fiIK_J&ggr_J})hWF{0846=`xoxBS|62(>ZbyRH9SfV3we1FXIMM)J2tIWq5Fy=&aKjJeJ#V0d{JcGM7kl~NoeGJqoefm(sjqiE$+z~A95nW z!>wrkCQ8toyck%3W}f0eTjK7`QfE72C4$9%LN{u2LX@VP)AEB(rWC}_Z|P1v779R% zFFn4s$4lXTZL%d_7z|Qp~A@Xe{Gc)=+5vc3;SuB(`fV0TMWF1;yWC@(^~k2ys{GYJD$Wc$#j zYPP_c8D95wjKzpRif{d@PEL9qM{wiA-Uhr*8t`}p5*T1lm&VL!LMKRcNvF-*c;MBr zq`3jmd{WZa_`}?}?3{eca4RKd!1SeMmFS<3=@vMXj6TLxOpM}(cOR`jWrZufWl8tR zBFU{>!5y-nV3oR-*gn~S{;ypfj9&0J6tkg=>TNQ|1*r^7UN192=zI#qb;g(|Mj6IP zB@ISzXY!;2r~U8}utGaI_-tQ$qU@a@t?W*v158M4GA@Ngrz|8} zjO-yt4XBQ~of8~!-k`W=VdGP7@kH0V2bEs`>i4&vn70R5U~rb3#nZ<-cor2{nmDIq$-LiTfb}3RhBfA3wG3(+u9U&+5Jo!IfQ;#Ko{KK0$Ve4GH zV*%5NR%ep=M<tekebV)zc4vvxs>d}>e&pxWpA*J2 z*US4W)x{q!jo!K3C$mi_=MJ!0)We^5b~XDRp1Gn{|-RINytEG zYiPm4L;wE`p!o~xqWCvu=05;5tQ>z4Xc!0?8NW&#oDBblpiyzMwKF%MRWvbmwlesl z*!+#0Vg66%4Cg-u2|{Mpe`n5o?fLy*%o$FG|6B4pwIRFXE7s$=}Q7WFlf>WNU2l?_{2HHEYKWHk6!K z;5Wo)iLET;uHFM_^6+!EZ2SF6_f*6jpFGNSfLwuMc+2nChgKkoh$KStm35nv#T!y} z|47JLIu}gXh?+#Tom?fSZaJuh%{)==nZ(M2m7oHcW>iILr-LAsbT1L-wBevD-##%A z8Z`;z2+n;!Xnq!SAgZQ*04X&|9YfQ5b+wojBTbs15Ncnl1aw6DvV_DO8XD#IdL~@- za3BaVs3HopZ^2+o*TeTXj<6Y7kG+vZ)OFWa;~O;Y&I3rIYbpcK4!#WP(b$UGMmAs* zS<*F$B&z{PAq^ltfG5d6HX7_ETUF$1 zAczRuC#)S z1+hg!P_gNPTlQNFZrP^1@^N!a!TXFVd*V5Jx<^^EuvHSOvKnj<8%z|KM(IxXNn=2G z3G?Ne@d|qUZQ~}9g$(x)afRfWAzZMJWnqofwPTi~MPPdyrvdNLdr5VEAGrUyZ*yg3Pm8L2sJ)nzzT^`}j9dF8mr!lnfvCc{E!*o1AspBm0%ftGwz$VEF@0)nc& z#GiSDD8HlkBL*voLwbjvk6ukym;HF~cWHy!a#_V_X}c+<_A1cKgW2HcsAB!#_P0@d z%@C+p7SM$`h@XAcS3}^Fy!GIRKLfto= zo6zXD@x^UiuFf}22H|E`r?@WBtYc7^iNd2D5-s16x5VHFMtyhwQ|nCdR*h$S=NvAV z+UU^Zil*a_7r>j$%Qm4o=0-VTQ?Yb@Yz6Y(B6p{9=hyS0&he8FP=uHN>BDT+l;(gx zy$MV3d4zaYqPw#E*F9bSH+bMD$C&73Of7O?UYYDX;T6fuwe&8hmInXz|sf) zkSJuIegxv=@F4<_7R2xDU7vHer?9jFzB>r^1Hb+OD3cso`FK*8wlaYsmXU-^4?E@z9rm*9_$d zF+L!^;q!up70#KdiSGJ{IQcSVkN;r0p=BZ6n#)C>Ii^BZ2Z)GybdTWCpU+JBhS7Rx zJRqXU799H~UhS8VEIf%cV8*>s@_JrRJc2$P1;tu$qZMT`PnSW}h-xxr;0oAoO&xut zo$HxdH}m-VmS?wlihBNVJEK_h@E1OQaO{VL6t*23){?;W|B4IPBt?DiY(2QB$j}*- zXL~ZyK!m$9We%HM!N*3Grr`=;o|7rG;&NITo@4WkARM+Orma(kNQ1rwf#;6g7Ei)! z(}-mkeOXIxtaS@vx={VbC*(PU5G86$B89kFt+ye70Ib{Ne_;F*`rGU*p`>=F3HU-B zlGMW1b9W_G>m`TuN4g!f=G>D;8LleH1mm8W%6GN#4Y;@^taPop7H_3?SvpBmcUqasWzbu zoTh6KbTfoM-)>Ff8TNwRiNVdCyAF~`4@Be>6Pi8z1VE5rISAdcus~tV8Py^8SaAc? zI73ooA0@e)Umj6dmX>Xxe(a|V!adBYLBetwOi246cx*3& z(7VHCf$TZbNKFj8}=>Kb0l1B*!8?@G(hk$nZ<2Ylfhttzbp zOujb8Uaq}p=7hy!2oMWB2fW8ryG#~dZ+5wECOyTVPKBl3hFSDUx?_|a32R70>T(LR z{d_KFuxfAPY)w5+e_m?3!|_72xeI{f5KO05qkWerHE<=b)TMXplF$zta+TJkeX23? z@ypg^U^n#`cG(~n5%3Hs;#Q##<}F&_P0yQrr&_p+cbMcE!&kFmKWp|69K9a$FlIk< zId9U!AC~*}fqvmD`kKqV{z={kRB#;D_20>_FOJ`TUV{InTmHVN|D(tLFVZb6|Hub; z6C2|%%>d8%SN(rUxBN9h|A%g2Vr1j^A9c%_&4w6;7=hmv!|M+aD!?V~;Vf}@R+}ga zcYH%X@iAgX0U3aDfsCwkdvvo$es(I3g}!ho{C9ym8t~Nk@f7C{yJHPlbvJn}23R#U zVxb>pQ+02;>&g2ma#DeZFc`}8eSu6@EJbT4AE1yRhrXMfURY%Ac7bFF5p3Xkwq^iG zQp^jTDkMc;>Z)3BiD}u_rfVE=@wX|*%=-R?xjz(uPt6Crs82`_~)Z>xLhI)_1q{W^qan7(%LD(qFxF=D2<^( zFe}x2v6T5M=n_P9Y|Kk6vT(%DCxa8D&GoFWjoQ`uB8^+6?^yrX1-oPxeP=O2!TP2- zF(-6q#s&Ls*AO{Zu$pRb=;m_5=w=ily7P1JxIHXP9wAJAAC}3pvW9FWM>*2F`tZw zyF^RuH(}purSDV>z-_4R9bn3w&8#asJ6C#HuK-yn_%<@^MLrVPXTa?QIv8AUa(30h zF~?ckx=AM%P%~~~7cySA^)jx|U^8rj^bsnz`%Yp+!t>)@b(t~L*q-R%Kv|D|xCMj3 zfj|TRAXE;IabtZFQ#4Aw*!WKko5l3K+O>S&AD}gNBRy3K=O{r-2TzCJdr&yx#bbJL zIcODr6H0|*7f3q4Ua(OC3jncub2G{HFBbK6mF_a$-lcv*8^Uhvb&PeI4=)eDDi3Zm zy0RXGRv7FUE5Yxz-|>XYW^AE;N}!0uw)WWe5ae`bv|Kv`%5-FpPT=x`p> zEz;=dTmrM;GMbGWDAf+n=@@;8LdG5|(?)THX#k%E2)RWZszl&s>v)Bz{4N6@I8u+u znK5ES+4RqbybN_qK9F1!_0`2#IiaGwIGe&ylg!dBu}@txR0}8yRKfBqWL|G{Ay6f@ zBLqx&Z>&4Z6`Z#0kco~2TBJ_U=58<^GXj9kgZ+-xlVYpo9g%^w?mhc*QL}@nFs* z*V^jBJ)RwzU!M`yffaWT@>EKk%1+`EwAY<=5j~91g_(!7c3o9^c;*enWh+BEiQ*=~ zTh9T>W`k$Vz?2O3S!WHWnha^&_Wj^=;egAAg!jORnPkL5@W?>qmhU){M^fc-?ms(@ zf8gcVskxIgi~m?*%we+@SG!_V2aCauQE(WmpK$PP7M6o_L~A-c*>32ofwW2mo*rj#y9@KO|L;e=F~tkY@an zY&M_B@Dz~O2WkXv_tf)YIRDK8kV72acj=tvwt+deUDz5SO>uABm|@v3LiwW}UT3X#aaOdv;}S zScQn|GI_7yXoqEJi*wT9lAEH@HG)4{SLr8F7l?RqF&1LoB1Gqfh$~)SXy|xN#^^Nd zgo18(LQPzn`s#9~lhbhu!s<_5h$Xi2$2A)sQZTG9y~)WAaG<1lGr%QBj~Hm0 zq@6@`RQaa;K&6#OjJ8^wFjUBphEH33=8b{VSmO~52*J%H?<|QLD}D82l;VRj z9Ii+6MDZ&M?Q&ek72jgWCkXeqGxs zB7Fa5>nH1x{16t+*%aT`!`~x3iX|E5RLI}?49Du?0&x>}rs%2jBCGbuH_nBpo&-(|B<_232iw+0emLB@V)PvKk`S3!`EGCwed!uKQM#O^5#;~lD=z>_nA+JXx{1&Dhac0g zP=74kdORbF)0ms{i`#<>hj~kGQ>0#CXu)xZ?a7T5^9+me#NwwJBajht9q4uf0e0!M zSZpfPs|C*V!i%1M>DC5czjd z2@0bOg0;H`vw8Q-1J_XOeW=}nxjy}7;QS?HMkwD&f?EKB91{Y3eoVa&6zq{xsJJUk z0FxlFpmKCnJ5yBz7X8XFP2M^ti(Sj+T}?=9Wi06G{xF(dxZR~%*E=;~fX&xGd2zDU z(m$?ZWf~@c*g20#v&`$zU^tii0N82_AosB&~6Z17uXfIK?u7tR%~sL zNg;R~SqOA^_rQs&GWzC`xMvLdI+g~kVY`S-y$ibTMAek^l)1{eEbC(IX0BaWlxRS= zCC%~zYs{)Xb8BJi)Wvb|>0W|Z;kkYSM6ksTlIEa4ATKh6!V!(nRsBAvg-nz5kj4BG z-lug1fH81dKOn=T>}xoyxnj9Cv4#`N`z%yh9Q#wz!=~sEG{wTi<41Eq^V+J1zi^$eRew#;|0($xm>B*? z$){zz(S|be0rU>ZH-V_&hCbdyv!LzL32ENg97%_C9%w-w<6+!xIXQi}a}}3ltWe-7 znYg>FuaK89H<*4!awHazGJiv_6p*q3MKX@2$-2YT5&jVYMJ3-zXdDp}RX1MvROV0# z{iXMGXA1UV1E4atM1lz6K6izigeVK4m&=8i_f4?z_P~tbA{?I`T`+Y@?kQ?{l=kLmPtWWSyQVeWnUOgb^+-oG*S*d( zaAh7oEOXi}^m8jtph_{|arn-Vkg3NCi$Gz(#Jjm<7B0dS`~h?evcB1?S{>=|>DFMn zn@72uOE?E4&*e-L6k|b5J8{&&pL(PF!wTB+d4Y|=?f_&hnl{d=@Dv4(VX@yD45B8srF2nKC$WBpG|V13Per_U5~+?A@M7;y@<@W%=1z zVM-LPbL6=b4(!7^S_xWoc9B$B`+zkpDCaMrB3T4n!^X`1tU{?7;dDB_%N?@#;tFq$ zmPA%V&9hmV&=+_nWdSf+Hqv*{NCP*c}WdoC=UGE zR8ASKOaV4%w|#+`rwjg#BC>xx%y0x;lj+s<{8(|MMAYytIeyy z!YTbMBL68wd`~B{_Tt0W4wyy_A#J$WW*RdySdjZ?*_d(#feiL`ErI?jNH5VMxFzG>9uVU)X0l8HMM=-EWY{Mv@c3_gQaP+{7WX z^n<_zX^04hqH3s6^w>u@ZgMpZ7WirA9dM(uymWC+>cf6uDuW8X+QV`c7CNmwQ(O1Y zF)*6Xa!_(;knG;Rv6`);=Xp*F;|NJLTNUi+v8X}Er08j$5IJY)i;M{^SOj`zU}d&` zn#7`mGZNqA5}$U{n@!L@57_E$lv>3JL4JVLyjj;l%7sW@=!*Wwd1Q{5=z?Eu9Q)G| zx|VcL?%oi@wB%P;&Q1mr=j7=*I1^}Oyd1__X@~jIDCUqLEQSxkdLV3XlD~f5y(Q@K z>jt1jsJ3OAd1xliZ$~O*Xf|}xd}lBbfy~I~dvZO@N@2OT#s!;8!xeuG4K0aFD(cKy z&fcgL2r=l16bmA=8Tl~iTx*%`AS^&zw!B0#g6xTg-vu8P+YCWu4>UENo9c=$e;pvs z4kfqJDO*RvvNFg1;^jxCI*b?KStZp39e($ zv$daR$5aLxj6tX%F{Y;Pj**eQ(Wfsoe|SL{P|(6Kp#3HN1++}e62;l)C$X`ly;)=e zTP_LDJyQvjW^C!{5_>;%35#MVxko^V9s?YmoWti-TBa0^Qu6flcWm`ttB>*W6h(zDcy0C{FExzA!*Ve9wC2&vl912z)~M)VnErolWyy;)aqMTZ)lrJ2&~YO#z0@{5;Y++Yac229zF<5 zQ%xu4xH^1MYmPc9qjZR4)D}VPZ9ZAzr$~N40xg^eO7u?*gNX|lxpFoIOG;zVayoRb5zcjW~ zJI{7r_v>G;>*JaPEV)@VuBzlz;qh<<-9;n*SxQnEsBr z{om$MWBM!J_-~QGzw7@y9<{$G=>L>gOw9kYyxOwa;J_H+`MR|z6@fwFncm(OqdeQm z=adwcdqV@wF@GYWFvhAlf!F-$(u%I6iN4-Q_D%+87jq->9$VGB+! z3{vP5X{zi@bw2QUfEAZzAo+`oddQP*Yc;hr@&UT}yD~h>1W=iCP0|2pFg$pg13wp!nP3zOMaU&roDCWo9l;HRpn7|FYGSc$m02S~m}y zlW3p1NcF}t4HBgOsUrhd>?(gf9{G^%=hDT>mo-+HX@doTI5U&@`WlK6Sq18JB)s-> ztoW!O&VWIRh^W^}PWUpcQw|`rsEoO_9C)VfxZv%yjc^JXQwDxWv|*lRZn}GXR1$qM z6KeX_8kziE0$SMHO(%7hfHLWvym&hShCQ-X9BE~bg8t*D_5y2!rp%!@aG>BlpJQG8 z1fu;ISB)OsCFRop9aVQ@=k++cW(#^xdiL~S#`Jf5| znwbWQElqsn#i_Sq-kXbf`FX1Ju@$cLy!{JLR^B>iTgH9YlP2*rmiKeBG5Pu6uSI@Wc8Hc&kvR3Y&ft+;irJBYitj{Qn-}OcXGOBW zIz692_ABH39D3AH<2i#p8p7AK$s39Zh*mYB&n}b+a_WHE-q( z*yvCyl`Cm-m3!e3#R=xKIgdR)MkG97$i1133HNtMeaS?f;iY8{pH6U^#;LbjJJ~(W z6Pu#$9=_R7YBbr*#(!+45|L+n=Q@}q?SBk2H1DjHlij>hS=#6)jBcnjT!tcp%gB?P zjZRCmB1}krqNr17gP+?Cue)4tp;Ke(DOSle?c&v_b5CwYsK8S$U#2u0ZWW&%ANnAt zlV*z`l|n=crz!%w6%l)?>rx0mA-d>kndw^X%9gw|Y1%83Q9<$B7!x#E6MqqW_b+Iu z_zNWyw@339V#!5)^m(I3!Fsz49p>I!+BNa^w1YTlL4h*`!HQQo`C z=S?(fVcs3p3tQiN{lqY1MyBhWe%~FJ{8TH%+2jZv3Mrkhw9cRvfKbIl;Bm&my-rPV z#^r;Aq{6HA8))t@IRlUX=0lXQAXDB0A&nY&Q!4J=+0OnCaPaFYKYU@|nF_ zKw;(Oklug%!oesFDy&D*MN;quh#^Pe{=_!wIUqhh|AhM!T;UyKr$*}Ja*HrJ`6}BX z^;u~Cfl~xsH_`?iF-Nif7 zp$y*)&J0(umZTE`r8>bII|Ptvh-2F#s`#P4p>uFtA)zHi@Sbt6g#d{sEG)%M7*ddC zF#4Jt=5H}4^dmQFyXzBSVD>$35dntXD?|r+DCEx{1Rl#iOK`eJX57Feoct+!^i9H`p>nK7FKcl*P-E*nJ3{lRg;;Fn8ESvmDgYD`~$@NhUY> zqSjW)e9=9-Ri1zh+=@kPmnMq`3BakvV!(Y|tMVevS`v9@u700>ou{ zd?3hBc%DcT<2kcF*b^*(BQDlc^Mxz?&M-f@>4P=;)DZgg3M8QkG0grHQt|o`LT~2^ z%l_VkGcLOEq5{42T@@}`3TA5KOiy*C{TZv+$)N_xujfH1SJMvwH2xzVY*;{86rP74 z$?WeRU$f@18UZj=J#a%?=+!fQj0t%hJ>98Ux5iy4uD=IoxyUO`qwsJ zrvqEifiMc{5SO4}ke%d}Nw=$?ED-37F+r8|t23fqdF7C#_B-#&KW`R6@~?v$P-&2o zBxmNA(DEyxZrit$^H%E4F|VJ24caOocSA~!w+OIkcVj7U(?oz_=O^Hx#IaW)(+0qP z1LE8R_9sT7qT>DR>H#1#DhPlv)-m#Kol@IC zrA42VCsW&fQgDUE4+!+KtZ&KK3h(D27s6hVm?V~w3UHNeFO}KF+-Gx4ix?h7Q|luc z3TL1_`U;-QjeyaKjsavGt3#*zBu+eDDDJkR8w#zoB0*#}H>m1eqf>Tsa7gyet=xpAb)j(T;>4XUwiwIpPg4J?|lB0o< zx^=b|Wce+^8r!9)b9^BPcr44wDXPs~WW&(Sm}tHFjjDPGxRFrcWw+%R*EK?_lSDBN+e5#`<4M9b@{B46gqS!Tw$U zUlNS}ivIpb>KGFvE6e}rkDGSb;6SNy2kHSm{EjDs+Dq!S=3qr`Z*hL3p7GGn3KUl%fAQi?|sYy}nwB@bJO zijnY-t8tt+7TizhQFG5O-f3inve|+j5bt$Fb&BSQ{Y$E`qlYhVV+3-2A(?h#zw&2lip@1n|Fj6i`{Dl<_f78gM@tKftc*g2^qN{z!vE zI9m+{2>vci{VW8-Ic_Vl7TnKMaW7JUTrJ?!I$WfYrE;pFN>)B$61V3Qtjn&75c)li zB+ZZOCEQw}4WOpg$GZ1-%!M8CP}POaLTLcj5*m`&3-MMe6Hmr*Wrv$c+(X6~Fb%w6 zFb*Wnky`|NPnbDWX@|!Ki3QWXr|H^WdEFHsg8w9W=GXxHLC7(_JE(Z2CapY;{-=$G zV1a68E)Ha>|D;I~eDlYhX+ja|^#BI9SUEj7f+tYRnu1U(NpR#?^ozqyT>0?&$@{a} z%?=u4kOD|ra}+k2_AH+nST!`X87EPc&Lz~y!{kK#I9VU#(k7xuDpeFf&f>>=8Ki_w? zO-{MrcNE+OKDp=bbnx6&u&+~9lzbYhw476z!SSliUWdvKAD*d35}p&}*8^`*Mr`P; z#N}d-%%LwV3+75y)~?M_ct2+k`kZCXoeLJ_tqtVw27 ziyen7Pn@c7V`c!ob57SWA_UbKk!^k&^k67EEgS4}NId$y;GtC&wfgs)Bq1(m(cVK{ z2PX^ME&C?{uDm*b*j9dEO2}hj85qw@u66;-b?u_NdUtpIB%(gwpY0=Gabv3<*1o%JrM~8QwdP9-`kDVm)y=m3k{nue z(KRF>-eMOFYP0r%k&uWko}L*DS5u_VhTOdvtpm#X*kd z@ViHwYF_WurWEz9_?m8fI*m;r2K&o{6DRBG?925JHBqQ8`o>2OMMVM) z^1JoPw)fpKj=4@)Qc#CxR!60R7X2;Z4(1-sMDM+$u`DZd`>3NBzo;auTJQun){pV7 zOLPJL;dl4yQu~aLAU#Z4YYL4Nza$)M=XLTbRX-|62xQFp|?&DD>h_w(^td&KTlgB_Wj^p z6)$BCuU{{T{mjWU7AlRQgJ^J(-V+c;7E&w%UIYRcWK9N2x$2I6+ZS=v9pby95`ZmJBi1qg?yfQIVQuRLWP<`X1d#pYA_ zTuA?%a-QK#-nVrH4EcWC*QD8+7-l`2mc!tClF)a23G)y>!&75;PbNqS4>-L0xFv4%SIOs(s zU5nL=71w9IxFAjQVnd|kJ~0G+VAxKLGkJL#dA<4&py(od=-7>tM-`QuK^J7VohDMD z6(!i+qL6c?@Md@ltrw(KKV=lag_RxnDyFK39>jeP$>88TRJ!-K#tc zOWD|op|ZW9E!s<9vmZf+!TT}@oHkQ+v)Fe^e{H(b6<>}(R?nuxGj^Efj)*4;i;-I^ zreRzL&r{dfUxLbz;pKqKv-~Jqqp&_2W}QLxq!?dPPe&~S>m;7Cm~R_2V$j`@gy-BL z=rC>1$5KK{Va64MN@S+a!$hLwz#sFna4?DKHIEiMx72ADGm_sKw7+QkkfG&JHU!&O zhd7trUpIfPUGFr%6AlFcQ6OtTPr~|$END=o{^d4Ly_z#)5xUr(*}`tFyc_`$Oc`u& zMA@0v;?kj0+-^afNgvO;5F~KQ(61r=y0URma)CP`n*E7t`8E9J_1xmM3UJLq?*eA` zUmAIT9~t}G$ou0!{eRqa{hu}RejWY)d()Nm@9pCM+ncVefA9DHW#qAP{Fg@F3ed=_ zcz*K&Mpy_n(~Oeh;Y{zrTC%8a5f7p5;K%?GC!|c zDuNB#I&p;83X={s)TM{Ut`CJR^<}d5i7`Oyf`gb^cu$-hg10tu6`V*(`y?dwgO58K zV$1|IsRcjWA72G6g2D4i=0$RA=2($p9Ku*a0@3cAy@|ZPM_<{b*=|q31%@1vYT19H zTzi@pA{7a0cMA}-N&KpBkwhhvc>9Xq1?PgzgK#rS%H4n8Nf@^dH??s;#BvndbppUR zgH2Yq0J|$%zrMX5r0;XouT{Lg;?^BXluIbI?v`VLvpnaQZ@M(P?AT2za7Hgu*@Z?% zj^N-WB}qmP0{DHqcde1)Y-$NFGJ|zHOW>EOAeqNhi)7g|dVQ3%X#CBNrK4=N2?ZI(zs%FxZ-s;VY_8?Ok43M5|o5Sav>t`jIi&#sM~W2CPX#P z)5QuV)LxX?ruVG!RA2C1lhM)x^m}2J19cUJZv4{*kU0;dTcRH&a6vB_zdC{E5FH~9 zYErwC>+pV-2t+%{?MB*-UwA@R=HVTm)&iYp3R@y-JLEwq40D%xnwffxXYqN!SdK$ja^ z;-TWZ)F$wD8#BQ{h)QUp?4$2AFs7=tb#x3U_LzumTu7d;w2U`8Zq8hzk(C^30e zHERTzt4xjL`7yGJVgWZ_$6N|Tp(uU*2mRFhgPYn-$DKfN5{z@a(Fjf%S}6Pv@NR()%m<6 zmeqtkj{!k};xtsgP$-?2%R+Kxz3UMrbXW7%5lOew1||wi?d#aVO5P~XT`%W{_HH;C zekS^Ni+zO6yhoxQNgc6kwKNXYNeK)%Rd|}2p6fJUuKUoXy*8qlken@G@9iBFY`WYezfz8 z$9d5$hpZ>O0#bp^S8!eXTKte6rO$F>E*TkX4m`|obu6Y$?dj@B4M(4p5bf)_>nlzT zA2Pj`rN!G@UR`Q` z9qib1NoQ!3!In<=DS@IdM=Dn{k@~Kg>Z~Ner=RGwzSL9eC1v3Bs?OR%=Ahg{S&k@> ziPo)Q8}@7o{rhAhZ$ah}X2{UY&U+Vvw-kJfVd@{R`^1aVMJ#02QLm@d##^YIEqBM? zr@&D>jZWx~nFM~TE73YhDQMNV8}aDzX#rajN4mWkjU|H10QK>_kNO!q*qhh$x?*g2 zyzE~SM}P~r!s}+7ix4<-tI=q4f~vH{?rp$X9+=ktIje}BOfAjbUYdI=b6zzU0OV>jX2zx^;)h9Ap;#8a&q}Hbti8=a$=ZaL zMV1Idm<`QQ?RKw9%jxX?M2AgdORRHX<=BF40v;Dku3SiEBhB(#bcC*f(YaoBy_`$i zTJfT$LN4_T)-T$CyKBmsjk6D@69X@@=2POc)&ot7@#jBGz%WI*0_)_nA^Io_-dL}_ z;sp091e6SM?ru73lrj{_(`zJ(sjQdDVTyQ!DcZY=K;3!pWv@VWMV+a*Teb$q!*cxe zkt3-J{5<;XUB4L4MU-po&s;lstbTdRW+80T?qq>SaXyfZwSVZgvM{XIz9?e$*>>hD z<=1IDd(c%nsrVzGUBMz z(7#VN^SvLjeJ2&xs%sV>bj2to2`_uhcJJ4>hC zHM)eNCB+o62|xA69}H3_@mt(?$kotNZ$;U$kv!2sZD~bYV9a_lSfEjC(KjunK2&&` z*M%wawg~Vcb@^nF0=IQTN?>aAxh3+QgTyaabF%aTe1ap--|k}t^^o0mBW2|)_!_YX z6QQ9q`;)6!9AO6KLu96;_CoI2)j*TRjI!D7A&Maj57a>0sAYn|G$X%*4-_VNZ!u3dwJSI{S&{_jDr*!=!7O`Gu; zaOM#VO-^2_B?Os`q0G1pO@NVm0JTZ+TsTm+*fo3tIXe=3r}M++U-8nWX#UJSO{LY2?6 zFhE5NE(M&O>-BGJ4iBMr!vK7&bDj7eVMTt%S#ko|g=OX(SsbT=Zx)by#Rda=>dNrl zIe35y#GB%S#)yh5X3iN{y0oFI!W@)LLn0}tG}87+nVs5USWtNnx_Me#urHphy+%EzBo84U&PBzZ}(vGurp5aCY-1B@vdSpp!Y4&Uy zzzXT??h&Smwg{K94 zIW>jQ-!HVfd??s$U)LR-wV28z$G|9v^jfcPWc(rMR`5h(ecc!qJ&!F`nfNXgOpIY5 zO`#r^gjH{UJ?Jh7SylGJ++{CX4@)b#VjsEh=iHCLgCgdNE7GhUsd%cRlUm84DG7zg zXw#w;(k*hgQ zq@)@0W>!@_h?8sB5(OHOC&@{l!#uv{;su!d<;&eE5bdQyB5DnL0diAHs*Ww$D zgmdiX4frkyGHHbTjv-H7zo)nJCs75CMILaU(=xpBH&#j4>8<7^bAld8PZ;|+uyIf< zWX?BZC8(yRXcU_+%N;E#@MdBZMCx5gKDyjFjd4?!_Hh}*!kX`1@Kb4BAaqa(zhXinL%>DE${4VPr77TC?Jj@vOa-)Wfy4TFviipor)xcUqZ2g5M9$w|&NA05r# z*7^&M47d_igyZj~3TRDFruGnNY4?i->=Em&wvN`H`bwl2f~_Ugor0~jf#UZ=WBn*T z`uQx-T`8|s%r}3wI@cAQh)XTvGNjdcx|46aStKNgpI;>)sQH-Y@i-)5u628P`Sb4L zFuIQULN#a6%%r;s|8=(+{sm_^^Nti6tUp4|c{cLP**mtMX*;G6J%vo@DLLpbh#Yuf z)MZ$$YVIw>f;)$mb^T&0qYpHIRTnRB%$F>No}~Otu%19t1ZAwQWBSpkWu@JYD`ZJO zA{-PSzZDx#-cZu(Z|%>}2qlcDl}b8XXIw>c%7Y0%hM1lrk8$2M58V;Qzj^XUcDMrF zB>!AA=_I=aQ|TQdE=0-?qmjyd0lMBv#oQN*L3h zmRG%28g(L1B{5;n)54!ybZklZYkJR=7D)p_Bc~xp6hs;807uw@&BmNBLRxe|bj}d^ zgZVyR(U>$GpM;ixShT{^5XTS>8MNgXt&)P)*Kak<po~^zX|R+Qx?x~wEiU4x3r<|zQtT`8BWO)tJWAiA2-9g z02kLxRt@~`B$t_PWM$$LV*Hm5@Tt1W)`pHOaE@;k8d%t{I3pTX`c2<<1e$b|sXGZ4 zz~VB?r>v+I^pNdAwj@^Qwm8mPkU?7afm+jNXze%x8EK5!sTK{&YV&?dlE(w@aJ{Y-pIGFyL_E|*#>7l?y6;2V|9Ch8)%?!m+(-m72 zDwTi`mY$Js)Dn>>$PXpn4>n9#SYc7u0BN@Y8U$o26UB%go`tk{lTtD%DQ8U&?4#$O~!s%PUt(PgdhQ@-XTEJ_tx zH+>r$r=zJhF~Pig8GN(O{GqfvG{b3T%v&V9VX}R7Wa2B!KIZNoW&vipoG?Gp=dAIe z*hQUt_qw_Fia`xsVm&(L-n9CfaaOEM3Jk;B&NKJeGV*qYQlHb1vd4?|Q-8KVv_m{< zYZPcPP|8^O57;0)prNCFRlqLnmnTh>O*D~gEyO&cYcp#rW0hE1scongs2#1%Hf7qg zYLV&`URNMTyDmtgCv~HNht1e7-%fr8e_XoJy6G@}Vc8D?J23cQ;oQuj&O6V3vs2SH zxbEoUILpWAwtD7npSjT7umf4#rIb9Y^u01Mdxo_LwwmILKm&W+OK<@Y=KK-?;R1GD;xyQ9ujr@GNvk)P7}1t5H-#f zg>Z!opS0&Avj*pDho6&%Oky=-#bX~oCmrbXmkHQ=3hvLYid3f7ITp20rKhDUa5TAN zb#BnD(+yc?Enw*(b?A9mcl32Qx9hZ@KXTu<@70YJ4If0E%WjBl^uX|--N?yiXtH0j z32}9q`9}Lj`G&m4zhO1d>z1oXjb0a9@ZC@;^om8aRNN1r4d^u*f&Dux_8 zOn@xR|Dx7tcrOtr5vSwt$q;2xpI@}BG}^7?0h^#tra>B!Dl5XOIJPqtjj6Au!=9v9 zz6_3Unc1bPu;e7t^~S*X$C(_!5yXA4 zZ(`26%O3q*EwN6!P_Iw4x><1U4|$c?;g$&Lo6}yA-qPsa_Xr*m@KK6Tj87#fm7%m_9eS0 z6uQIiGp}(F5D;(-Hkp^R;YJ_xdh%3#fH!g-+$N`W`wRw|`s6Gbo^)RmwpG1x0pI+3 z02#>f`YPJmQR~{A*di0LoJ&iZT0r8nbwdJr)O^ zE^LRm)=sj5WWu%&$DedAg)OspUB(vJi_ly|F9IOyL>G@9<6!sSx77bo!Uwq^U;7 zo0qWSLfL^5pf_}w_f}Oxm|Ag=IlFQfPr?4qg#gJ5R`XUMFABVwx|ph&5A`igFh@>O z53a_0zaSKdUb;$iP@n3Mg84vVfnZTS2vD|w_m>j8o25C-b22@`p4iJKp<6=mPJWyY zicdXgL*#zA;5Pgix6+n1^{{7OOGj|x68&z$6LuJBiI8=m3RZfsz%P<}@bbvOrVxrI zvRBeWNL#ots9WhtC|&nJ!gk~A=>n}fVFQ?l7vY@^P-e;3Bn+wZQN{Af?F#M(NYqSbjH}48Ww;s8+*FCw>@qo($wCklgK=`sl2p@#Vm>^ebel$lK@RlX`fONxxFU1?^ja zZ%Oe;qrAm2Kl2ZhxiDwNMg;o?u(0;xJ=L0`LV=rSUKfy)G+>e#8AftVR;4S$MIQtN z@EHgnsE?+pJ z;|uyl(6hG2O(|aT9?w%zdFg`|gw?HUZ_OrQ(Dx6?K1j*~HZeq6Nu5)pVgpD@{m=l(VC~WSSI0*B+KiocwsvNdH2-rigy)SWUp!}4TcCmYh4w79hLk=kJkWXf^n%bf7acVA4?-Cjx~K@le3_PGdcT4AgTEkS(Fv`)f~ z7MqdRA}B%p3W`K7Y=d3Nh;a20H4B;mWkzupgPtvwYLM1l^Ny!%r`>D=7Re*lN}Jqd zgWL(z%e14rnW{%`5(RM<-r52@ZHEhV+c-w?G11YJxf0B|oUd6&TgCYete)+5u-B5$# zkJp|OO!Zli33d8C#ObH7gzFiH2t1|A>6@1;K89$FxnwJZHl8MLujhKki!LOVYJ33$ zRACZOtZ61tGQTrqVQ-GDWrwQe;AovT_H_^3Z}CXb&d@6M{;=y{92bb(A40O-X1@vC zL+D#aT*Z`D2{Zl>EIT32b0}!^iWSKuYoK4?6?HbOC#h(UZ|g$Ds#o*+{|YvQ?3uERJnhRHv(6*YLU(Jgu;NgFNTqbTBgP&L@` zB&3SCqkwa5?8Uf|m%C!kP9=ByK+d=F6EbaW*6xEdoZOANN*_;RZepp+rw{dQRHux} zg-90@g&&mzF3t%y!{V{CgXB~FVAKx5lj=b<)sR$rq@rEvd2OX(wbCZvTq3J`-&PI_ zo%0fMs#KhePDwp}pwzIO!FYG2Q9+y>oTF~ldXG#1#)(}zs0(>sS;xE;h6h5${b9i7 z+DV-;H@rH8(e1mVi?&gu^%nsTm<_ts+e?f3h*&$1DQ zA$IEu=pu_1b^H==-fz7%hOEOaIi`I;%ou!w7@J91Wp*3ZQbty+OIYvN z^|QzgLQd-_@T+v&DS77^vhE(pE-GI-HFlYF>26`v@vc^61{7&zQ29Kso0&Q`V>%4D za6?=*!_O3@gjKe&hE&A+l=m*EH__-koamzv6Layh;;fVaRSV&0H ziU`9BEeIxZk1U~Rc^+4|3}UDWwv)`GyqL+E$ z?;qlF*vK~(s!$a-hI)S%tz8VI9P8(G;C8X9>QX&^ycVybP^u~0OCTfSR}rVe7JjRD zfmOiP7Bui`P%i+L-FL3m^}%qp!*~FSJ(%>>BmN8X`LKrBQ}EC^o4c|$#gqN*E~q75 zh~(PwgP*}s@MNFs+`v6!jP!*%RJBD>6P86|MQn#U3SNQILGHMJ|7t7mmJF5IV+pzH+ zI^=6MDwj}X+0yqS*f7bb*_|KGYuk?BCJ&*YeM3YEzIZ2+JI*8d5j-E$2i8w%E=2Df z*d>j6GD-Ampon#B;G@fJQb~Iq{q*9Qs5cPNw;Y(yhfb{B17*{tD)~^RuRlEbrrZQA{sUE_jjLeV zq(P_QrX7AesB))jDe*Ke+9ci(wu7Ose+OCf!W#;E?7-k0;|qa#oS6e*-oXA-Q*lw~ zfN2BXqsfuKF} zN9b{eiap4ROF8JW@P8MwnO4|JMCi=f7XZJalPT{C2Yh^66jREsX`DI{&WvH z`l`8gv&1y`WUfd>bS=YSnL@27SRiSDx~teWO2W`>ltVtuXFyD&V9MCJCc8!}Lt?tM zB2p)4Enxnn=uBzr$V4@FQR148)K0MkEuMy|-2a(TP%VY&#_9Y-{$*IbP<8_Q{VdWN zO)L~c*%4V1Sq!qyJx7RtHBR_E+AN+H0GRS|M?>mYMBqG`n#H9 z%jkP?spwjmT5c5wL#D{LP@tgd$fnV?TAW%YcqS511fjXL)Tj%kJxBwC{q<@6(g~Oo z`6)u4>jqIT@h>bJ?T_mn2QOzl2X5ca8TXY2D&|f!&LxSuA+0n#_so31%Im*yxK}W3 z*?NMUj|?MStgen$CFa3EB(LP3AyW>w;5EX|;N&KjelXYUcy_ zAy*|bme|BxEr`BO{H>oMgu0rCCZf8y#Gog6sG!w(l*1Zi>Z1eTnvLEj%%Cb9A(mXL)6!6k-%)igCV* zc~8=8tL2f=fD!JZm`*RlmN@Au{9=Dvq&P)W`NGW=P;+fWmH7vUDABPMMn**dF z0ut#`T#Yx%eZy}}-)J4Cwy(|nn7sBnvOIb@m%`2)OFzi-j)&&uc1ViC zDYkskFKTS{N!AA^QAIaPrN>`4V@pQ3UDSR5x&dMzp_^$6bU_=}oR12r45yE(I}QxJ zolGsqvHd7m2|ODj?@R4Kwp4e)gRx#vaY1{IZLTbD(XRPXYVFd-lUR9=_wvEdIZ9i5 zH;+}KyEKpKR1aHvr?IZU5d5Zl2`|e#8_&(0R#UzMoFr`IkS6JytvAA_x)-G%UC6v% zsh);Eb9qe*`Dm~&8=c2Wmt96sET_|_I}AAWuLZTpuQJhxB0%tS>w1Q)x@ZWI;l;r8 ze>LY>Vw9x#_$~Z0BT#KUwK5{M-K~`nCzJqr<4v9HzB0X!3GqU;=+Qc9WPUvNlXMwJk+7AQ z9zEk)MmJ3hhv`b{%cxi`IdJ0ZkS7$IHbqOm#y_)UuCYc(oSjAr=;ZYVx7y*qS^GBI zN9{i7xREQijeSd;^Cw6PtxOqzsZ;p=mPWzo)8Ts-vGP|z=-IyE^@ee5oD@oF-Ot)9 zIfv8gP1#jp*IPZ6pM1WvNUoD3@@=>+&sN|@4(z|MM_D~N>q@7RQj6C~U@YVvlvQt+ z#maUvP3eZ1m>Unp6-%14iqvKG=kbEBbI+(M=InJDIw2B`@bsVZz4ws!)1!wfPIET{ zY|!e3GyNck5ljZBa0->3IfKem^Aaj;>5qgL7nlAtAU?OV)j8v9`>Aw+k&S{rCQ^ri z1V(+N?r1{_!3qYUSC$XL+H$ks)%iB$V@ok7`=*5wcXZ+@=H?Jy9y~_(hM5U^`IjE; zbV~*MK10rmegzYVXMc}sUEG}L>ZLVUF?$(Fl!LEaeY`*P?BiK$lPqX7MTFk$f#oHA z9#)?0)lsAzuU_LA^xIh+;v(tb| zccDIx*u2Zi7GcOM8L6(4Y?JcUgf${&%;p%?0L+<38%wqSfUPypY|Rv+^N`ktug{t) z%VJ^D@53~z+BmBj7^S0vIaEy6vq$=s!xYs{jiznp)( zZ$(#|7aG)m);RlP)j^}JMycC`Li%!d%rKferXDv1^^<^L3<^uiQlJZ}i{j`Z`Lu9N z%*C_KWkZTl_WNQK2{eYd?ZKD2MGBI$n$;@)TcVwabGWJ-^$RxfvKJJbZ>Qg=%7?tUSWM(R(G#qL1NsH7vPQORHsxqJgRu;Xbyi-@p7My=S8|}}#R-MOsuselnbBV@YMu~TnNwAkdfv9#>@~k zm5VeZzLt>VN6-*7(`pPAhHwES9jqM1cbHWmp)lJy#?r^sn%p%Jg8)z^3a%Q`hScx& z!W9KmTPY@~+6{!5(}ggq$c~ywh?>vg)8w68AnTNo%r%o&XzrA+NY5l5?`TwJj0Kv1 zih4jCiR6(btIemb_4-eK1S`hf!u6K(r_dD?j^}Z?*Zp3mLWNi9NX-?K3|%Cv>LVhn z$1icBy53KsF6o-5c=RRCO?F1T+OAOQ2CMp>BP4wQw;uT}Ikk^LH|r{JY}>l>0xngE z6WTeHLjVPVe3WtMM5NWcF|Qklmd+O=?YBpbkYp9jdG9~Qq)=X)L8+U zG^6ncPWkb?lS>(;2aGqL7Tlo4yW-1UKB|5+*Q(OXRXB}4-hF&nt$eswDG~)6b#pH5 zo^3|%shY5r$QHuDO292vK4C=SCm4BrR9Wn393jGnzdgeN<+Ou`UTo*-zVLe`+EW8X zA4m(v2|ZIE$y>C{m`*GGoF_tox>IAdD8d|Z83r2x%@|NUOan)KOU?YA(9g-kA3iLz z4^%`I83zTNWuyicHyM0Q8$JVIqz5!4Uvj)OH&j85ZBrJ|a$MgEt({*Vzxtj(Z#=G( zkNeUeNe~}qo7`evX!ZxhS^n%I+P^h|ZK}=|o*H9#b1d>ANpEh0JRb{vK57>r2eDX9 zU_;X{;#X`fy05JHiVqnA*`F46YXjv--pD33{uPHkxcr-VX~xo^O9e_kYEA+JtmEJ| zZ~c@Z8O2S2=Ea%+(l$%YcmGw*YyHkW?_1d-ZoCq2w0^l7{qnnoG<}NhMD?yY1-6GV z3-qNycVx`b4KqflSxx5t7x>vPB9N)_CVEY$P*IHRBiN9joVsHr!PNX-kqVk|nUf`o!B*Qe3uc%{}JjgL-jbJKd>d!0|PHIgR$vr3Pk zaW4;#ih5_^dS_0o2V1ziu0PHNLR-9BQVCeyjo&fz!(j6(GeiY6kb}fgS7M3txK(5F ztW(!~Ss!tsp2?L|h?R%kfCbGF#q|qdY5kySE`xJ8m$$l1?F+%WD~!o%-^{e{9((~S zq@AV_S5?x6IbCjHf9UQmeNU5>gy{^}L*?U2zNIa^N=U3lqT%mt*C-->E+I@okPg^t zWyf9_;&Avl*}Rw%m;k0oC%{~}zglOd9uN*HYt?x)rfioBHX}*~is7HTJbE{1N#PVGAsmO>Wc1=PCNwaAf)Rs+`*a?y5aw!tPx z`BTDeQ4#HD;c|t;Y?-WyAH8ovbH4_Vq0`Ai9@6M!*mLCvMHzf*~=+{1dDk)xl zVp|G^wXM{p}Pad66l=BRrGa>+U_VI|D-c znMXhKvD@}rqX%*fGG*xA1Deu)-*YPqf-a2>0GrfF9F@%&b`i9#>UU{sy}AH z+#pU#Z(nicKECx@@Xz;68rIfuFHZP@FN-@&v83jUp)%T{s1Ir@;{fl??Nn!c?WlQn0 zJQQN$+@l{y`Oo#M_;vLM>pt_)EJ;zRn8i+6VzExl4Qq`<$-N(bDOgOcPjEWrk?W&* zv2iuj6J(7;UX8pEp|AwAw#+EJAgsJ*$1f1(e20Tg>YVddwES!A*ctOkgk@Rb*m*HR zz&vtA0*4=mdjQ8HhE3?(lZ_Z%UY~pkL_RnoBz=0B@ac=fvSu4zCgxG+jLhbeg{6@G zeT@>2-EVZw^UbApw7HF!4jG`m_0{0L$-_bw%6>29p;aE6YPc=YMqRY92;3by!o8%! zsHpPgS1=zpv@8*?7v1uX*C^Mzezp}t?r6IjfaeXVT)4)h7YSU@-!6<_M@w;Hu0=;P^lvbWk#qLf*W(5%N;?l3GLVNkBt4QJZ4LYE7LAD z#5Uv0yVXLEh5E-^<0R@8P@!Gd0|>{a+Wq*D@s5NqNzj(ycHKnWSXGBPIsFe`=2>ku zK=daBw5)KEFyD{=rEk*gPRo!`E4)u>_CN0KW(k2&2`~ z$2O=iu(3##qg7?FC9u-bFOt@uN>*j5D773fQr}f5xy>es_;ZGEBG)UU7-jHlY(QdI z{sx=8R|$sfxf*N+S%*PoiYnQyCiPXEf&tzaX|sXw@7g?Lygak|TA8?66IfM!s$V0% zMnET{-IFwBprxQocnfVVGWDdee-#oR@E^L`M&_)++WYr1qkTU3lmA_QIbt}`|X&X9?>%y8? z57U>eYn5(o>$hGzPjs#1bK>TEEKU%pPc{62lm2~Y4^~qZ0W;qK^=9%VlQqL|hiEp5 zUFcJw%d;*i*?dN3ctUpZTNk&GZ`>B*K7FHp!hS^E$6|=cD@-ufLS~B~=kOBy(aG@GQ3O7EYQn8nq@cumVrK!Trp&ntz z?>!Aa5@(QsZr}<)U!K@PidGcn;2pRV^>B8}Ii>+kry(JcFgvu=GEPbI#Suf041z!v z3r~Zj5f*yOt1L0ggE|+aUC<&Jy1_BiHfp=9YCQgJ?QwPe_G8=mkIs!p0ekX}*D?`- zn7B`pOzxU`?XBBnU(HRX&k-fXx6}%-gDZ=gPTX7RTPsUSO`BSGzMGRMj}uQ*A9Fz9 z$WY0&20Tk&Ogh$wMcA{pC1wmtmkecwD1)`l2x$rTnVpeaGs8PkO&KhXJ%9d&I}GMR zX5#nJ7w*3Iwi#oWwq9A0F45bDOzvpT!X>MTsPq-7Hm{ zpG8+Px?z?(VC?N@u%_UiHCD6>aYP6mQ$A2Bb65NK`Xh8=$7@LnX{Ih$=z_rYrUoZ) zM;T-KmK@TFrFJFl(9vb477!~4H>*#wsL_1~r@VG(J{w}}&z|6)uw$NL-6EG|{#=2v z(qhc9#CG;oi*tcpCI5{|LVK8_`cxvLVGmXw^r&tp6SG)mFO2p3k74;1)#&Q8KQYr$S)o4S13AE0RmU%|3*v4l9TzDK zo6I`Ru0NMG&!uSjRAKb|E4nONl*Vd$;Hh*9@sJ6t{Iuw!a4m@sqvbWy$m$^*DzS6C&BjjOXVh-J( z8#^<7oo`wy+V;$k!{Vu+`GFPXd#YJRzPq+iTe|f^008*IXv=8SIJb;>uv-6ocP}$v zMVkbxQQ;*SgS%_hw7{;KEc7ruG6d%|OLNc0tz8)M=Lh%HwRW*uBDj+^(@MxochASVFv*1}nQvSArI%u1mJ5 z6m)nFcTBg1)c~adINtd7q4Fts>+GW=>YT*#2jRz$g*{eQ-*sZXalLQe^_Cfw+1|uN zB7os^#X!?op})2JNj;74O>=WnHc_ebKAFvRhO&=N3}PiB563>%RON6nT*9e@#-VlG z`^^(~6#Mmw&d+sSL~}7EF~fnyMIMZSwg}qD!7seWo6rf3#V`Llv1G_QfKVxC znT9{!t71>NKj_Vd(i?7%h}3CvHDQg$ghz;p>bS)G!?u}VA92yeV8Oo}tPGOUr8{@y z>n7gZ+1{pC>GwGoGnX#eU=`9mKJvTEIISn&=P^7Y>>v_Z+N!=eY$7qW)V1`sX+geo zf^xt7_BI_Z9h3&(J*b|?l{8y@1a{z-nbGB^HyJ-glia_ zePIFl)hyjc;1RR09HCX^&G+`7fBZqZlf?CCD8r8p#gBJIer3+i(fTuUmkhy^Ks3yo zYXmZb7ymD44%zdWiWLF|dwva&cn0vWxxf$T3L_rV!# z_AN{yY`pPH2AdzTcQZzNuE2S$jt`AaW(xi)rq+w0lc=GCq^YI3g$odA>o2e{4nQ7ZXJa6+7cd&g9`Km~Sj&F` z7RL5B=*C~&ViL0hAYED7nKQ{58Y|n|8ruC8A!6uk3hWuvzsEJRbaHkPwJ>x7V2H^Y z{`ttt!SQd8rv8%B-$En)<8rZvrHPA$vkogO2l4+nv9l7h12Eh;0M|r-#LdPHz%1h= zX651r;EMsU&j7>@z*6JjVkTzg(1Sjhly zOU6OW$qv9g<7Ox3;^HCZ1hmb;4Zuxf1N`Oz@W2j0K?Cr>3FMKJo0x|k5D!cTz@Tw5 z{}}?}IM@LgX8=crTs%OmGj>2eKp7x38#gyGCjcLg4bV3r&%p2(4}h}l0OA0+(cu8J z!_EU}7Z7p)kWJWFcmVN$^2}TS6l@k^RzQ0kK%_SSe>{NvoWOK0Ewa{c{Tt)tgOKP{Lwz}z5nVv;F>ijARSolcfWvr_{A5H zw|_^!_yq6>pA=4gjA(+5YwJIM@L)0rZUnz#B6QF*geU z+Ydl2EPo0MC@>)7+(4K-zzYCA|5A)U6&Y9&uz`Q2)NDKeApisnOylDDgE64sSOE(7 zyAELa-(}f>iU}Y<+kZs_ij0R+?uAh83|e(5Km46r;4E8wO6Y6>VUpmP2xv|ow{RK`CE$i{CO{CWlmANb;c z1bh)dS^YOi_wPGm0ImIf{QW-;OvHcqr21<#QnfHuF|>1*v$wMcj-RG>&ZZ^|DyFuU zvcNGCaJ%cjH9D!xE)xD6t$?EbU;1Ae{I3rD|56A3IZ*xW zPUSxiR7@I{cEWbfmjBU!`p+!C|K3pb?}jEepmC}UXzUM53OKv|PZPj`UfusT=)X+Q!_f2(05bv2z1vYT($+0hsB4 z#0H#P0W&!u9>~w{cvj#H3H%L62ZmgLwt@M6r2{RR-{k?%Kt2GbHNe6ESZTj3JwTlR ziwIaJ8w+Dfjj`m16F_=MPM56`Bxi%hQL1m9xs0L{wqJAZ7u*mzw!gy`m-K3 zfN{(HFTi*7ui}5l{nm@$ zzkkc=_wWA=|5N$>b8PzCVbX7}MXdkTWp~v$IqN=V_>l7#4Bo~Q1FGu2Zfx-(;!wMM zOE))L3O4#irA*P6kG5PcCk8kl`KReFMQ`UlQv7_Cm<1@YGn;~(HHV4cJGv02W0td7 z{wU>0jOk`ut#a-y`62p-21jUbH`5|`?Qt}55$u&ba`y?k&Dr_>o4-%^B^K3B7;tI` zOsGL52?C*?LEUgSSbS9|xfMQj2#A;m#Rv&EWC7^Wpi8h2ho`Uj*5~~nn1#|8)$gBZ z(aZeMNqy;^b;OPo=RLz%;FRXI+^U=+kPj{$KVuuE=@7QTFuysyu`2tQYx}>QJN-3; z|GiB8$J!q7kNOLN`tP+pU~$dPM$7{oby)w2`>k#0VD=8Mgf=pCasG2T{}<>t^PdZO zR_=d*e*XpY&HUH8o%ugqwEyk-;TOMu%`WdO&CE;zz}^6GZ5f3&SE$_<99?HsVm_T=4bg=oT z+t8F#)8w_x7uy@VUevbgM4}M{pFacCjd0n(#tldaA0Z8 zEweT)vr1#el(5rsnOhhta1$AFed%m|02ysFJ$v6bufDH2QW0##$%?E7aGXYO*mnP|;>$Uia*Yxv}Ykmr48_?6^6Kh)RmH*CkjgNV&v8He`H7u_k;SO92NyQComUfJSTuKiOeQE93!F= z92{e|3HnI-{1bd6-CYl{{WRT!JAnna$eJoZi=gsCfS^R}7 zHBgorIydZ$?iFNF76ZeQFalslU$}(7xe%g!l^mN?*_Q&W%1WeI)yee@pk~)1n#h zSyRC3HK@bEm`Jty(V8Gz11&NVL>g7Baiff|HU3B$R!}FMH2yI)7?~cuvgWEXgR@51 z8hdFHx`MPa9aHDJG?qOz1hGz!X_V4ct&`l(2dfc<;hYZwW>33AxktGJtp%$EsfCEu z5#7h?Hh_4MVux&I#}K>ZuY#xnZWf(~&PN@9{1fhfI~-wZSd zh!fEn3BZznmcJH=M>QX`3*<=*0Gp4>PwUSI27w4dgXN^x4*;jf7$EQ$01W~ag~Q;$ zXwhE|P(Tm`!HCgE=?^CrCot#VComV75AX-GybBevd?L^f_yb7w2s!&OQ5u!|@Sd3^AS~m_%$c4h@H)bdNr#W?7BS7cCa6K)3#UvbR|c zW~N`#bJaFYs7-1!zDHrH{WJmSAovhq5Tu|hpg!zk*-X4{kK1%-I`FKa;)LG?QbJ5Z zdoWo@sYovsjCv)?xbojpxMeq)w`{)`fjI|DgMMxDE%vWOGlgYQd^!(tCZUkG_$4&> zS_>Tyy`@2ZRk*7=D}ILTHaMu@ArOYi>Eu7cS4ez`D2nOE$%@6i=WUC`=O)M5;c#+?a@N&*Z+9&ZGMO?vSx0Pq66^nQ>7F}jrrMfG zMade9ceK!LeB!e+kdhsFT+A+Jn#-HB&L5X_Fcn9)G7K_wGz3#AF6~!un}V9uOoU!` zuV6Tu9Gf{NIK&)(QZKW*7}^E>#=VGdMSq^YmcL5By66!e^o#qo?ThRs z4zxmSl?u-rJxVq#B3jyO&guUBxw8-3zIOcN$XjdQ%687*>M0((w7Pgfh_?5VyBI|! zj;M33MY!LtrMjlTU~HMSvM+9KWoyZ^2a_X-wV7c>H9LJqL0F-XyW(AOcf3sr%?))* zZN(k4%BuX9oLsc-AZ%fQ7mJxxP&z7yni!{(lIYI#@cFXdOG*8X&1);)#6n=sfjxh5 zpfmp&JSuW;@KuDx;dZdJzbjlZu4+qBPxKN?CdG5p_meZ*drye8w#w)!2LcyO0lx9~ zqIFZ>3uEzf=sbI!Crsn&UbA{A{EX_K0D2_~SyJ85#4rrWfg7QmQ;8$0<0)WzyzACM zg@~=njCJ7*sxyWyvzu+`HRaK`s8qY*_BoxYjn{%eMYmfuYpHlqS-Y;@GO4BI1%mjF zoP=jhF3+!RWG7=cs6O6oks3n2W&JUg zKaBY)2rY;=P)nMs_+Xv$VVYM~(bWHQ)^TuibC57F>0Ls${rKAdc>5d|n@z!XlBSGe z-Q)~Qb@FWA+2`2#-FdvCe)*8e&GYWCZx|P6CeSo^s?^h0ab15QKLso%b(a#@yIg!c zJ)FGI*boaJRwQ)ZujMr!@@hlMQ@OM9+~UI3uech&DBsi8=e_vvS zY=kVSb{$c=|3X!B%bq+`V-}{(bF<~*bh~|nlOf+TALDoPqT0>=E{M$T*y2|I+CF1C z*`P_iB?m_-wSCjS-~?j!>2ny{r13iwmOfwkEz1Zy+R4dFZZrkaXl!9K(P`(Q zMrEPa=AzzcJQZdQD{FnU8Oq!Y1!4?YEFrOEk=42c!ntH|*7VpRbn>(0!PLk0Xu8XA z`_==>j)jl?Y30nD@H=uzRRnl$y*SQ#J21jMq(r*ej(KZQE=OOpsCLD*PA@%K2O)V=nRK!ZCW9FHD2K) zhLEk{?oQ+E!YCj;Y<6y;*)Hs7?dk6UJ;0_X@cYi&4kkyeY*u!Pq^ppCTSvC03nJSb zldy;@U?7z3>4n$j=5rpz#U>oqN$q0^X3&xzZF==zppp!8WDpFz^~?g{?OS`sdUqsZ z+2(I$B+}yupwmt-ud?WrbNO5!9)3NocnBH@jo|9oq!kx!Tmj~XkM*n4!)ucZr(~2^ z;Lb9I%gV6Q&`axR|3YJ-N^xpsm1ImrNLx~8S)wEB|6MJd*e$4)O;IMojE^lIDv~J7 z5@8W7ku-r07Sy&U7`Ip!M%)G(_sYMj09u2}g@!)|^&1Dd`Rh)c-S5FDjOn5tMlZ)V<{sY8V`J|M^SnXvNy7X0+>E&RJeENR4|x>+=Ds%+ zKiH%5#<5Y*;F>-UMN{bDhu+sD^F=1nnrLPWgK)-N`ogzqMS7DOtxA^a($Qo2I>p|q zA;3a^COGE6oD3dxpJ_P>(}eL2P`;B)n1YVLK4lYL0hByYSEO<_tD?p-Lq|6^OHDHu zE{nWB9tH@X%7Bh1v)1CV-a=tICfD#Hi*W_hjz#ot)ep~YY%Zl+ATru$9G_yIV?1k2r1<|AVfI|^$mgDjz2 z%^2399%>iAt3ze5M7I!0loG7kvxC`R@OAB%0#CeA$AV$U@yw;S=ae0SHlX zb7mrl%vSw;D8$qjM#Px6Du=dG5jLPlen(U9M?I!GRK*qgs8+Mj0Bw1ISC5bz(qfOl zowLN!;pq!B>yLFuxehmrl-36vH-u}?#0?uaaO;1)PtOkD8ZfgDClAazbUR24+6{iH zkfte8WuLNWa88VRhk+Db#!cZ(ZlW+Ut{t@}lr#Y-x1&Zs+%W8vRirBnzKa81-b1sM z5+A7QqvYiypU}x@vmf?XosHb>;P`!+vx_{X+(U_=j41S!z27PejJeGET5@@N;e2!c z18qI=v-gBeN!LX=J9mmV)h-H~r}yOjL}Cd+cae~O1ickuQLUMkI=`AaXiB2_H+tQN zH}Q;^VisKr-3)^yxpf%Ak;zybuE!n$lMa%U<{r{ytp*#9xA&;~Qgm<{DQj4?5@S-r z`hnmf5G1Y$7D@l>+rV1hdT}whIRD0WI^xZuk2rdSlLjjjpkJPxaf`>+Ddp}%3%sjz zhglu|4eDU25rcNwKCTG*m0Nlx0mlZPCli0lggd_^(h7?A7_t-O+Ca0EVvC zR`VV6Bd@!Kr^*A2hYDN%&4aKT$n|9L{jWVSiZ;97zn8_qw_)9)nPh;~@m z^dZf@hT(Du#`VF>rO-&gXdNviI>SeKj2R8rMvA%B5zC@g9E5rf!&(7t0O|`?B;Sfo zje?@NEy?0o-Y`wV zFOt?$#3EEz7t=UDloKa^|W9X#?qq0%I;#J+thb0?#WB01<7e8G{Kb(cg|g0 zJN*ALEA}zH$>a;#Y9OPP(QCy8I3}}r{?V+i6kjm>6*YM`A*}`6lNFvHU`&iH6Tb;_ zCPpS;AHbMLYGL8PLgv`!Weo-C)@Tx5s$_}>byv!TzGD1Aq&;?KI^MfjNJcQoR>&RU z>E8CX=+hQ-Y5cG97Yj9xhw2FWJ!zNqE^5DF_uq0cb&Coli~;XvGW=&LZ6U5yK}rK< zfh9;)MgmuZ{3F((-^} z3CG>^wCQ|I#Vfad83uJ`R#^@eO-e6S;L#bbeYP*o)z5&k;-{QOTx{A|H3Yxl!*fr= ze@~`Y#xrIUDCiPJGAX4Q<64!c^bslyfK%GZ)zDM2HiawvxIMPHcf@9wN|#4=Hf#Lb z8lGZ(_5?P_Y520pYf?|!VvolCjHtSd2G92V^Y&LrSpVhW(?9Y6;LoeXz}AG4-@5TQVAscbVV}%x-VkDA1()d+|^GcyoU= z=S{rje<+FL`x|WF3`G-$#m8fdo`DiBI^%{B&eTXm{=e)Wcy9330*e7xiokJU(b1uv zF)E3d2Lzt=D(_sytnclW8_FzDt30)uGs)-y=vf<@6I%O6Ur zaqBsQ+Cx6~{qWEy(f9+Z+Le?x9sk-_wr82wy@YMVxi9h zmck#CDSSJkg4%ZzVT-88;8`oyq`H0{VjfnvcG&+B3|{&y%W#8OH7Dh~V??{yf%E59 z?QV(H(GAaSSYGy_Gxpf{Eqgw5AOPRM6_@d1?u+ScQ6V-;;DaUz6c*C}dMx!SvvksC z-OZelQltd!;B=V=A+oRmrJqiBcC`CA@##q3AXu|dIX%%YC^_bU4l(rFfU-8iS04b6 zLg$FzKEbM`9YYJ^oL2lgx7#_9sc*Ql?+Xo<9Ch}@{y}ymT+*FMyH1OoU+{tgbcJm4 zXE+UP=$M@t^zMPTY9}7$!UGS9^&_;O;z;W&^2JX1*yZzwJ?)ZJtL2p|*?BWowdwXL z^c#oYI6BFI%Dxx{-LopbZ40bdwehtcowUD$%=1ItnB`ks+WZ{)sogvNPUzffNP4k$ z9A=E=sx-zkYuhU6LL?=MA8H64c`N@HsCUFK7;MaCnD!Dp#W+{Og2b!wGFGdYcsm+w zrqU?v(VB2c3g>+6!<-P+B5|pXW>;#ta)9qK51~Qoek9ugWxJv;X!SeHUt)c1?SKbJ zWpz$)&QA&p5m1zHg`kHOc~Pt7=Eww9R$v52?DF~9n^9X%!MIXILBhm)XZoBmB*9x^ zOMD>54_U-&nq6Gv(V1;B^nY(36a+ezz=ZOG1Dd`$>vXU3j?$NfdE2L`^@t&Lk!{^? zk71DOBtKWce=1w^;oJ~?o5%^{2B`2O-$1MLX%QG1@w*%mwU%>~^T@dI>Y-E#1$xBFhG1!fk_dl3 znYE*K+k@^dg;^s@q@g859^o{hXX4JTqIPy>btGfz8VJ|}BEh9)zwj+HP6;`QupGd) z6?#a_V=H6Qb;;TohgILIzZI5hWMCG>?l?KIV&01~>?`3R@xu9#pv4*_GPKsA9%gmN z;-zZSR6z$>-xhTWh`aOoX#?={zmReIR*Om+@ElH{u)idLY=91n^x@Pg`oPp&hET(S z*%fr>GYTJaw8NT-(h2P$)Z-okWi4gl7$x9N1ns za_3kPBb^w^aK6>>zW*6~B6Te2W_P;remv(9dqp8#`po@&tc@YIU$JuM(xKK6w}+8j zu%Pm3hS{sLwzHaW%cY1*g&};9!f%wJw(@Z>TVh2}@4>XYiEm*f`N|Dn^i-l$%w58# zG9p_fo75o6m4Q78X{ERbNB5HTG5J%KcISkEbwW1IHqrw0i`MO+^oUU3()oqo4gU1V zyt%Z`BySwGxV|2Zd$^mEjQmhR)rFYYJCfHd-V{IMM+*S#0pOsEtoj!qMpBDAwJjpbnVo zt323xQzBm;sQbHWpq%NDWWsn%!g3a0Ji}5raN?uclW9zCT7|ad<}LIBgvk5`XP|0` z03H_U-c64Zo^ZfVaDkBaD-Uro00aO^((}Kqm-w$ISjG!o0~@w7ZHr}vX=(zCemqM4 zj9d$AB+-@+nJ~~aYAqZ)8NMq(xhV)*v}{GaMmB2ckhOzCEvjs54=If5QhI1JJ|vu8 z!e<(VY3`Y9n?p_K{5J1wRJ?#T4;a3G=M8ki^jomJlQtI%`e|M@EQ8SZ9lkn@#5&;f zcg!UPoGn4yAex&PQQgGKN@Rnng=zm}otmVc&pvetrz@Rmoj>DmkexM$dM_RIL}Im* z=qg7djRrV=qqP)#FC1&SCTw*Np-Kh6x*}8;iHby|F`N`B_-)csaiXfid(!#E8qasH z?_+1#-hw2m0V_5v_~tx$yTh{8L6>``8iAv)W-8_3H{}Fvc zF1(rp{#u7~|E>Sn+3DSgad!O8PhZ4>KkW4oo;CjFZyy?beh;Kt`19)k@b+P($EN|^ z>}Z#M1@A0Y4_#z!_~?}879muuhmQ?z4NZh>*}kh%VCBl<;CfAWRuM;1!jXm!@&V&Y zbB4LkBw9@D47W-N`H##G@}SXyrt|uO6GNGug)OTC67iZfYlCdlh)FTW?&M?jg0T9u zXHUYSS28@vBjkxCHdAb|cd{Qr17{w+Wy%Uxq|=>iE}}FVvR(Y$zp4@8^KQ3Z~*|2(S*MH&)jb-pZ zD)>IwdH#Sv@=h>41RdKywEhDZ^&H>60g7%}A*NXga?6e}yyz$OM`0GI&>!xaQL}}E zkyxwqfvH2Xg7p}h&&{O@Wep9UwGv}2x~&-*qA{fkbyr)A9X1zZT&!f)UU~JGn^>95 znn?+b?oY0`5UP<-}jb`yp-ywdoienWC-jh7I^;EcYrT* zj7A~{Aw=mgJ=igZEk%g7(!IH+qnyH38 zE%H#B=D~`~;+Zjw$uYS@h1XdIpO?pG3&wBmcs{Td z80@=Wkb`k~q5Czv?FD$!dA{FMeBt}@)`OzWcr_@$EFtYt;1hiKB>bQ-{exV`KcB+~ zdkJ0mNPN}FJR;Zx7F3dg^{7BL-jT#XC_5JL18M^SV<3d?WGG2ep#&77BK36tJdh3N zq4eje*um=R$C1NBWDJ{&B*7)jkxi>d{K1kzVbUAW)E$9TC+EY$cfhDU-&wkYU-61w z_l3Is`S<^L{Ku(?WX2E>@)VPY+(xI&?_CzGR(Z>x?YAq9M}L9zt6TLt95O_K7qat|-u`q%Pyu`2r`)NcP^ns`n*bPnR zbbgOxzWD(-fYP6baS`VyR2))*JZ*%$A7pqW^1Q3WDSpY)8seAXxgNRv6cQxWqP7Vy zx`@58GMc~jk=fdCUE^fr7F?1<^R$j!B#8AOwUal5hyg_;C?+G@iK`2zi>tl2==K-Nfm7hV<|E;0>?$eM_#%2rnhmKlDw`AzrDW|<;3YH{pj zw<2ai?MgN^0*LF0xE@7MjOEIvkd5uY|813eujxdzio%mgy_*XK7HoPqBu?H;<@7G_ zxzwyJ+W-ub+gQ|GlD3Tx;ig<>l08K;@)6!Ud_BDxxp{JyvNVbqv8^_mCSG(F3eC}|C#w@KoOXAg5<%-THKqs}bs zs46IWI+H6Z4ki(v57sp<(gUGZm7Fku=ju!aZahuWyGFh z+3YbYDa!Q3$<9sfi{s}&uC`iPAJ)2N&ngp)?z)0Nvf~QE+M9 z95pJ6YbcetCAZSrot_-Fgakb$JH5Hr z>xL}|rKKgMHQEbqKK<2=0DePGmh1HbInyOP!ED@AD41#+9-?Wh^5u=ZZNIy!3_8B9 zbuI4kN&=g6}=_;s(!b z?o@sF9*(Gh2uv&CHg;QO(`jgnWGJ9EL_SoU(N#kwYgz#NP=9_;l%7=>lW&dyp)e zn_9)nSWlLtz$o?bg%UQ3Eb1)r(yNFjhTjrwVQB(CFW@nBv%53(pM{tVumzeI3)GCN<7b#N9i>}j zMsJqaj0$fxY$!m?j2LP}h*R za)LWir;9s`0b`QXb&~6lDwP}T0VNocq#Fx@Sn&N zISX`fczKwTub@tK#Z(0-8n1BL)nOD^^$^}XHl69n`+@oLq)tMJ-lT@mQX}vhLKvAc z%;wltqLflXd@BarI-{6~+-by4Q=D{S5|jyX-_UQ*P8);K6nwqMdt%doJCMh5&#cW2{T;|d=Xs5oxCM9yb<;( z)J59p5Ycb0CFmrnCVyyEa}E{u*mF!*;B_*15Pyg>KGXw|r_#JK6dj3{IqN?@VMA|P zs^M{nz(Z0WlQPsi-I1POels?$d=h1t80-PlW)5tWG!G<|q)wUj6;HXSfdvbr+X;xg zbRpmZO4=+#druS@nAR?yf5}G>IE@O~(;bk8P)H$T$k1=FxGuC| zT!jxy$Cu5Z9dQ3m+5y|-ccKs6c?*wg2-peY*G+5p6>6P_2{bJE%ot%t>(q){l45un zSP93t&;nV#>jnXsgl2h2q32G7WC`~mx-+?($rTE?$43yD$PN>56>bE=!O%2M>J1PA z;uzX~h{X6`O%e$@#7hNTarQ`{hEXT{2*_;4pahJQn0YkrDh z%HU5XVs0#=VK`|ABp=P>(MN4Z1Wk8AT?ZXvE7pS;i>Y}C%9S&rMBs2_#?seW*WFK@;D=0v#r}?Ri6$X0AbBE8*!fA_ z&P$~wdZ2F->V2j9MkY|{BG()za#Wi)j?9Y!OuB;-JiHS`p;7;vHFG}&p&XbN%o`%q z>x81`G%h4pG|DD&KKRc!ROF)cQaQHsfsr>J>7!Z*Wptm3Ps8G9ZqmIkXXYt{ordKA zCV6SL2*f&y?a--<9akuijZvjX%QtzlLQ@!pX0h=W0rm23?hYp-GM;wZ(n+3yGe>sh zK&d-2!>o-6+6EQAWp~HY9Ln=gB~+KCIUXvsij9RTY~)(SJ9D2JQvu}Tr$t_UMa+P! zTG^b<=A7)NpoO3dL>5a?njUZ0+&K#qWt9D0{GCe`?f_cZj7@1S-suwD;59rrOVH^P zrR&Inb7nhp6lJ~Mn~Gfd$oL{ae&)kvd)Mz$G@Zc`FdveHQ53W2_;Rr^-`2{w4^z&l z$2^wrNE(yhwxyMUDfSh}8WHadrD7c**4(BUhN*8Bb;Bgub;?>#EX&)T8{M zRX&S3O+i5?63N~($Mkr?T2r#lX#-meRmjPW-^jJR$0Gno(4lRm4SQ<^zHjUcQM){Y zO4%;#@FdZzTQh3zgu%(ilp$@-xEB(#2ZIL1 zEXk0Gy@$4L?$(uwwNe&^p@mbM+xMXkFOTooHLJZQ%@EcEYUIf3g{i}XId9U=3Aj?h z3bAta#&Dbd>^<{KR+b1|RCbV@`$nFh$$52?Si;y<>;727i7&=;83pX+;9F>ekyMeB zl*k7`MgE<)n1T2K;^foSQR?n?|1u%K!3nN}IG`$t|G%Uev)#QdAt4dva?mYQH^Ji= zD=ALo@_cL>{%BVIpGmF(9{u8fxD+dvd*}?aH_BYS9)A&Ttr(3MSYwp=R|YH?+Qq=Q z0jf#zzX=OZ=k+5p3UWo$IM+JxUg{dhTE%1cb&zpS!z2S*igDzQOnf!#jbK&eVcl_; zQi$Szm(?f>=EMTtZjjs&Wva;A{9u+;e?S*wSAH>p$)2N*rggvL$m!Q-088;w?>^tn zfmLgw3tiw6Ug1IT_m3Ey0RNY@&ew`-lWP9iQ(xct$i5++MV^Rm-zR$Gu@TlMWP=NLMXlTvQe36{(ko@SjKwrhZ5Dq5#5{9fKe=zu9zPg2Pvw}0>&Y>3bLyH{ zIUPLxU>OwY3N)lfU7X?*0C{fH0qN$+RQgO?sPR8%Rk~naqW%seG~JmUv%zS671QR8 zqTtVrE}$);+--pbv=5G8f)ss34Q%RA7PvZ*tQHv`lmw7%!bTAh27F&%*ukE^texxh zDjqpAm6g&B=%@e6PWSOXAUa;7d)DtOh29Or40--rc%ITZ)2&A66DFqRPHphLei*SB zKaPXuYp?4o8A`hwfa#=C>4D33hEN5Q7R(v#XBGGOLRetHaJ~peB9pCTIB6EPM3k4N z`+fU~!5rSsX`pikaC9?#F>cv3q_OgsAEGJCj{sO%PSrCR>Chx&2b$lbpyA-pheH#mLLVt{4Gjr*7(WP|1stFFF80n_*GZ|BbAq zVw=t#5ASg8bAQt%uW+;GM8?XM9c6Q(wMB&77R3GV4KJS+bYH8rJ}T&t8OURI-ioXW zRl$bsA;JeTQ>_95S+H2^{@i)T%&Gz`ptVgw&TB3Gj8x+dqodx=p{q42QehmBu|2%1 zE_>lkBS?1yt%{m8m8$wSQ}iU0Cuh(4tBTq{CMEJX17yO8j5x5hv(+^s8J)ZSgV{@> zDX$RbFbe(yPm#EZ2A}Obyr+h|;K}hN*Wy=}7@3inXNo_GOCzm>UMJb;^p61t_a1Vu zt6Dn&Z?i-;VRfHXu&QxcLqMmFv)Nq5C3Kp+d1UOyQzHQam$ps9hL1S5g;%9IeHeC^ z@}cdfXN&met^D%CmQh3>EB8^ToX%?N@%r=vV6~t-gkA?I)T?6ELic06i_xUCwc9P7ZWFyIYoJS)N6`czwiUvu~&?9R@?|>272%m-FE7bAKETD(sBo#MAw9jD=T`$YNlYB1% z`RJ49aqf%oUg}}|Ak)tf^XfMB0asbt*q|NomBkfe<;WJTa&FtE?VLNhTIx$-(aa&j zGYG$Z6JQgXK^zEr#rwfEpQ8rI@GZ~maNW2e%jIS_Jf<>rG z1}Q4S?vpJzkG}*th#oQGlCFOBGJbE1)WL?U<8%zk9eky5Hmc6t>qCrQPMF9Tdu&5z zXIBsh%?2%(L-USGJ#D{C@CxTV{qe~lrPtQb^xv~aiD<24 zh3Q@Jq$e7?!|Qg^28SObY}jC{@bs!p8?aQ|&gPmF2EoEk34~ou&gW55%nVsp$?Mz( z;X)B37k^&Im|@GM3|jf4G*g!imGQ#)a zz*QQ)-o{scd1*r}^y?g4tjR#pVacG0wVJ z9X_Z2wo4f(gJ!lR_NrN{I*w=8K;#;?ur0H2}+TI0uL20I(y;4%vpDUpS0>Q8ZU7fNv9i+qd`PS*wVW@71na7bw7Duf2 zq%bPM`iixcam)QYh$-8!VtJ8lM5zmJ1Tkx4X$^s!F%S^imrUIJrlU-kgs6Bm_^G5d z)l^Zk<+NRiL3`47B=E$8l!XQG_S9ngN=|!RhIeF;z9viZixMjr8lcYDYRw{XNiW`o zSKx!AOZ1r2+oKiZ0bbjOY z9uYc03!Zjnr3P7UdpV992P0*IU9j(O1*zLoQmNJuv;0&Evj!TJ37I-mYa%`qzZtjZ zP)c?au#)*?!d3j*7vjp*hd0+yI(0F?s3ddZ9m2mH@VF&{mV0^U-n;Rv)-VTPe76Sk z{q$!83Uv;;{+2&gc9DXG#VUB5@BJ~OCaEAQp|%CE63DVC=kecho-O5c`1p$|_Poia1i3{8JrkHQF_F;` zU%m@dwyTVs;>SNonGzNSMKY-RAAel=Xt_aG+346i1Oq&}R-pc`l-cP&?8?n(onRbR z+=X(D`YAIN@8{y=2Lr#^ zjeyuR!bSKFMW8p|dqDUYw*6Ugnq)!FYDL-jFac)9H`|H|*0OSH2=+bJD6PR{1=(Hh zGajq7Ti3iK9DAgc)+Q~DB^4SZ@E=BN(FS4?5`|V!@dv?|kQqWKLg560sPRJT7v>{I z_6xw1bC>e-7e-~6L&Yj3PXnzA)7t&m@^X!5-Ng!r%9-zN_N_O*lSe(foU*E_eWq4g zox=}%2saJxweLswpx5ECMMrfcsg7w-i_Tp&%qqJeE$a{^J~#38DWp$T06Ge!0}_b= z;q0IUdjfZp0go)ng&t%?J>Ixq|6OEf7#l&Dwq+uNi3w**GI1z%%7^u1YYSByk0y9^%w^^)_dmqxcAZ^kB6mVD1x)jeacY}3xvOkJ1{%GV2T zWg2U8+Ja)$@;{THu6-^`^j&QR%A1M*#y^d|=b-Gqr76sX!0aXf-euS`G6RfX7j}?o^jkUQQc$zOJD5(rsj0Fgsgc zE-8yDIx1EiHlMp0rq^wc>wPqSc`lbypri6V@;%4NY=&$v!hG#pNM9*&8jD zQgaQP~cExt&g$leubczVWM$!x@Tx{ijH*uTA|IHn37=aEF zi#Vk34v8z<ux4l!^wkb2YJ1&IV!&%F_V z?pD=Ymsjfg;`4F6ojw?cUVN}l_V*J5t+?y!zKE`Limq0crH?|TB0@kX_lx#+rRU-% zI7ql**j2gTNztbhd!F=fyI>G^gGqg8a_0;vjwR|kB@1`e>KcYZPC7ZWGF(+@I9_agFQA-P(rqOaULPLDrR=8A~5k!h%8C5Hm=Fw6H z3k|EF|DcJmqnu1e4H_~3;0N&tzA}Ic`_zynlqkyW+A!3+3R1*edukS>v#?}5A+!*t z0^V_ep|ra}?nS*oCfHarVzMVr?TLa0ELj#(v6$@i9fo0rfBcDm!SQ!}%nqs1Hnq); zWUPZ!mZYypZ|501OfdKGkDCW9@M=hmX#?L5edAG&4L;sX*slhYgyf}&N&q}bZH!SuVLriNAi>_wNaR`$<2kdqW)I|lXMZB0vej{z9!e^F<9b410a6IpIJS>S#MNZI$2{VCM}dvoh)@6 zGa^-YsMs2ZRE$0lZ7@{#p(WWW@vE@lnNoHXs^n}G&(&2Vj9d|ORI7SbWY7$M?i9XU zk_GMP+cDVb@dY-vGBdZX)c<%WK!emV+doP{qBgIvtgKTWkY`6PcE$YTzz;=f->FIHahyPls&0o#M6QCGWqDBB)t#9UWZP zn$wcee*dzt{Ic$QjeDB;vONd2T3!3N%n0=)%@}E{&aP(u(2sL|fQ3oht1TO^MRFk@ z51kZEeGfyK1uM{oCdv*t&7%&o9*_5MU_~QRx+4V3VDB0V2_X;^2)>m!67k{SAPpf> z@LK?=>-}O7_LYE!W32Q3>x0`O49&k^8kyfe+&6?q0tJx?=>N;3z@DC=p&p;HM~qi) z;_wGE4L^Ru)|nk}A1F{zpU=+psrZxfm}}Y=6*6AK?g(=cKb1q4UR}6-HEnR8k}wri zB-5>QcD#>!P>qbT5L<& z`Pwzwj*>zCk=l-IJJ2%=?49Hc(1#3@{eV9WmgU>CqwHNEfasgLSZY>QD-k!-HYQ3= zqTi`s-_yD2-$sT8f&cQtl$`Q8x{;QNZ0#k9qLLS5MNMx}SY$mn30{$8*W* z-c-(n`kBxhsB_q-J?saQ{*`%bHafTGMn%8u4c_@MY{wpW9moN{Nv=gKd$K6XNGr

lVs-(0xNz9__u12UHqaic5vETx4~}@l5h1G5ap* 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 literal 0 HcmV?d00001 diff --git a/2344.pdf b/2344.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4fa9896fdbdf37a5dcee11199986922adf50ff80 GIT binary patch literal 659369 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

  • tM2_UUT+%I47#e3_KD)?=_?o`tEdPGbI(tXg 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 z zmu^XTvxblfPdSI|*m$tzZxhL{KEB3TMY-Av6dz z9sO1%PbgxnVMXEK#4isAV7V-Ji5QLRe_%Sq}oT!nPWx;;+(?eU1JvIQw z$)dEDc`2-BPMtBZ_#?waIPog*Tt6Ib%Un67Yu-J=*kQTvceEHu;aS}k>xRgxsp5Vu z#ms=6@%%&fZ({S|SG=jmCUfA*=5~Ig1fGNektIXU>eJ|E%OaxUS+CuXKRWo8^#J}O z!k?MHRD@5_D1`mGvXbJkQvXGeE&sJ|d9b2ukd{BNmTj_Oe8@aejEx>%u{>YyT&`Af zbt!g%S;nBN72faZx*@8CGm`vUaiWPDk%u0HmDn3kg-v{I`BTnZYP$8{-Liy2!&USK zqyCgLA$N^pT*W(3Y@i;H-GgC8zo7S_#3Cfxz^U&Y#*De!wWg^7vP0>ohHtf0@2fe{ zX9Uo2b~n#|S)Gb;@e1${#kQCsv{Em_xL2Ki>(km!Gmq^u9N+f~2w%DSzkHC1AW<@6 z{*k<}*~p>{4L~l=1e7i!^;{NlzRap2V{Pdb)j=a2Sj&%{(_NDcwp{r>dPGvQJ2kBs z{{3}lx*f(OXwXJKf$rc+A^S4=S}FL3*N3uhE@yh+^hEcZH~BY zlq=cp+M0t`>0c6l7dx6<9~8=)eqbm>`y$OcT_82ldqHySGB;=M>_rJXo);w2XR|De zWENkWno)dbBrq!1z3O?I<4|T9haX2Bw#btH!&VZRdOWbOo1r}g_d|aLRPw z`DldCe)6~{EKA;8Sl8u4M}~4zkDI22;l}rJ=#odWYoARyY_vUqSbMCjiBO$O!_J)Y-K@z7~RC;NYS_w3!({AOXmc3 zU}X1FDK`qoei+#2TKlTWfYk-2Z;Sf)>MD?qnn=vW3Hcd2skSc`)ySV}^coa^hb1C5 zX{cdT{Nnie$e`VYdVr)OzM?b&?qD*?V635bS57mch9fl6J87!Fqx$Omaj{jJHoB`- zhB!}rU!4#23&GLJI02QBjhv%FoX!{V;`k)PDq@Zt5|`D{tb|)TJ8AWp4Q7UOZ=c<< z(FfSrX*=7|38@IIvoU(!N;VQ7DE(^|o%&2Di^CUZ&xF7CVfZt4C1R8k0=u~Dh&b1k zA5qaq{Wex=3)+WG;|}ZOsb51@It9*AC%)Ui_Il|B45D9%o^$PG=Pwy&ek&IgJki^I zd!N!$Sh#BzvH<&VMBdl@&*+ksdHcwzxbQR(M>A zzVNmzJ1(C8lGNnzmcGjcNdbBMAfm=|7wp**So;7|XmFSbafiKL3;&W<2`N)I&RU>^ zy@m8k`dPg6MgyoV^cObwBU_TJn-BFflTre|>7MkU-vp2?@AW7a(Z~pVtat;jIs7i%$S zS2>K=ddaK4pQ?6ki@+@*c=Tv|0AxSY)H2!w&%L!&0kw$h5)D%pWvh^{=w!5E+j3mn z+TU`u(gYK3kQ+u8K(=P(R@mq&0K zJF{;{zlko)K<%x-oA z&Ju@c&EP~6QK9&)LDEWMJnr)K-8VhdkePb2)t2xu9QQJVZJ`ACM6cD#lzmmRGsD^Lk`x8Y zI(n;m{mkG7xx}pLh9(@%msP~DcnaKoLn`B8h z9$Z#GS^2_BPem7cOivT67Z1aPuQ~Oa|I@S7=1@61I}WJq;HVNIR(WcUZrM-$xY@t` z$-rKSwAwIK(6@b>rI`nRqxgRJCs3#|g1|rw5m?MI<5J6f+`VcQ=4~Wg4Hhizq5q{h zJ-e^fhlXf9Uq08na{Q4!5fb&I`qOuMVLfeg8p6$YFHhPwA>k>9br|iFGLAJH>-ImB zUwf&2Crqn48IN!;48%)m+vM2R8|Ymixn^IbkVO!2RbZUa$JA%nZS84Xr7ztrvZJ+? zxCj-kWT&~mJ2r0C#y7ku>-0xRQVx2ZeZ5#IZZPj@P}JxBqDClmiHm9>NKfGf+^Qe# z-(eSMnm|3Lpi9|2Wn~(Q9TKr!JxFj(4bpN<^Intr;^56SRXb@ogn&&#QQke=l#HCS zT+94bH7vXc@yn0)CuH*YuK5?weoO+;v&Ft;E&PRp9b6?4%XT_Ewm!5NB9<6iz@F0qtE`2%gcx>CAW=pZ_@8}iLrf*!?4SJZMN0>uo0 zP0cbrD9rVbcb%UA1Nm(oQs|GY<=T~&EqZB?(y1qbiXw5_?KpO94 zFwS<^JEP7u<)i;MFC;qeszS@)#ZnWyZlSPSfPp?5OHQo08pykawH@_cTe&&CIaa(K8KQN+b z>+7f4wq4U@I0Q4&4Nr8ydl86Q$<^qgbMo;aV3clA75Rq3)LZT{T}qYHiM78KVxf}!W$#K^$=hdpQ57JCR#kk$sb~8}@643ieLJ`OHT2Z~ z^dh}sL;)|jyS!Q7dUOUbQVS{-_$h&NYRO-vh;2G4w$kZz9W&ZDZngSq4Ga@m7K{mb zfjS{~wDheKO}qnxXlMBt=NodNz%^>pK6)uzI)ih`6Hjp?Y|<0HQ|Q=?fCaPDAn;_B zse|pI)O-jyl6x+>fjTVQkYD=k&+xX0GH4`ggqsCWEf!aVJE zm&2gMZQz)37qE--;!Lp4NNut{hjhLY_X&7JWCJY-tDGF-P=sw~bCVhbi6`@7$O2b< z4T&4o9WAFYC4O-}YRFgRwXF1VYg`t+{b-Z_HKes+BJ$xT&!b8~u;Wr=2S_T$O) zk1`b#d>InkJLuE4w-K-vGvKPGdt3$9@?x4damb5MRtlT1N+c9B)`Uh$`on4s&bYW4 z)ag|ESeX>1CHr!cQIf8z1;T((bBJjMh#*aL_8|RsqxE~ps6v^LFD`fuM2L1-IlkzG zsNr_8eHsY4V2n#;Ywk-nSxM z<_ps|b}}+t>6A`4#Cge}QrQ5|;_G~siyw&*=ime1(l^P{^=$x%0&M5D4|djrRWtl z=#V&KTCZMyFKvS-Q*g2t|C5xnD{>3>fd`3MHGT_BQ+s31SJ%q;uOG`IPdQ zrEBBTYH3r+=oUi|MMR61La1R9YNCL$pV9SWy0b5V1kWfQ*7VyOaIL%Y9X1qrz69l1 zR~4c4U%9W7U}F~9B?V%ol*eoiRXv8wzTnRtcJb%~mQ3oTOE)Cr0V3^}lFPEvzEB%o zAmwzjASf4?g8UP^&CLwL&!-R)LyInDaLvNp@3$Dint}8JbKf{8()_=7u*9AiNQ5>G z-Nzv*Yu3RU1<>;lD6uI>6*qR`&1qh`a{fUvp+%x0K!~;<_jb?X>-}XLW=%X~RhELn zBCNBG7$DeAeA^1reD-bukx6GRVA^56Vdu~_YfGg5lKhiRS@sQ1$_3)*arcA%p6Blt z?_1*-6t5&IT)uVCJ@=$q`Xi{I>31`Jm%_s4#TrbLWKKd;G8ayYmhq!y`b9eXSoucp zIvm23b%8R}BW!2$y|tyPgq!#*WawdSIUFwyL)gM{dZU>8%Ql|>uiq3zzoGUAH4@6l z^bB6dz6&P}#wsr}av>|NMh`6|&r47RDIUR)M5;0>c3&YlUuPdEC6`!UH#92qCC)Um zX>VCf>%~=1JdQ-TkFx>vZR~zSlU>gk*Hft-;PEgJOjq!pBo7?k6KNv4c;!@brLKyX z`R!to$RlqL_FKj2N^o_ScoqxGy?`sS+z&V%oGQatWA**(Ucj95VKhcX4@-ZT%uckgF6(YU@p!4pH|^l#^Qj0>mW6EN@7!@BgUzE%gxB zQjm@VqxdvVQqPNV9>wuhyC1I*uYC&LWsH`s-_1mHhpN)N54M4!+^1bY`fbWD0LcjX zV)!0^BvO7bv(Z{B977v4ua|YDj=8Brg-$5h;k@e zxa{?tF`%P>gje~*v-s8@Lp7Ct41Ws2`j3C+S8$%~u5yP2?q~yh#gcnHUugf_AiHMP-Su0OoB%d{9pZVMgVgYuM4Uo0!_zFmo0`e{4~32lLH zgaztSojt22XFFgzhF`0wRpgG(_6cMiXZ#7;4FrR0HAtvNOg*HRU-_yUW_zGVft_8- zr}Opow!#PUw=i)=)SfZ<*LsdGG0gMFh^0kht?aI&sfK&J4YNLFFb)f9qJ@fl#J{gi zFA1-7H=&_6IIqh_D-n#SHgbBepB1}kP_RU$xR1g1=d0pg1LK>0!kek7ny-}9WYe8& z)`o2KMY~Z~DuoF%uNh|M_pE>a!8k~mVGNWT1?J2;+*APd`;I`cS9mdnrcC(G@qgC7YIFj+{*S+Lgz+ z>JhcjDxg_Qm}2s8XOB>OoAha26PV!Qnggn#SJR_q zW`b>P(B}Lvh9Uuwr#jn8C7~~SlCfA3z<;T7kZ)J@xi7gGx+2l|G-?-tX zcBXRHZ_JcU^PNO_YcFNK^(z_ikh2w&S=ys#WnACWs~~26A1A7Jqh-dLtr=I^n9#Ps zvYe3Mng?AXcxhGh-ot(vV?HnJ7Y4TO_~*Izp6fWWPqohn%Jz-N@5^m%OU93gQa`n| za1bS^xP#TnT!iK{k^DZisiiqXRuty=!nrYgBi9)g=RIH4aR($}E2pamDo}l4|tPJx-Gn}Xwee=EuZ>=rx5C59`nKIuL^DY0J zL_|*y;1O#}(W(f;z|o1sn#9~kCjKBl;2UevO27<)8Xr2aQtuiiCGFUsa^&}DQBLj6 zS!usSP z%2*9B?lX4sP?G}uhL4G>-DH-2t>X*EQK_!ySJhDG>6jl=AGx2dn6`ML8|xm(grTjC zQEO|q+Z7zGpBr(oYJ_Np46{vqk~NQDckJ`L{>tINrvQ8G|3!Vm`TYouho;I%n1iSG zPZjxdY7Ln0Pil=(xI}pj-uhX*t!C}8iuVr=MOUSrz^-3oOOVu+gdf+JQq~Aif5Dea<3ftNz!g zg4;Y?6VgH#+7MykLXlaIy1Tk^+@AN~Pkd#ZN^G8Y?C+p2+9aCRL+{zrLQS5 zxX^VF<}s;fEl4{86wpT}F*R`xmQat_JCZWUUGtDuP)^0}5!557^3VbT7f8t{nw%eT zwoUDR=k@7E6q6r^dO6ho61RH+4DEbRo7877u$spa zUTMQxK()*pp7tk|(G;1Z&M`J0nZWvj{HT*8{zRb!X7Ab2Mm!laVwAF0p_o<96||UN zM-lOUoUDH!^nUI-(MVVT>qd0Dp3=ODg%oef;ZHDzstll2jwOjk=O&uk-rY z&%DGB$X2DV7np0oU7i*Qu1yJNhUR5&VxD5<$oSPa$s?bD?0GQ=TbA2KW)aK_aU2v2 zeC9mFmP1N$qF3^`#d;k-KGRsf>y9+}G!@yUy8Cma@*wz*>$>VItD=p8+pEs)UXsus z?TS%nkECy}y7kvd>QFDX)ih^;sCLwy4clUUSQW^vykLfwV(MXJnSkcB;5(4TUa)b?~Qzg;&Php!b6j*|N$Bt5qPc>sN)lL>IrQ*~#x3 ziGR?)s`lJ@3e@lOGy6S)#imjwlXZSrAI!2+9H!Ac`y!+r&DZY96i3+?xuM!Mtj&jf z-HR0zK8Wn*RguY%2hc{L!3ztAh1c~QgfBGqyY01f=!g@PNgvm7`&VMQ4M=pV2<)*^ zqJF!i&Xn?XcI7U>z2Y@o*4N-rl^^cVz6e2iN#8^Zd7Xp_`*;)O@GZ7(*OyCTO;#^M zo2k2iS%JMSJdEp|Wu*J>qS6L(KKls60GCy?w;8SzGY4YN^^YlbXzn@bG&g7nOmEnp z8Wjc^M3n2@Rg3l9j}T54z;9?55s0qtGanhu==PNMwNzc{loZlr8|l6aHHBSY`mJAV zcsTYbsu5~yt-I%8Xutjvf`%rXbZy?FxZlZSiWheIUW}0L)7jmV9S@yrb6MR;NH885 zp`J>WFV=ZVwoeV^Q0tZtGSD@qt@9|(Q)-c4l&rYi61OvbM6~0QXXmvZm+b|mZxkLv zDKp^)0$|eC!g0oO9REfZGW-p~MJFW~FbH2}$45;5EL1o753)+NCZ;$kJ_f=f*B>DG z;bOw*R1UUNPU)4 z`~~HcyBejskmZHp4->op3rRq>zZojq5}VhYnirNg13qs9>?71oP!Y@nYF^s1zrytu z)C}-Aq{^Cn^Ez0H4uvEOsxsIo-}%cBd!O0|<+-?zTUR@hPNnvanpdq0wvhrty0|es zRXl@U{~F9IHOy_0*LNr+SJ+Lf#n%VyfO7PO0eMb!a4|$~h_3~WXV?hwZGgfHnu+-V zUSQ-r3`-~_N>`mdFTm&ZnkGMf_aOW!m=Pq%UeJ`ZfuAp{^79n5SxN7Lh{JG+dJuH) zrj*fto>t$#k}$;T8#-KtNtw130uCe^Ljvgv0~0v~yf17;Ll;z5AzWOK1739L_jMpx zkq@uLkYo?~_2_KCXH>)I4aTMi+JqX7!`1mtKwM@ywG5bSa8iC`G&kea zz1b(ag5ROdl=k;+z5jBnA4}a}j$1t8xoY{iZD78bSlqZ@!HrcI69TVP_fd4#_-VN) zpc^Mh<+pK)T9>eCqU%`nKYL{oJ}K;Z6NL+{n8~>Nh$*Ts6(cb@?IUV%#j4%<2!-Qh zFAEyeg5OQ5=TU>b4RL0wba%>6}etjt7&a#R%?^NMz0nwGfr{rXpv^&q3iE8_>|%5!6Ykt zu8|l$Y9`^nr9!Jzn;Mlzxai8ArmalTyh@D=-x}xUx7Et|V$QX|$57U67x-9wJn&pG z{MkIxb&DGWyFFP3p0v}y^-;N{W{b8pu2}(8%ZIaVR!Zs_ktLI`vn6#mVWWLdDbw}Y zN7f&d^PEi7-9bLo7w<^{zku=RjrmO+<(@XmQEz(XsBap|u%vLaI;y_K=%tW=*ir78f{nv|WJv5%f?qvo} z8}=K-@d-GPI2K-me@FSt;zaIYaq1PWOue1|IEwt^N;!X71zOLy zo}-_zexn0{=po2J4>@;x+ABf>cYWEjR5BE9hBKZG96(Kh>8?JNA%IHmJj^zq`NK!d zgDi57?p{>Uv%nxSTIOXaS|(GV#+B9dey?9r_mBfuv$GNMBeT`+A^aL#K79zqI>_Fa z7vk>kCP9wj1gLr;`}7QFmML}+=SfJKK!JqX0$Kbja^f-V?C!A;d1omi>p+9?qEI_5 z)i&uFExEqNV^Fg0ur?7H;7XlSleaU`fpYkLu_H-~;{yA@XH z&%`bv#dWm!m>bXORUn~=*szFCOvr)a6Ehh^6oKS^Pezgz5GQj@;*qCJsRR`hvWt*3 z@EZ~hrz-H#ZptPQ-}fci4OPOWz=!wuo3G*J6ZzmBR*;G3vie+LoWP-8e#+`osg%-F zH7bOBkQ<>F_0T)uHxZeXCNAsGX&qBi-0%7QI78*)o;%uCYyc0UzTdC6uhB2*FW`Uz za6mL)wsg)xeJKjKp3_+~R;2f|llVJ2@5i~(7os6O6rV&m=XVFrH2!?85S znQ}_}Ru%xV6Fy;e*?$X)>>PQYkhoElpGEaC)<7|2<2uN41K9=XBzL@V{l#U?IHE)! z8fk11+3>P`p^%`>q1MIznLS|!DSE@gbf2~Bk5j@YGlQl0$HRr{kA@26=7zl72E12YVw&@nweUD&dsS;XKFr z--~lTN9mb?T%Jc4UXWwVI5AV2Hdct*h(R*h)=*s{f#H$Qe=LY0Y;@RFyipz!)uxeu z%4c9b8;Sbo+;AvvD0jcXVlEYkfz5ojguD&Z#Tdg2vtwe23XTz4H zu6a!~m1A^1V0RdZn$#q=XKICE#)tA-0aahEX{JU{jUIV@i_j6-g~UBrlOM~5Hm1p5 zx(C(mwIk|@BdC?hZ6w%`<9Fs5>>!+G1$;i>lW#mSJ|{ALP;=k%e-lxrhd6w0j1YD@ zg@mQ%)tH!*Ph@m%79WO-fsd{%wHloL#@D|yKv$L0*o@jRZ!>EU*>11)g+b1pTe=ty ze}vilXFEZI+IG0~S$+3?aT*j`eIoa4=YBH^bffyv4NTW*2h?eseOtuZEH>c~Ez2sofxgg z@EUb`GrxCZnEQ8Pq@4?m)Ve{a?v2+KTn5kD+3W9s$qjj?ej0{P_hV}s*OvIo*?u4O zGt(9fwQKy3_8co=VQH!Vm030nLu;$(B)yW=ZMF^JPHtW~d~AJHr};$^>#1MsndO#6 zbf?TJ178?un`HAO-nnzH!TXBzyoOWHc?$-tLswTeXl)_80Vluj(=|#B=4SU>CwFn_{cLUloXn+<@|Rx<=hpW987vMvw{=4atzIeT8MJt#7{}fd_!12Z!AF=eS6aHv6l8+QA@!b=3e)PooGrqBA@jpe;J z7WT7c<`2)&mD4r=+bff`u#{!OKCQKgt>)%CI){(0teS#DzX-}sK79T~zN))@R!kVF zkLofTarWx@2thWEAM~qYu1ZDv zSSg33Fox(SoknyBN}j<>^oqP3*n;`{ND3#_EIuqV7|?Bw@~)mex7=neGPgWd@*W<| zdeB1hcg#q={cb>`E7Kv%oS(UQRi6SrXS#XCRrnOs18zi#C!shaI(G+Rahant(5#Z0 zxFKwjZ{VZ9q@PaZxFZpqZUrOf1aCY{6=BT`5_0LqG2uQXh$gvSc}2_&=3*~Ln3<~x zKwOuIe8-3WU+DZJKf#x-3q%JM!MU5``+ih{k$)zSm{}j(kHWyjl!fuOCfnDu?*kk_yRv~ zjjdUnQLEQ&dm084>$*+yOH{&STewijteay+WI^G|j7_)#n(A72@>=mjQ9Q%wkDW;7=1RN)9CXVn2ce7 zU0=~PHj&a6L+m+xrB`t$uIX6+D{)Pmq1`LR?x&p4^%=ZEE*rxJ!h4jxLbcA(IoF=k zXZVxD2wF4XV1^IwIQ!c4yuJW7h8*@{4FagN369{vKBwmaJC4r4Ny3{KKy)zEx{B>o zLoAiVk~mm$9tk2Y$Zh#uO4TV(PC@eW*YK$=YTohfOO$!&Gsx-Vp&lV(pX6~=`lybi zfz_xoO~MmTy18;GTqfAc*qdWE%0LvF_i7@d-LU!?uFnfg(1d+4pnpF4gsPM^QafbY zj3T^mlgNXsnxq0`;@&jJ{|yKSC9UPb5UV7Y-=&Zy=v$M;o`_%yHOokfgavdi5!gF zibEg2>k8PS1c)c95uHn|Hp`X;`~7y-zRe4b_t}{wLxNntT$4yRT17Y;BP~<XVQLa(|;xsn^wzW)mcsLS0t-g!EkzADtj}XCHNw@*aGi zd>1k;JlQ|UM=iA@Iz{B3H(erYtPhq#c1jafWKw891d+mxV)Z#!p9+;zuAtHPqu33i z@k$fS50?0^y-(_j&jquN84>X$ls5{Vio+k2dH;;mg0qj;Za*e`?)6*IRifz6h`xH+ zxf`GAS)m7gWqgQS#3^YJh|X}SL_`J=N*`77dpG@cQSrP)>4$Ai(f0b-l9a6|mxK2c zNlLF+_f4Va_4|==r_aKbIG`%FiZL0f;F3Xeq{8KR3zyD5xydd$a`f}kW13hiG)bW5?kzTK+1cS3bb(S zsgNKFfYPS_?xQ=IbSFs4K=t_$ZUv$gq%R@9T_VJ(VxIV4#oe{9{uuRw2OiMRPfm|Xzj!6nyu=;qksFr;vdTN*CEgt^P5M7#7+u?Z|Yj{ZuDKrA$ zvI-}I5YC7`$PrZ!C5#A{^?ew9l<;Y~ruzjXu~F-?f~5eEsNjp}Drvm`hfja>JV)6P z5IN}ahy2GQ;x_%;;@L-_MAHWc2M2Wh13(pYmFNr<>xo(u76Y}9lAv<)5Uz%q;8E$T zy9w4K3y?776vD<9v;orbi-=6>0|WRoFwhBw>$hN~*PU0>eGaP+!lu)!hYB%?67Jmc@*}V!Yy_#7U9HBCR$`fVR*)O`Tgb_`4t;GA~72wz4Cy1zK5f_o= zaYANaAGA9vVFNk#ackA+jAMi$_fs8lXWP~8s%5mQV&xn)@C)>La68U`9{OmeH{9Jy zqS)y)ywc26dc!o@5^J&##MsYLcgOwl(c2o)hKs$Tt47UeZ+h@>(x89T4>PmDH_a}c z2)eQ_0p<$|Kgdm}+@6)Kc@zMEfJUm#rHMu3*PAAyO6D{#(GcN2YXi=s!=H;+NcUQ$ zz1iwU5;L#&Lc3Yxk={NoWn0y+j)V7ZX1N|m2_;pmy%!KgE?U`EDcd)F!1lJlwnKc< zyXyd7|K!cP2kz_ke}Fz9-s>2T68vyft|D-j)vR7ud=m|t=O^6j-F{Ui!F%#PI?@on zonFsOboEuwLXaDlEPftAZO}XWke~<^8*mmK@$|obvuhfy(umH|kKWs;t}j*Mv$i$5 zTuEs9yio_1WBS0xM7spv%c!TIYbjXMhL+9rRZU;C3!0w1l_}?SJ)gc6E83N0k#19# zjA+_q`-ZN=>y)O?7Ie^p2El-qyf(aMj%veeR@%@O@}LSfKq{a84BG*m9YR^V5{FlO z1Ho&$wgBH6?3<(d&=R4WcqolPhl_j@fofW+oX4H3Lo4Z9>8o%Q4ryAlTZwo5n)?^EAi^Wd<5s%J3rV+Py*>0~(xBmD~%Q#B@?QLati!D`>_S@F% zt?TPsD^ss0xNs$Y^Q?9GMfJN*eQwv9e$zRmPk3|FZ(6ZZ^A}KFnOz^-*%`X?b?y<} zIBms1ud$n=fbj1A{B!5+e$Y!`i08a&T;+1-E7@xO&7q)29F|yxyd!6nmzC!5Bq16xVA|hYA`Wse)y`1foLSgUEn2h|(;+>2_axsP5#oiyS5 zcpp86x-ooMg`wp_+1{hV|2AIl!<>>FhJ_p!_ma{6@>*lQ`2DB`!UquI%&UE@`#KsCI!JNezOLpO!V7r-s-NP;5UJV_{y(mE$&$yY zbnf~6)DLr?zeGqQaO_*-WVeze#xeZ{RGA}i(u7J58X-~X&6ywVP(&|ygv<=y=0h6s zI>b)9a8M04BlkVL`t;CjfIqm>>2~$TKWMDX*pFL$Qhwd(bk4R`w9gN5l(0>@k8#KE zx`Es8K=$5gW@sgQ0&h)Pom!ix>7f;HiViLJfA!?!AMVrbvn|@F;q2ILNaW{0uF~jj zT8(U*k2q8y_Lz|mR6%LS4SLErVHQz_PB&((mZOLemr-{x&@xhD%dy7@iZ0$eO+znZ zLyHOO@aThy)+Y6iH7_<86~4?r`StqE2B(j0-*;SmS9WI~Y88f~&DZJSHK-g0l!YqO zk0z|~TF!m1jjd9j=`+Jl&x1CThqO(-!l=OGd}*Qq|4CRhR1FZTB=3F$M!AUF6t2|gpRM3Fhk=)?HWlY%<_KiaGR zr;Q_v|3l#)+rbT(f*}Q)P;hiV^iJVRQ|W$a;B-<>>a}O-l1g4|Ld0xXL$N?HRSs~I zyAyU|J2(PDxj?q>&8+w9%KE+hC4@o_KBaFPA@l2A3FH=guQ&(`HT{L)&=wWG&4*M(EPC`L2nx zCoEELGtd&(;iyYm9{u_GtA?>^6B`BST<@MdfalCfWs%G;Y8uQj;5h~|s5SNCHOnQ2 zK2S9_eghUr$nH^wHSvabfbRzUFhy0Jv&(POTdRt9(XS@FUw z=&(8i#7q~R0w+tO?Kx}(IQlThwY}&=^Di+7a1d}1)NL}jeGKI;`^T4;*vuN$YsrosD9iwD9ZYPXvTTpuqO~Sn()RxJAr|H(E=r?V-x!e_YF`~*gn%}TULk1 zH4?%Oe92PWM}y5BpgQ8ZQPvhG!4kv_NbU}8K#V>@^JFs|*s~>)LY-ggS)qYQC5gR|HYhGiu0(`?+GIUFpM`g&(y4qa zo&c4VxY(?FCN`v;ngZRTv=3j&XxD4%FE6n(lZ4~<9173MwMXG*GP{KiQCzK{7WEP0 z0H)0UBEops7WPDJpM;B-RJwN|7Cfj+n9{_E&3@{VO-uu(d*}b}8z7eN;G^G~8>h8c zNiOeQv$da zI~MY^^}YynM@mQZ5m)a-Vgw^PD?D=_1Vq4HQiPY5b4RoH{>MA4{632Mn^+QquqaJI z_iRddm-$%~?ckp85Mf)KOGBl-PxQxABz!2Dlr$cAi78wZwKzH=xdP6+De@}jN?va$ z#mRNU${S40cz7AnI`?NqRF(7Z1u5nBQxSQHKmiSsx#!Zw#Z1|z6zU{r4Bq(oN@ER? z1@Y@+v?21=Sq$(eSa!+z!vIdh+IhbUAG8;k6Wch@k>zQ{X1cH1;E6TE@Ae2fd>9#Nls`;1eu5-LP)qzh`1Rv zT)dKn{)QMNqYQ(C^Cn2Oo1=alay1r3vGi4jZd|+Eqzl`cPs#T7RXwz@r0!YLr%?A$^4IN$~;P*Lz09st9iV}i`-o@A}s!BowXlR1Hk17#q z??=;a4Gi20B#_7skum+jSCBI9RgMqB@@lMfqgtCxLw`L-kEsuCb&JujDBo~fXWK>z zfI#x#&#ha@zSD|R>(0AAx$Y4dH|4#&>d1mF5fTWY&EIxP&a48bJ{l-dBc;w#8if%8^zu`5==dFXyl`JOgk>1$}7)9XD^F(sRv1t*FSF^>HS1B4S}VY zxF~KCB8~ICMP?Btf!0}Ko}E3o=a4Uy%!O~R_CvJQGdD|$*|yme>!y#)^6F_BXdHge z&~vsNUyitx6oezMCmP|vgieOSMA}?iMY|!1@h_{0+cyuyKL{oX8iN=JDrXKE6QFhQ zkE2iI`60`Cd`|l4vz2tcp$}<;KNu@S8@Ef7KKW$ok3?HG=%}VG<__Qj15D^cgxqPD zZ)=3%70_p34Q9njAbv=f3CTQ}d^$(8xv9s)C1WE~Dgw(7OcBuC>HL)tP&7-ld7xz* zsOc+UMzynq~>Uhim;iAaPg7cELop#{-Lz(W~XZ@A=3Uq1R+$rxAd z{Ihh;`o3whi&)Ga46U{fbNjO^|FhaNhj7D-*|(WTSM7V92_&vU;F11#oUtPDv^fk5 z`?=0q{-QnCd9c1!nEfzeT(|E5@x~bPo|wN_hYK}5|Etxg;~Rnp*Yq>k0_*J&oYc@D zWTUA6>dvF9jrsN4tF43S%5Bud_jhp9+5@IJFzp&hhDxvrl8R_avkZ2CxYqQ+P^k?} zquhk#o=-Sp_TkdSU^SI=n4az_m{F2GP%@nK5p>O-L7eoV4p>or_T5ntt|dwRH`L z24&BWin%(7(NZsPlQO0QMzY(JL`U%`>sSlHFn*R?eG1K2wpLUU9&t1h=3R6Xl3YZe zy|?$26q_1Lf~3BD)CO$-c(4i`TFjkWmi6hUi^){UUWHs~n>=rN>C<~M;_EHLc>ZB( zu#m-B3-ck@sa#AB7BHHfa;~%ahgUQI-s}CPz^7aavqcW%C zY}>qjVcC}c7t?WQThh~N=NvPQlYk^@Y<`#=TrFlDaj4;^JGjeRE00rdj70GpXI1nm zRitGcJmcSZ;?u~^$X^4+OL`t+?@@31fNM9#Rxu7s^!fdlTeJ5Kjy~x4R=$McI~+MS zS0-BHyZB_pFp6Ir#{AD2oE2G=4j&lCeG1V`A47teE8i@7s9^3GSM!N z0Ks`}WddSZgy6PW(6JmIvv@<9EZNQa9Pn?9mdus>n;cJGe744LpU&Y^M`0~6V>#c< zwJS`Lj;6hQnr@Uqb}@Iz&hmDA57VcdF3G(sLmWY4Ez5;a0Z{@P6{k#~dda@PlxY>G zWoN_v@}izU0j*`ZPkXS>q17}Y<7?2R&UasAb{jl>AgF)_u(OzJ|4q~8W={S|$lOeK zEv-SzjO`3`z+DqrpRnuQ8Uq3KyKQrk*t`Y7}NKYixB7)?p8Kj?bXwwNB2=8az+UoogVj7{(?vt_{w*cWN3tXBAvP zc}*my)sI`YWK4}3lh9;OAZW0+iboR~!x)*`Ynu&UjzGw#tt#8`n03LZjyMy%UT;@> zlAfa_)DeeFJ81sl0x*5tRyj!#2mfZA%o0L`tie^7;lqS*DoLg>vtRz@C6Z>B%21cY zH&?!UFVwAQ<`Wn#Jg#U_aJOU&(JiU1W%oQ|djW(g&l%C}e;W^CnSb55HSjwKkv07Zo}v z9)txxF^NYTXmQo@R01h+?7uj0mcp-_d>8iwKFY`^`7SsZ0$?qoM;~sil;Yx58e=h` z4ooJ?U$s*JAxm*CG;X_Lh-Q)Iz|Q2J#kE-}g7}D1LtN`Jj`Op7U!2*;spN28znMxg z@POBNY2?Lea}Qla>eZwVj>hr#j)FvO4Vv{3AQj9$vSo}>eEJIOhh%}M44f^Rgwhg{ zNwvAT7=S6klIjwbZcJ|qz33LWV&b|pzdeSnvs0N6D?3N;MOq@eyCu~*mM3dZ6hvZ3 zMp=VY!j1N=geAts=1-UfiEWr)c5xYRbU=w^?gePJ{Iu@(RKC{Z2h{cBeG6*m)pib!x7}nE|cX?DQ6e40^EtQ++ z8IIN*7ApoVUNF^?`L*-Gp!o)>o^=w#D}Z7Ypi+(qd;^1ES2aZ=#ZuRm8DCMk)pqsW z4p0afnofB{9s+RGQJ`KH&&7+6$}$?feBWP|6*#1wP6tWq+>ah9?_6P&Va9)9mlr_PsQq%NcJq)JM3Hcnm_CDF#pYi$IGKRGGK2IOhp6l!D$V1nkBQSn^{TyL%{(5;Ii`LiM_&jmU z_&9F)JP+gI_53-_eGKpK)5>`0`n(=`eVGaA`EAkr?f>I{U^wu}#`2n0_IX%=_q;bR z*Qbx^<>_neXC^#MJ<-Qpw#MFP+%PYG%o~4Cfcr63ym@6cCmR8dm9MkrO>vlXv{qe}Q}#p`9RGuIs(!}HgSkP$>nYdl_KVV~#E zu?bq>vq0|kJhRW!ynTkx*LjA|t#=GAx>cu~gK=G}%Z1SO2Fr1-6{klHA7w~!c zwHB|2Ta^HyZ2&&JKk+8l*BhJ>bDo8FK|+NG+zE>s?!dRo?h`3qtANwP_V{@@U(QqO zJafrbhek{+UGUGTjeeh7=W)x&44oN1V^94&3?I|VR`JG4c3BR+9h&+E;fe5r0&TGU zq^t8t&)^Ftkdr~w|JD(8*!*gRQdmEawX*k_=Kt)^X(p$F#qLsXW--@uXdBl__@AuC z#>DSojZ`!QX0tvjXDFgF|K3Y372aOo@{>7y(){0_)8pwh{#*XrikFa>4b=T{x%~L( zu$O4Vw1a|GMCib#UjF#ZZNn#v;#$>u02g??7Evtc@<_|Lk5k$EjQhT?<6-#+Epeih z2Ao94Y#HpxKu;g&4rGytu{top1CjM>`^;`#?IW|7zS-DXE9ga1`M?A?m#RkH`!sv7 zJ#nQ?bsveZ)YcBfix@=ZtliUOOMWa_9960q#-n0@%B6+#4P%wGe0f!LpnOsvFe*`ax7*87NMi00oh(^5&PR&x_l$;2DulGJhl z@3M?=8*1f3+aU;(EbLV^Voi?^>5rX_Px=>8s>e{4$b??=tpRN3S(>nZk=TT1N}Y-q z0udECA~(bXlidp>8(PbpacSINPgU{yE9GatFEvUa^mRkYKQ@e&CzxQ+-~1(RY7BLw z^Rdye-<}_scrWw;lWe_DAev3f<(|dIF};L=?pmBq93oXET>1o2oyU;QPJbR(>1Nr| z72=ZX8veNVK1`5A<7<*xRDnzjkL@O|*NnX;^5F5LZ@3bb=Za1$=r z=btYi8z6ISode=>9I{`xd@uYYR05zYzdb9>ZFRvf(6znG5mE`{3AcK&TUXPr_xS`8 zS%KA;9*?#6f!P#c3faVW=YC`{iErfJbu(m_Q<2q5KfMmCG9o}$eXI%g!Gy|3P%8KxEN}Bstl%!1dPv#NcMsL27=ZZ^;yzD}+AH`l6-UhFo$@I{(OW%dgUJgdv+q>H$J-oA zWn_Eob}CGm!-9E9$!tJJ>9CzzNNW;N$t@}JDbrhXdk3hPyDZQg$Lf0Rmsg9;7DTL$ zfivbt`5a4F!hfOBg^g8UD-0X_I2E$3=@9B+bE!JE&~G&&FSb2w4btg*`eXOrp}H_J zf#@6z`u*5O=BDH$2I_#Xl_2NBVJM`rnVQVp?IG(ar>6%{ym;hxg5cD5S9byF01UNp zzKC91aOj{k~Z;%eFdk(dQ zBctfh)WVwlMVAtf0$gNzeX6|^sU8CXhJ6|o-prSgm6GF$K8arn{WXL&KXd9`sV`WW6t#5-8j|23wbNyx`fI2Py@4F% zK|8_HEhKV(z?#VP)$F5*))(;Z8>^mL)98vLIer$7D)U8QEI0OOqrq0WP#7R?GkoqC z{TStZy>eidsZb^LP{Dn%+R#GvXk31?Da8$~i(m`!U*;BC$qE5P^V~Wo6FQ{F2rO3; zj52kp;|FG|L;AOkj0p5<#%8N8A^7YSAXnMyIz+l5A^D=6I~^r4)vKqdc$pK!?bWAI zn{>`Wl*r$vhzMtb6G@Xwc7W)@+|I!$Mx#jnTWDhpU@|i8Gcu8-xC~8%rlgMSE6P3;g zkc~qZP}b4dxbzK_t+DDfgDFyjC#H8;yhPoTO-!YlbQM&w zOd*qVD|=nl3}$aD`tm~A9}3NJoYEGUomHDJD<1H+!S9#^%~1lPUV>hSO^9rMg6j zAqy^?QenrgsvZmbo~!cmb@w(gQoWAq=t zr@k*Q6xKQoItwa1&03uyOBF$UDk3Xb<2%}}YIm-##}4t_5w74D+pez1jJ5YEgt-D! zgXa2^fOZxQZsAN__m9V1r;DN{C7ByVOd#9grcM=)XXtv%*Y3kjKn3XvY$Q9XzmpnfilvG75h=QkkLj7v@+Y1ASWg&XqD zK%6f*j#HONz_H)Rw0pyjOl&FF;cR9G`trJ?QSK(cWdWQV_BaVaF|5bs_MreA!CvF& zKkf2Mu}Cmz3Aob^sO9v~4Ie~PXxgvb%5>-L-MV1ad4`Aj1p`z0W8ZqDy57$8#04{v z>~n|L`#5ahP;%A2Mf4)QA@hl*q9KS#_zK22(Qn8G*)H-9j4;-KV7UOjsd!<_q5ua$ zqzvRt#^i8AzzlE8aRQ!qDrtqiCX3Nmr*y9S)bfzQ2V1}yd<}KtJ7NPEy~ZcY(~{Sf z3WRGsrT%Kl&5VXHsVQXLahFC1E3i^i$v$nahh&0uFqV~W>3ZFC5^S?IQt`7JGC)TE zVZYk4+{kse%yFTaK;N19E8z(gq*w-c!Fh1z2d6$pBkTwAB;Yi z-iMr%M)7hiWRehujD)?T0fr7|Stg5;G%VSzp0-S3uyx;!L$BUP>*KXSACEb$JjV<8 z+LRJZDPAp(a>@wI46@!0kZl(%QJ#gH7h+7Suj$8E%Yp%<+_W_PoA-@-P(zq_;q)4Vv#@G9j zox!(Sp8e724bW-%3$*L|;swr6j|?Bdr$F>+TfiP=Jyu?2Pur7Bv|N}XHdbw*N$Dhc zNzt0moC%Yvc`|yq>MF?Z-{;o}A00G)#g@Q+13pz3b#0@BK+(W#?%%gsxo=Dwwh>CC zyCU8d{2u9<(8k9X6)zTDdy+wh22O4A6PC=|y#R50L8F!Q^9j1x;#Ox=Zvkfi0t|>( zIty{z8zQnOq5~?SYrDALD7G z68xA^>T=E2@W_}toyz06u+N2L5$6TxtI|PPm+{0<=oCO~!mjt=#)Uu)|GB+XaEhl6 zZW%GX3*-8qPtVjk+wao}V{`2EBWd;``>c~$&D1X=Rzb>DUq#TH+$3rG$kF?(5R-MZ z7PwEg#if)}e|bY*(EPjI_3A~+(>=@pU?ymEGYJrf)YjvdeOlL>iJPHBWNy{26RKXP zwbQ4)cNiDV%39P(BZkmb*&iRIF!I?QxdFhN;4d$fLAv3X0a%i4*=h*@t`gE>aK!Zu zmpQQ_Dh{TASKN{)Qj?VK8{gBf#eNflzQo)*>%3_qUy$O^_O6g+x3pM_Vke^8Z$>K8 zQ5$!u|6`hz+uDtEycCYl&yanlV^Ch3@i?N94>|J&w~grX)UmJ*9wzb~%`};rNoZG> zxj`Yz7kjM_@S)r@vIOb|05H$ZF&~;AbZ-#O=xhu46<b{l@AX^3R+{ZG zx4wIy0*53fJlPbTJ*Hg=joVM&9M>|GK>wAedh4Cg^yB$@wQ=^Tdmlo+(yS9k;OvhT zxGG=ix7-8YdzPjW`ZZ>j^{U|J%&OgmPn2V|ysI5!!14SlTIca#jQ=?STv4~44fym0 zl1vdZT$2~hAWBc_&^h(W_h)%C%=iwEG5zvNMKNGSDv8s`Y`hd_W#Z7Z*$(K+ML?+N zXHCO}#0EJUks&-`-fdsz@mIXYQUnP4K1HQD7RlQ+pyyd^5+{@J;<0!?;X+5OuLQ;x3va=wpSF__V?NxT!?mMI}d3F+R?HgF;sN>=g zx{{QiM~2VJ8QqqR9*H?i6=~3=C`8Sh1xCP~i{4~3B8v!*n6kYM^+<1~j%Z&+Y0i!U zz-K-~^2cBdab5>kyk>oTLu_~eScK@M3f~npb|RmsdrnMw>TTx`K*|{WamPi>3ZmE~ z1Yrvu&e6{;-JY#XZE@_K!AUbJkdEW|hEIAO@xU@nBYJ+at9XtpO{fh+|G#0B)4C!> z=2GyIo1Xs!WFM7xS&(7gynXTvXkFJFg1TDYxaCe4nm?-%?4mmkNR+HP#(8Z z)$#+tZ(0>6gKcl^H~)X}mNToX3s z<24x;c68!_T4&h}SZ2T1m#wy+`ROUJ_0-ly2$#X{J+hKeeqTIbUqVkIq2?#4ZOV=A zfWN%_z^c6@>Y%Mg;WRo#Kb7n6pUid=CC-wS`TEBl+QAMX#)MOeh=yi>R)A6N=hqQF zH|f6S^pb*W)3JOnqX^Mn`1qOJx`l-^aOwA)^jhas@pa-fjMVe%<7;J~f8k=uG$jFE z%VD=9)ayFA^a@Mv9CF=YE4(f8)cCQbk)XPU51hJe%fs2!`?#&gG_z*DBYO2Xqi0B< zXmcGK97N!xt2}+FFRv=-4&ItDpm`FVoVPt+?Bm6>xNOS(c{;uiMQK*nKpCGj999~6 z)zB)`e~2Yo=?5lPPMz(oLG9m=r>7EY?em$$YleT3O1!0ki^7JULCbY_3=exGa`T8a zRb}EZ3`{`+s+Jd(kyT=2{pE#8T+|r$7U_2=sqO`$HSVtW8uJ@;4%wU5G~;bx*F~&W zbzM=cVRIP+d|cy4rFJh{K0S^=Yowm#z`r6p=Sf5!pHByt0?ZEIN-|dgIE%((Ruaa( zKQMg2fnu3|Jf=i{67M`ln!Gf814|Ygq@=gv*J(5y9acKS*Hmy{ULWt?$In+$@5?N$ z0GOu$>5>m*VER3QunTG*pEv3_SYz^DEgzHzQ;ZlK|NShh&Ou`?BATR^cvU}hQQ}Q? z5mw=HX$)?l=qN2j`uBT!j?*|IRO)30++MEakxd3UA|69`GM8WGZ(4rYhrAcWXi_ZxI+taeST--HE}@%)3;cic&&ffXF3xAP%U5lEvbNfdbsKG z1{GCw)_wjyilr^>T!?#ZmsouLrz_lAaY7neXJa@Pr}yfHGi^*SDWI@$9&<-hab1vK1<{H2Xe@%g0xzb@rSFeUB=6pL2cs zFGmcL{E4!RP)m~KQJyV%{+q=qEL8^0_0K!XH`Bko+@1kfR#6*H{GSWxw#R6ircYbX z@h^e1FEwZmIY{)HpKAk1wQ=7J7Q7 zz3ORe_1NJzMrG=vSbxtwzTyvbtPYxKbh+#O!Bh&qbYf(9e+s%1`&&O|i#?pZbyQr< z*Di=Vbnu{!Lm<$&)3^l)E(w9)1a}RMJHdhmYup0C0wlP*ySuy7`1Je!?tFK?J9pN) zYtA2aq^frBdiJyTIenyd%`j_p*uY2oEi_{(243A|4Q#0<6i7L$n=O0sc^4MTyA?>y`)KO91c4e_t|?t#Y8E* zlh|+zKK8-+5RCZR0yB0YC(dNp!U-3+dABGm5}=fWHbUMHTdtJHmiiOx_klr}PZLam z6gR_^xzL$*BY=9>Ld0I|CZ1LSJiIhMf?(uF2`g0Qs;i?5%TynT%Pj2Er;B<5Q1<>x z=vtp~nWw?iX_O;;c4E*@qc}Xk)VEA@EQ-?G^9@ldKqJ5DlG%NupS?_Mr32n^cR|M^ z^2v7ytopKiKX(;43VrGE%M%BmA;$3tSEIN^x!M>#6mY&W($0PIx2U5JQ>q(9=hw5N zy=T(x^E@-rAfdwnuow;$kU1f;tgc=(dlr}WmJc`a6b+)+@yPj1*wj*{Bz*L;-@HJE z2HIBgCC`vATbJ8EDgh^3Xqk(Pc<3$`ene8|-V_cw*rPkhta>~N+%_C~`cNJ5oGDR8 zxG5AJZQxM!*#>+-LhE$IO)p6sf_O`}eb{y<=)sXTdvk#z*TPokbxS#XH^}yPg{&EG zYoy9Bo|lojHYZ`%=Zgpy#j#f6>Cu7IYzpZy;WgOC9tG7nh75AL6wF21E;BiqcqQiv zJY^6b1_f|ePbeha+JwADx&AiamvzqO9~+*;_1RI3y~muJrm=ALRjYe8LR#q@ek}v{ zt~^uzNc5nBzCZman=MYWsyWFAXa7YCs=LMyShfjD0R=M%wzqqDRU&(qOI%%6l;5W% zNPr4W`TMUEEa;Qm9ouOE`l-b=<0BQTNt|wfMSou$$Mrq9$l6pNNZUR)3>3dJYajo;{lLlkHabjrkQ%r+Dy<;=^^SPB5kbMZsTn*MI z5}(QKyzoL{p*Ar!Bi$`$NNWeMv?|1Rel~n^Do5lUstEr%B&GPM+#~Sr{Q{=#+vlL% zufD4`net9Zq`VjuFGq9^a-6NoK`ZEV=`z8To9*x7n)7DO%TRTDBqNjTK6XQ0PKPl* zxC}>pk)9njI09?lh0CblZJqB;>zPvyw_a!>>D#Z;GCAB4c>Y!*lM(}#JgMJrd#-3m7-^RF zJahvhb-!s*M1&}DWI=D9j^UwbyL+hf_iM_{IkZ(l1RLJe11yb$602FZ-CdfBWelUB z`@wP-i>%LoZ@H`d`^;A23AfFI0BZ5dUJZ#3bxc2BniyZQXpC%rowZhbF^8`iXYmXa zXN%E!Q&wKfx5=iXJ_IjyW;e-fJLr#hfA2l)tJ5fm?|26LtPhU&fzfymrP4Bbi zfSVO$zHR3;aRpT#+p>;zndR2E5bJnMN{Y7%4XcY0x6;-*yC?bqX<_;~0s|gupX&EI zbyd``mE;)t`?b;2G#zVnQ4JSkYBt1R5L?;XNhoX*ol4)KBMC+;hNA@|DF2Y}2B3Ax zBUSZ@`Loh7_-6)2E)XU9BYfA$?=x@paQC>`%n~J7T|OBZ85$XSw%`~y+OMC{>3q%d zl=3l!(>hAG0a-D{u&kYvV4Ym2>3{~e*|ed*>zFkZ*r+Q-?)w$X5>0^nxZTqsy8D1S z7oPuyF+kSv7L;s3YN=spj_IJC>g{^z+j4} zWYzh5BVgoPn=z*t0%XbVO>ppbDM%$pHDZF+it1iV2~)ns^__{>rzjWckFMl9*6-et zFl(IlQ03Rqb_uRpoALCX#EW(7`+? zeVuik$}_K@XX5FR@`p({XTkNnG|7T=>pMXoQjVuKV$IKf55;i;h*ZRz&A^y^{kWPw zG+jKz_N)FI(HkMrgc=d76{?+B3V*0`F9S=#k45Xz(uwjVE~*F~g_v&Wy8SOy5sG zRN9(w#tGOMDLy5uNgt1xJxvBt>x;bX|7frX%j2n-d}CwX3zui(g$Of^>YXQJQWGiXGW}~ z=>Cpe^&6exbPW+s2;4H_HR6$QIWl2Bd)P>zSaoHEj5q+lt2%IyQVgR%^rkC;eHBJX z>IGRbK^#4nHHBne_2an!jSZ5mK|9(Tn9k*T``w;>J#6o1X5n3do+vOHp)6pS$j3|e zaDoEsi%xYoT|k16LQ4NmUZtyJ@8VI^ERXHj=s^}cXdVS zF8V%u`ntUw-5<1XKOW4k-um6IKkr{hp}!#Py7#~{IQefCijB`M_SQ2|2I-0b{ap+O@n?q8*z$eXSuVwo>^Bjb*xzmVVD8oWSDp6W?xZ-MzlP;<0|t zhsC$QKios!Q0~5aP#}I#cxN#-@sB-|qkKW^#@+o6!O8gam@059yVTQQv|{Jf@YfD# zclNW-bIM8BU8CPG>PL!Wzc17fWf3MS$1e1ZAQMg1*XCWyVT8-|f!q1wvVMORw-RclE0$KIC#jnkZN&i_(_~k+wRF zU36{YX3!m#%f()O^g0dC=2$Vz$#`R{ z91h4Y&$^7W)t~V163v-i_OE$Z#+ooBq8N}`RUF=a@K9|VQqBf|DoZ^T8^^D#B9ctD zx5j&~3up<-iF@=U9hcg(asJAQ7_rqs+X5sx(09I2W7o_omf+`lw&e?l#2^}ExL2fx1Othkkg z^oe7T8h~2VI@>Pcg~mHg!*9CBy`N{OB!gjy*%iWlRQR z(^z_#nvc(48yxJ#mmOU-99V5V-~GJ$_%vMea`V)h)w&*3Kl*C;t!*a$q%%8ewb2;5 zVHW~~RoF~V-e9YyDp(Kt{+P(ltJm)YAa`GaYyxUMnM^`xbv znN8M~;uKyx5v%!>4#EmXBb)whByfsA^&vBOZC*{o zSgVMC>hw7`A&4y%;QDlXPFP%V}3LeB3%{r(yUPH_-LGg>TI^bLM!5I-#tzjLe zU6DS!gpKtw-`M?HN=h5`@)hN|eBMi1I8p<*V z2TyB}Z5Qt(!6H$sM1KrjE}W1YRv4uGXtd-M8F<26z``wM9eOF*1Tu(vhD__50~DZI zLE=M!*(AEhZzd}f1+x?YkcuV>orK7BG}?#j_iKN!aOlUq^2*Jq(h>gyF^Z!x4V z`Ppbw!&EzZ+VIg}VK-4LX>NUHYUK)Cee3No8?Bvv7VSB|S#?ngu6M3y!7p3U zUrus%cW>+gF4`mOfxb9fO5rL*IUT>IvT_p->MC6%Ym6G?-t=i(rHD0tBL&UOVi-oz z?rxc+S7wnNjvE1XvzZKkRcK3>ek_Fkw7cf~rBT{&6rsOcdKy%zcoscu{kh_-y0WS` zR_-ZR1T_kvU-Fan9#atL&SQ_(f^50U8Iz|d-jr2F~7INhT}akQkUe5lx$`(SSLq!k~8i9ocRLGl|JP1JBc zLK~El2G>O4;v6bf<4*6VKzYdYj^)9yKj=xRomi2S`Yh88WsnG&5AEusq;`m={ zy*FFf-yD5`e#K4yI1V z3Sa$~uZ&{~@@@1NF2vuTsfZ2(U#5}IKR+cnIDc#%6zI2Q*dMljf2uB8u7j%Rf`lhf zLF$hw*I0{d9R|LTf21YHxX<3__)W{3!YXpwI z{ApZVEOUD^7guL?{r3r)pwtZt4o(QncgZq2c1;gI8&Q z!5}qf2UAURSACG0j2yhq*wS3e03_?_DzE8k>}n2gFR#f(!^6q-pXOlj{}e9pU&7^B z)SRu{;mw6hD&lC!ckcX2c~{eQ|A{4e?39Gq}PG_AbN_4x$&Xn6U!3_x=5G5n)}#(xB; zswskW%$;4V9PDYhLDJ3+jvDac>T}X?aq#fc{8ukkcXMY)XDfSG8Vh4v7jux7v89VX z4<{dsBpfkw8nrJDt`06=92{w+HEC3gP2mmUyKf9YiuN`x`XD<8dk51m&JK3wEK;_{ zrZ#WjdMMhP+PayUoBa!&x*L3$u3j`;VEFPskrMi^ktmznTe^Os5#;-4#IEMfAURt& zY%=Di4rXv={z2k@7z!jM<>0B$&dI^c%R|G?#UaSc1s@6@p8&k%xH+4e zyTEby$IKcaO*a$Qf3b9Mwgbt*i+|+NaDh~eU7f8w_5ZOT9FBiV0}vc8c)x!ThI8P5 zum(#Zf^~~et50ifns1DUlarfUK#Oy%<~OeZrw%6yrXI^)AdIA^2TQi3Y5gOXSJVAT zdnnd^cTRf(HMMlf2yj1=j!IBp2uZ zAt~W#ad7g$(cq^M;1T5Db$?Rju^!yhfir zN>kx){=!Z|EwOcpP275mPOquVGb9@bRN$qT4QQxAm(8=b%~@+5zi5{{7Q}85FyQO| z6zPhQB;ZmXF1)5i)h*b_SSGSytSjwjk{dydh=%Z0mH6do#X0S znZcbJ9%MiY=2n(pT>ptsASo+X7d3NdX$Lz;2YYjP#1Z_Dg)|+FP0c|v=I&Oe=JL+Q zUjNBt2wyExn~kOzgTP$| z^OXdZyQ3MgnZrxqnBi|>Vd2^4Vv3vhf2_~0AgeAdry`gbUz#&|UvZhGucxeDW^~Jb zGau(q#(lZ7yQ^cantLkuX>G4L2Yz^a2)=oV*gk~z->{F>n%6K_eOWE8_;ZKtcU^Hr z@lw(EB1^JN_dxHrMUhbS*-T%4oNn1=8Qmu~_D&9X&iDP(A#K#MK(d=3?CINYc#fQl zuJ2L&t&85b%NLES2O<;HMt2j3zb>`z8lulWxNP<~bX{zJp3#;2TEvQ?pA5V8eyZ@| zj~Zq^v{~txG1e!|8UA`Uc)M_=+j6oyv9tL@^=2N;$#Jf3*;u5@sgb^`zrX(+J+h|e z5-%$=(SU=ak*1OMSEB)~eX7`NkK5*xuVOdeo}QlGo>Hz^-kFB2s;z*H+R?$q#lgki z#ok^^@vhm~S-{5WOWsRt9CBPxoPQ7^VnAGWwvn=eLLaTdUd~u&PEHtr0>?PCva*ss z4ob7WzK*{hA0MwCudc2>o;sJBIyX0$7iZeLLDNfne$GsTiHRA38Np1b%EZW+najWo z4b2G1&(F^Y$uBI-67k?*7h|XTjws~!jKsimNw+mop!6Z7y1Kf?rP{^W#pROo?ko|SW*Vi%S?36^%`$+ zP5MekMn;ZC66IATA>r345-1F|$t)-y5fQAx(w6A=;*SVHN766^ z(V{l-en%npD^nX_2Xp3S(8XVc$7~3Lw{v`!Xh3W<1c8PFxD~edmv&rJ=lwxDXbt@g z@zx*0S?g9Ct}5Le2-q)*IGVJzM)dut-w)o)x^b5k{{lo&=qRcnJ*R!Z$@YB(?Un8T z%K!#?(SUKIQ#hz7yy5~5_3>`l*zWavyQC!S&R&RMJS@=+V0A1H>YSv{7`RbJ%QqMz zD6VGsRT7K@ycz{ZngM0S8GsjnHF^XoZzMr*Bt!}UD%}T|2zs1zB|ShNA|z9}QEyZ_ zqlW`bfFhwVR>DxwG=kx6d!|01v=(&rN#ndf`Rs$HVMsC5h6XsL+W+w(5%WRI$ct7y zDGBA(o_uZWM?;U}LF~q#)3*G1J_~(dEU=zoW~L1Mdvnkp`rSToZ+Dwd0hSHFy`W|| zWgsQa3ZA5a&Xd`KDgia~Vt3)O!x)2;nqK`djO(@(!Xo*3aQNtZ6|m0(3(WE1&zr^G z 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%0DF>`4z68^Hg7#crR7dQDl>?p&D|7NPR)C{K-At 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

    Mj~6Sge*;c($#62YWrk9j1uj(C(_afS^vMGE&w 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 + + + + + + + +Errata Description + + + + + + + + + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Errata Description

    +
    +

    Chapter 6 Page 173 C# and + VB Code

    +

     

    +

    The first code sections + contain the same error regarding the name of the DataGridView + control

    +

     

    +

    C#

    +

    the line of code:

    +

     

    +

    datagridBooks.DataSource = books.Books;

    +

     

    +

    should be

    +

     

    +

    dgBooks.DataSource = books.Books;

    +

     

    +

    VB

    +

    the line of code:

    +

     

    +

    datagridBooks.DataSource = books.Books

    +

     

    +

    should be

    +

     

    +

    dgBooks.DataSource = books.Books

    +
    +

    Chapter 6 Page 175 second + to last paragraph

    +

     

    +

    the phrase

    +

     

    +

    Chapter 6 will introduce + you to the part of ADO.NET that acts as a gatekeeper

    +

     

    +

    should be

    +

     

    +

    Chapter 7 will introduce + you to the part of ADO.NET that acts as a gatekeeper

    +
    +

    Chapter 2, page 22, + Section Holding Disconnected Data: DataSet, + paragraph 4, last sentence.

    +

     

    +

    .. is + the DataReader object described later in this + chapter.

    +

     

    +

    Should be

    +

     

    +

     .. is the DataAdapter object described later in this chapter.

    +
    +

    Chapter 6 page 153 and + page 154 Listing 6-20

    +

     

    +

    DataSet bookDataSet + = new DataSet();

    +

     

    +

    should be:

    +

     

    +

    DataSet BookDataSet + = new DataSet();

    +

     

    +

    Similarly for Listing 6-21

    +

     

    +

    Dim bookDataSet + As DataSet = New DataSet();

    +

     

    +

    should be

    +

     

    +

    Dim BookDataSet + As DataSet = New DataSet();

    +
    +

    Chapter 6, Page 126 C# + Code

    +

     

    +

    The line of code:

    +

    myDataSet.Tables["Customers"].Columns("CustomerID"],

    +

     

    +

    should read:

    +

    myDataSet.Tables["Customers"].Columns["CustomerID"],

    +
    +

    Chapter 5, Page 93 Listings + 5-9 & 5-10

    +

     

    +

    The last line of code + should read

    +

     

    +

    testCommand.Connection.Dispose();

    +

     

    +

    NOT

    +

     

    +

    cmd.Connection.Dispose();

    +
    +

    Chapter 5, Page 84 last + sentence

    +

     

    +

    "... you can retrieve + the column name at runtime ..." should read "... you can retrieve + the column ordinal at runtime ..."

    +
    +

    Chapter 9, p. 305.

    +

     

    +

    The paragraph right after + figure 9-27.

    +

     

    +

     

    +

    .. and + whenever it notices a difference, it lets Table1’s rows override those of + Table2.

    +

     

    +

    .. should + be ..

    +

     

    +

    .. and + whenever it notices a difference, it lets Table2’s rows override those of + Table1.

    +
    +

    Ch 6 p 115, top three + lines of code (in the C# sample only) should read:

    +

     

    +

    tempRow["ID"] = 1;

    +

    tempRow["Name"] = ...

    +

    tempRow[Category"] = ...

    +

     

    +

    the .Item specified in the + book is incorrect.

    +
    +

    Chapter 7, p. 210, listing + 7-28

    +

    Used an underscore to + indicate that a command continues on the next line in a C# example. + Underscore is only used that way in visual basic.net.

    +

     

    +

    [excerpt]

    +

    //Define the table + containing the mapped columns.

    +

    DataTableMapping usersTableMapping + = new DataTableMapping("Table",_[SM1] 

    +

         "tabUsers", + mappedColumns);

    +
    +

    Chapter8, page 239, C# + code only at the top of the page.

    +

     

    +

    DataTable subsetTable=view.ToTable[];

    +

    should be

    +

    DataTable subsetTable=view.ToTable();

    +

     

    +

    also

    +

    DataTable subsetTable=view.ToTable["TableName"];

    +

    Should be

    +

    DataTable subsetTable=view.ToTable("TableName");

    +
    +

          Ch 5. p. 79, Step 4 at the bottom of the page.

    +

     

    +

    add a semicolon after

    +

     

    +

    ..Integrated Security=SSPI;"

    +
    +

          Chapter 4, page 55, Listing 4-1: The first line of the + program listing should not contain "175". It should read:

    +

     

    +

    static void Main(string[] args)

    +
    + +

     

    + +
    + +
    + +
    + + + +
    + +
    + +

     [SM1]Remove +this underscore from the C# code.

    + +
    + +
    + +
    + + + + diff --git a/9781590595121.jpg b/9781590595121.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1adc1aa16c122dd2431f8406790de1d2765f75fd GIT binary patch literal 9072 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�*B zg3s!<)G)Jf{HquKi)jcMug=@S@$nVCwpYx z`<{2?D8pepv@#&PPE8k_5jB!RdDD>QS7%%b*f)bym0&4cQr5? zv3IsA3VN$@x`M*XI@m8m4GzlOjTj^M^xEPsYIM@69z(~Y18eG1AnGv>O;R0O-C1x9 zV1tj-u&c7s?3r~P@QRg^o$3QCq8R^vZk+kdLhL0s@K;($;|5jhC;@c;X8gD4ssX%L{KLEp@^eFO zG~J@pCcwuGx_8$#ERudd!MzKWM859;*v9(=)cX-HQtYC zLM!5c%5WU;eIV<4b3(h4cTq1K%FEw<#~+k1Jm|XooSshSQG9L`H}JP}f7Qc(c*=iq zr&g6G_O!tNJ2_IH&*Omh>PGq9Zk++KNi%~$7u4qo+q<*)hZOOhrppb<;Fj9ouF{AAUh z(u1Tt{KFM%$G3g8*!LvR8Y!X$Br3TTy69!7S)NES%^h}W1*?Db{jzF2 zR6)5_otSF%_D2M9G!bQpvI@J$MQODh!_;JKZK>^5L)>n0WZ0kI7dMigKJC9lQ5Nxp z4l4yNQrGKub>_c)^vBdyEXf!O4qzU6D|9tlwY0h|f1(#Wui=0LuneE^N*U~eZ@joN z^J=W~_^G>0bDm1o;?vzil*<{pQSdDF6DyWPA5)6N^)t31&&uDv8G zli!K_8x8QFv;T={mv?S;V>+-$?w^RB|3VCIPaA1jA0rDq?Uj|iItkvbw8@Rzihk;O%zpNYtvlwQDEO(yqv+tj?`VJna!`?% zyLeUE{HGFZlCgPnTk((#5y$*L;C#Z!lgQq`cAGq%JkA1s^HRy*lWr6lWo9@<4SH}| ztG65c+QU=OH-GAmm5SJ-`f~f0#?ytUwE&&D-+Jv|pD#ZceK8ihA+(=ub&38HOo5Rx z-;$0mVe^s6>w9MdvFBIHO^o`YRXSNYC!cKCm}vLH`BtrxZ=$%};H2GiaEO*g+UMzD z(8VXIkFg7+?5PZ@`MR+&gQ0U#7f0e6re{Hs@;Ba4e&aBsmRA0tJQmmMbMV5g})*zBdE|vOIjx3>Wl|QUB z8rxb_6Im!eJ^I>EtV;dDNG~e^?7I69VmG74>W5wka*0e$+#DULgi$VaL%LM^rmPAmwCYPv zko0rz`^;I^IFvCvWtNq4UgMRH&~D9&iH^JQ2-0_`->8!^C+is{Q}b_AqBF1|qSI0M zuZ+fYQqkAx7U~y|C~XBMrb|Dvt`f4h8pgScnyas#y`3y$DK7gV{X9B2VaNPj-;-Y& zV}N$PBWOiy(w7eP^N(}&rJoM%>LeJDl$^cSW7o#k76o)?h){K|fVKW7gm0PJ?(a6>e`P!s>vT?>vBj^+MTA-bPfqlw^26-Ok48+b zA$1}G@}t~WFpCV^{UW+_jD`5nfd9;d3UBAFVIH`ZgJ{V0tPKC7!WiZ6t2a_sDXSOs z=gvGUf&{6iPQMuS%bm+tbvkni#VqR@Jj=_2^M{E@L-80WMhyuHnDl1 zWO|rQWXh9%cwO7%SFdK?nj>oK)AlryWXyHkt?l?CZpq=XM?7tG8K{jH`TJQ*gv6at z7v{Ua>j{Y2^jOC|Pn!*7>cPvhOYV+d+=+A(Ayi8t#9GL1zaRPbx3*>8-?)8vuhG(I z<~Ea|Zqb@DcTwdG%$QGdBtwqjy4p66LC+kPwW&nB_E>9KiT(!fJgVheFzL`4w-ArSCT6{I4B1WypDk0?a~9(bV@eL^bNO1zMm-+#^=d%WIRk1w&e zB4_oVGdpwUeBU|eJKt^QwW}Ln|NbivyHyy@kbl54aU*y>AD1fV;q*;9cN;a5uOIyc^sL5CO9hYyz9X79d#= z-ply|;6d;Zco^vV%~D%4aLi2bn>KNiF-7VrbCH#bUbY}LZba`}>zsP>o23F!5CYfvzQ)E7*zNBxchGZZ{?a~WE*%th=UJ+ zJwR=D`1K>y9|AkUhrvfc6L<_X0JVLby3s#xrrrhGz;6HAUg}o=d>{3G|NH>;L68I= z2kk)prKr;&13Ew_I0U*t4|oD}1GPO&eFPi@Pl98h7xaVU-~>>+lhjXvr@<#d7JLeP z8k_>30RvzVv_#<#_VH#+L_ZS z)}X{Mj*JYjE@RB;B>%I>MVC2Dn{MtkfF5R7t)xN6xSygP;%S|o=GjSBM7ku7^fr1| z>p9vI^XpsudZpC{I*?qXym45qIs)whBqk2$ql{AH%EGlYi?nVDq`5lC2uJvd*M6Ru z=Kg7~_2OK`m!W^ftNaC(a{5Vl$iu@Jvo`^!vPqKdu(A{S@>keyUI}X#yskNSR;HZ3 z?2q)W)@~FIidCr_^T;yBFCR;~Ri&K1R;q{;^+NkBbFr8WfPT#NrwOpVRzGUKzUT|! zFyoA)v1I+uGVcZc^>XbjJZSuJv}l(5DUOnwY3h>4mn2ylWvLRk6pE6?0unq7?K!&c z|9a84T)CZGeXgV2t*g*zCD$r+7kVjN{w^}_@<^l|!^?8yU$)WpSWdr(y*Cb3`Jw&( zUYNj|h3SCDkbn6sic6x(zv7oZp8@T6tEG#c^v`KZ=b7e_y=kOexSlEwVFTv3Hm?Fm~GF&F&~9yi8-jIi5eOI-Akk|-&Z<7MY>}p#eZI|ivq#UTU$2} zF3!yCtTVA}!Lx4PDJpoh<=5VMojfO76hHPb{(?73X`TU3%gE-s6)@%i*$9>WriJ6P zczS!W*e%%Nc09fgtZ~vbQ#W(g!g(A1U;{_p-OE`DJ=?;snd`ebHh~P+E}`po+;y$} z(XagG&?|p>>FTB*_21iVUi;NQPd>l>mzkIM{UP_Q|6GvEO6fJN!<(;Mzp}0Shu5JR`-lmpM#*KNNwUhTCi$CW*4DvtdJq&x&Y&ERBhjGt)(ENSX*P%i0Lw5QpTJ_^; z9>e=w=u^})zO30X>wk=UGdG6BNS`W#3y3Ln=7ri*` z5p~@iPg`047=N^%qt3r_gNp4{T%N_{UwVl=B!h}Uq!kuhf#r-}`pWs=)#ks+^#vaRN zDS}SYQjXEwJbY}``I+;dm&%Lvq~s?Ae+{$$s-Fd)(fK9D9z_x?)fDrVMAPmvl{_tF zW8|AfSwBT6Hv5vJmey9BS}FUIBQKfd{so}8S`lv^UrD){1V_bl(qt;p*H6~kQcZdN zmuG(Dqsg|;r`ZO@X6{()>+&=SxRSmT7hlH@D9=bm@d;g~sXAA-)k41J=0a9*3LjNI zq~%Hm;|Ddwl_bBkBH#H&tlj3n-g8XxsMb*WScTKjvJ&5a`TXw+mAypndp(LtqVg|4 zz354|lM{`;)<&gl$_o``R|})DcIEbE2PUWTrBZhMV*LEX)L1rmdSG%oKNYWUYRu*) zhVt25{p>X^&nKrvyT-^ony69*eNk8tE#bF8 z-~N+53$5Un8HFMl)q2;w3(U{)tMihMz79>iq8PyCzpBN*YPVQX{HuI| zc3M>WpP=o_e#h15Yke0h%X$B)DDdZg#~rL_hW*^aF~yE<@XS;bK0pKinpn|Yd@JCx zbbaVa>6z(Sw)FnNY1XLY59Ysa%scLC5*&;y!sRtwW329utG$S(eD@mjm$$A=DPQH* zd3NzRu~BEW`L?n%$-Y*8W|UfA0km_Jy{abvyMu&6&RzaVIrXUW*GJo5`28(S{ugE^ zk^h*i;=@az|54iBCq=$W#jQ)!@vjou*=|-s{|odYeQ>kFyH$2jJgkPy4+u_R?6ne%?QnfBU8{krI5-mm$j1*M0VDIlY5b?o(g% zog;CecjyTc2aUvC%^*up7oo3rqvPDM9<;LGir*CV3gYA7n)2adfl8bxT3NdpSvV7& zYf3-(4UJ^O$+*rJ^477&yy<((1TrLl%zfounX~pa`x7Jstl^vPC z`<&EkqNt%tNL7ZT(w$WJY-qkRJ#)LZk{JIHTs?TF1~Gn+t{SKdRxG1QvI(Kjza t`Oqlrm%jGv#-Nr8j$=J-nX +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_10_1 { + using System; + + + [Serializable()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [System.Xml.Serialization.XmlRootAttribute("AnimalsDataSet")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] + public partial class AnimalsDataSet : System.Data.DataSet { + + private AnimalsDataTable tableAnimals; + + private PetsDataTable tablePets; + + private PetBelongingDataTable tablePetBelonging; + + private System.Data.DataRelation relationFK_Animals_Pets; + + private System.Data.DataRelation relationFK_Pets_PetBelonging; + + private System.Data.SchemaSerializationMode _schemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public AnimalsDataSet() { + this.BeginInit(); + this.InitClass(); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + protected AnimalsDataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == System.Data.SchemaSerializationMode.IncludeSchema)) { + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + if ((ds.Tables["Animals"] != null)) { + base.Tables.Add(new AnimalsDataTable(ds.Tables["Animals"])); + } + if ((ds.Tables["Pets"] != null)) { + base.Tables.Add(new PetsDataTable(ds.Tables["Pets"])); + } + if ((ds.Tables["PetBelonging"] != null)) { + base.Tables.Add(new PetBelongingDataTable(ds.Tables["PetBelonging"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public AnimalsDataTable Animals { + get { + return this.tableAnimals; + } + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public PetsDataTable Pets { + get { + return this.tablePets; + } + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public PetBelongingDataTable PetBelonging { + get { + return this.tablePetBelonging; + } + } + + public override System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [System.ComponentModel.DefaultValueAttribute(false)] + public new bool EnforceConstraints { + get { + return base.EnforceConstraints; + } + set { + base.EnforceConstraints = value; + } + } + + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + public override System.Data.DataSet Clone() { + AnimalsDataSet cln = ((AnimalsDataSet)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override bool ShouldSerializeTables() { + return false; + } + + protected override bool ShouldSerializeRelations() { + return false; + } + + protected override void ReadXmlSerializable(System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Animals"] != null)) { + base.Tables.Add(new AnimalsDataTable(ds.Tables["Animals"])); + } + if ((ds.Tables["Pets"] != null)) { + base.Tables.Add(new PetsDataTable(ds.Tables["Pets"])); + } + if ((ds.Tables["PetBelonging"] != null)) { + base.Tables.Add(new PetBelongingDataTable(ds.Tables["PetBelonging"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + protected override System.Xml.Schema.XmlSchema GetSchemaSerializable() { + System.IO.MemoryStream stream = new System.IO.MemoryStream(); + this.WriteXmlSchema(new System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return System.Xml.Schema.XmlSchema.Read(new System.Xml.XmlTextReader(stream), null); + } + + internal void InitVars() { + this.InitVars(true); + } + + internal void InitVars(bool initTable) { + this.tableAnimals = ((AnimalsDataTable)(base.Tables["Animals"])); + if ((initTable == true)) { + if ((this.tableAnimals != null)) { + this.tableAnimals.InitVars(); + } + } + this.tablePets = ((PetsDataTable)(base.Tables["Pets"])); + if ((initTable == true)) { + if ((this.tablePets != null)) { + this.tablePets.InitVars(); + } + } + this.tablePetBelonging = ((PetBelongingDataTable)(base.Tables["PetBelonging"])); + if ((initTable == true)) { + if ((this.tablePetBelonging != null)) { + this.tablePetBelonging.InitVars(); + } + } + this.relationFK_Animals_Pets = this.Relations["FK_Animals_Pets"]; + this.relationFK_Pets_PetBelonging = this.Relations["FK_Pets_PetBelonging"]; + } + + private void InitClass() { + this.DataSetName = "AnimalsDataSet"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/AnimalsDataSet.xsd"; + this.EnforceConstraints = false; + this.tableAnimals = new AnimalsDataTable(); + base.Tables.Add(this.tableAnimals); + this.tablePets = new PetsDataTable(); + base.Tables.Add(this.tablePets); + this.tablePetBelonging = new PetBelongingDataTable(); + base.Tables.Add(this.tablePetBelonging); + System.Data.ForeignKeyConstraint fkc; + fkc = new System.Data.ForeignKeyConstraint("FK_Animals_Pets", new System.Data.DataColumn[] { + this.tableAnimals.AnimalIDColumn}, new System.Data.DataColumn[] { + this.tablePets.AnimalIDColumn}); + this.tablePets.Constraints.Add(fkc); + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None; + fkc.DeleteRule = System.Data.Rule.Cascade; + fkc.UpdateRule = System.Data.Rule.Cascade; + fkc = new System.Data.ForeignKeyConstraint("FK_Pets_PetBelonging", new System.Data.DataColumn[] { + this.tablePets.PetIDColumn}, new System.Data.DataColumn[] { + this.tablePetBelonging.PetIDColumn}); + this.tablePetBelonging.Constraints.Add(fkc); + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None; + fkc.DeleteRule = System.Data.Rule.Cascade; + fkc.UpdateRule = System.Data.Rule.Cascade; + this.relationFK_Animals_Pets = new System.Data.DataRelation("FK_Animals_Pets", new System.Data.DataColumn[] { + this.tableAnimals.AnimalIDColumn}, new System.Data.DataColumn[] { + this.tablePets.AnimalIDColumn}, false); + this.Relations.Add(this.relationFK_Animals_Pets); + this.relationFK_Pets_PetBelonging = new System.Data.DataRelation("FK_Pets_PetBelonging", new System.Data.DataColumn[] { + this.tablePets.PetIDColumn}, new System.Data.DataColumn[] { + this.tablePetBelonging.PetIDColumn}, false); + this.Relations.Add(this.relationFK_Pets_PetBelonging); + } + + private bool ShouldSerializeAnimals() { + return false; + } + + private bool ShouldSerializePets() { + return false; + } + + private bool ShouldSerializePetBelonging() { + return false; + } + + private void SchemaChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(System.Xml.Schema.XmlSchemaSet xs) { + AnimalsDataSet ds = new AnimalsDataSet(); + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any = new System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + return type; + } + + public delegate void AnimalsRowChangeEventHandler(object sender, AnimalsRowChangeEvent e); + + public delegate void PetsRowChangeEventHandler(object sender, PetsRowChangeEvent e); + + public delegate void PetBelongingRowChangeEventHandler(object sender, PetBelongingRowChangeEvent e); + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class AnimalsDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnAnimalID; + + private System.Data.DataColumn columnAnimalType; + + public AnimalsDataTable() { + this.TableName = "Animals"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal AnimalsDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected AnimalsDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn AnimalIDColumn { + get { + return this.columnAnimalID; + } + } + + public System.Data.DataColumn AnimalTypeColumn { + get { + return this.columnAnimalType; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public AnimalsRow this[int index] { + get { + return ((AnimalsRow)(this.Rows[index])); + } + } + + public event AnimalsRowChangeEventHandler AnimalsRowChanged; + + public event AnimalsRowChangeEventHandler AnimalsRowChanging; + + public event AnimalsRowChangeEventHandler AnimalsRowDeleted; + + public event AnimalsRowChangeEventHandler AnimalsRowDeleting; + + public void AddAnimalsRow(AnimalsRow row) { + this.Rows.Add(row); + } + + public AnimalsRow AddAnimalsRow(string AnimalType) { + AnimalsRow rowAnimalsRow = ((AnimalsRow)(this.NewRow())); + rowAnimalsRow.ItemArray = new object[] { + null, + AnimalType}; + this.Rows.Add(rowAnimalsRow); + return rowAnimalsRow; + } + + public AnimalsRow FindByAnimalID(int AnimalID) { + return ((AnimalsRow)(this.Rows.Find(new object[] { + AnimalID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + AnimalsDataTable cln = ((AnimalsDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new AnimalsDataTable(); + } + + internal void InitVars() { + this.columnAnimalID = base.Columns["AnimalID"]; + this.columnAnimalType = base.Columns["AnimalType"]; + } + + private void InitClass() { + this.columnAnimalID = new System.Data.DataColumn("AnimalID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnAnimalID); + this.columnAnimalType = new System.Data.DataColumn("AnimalType", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnAnimalType); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnAnimalID}, true)); + this.columnAnimalID.AutoIncrement = true; + this.columnAnimalID.AutoIncrementStep = -1; + this.columnAnimalID.AllowDBNull = false; + this.columnAnimalID.ReadOnly = true; + this.columnAnimalID.Unique = true; + } + + public AnimalsRow NewAnimalsRow() { + return ((AnimalsRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new AnimalsRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(AnimalsRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.AnimalsRowChanged != null)) { + this.AnimalsRowChanged(this, new AnimalsRowChangeEvent(((AnimalsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.AnimalsRowChanging != null)) { + this.AnimalsRowChanging(this, new AnimalsRowChangeEvent(((AnimalsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.AnimalsRowDeleted != null)) { + this.AnimalsRowDeleted(this, new AnimalsRowChangeEvent(((AnimalsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.AnimalsRowDeleting != null)) { + this.AnimalsRowDeleting(this, new AnimalsRowChangeEvent(((AnimalsRow)(e.Row)), e.Action)); + } + } + + public void RemoveAnimalsRow(AnimalsRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + AnimalsDataSet ds = new AnimalsDataSet(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "AnimalsDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class PetsDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnPetID; + + private System.Data.DataColumn columnAnimalID; + + private System.Data.DataColumn columnFirstName; + + private System.Data.DataColumn columnLastName; + + private System.Data.DataColumn columnWeight; + + public PetsDataTable() { + this.TableName = "Pets"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal PetsDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected PetsDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn PetIDColumn { + get { + return this.columnPetID; + } + } + + public System.Data.DataColumn AnimalIDColumn { + get { + return this.columnAnimalID; + } + } + + public System.Data.DataColumn FirstNameColumn { + get { + return this.columnFirstName; + } + } + + public System.Data.DataColumn LastNameColumn { + get { + return this.columnLastName; + } + } + + public System.Data.DataColumn WeightColumn { + get { + return this.columnWeight; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public PetsRow this[int index] { + get { + return ((PetsRow)(this.Rows[index])); + } + } + + public event PetsRowChangeEventHandler PetsRowChanged; + + public event PetsRowChangeEventHandler PetsRowChanging; + + public event PetsRowChangeEventHandler PetsRowDeleted; + + public event PetsRowChangeEventHandler PetsRowDeleting; + + public void AddPetsRow(PetsRow row) { + this.Rows.Add(row); + } + + public PetsRow AddPetsRow(AnimalsRow parentAnimalsRowByFK_Animals_Pets, string FirstName, string LastName, int Weight) { + PetsRow rowPetsRow = ((PetsRow)(this.NewRow())); + rowPetsRow.ItemArray = new object[] { + null, + parentAnimalsRowByFK_Animals_Pets[0], + FirstName, + LastName, + Weight}; + this.Rows.Add(rowPetsRow); + return rowPetsRow; + } + + public PetsRow FindByPetID(int PetID) { + return ((PetsRow)(this.Rows.Find(new object[] { + PetID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + PetsDataTable cln = ((PetsDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new PetsDataTable(); + } + + internal void InitVars() { + this.columnPetID = base.Columns["PetID"]; + this.columnAnimalID = base.Columns["AnimalID"]; + this.columnFirstName = base.Columns["FirstName"]; + this.columnLastName = base.Columns["LastName"]; + this.columnWeight = base.Columns["Weight"]; + } + + private void InitClass() { + this.columnPetID = new System.Data.DataColumn("PetID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnPetID); + this.columnAnimalID = new System.Data.DataColumn("AnimalID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnAnimalID); + this.columnFirstName = new System.Data.DataColumn("FirstName", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnFirstName); + this.columnLastName = new System.Data.DataColumn("LastName", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnLastName); + this.columnWeight = new System.Data.DataColumn("Weight", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnWeight); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnPetID}, true)); + this.columnPetID.AutoIncrement = true; + this.columnPetID.AutoIncrementStep = -1; + this.columnPetID.AllowDBNull = false; + this.columnPetID.ReadOnly = true; + this.columnPetID.Unique = true; + } + + public PetsRow NewPetsRow() { + return ((PetsRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new PetsRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(PetsRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.PetsRowChanged != null)) { + this.PetsRowChanged(this, new PetsRowChangeEvent(((PetsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.PetsRowChanging != null)) { + this.PetsRowChanging(this, new PetsRowChangeEvent(((PetsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.PetsRowDeleted != null)) { + this.PetsRowDeleted(this, new PetsRowChangeEvent(((PetsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.PetsRowDeleting != null)) { + this.PetsRowDeleting(this, new PetsRowChangeEvent(((PetsRow)(e.Row)), e.Action)); + } + } + + public void RemovePetsRow(PetsRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + AnimalsDataSet ds = new AnimalsDataSet(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "PetsDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class PetBelongingDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnPetBelongingID; + + private System.Data.DataColumn columnPetID; + + private System.Data.DataColumn columnPrice; + + private System.Data.DataColumn columnName; + + public PetBelongingDataTable() { + this.TableName = "PetBelonging"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal PetBelongingDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected PetBelongingDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn PetBelongingIDColumn { + get { + return this.columnPetBelongingID; + } + } + + public System.Data.DataColumn PetIDColumn { + get { + return this.columnPetID; + } + } + + public System.Data.DataColumn PriceColumn { + get { + return this.columnPrice; + } + } + + public System.Data.DataColumn NameColumn { + get { + return this.columnName; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public PetBelongingRow this[int index] { + get { + return ((PetBelongingRow)(this.Rows[index])); + } + } + + public event PetBelongingRowChangeEventHandler PetBelongingRowChanged; + + public event PetBelongingRowChangeEventHandler PetBelongingRowChanging; + + public event PetBelongingRowChangeEventHandler PetBelongingRowDeleted; + + public event PetBelongingRowChangeEventHandler PetBelongingRowDeleting; + + public void AddPetBelongingRow(PetBelongingRow row) { + this.Rows.Add(row); + } + + public PetBelongingRow AddPetBelongingRow(PetsRow parentPetsRowByFK_Pets_PetBelonging, decimal Price, string Name) { + PetBelongingRow rowPetBelongingRow = ((PetBelongingRow)(this.NewRow())); + rowPetBelongingRow.ItemArray = new object[] { + null, + parentPetsRowByFK_Pets_PetBelonging[0], + Price, + Name}; + this.Rows.Add(rowPetBelongingRow); + return rowPetBelongingRow; + } + + public PetBelongingRow FindByPetBelongingID(int PetBelongingID) { + return ((PetBelongingRow)(this.Rows.Find(new object[] { + PetBelongingID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + PetBelongingDataTable cln = ((PetBelongingDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new PetBelongingDataTable(); + } + + internal void InitVars() { + this.columnPetBelongingID = base.Columns["PetBelongingID"]; + this.columnPetID = base.Columns["PetID"]; + this.columnPrice = base.Columns["Price"]; + this.columnName = base.Columns["Name"]; + } + + private void InitClass() { + this.columnPetBelongingID = new System.Data.DataColumn("PetBelongingID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnPetBelongingID); + this.columnPetID = new System.Data.DataColumn("PetID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnPetID); + this.columnPrice = new System.Data.DataColumn("Price", typeof(decimal), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnPrice); + this.columnName = new System.Data.DataColumn("Name", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnName); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnPetBelongingID}, true)); + this.columnPetBelongingID.AutoIncrement = true; + this.columnPetBelongingID.AutoIncrementStep = -1; + this.columnPetBelongingID.AllowDBNull = false; + this.columnPetBelongingID.ReadOnly = true; + this.columnPetBelongingID.Unique = true; + } + + public PetBelongingRow NewPetBelongingRow() { + return ((PetBelongingRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new PetBelongingRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(PetBelongingRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.PetBelongingRowChanged != null)) { + this.PetBelongingRowChanged(this, new PetBelongingRowChangeEvent(((PetBelongingRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.PetBelongingRowChanging != null)) { + this.PetBelongingRowChanging(this, new PetBelongingRowChangeEvent(((PetBelongingRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.PetBelongingRowDeleted != null)) { + this.PetBelongingRowDeleted(this, new PetBelongingRowChangeEvent(((PetBelongingRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.PetBelongingRowDeleting != null)) { + this.PetBelongingRowDeleting(this, new PetBelongingRowChangeEvent(((PetBelongingRow)(e.Row)), e.Action)); + } + } + + public void RemovePetBelongingRow(PetBelongingRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + AnimalsDataSet ds = new AnimalsDataSet(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "PetBelongingDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + public partial class AnimalsRow : System.Data.DataRow { + + private AnimalsDataTable tableAnimals; + + internal AnimalsRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableAnimals = ((AnimalsDataTable)(this.Table)); + } + + public int AnimalID { + get { + return ((int)(this[this.tableAnimals.AnimalIDColumn])); + } + set { + this[this.tableAnimals.AnimalIDColumn] = value; + } + } + + public string AnimalType { + get { + try { + return ((string)(this[this.tableAnimals.AnimalTypeColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'AnimalType\' in table \'Animals\' is DBNull.", e); + } + } + set { + this[this.tableAnimals.AnimalTypeColumn] = value; + } + } + + public bool IsAnimalTypeNull() { + return this.IsNull(this.tableAnimals.AnimalTypeColumn); + } + + public void SetAnimalTypeNull() { + this[this.tableAnimals.AnimalTypeColumn] = System.Convert.DBNull; + } + + public PetsRow[] GetPetsRows() { + return ((PetsRow[])(base.GetChildRows(this.Table.ChildRelations["FK_Animals_Pets"]))); + } + } + + public partial class PetsRow : System.Data.DataRow { + + private PetsDataTable tablePets; + + internal PetsRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tablePets = ((PetsDataTable)(this.Table)); + } + + public int PetID { + get { + return ((int)(this[this.tablePets.PetIDColumn])); + } + set { + this[this.tablePets.PetIDColumn] = value; + } + } + + public int AnimalID { + get { + try { + return ((int)(this[this.tablePets.AnimalIDColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'AnimalID\' in table \'Pets\' is DBNull.", e); + } + } + set { + this[this.tablePets.AnimalIDColumn] = value; + } + } + + public string FirstName { + get { + try { + return ((string)(this[this.tablePets.FirstNameColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'FirstName\' in table \'Pets\' is DBNull.", e); + } + } + set { + this[this.tablePets.FirstNameColumn] = value; + } + } + + public string LastName { + get { + try { + return ((string)(this[this.tablePets.LastNameColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'LastName\' in table \'Pets\' is DBNull.", e); + } + } + set { + this[this.tablePets.LastNameColumn] = value; + } + } + + public int Weight { + get { + try { + return ((int)(this[this.tablePets.WeightColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'Weight\' in table \'Pets\' is DBNull.", e); + } + } + set { + this[this.tablePets.WeightColumn] = value; + } + } + + public AnimalsRow AnimalsRow { + get { + return ((AnimalsRow)(this.GetParentRow(this.Table.ParentRelations["FK_Animals_Pets"]))); + } + set { + this.SetParentRow(value, this.Table.ParentRelations["FK_Animals_Pets"]); + } + } + + public bool IsAnimalIDNull() { + return this.IsNull(this.tablePets.AnimalIDColumn); + } + + public void SetAnimalIDNull() { + this[this.tablePets.AnimalIDColumn] = System.Convert.DBNull; + } + + public bool IsFirstNameNull() { + return this.IsNull(this.tablePets.FirstNameColumn); + } + + public void SetFirstNameNull() { + this[this.tablePets.FirstNameColumn] = System.Convert.DBNull; + } + + public bool IsLastNameNull() { + return this.IsNull(this.tablePets.LastNameColumn); + } + + public void SetLastNameNull() { + this[this.tablePets.LastNameColumn] = System.Convert.DBNull; + } + + public bool IsWeightNull() { + return this.IsNull(this.tablePets.WeightColumn); + } + + public void SetWeightNull() { + this[this.tablePets.WeightColumn] = System.Convert.DBNull; + } + + public PetBelongingRow[] GetPetBelongingRows() { + return ((PetBelongingRow[])(base.GetChildRows(this.Table.ChildRelations["FK_Pets_PetBelonging"]))); + } + } + + public partial class PetBelongingRow : System.Data.DataRow { + + private PetBelongingDataTable tablePetBelonging; + + internal PetBelongingRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tablePetBelonging = ((PetBelongingDataTable)(this.Table)); + } + + public int PetBelongingID { + get { + return ((int)(this[this.tablePetBelonging.PetBelongingIDColumn])); + } + set { + this[this.tablePetBelonging.PetBelongingIDColumn] = value; + } + } + + public int PetID { + get { + try { + return ((int)(this[this.tablePetBelonging.PetIDColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'PetID\' in table \'PetBelonging\' is DBNull.", e); + } + } + set { + this[this.tablePetBelonging.PetIDColumn] = value; + } + } + + public decimal Price { + get { + try { + return ((decimal)(this[this.tablePetBelonging.PriceColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'Price\' in table \'PetBelonging\' is DBNull.", e); + } + } + set { + this[this.tablePetBelonging.PriceColumn] = value; + } + } + + public string Name { + get { + try { + return ((string)(this[this.tablePetBelonging.NameColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'Name\' in table \'PetBelonging\' is DBNull.", e); + } + } + set { + this[this.tablePetBelonging.NameColumn] = value; + } + } + + public PetsRow PetsRow { + get { + return ((PetsRow)(this.GetParentRow(this.Table.ParentRelations["FK_Pets_PetBelonging"]))); + } + set { + this.SetParentRow(value, this.Table.ParentRelations["FK_Pets_PetBelonging"]); + } + } + + public bool IsPetIDNull() { + return this.IsNull(this.tablePetBelonging.PetIDColumn); + } + + public void SetPetIDNull() { + this[this.tablePetBelonging.PetIDColumn] = System.Convert.DBNull; + } + + public bool IsPriceNull() { + return this.IsNull(this.tablePetBelonging.PriceColumn); + } + + public void SetPriceNull() { + this[this.tablePetBelonging.PriceColumn] = System.Convert.DBNull; + } + + public bool IsNameNull() { + return this.IsNull(this.tablePetBelonging.NameColumn); + } + + public void SetNameNull() { + this[this.tablePetBelonging.NameColumn] = System.Convert.DBNull; + } + } + + public class AnimalsRowChangeEvent : System.EventArgs { + + private AnimalsRow eventRow; + + private System.Data.DataRowAction eventAction; + + public AnimalsRowChangeEvent(AnimalsRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public AnimalsRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + public class PetsRowChangeEvent : System.EventArgs { + + private PetsRow eventRow; + + private System.Data.DataRowAction eventAction; + + public PetsRowChangeEvent(PetsRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public PetsRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + public class PetBelongingRowChangeEvent : System.EventArgs { + + private PetBelongingRow eventRow; + + private System.Data.DataRowAction eventAction; + + public PetBelongingRowChangeEvent(PetBelongingRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public PetBelongingRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} diff --git a/Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xsc b/Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xsc new file mode 100644 index 0000000..ba359cd --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xsc @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xsd b/Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xsd new file mode 100644 index 0000000..fda903e --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xsd @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xss b/Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xss new file mode 100644 index 0000000..cf9b9ae --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/AnimalsDataSet.xss @@ -0,0 +1,34 @@ + + + + + + + + + + + + 177 + 146 + + + 177 + 194 + + + + + + + 232 + 300 + + + 232 + 359 + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/Exercise 10.1.csproj b/Code/Chapter 10/C#/Exercise 10.1/Exercise 10.1.csproj new file mode 100644 index 0000000..613318f --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/Exercise 10.1.csproj @@ -0,0 +1,83 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {97E4AA5F-B2F2-4B93-9A57-CD44235212ED} + WinExe + Exercise_10_1 + Exercise 10.1 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + + True + True + AnimalsDataSet.xsd + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + AnimalsDataSet.xsd + + + AnimalsDataSet.xsd + + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + + MSDataSetGenerator + AnimalsDataSet.Designer.cs + + + + \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/Exercise 10.1.csproj.user b/Code/Chapter 10/C#/Exercise 10.1/Exercise 10.1.csproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/Exercise 10.1.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/Form1.Designer.cs b/Code/Chapter 10/C#/Exercise 10.1/Form1.Designer.cs new file mode 100644 index 0000000..fb7d7d7 --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/Form1.Designer.cs @@ -0,0 +1,313 @@ +namespace Exercise_10_1 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewRow dataGridViewRow1 = new System.Windows.Forms.DataGridViewRow(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.btnExit = new System.Windows.Forms.Button(); + this.btnSave = new System.Windows.Forms.Button(); + this.dgPetBelonging = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn9 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn11 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PetBelongingBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.dgAnimals = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.AnimalsBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.dgPets = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn12 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn13 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn14 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn15 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PetsBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.animalsDataSet = new Exercise_10_1.AnimalsDataSet(); + ((System.ComponentModel.ISupportInitialize)(this.dgPetBelonging)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PetBelongingBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgAnimals)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.AnimalsBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgPets)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PetsBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.animalsDataSet)).BeginInit(); + this.SuspendLayout(); +// +// label1 +// + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(13, 7); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(77, 24); + this.label1.TabIndex = 1; + this.label1.Text = "Animals"; +// +// label2 +// + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(13, 196); + this.label2.Margin = new System.Windows.Forms.Padding(3, 1, 3, 3); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(46, 24); + this.label2.TabIndex = 3; + this.label2.Text = "Pets"; +// +// label3 +// + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(268, 7); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(123, 24); + this.label3.TabIndex = 5; + this.label3.Text = "PetBelonging"; +// +// btnExit +// + this.btnExit.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnExit.Location = new System.Drawing.Point(587, 340); + this.btnExit.Name = "btnExit"; + this.btnExit.Size = new System.Drawing.Size(127, 37); + this.btnExit.TabIndex = 6; + this.btnExit.Text = "Exit Application"; + this.btnExit.Click += new System.EventHandler(this.btnExit_Click); +// +// btnSave +// + this.btnSave.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnSave.Location = new System.Drawing.Point(587, 227); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(127, 37); + this.btnSave.TabIndex = 7; + this.btnSave.Text = "Save My Data"; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); +// +// dgPetBelonging +// + this.dgPetBelonging.AutoGenerateColumns = false; + this.dgPetBelonging.Columns.Add(this.dataGridViewTextBoxColumn8); + this.dgPetBelonging.Columns.Add(this.dataGridViewTextBoxColumn9); + this.dgPetBelonging.Columns.Add(this.dataGridViewTextBoxColumn10); + this.dgPetBelonging.Columns.Add(this.dataGridViewTextBoxColumn11); + this.dgPetBelonging.DataSource = this.PetBelongingBindingSource; + this.dgPetBelonging.Location = new System.Drawing.Point(268, 38); + this.dgPetBelonging.Name = "dgPetBelonging"; + this.dgPetBelonging.Size = new System.Drawing.Size(446, 150); + this.dgPetBelonging.TabIndex = 9; +// +// dataGridViewTextBoxColumn8 +// + this.dataGridViewTextBoxColumn8.DataPropertyName = "PetBelongingID"; + this.dataGridViewTextBoxColumn8.HeaderText = "PetBelongingID"; + this.dataGridViewTextBoxColumn8.Name = "PetBelongingID"; + this.dataGridViewTextBoxColumn8.ReadOnly = true; + this.dataGridViewTextBoxColumn8.ValueType = typeof(int); +// +// dataGridViewTextBoxColumn9 +// + this.dataGridViewTextBoxColumn9.DataPropertyName = "PetID"; + this.dataGridViewTextBoxColumn9.HeaderText = "PetID"; + this.dataGridViewTextBoxColumn9.Name = "PetID"; + this.dataGridViewTextBoxColumn9.ValueType = typeof(int); +// +// dataGridViewTextBoxColumn10 +// + this.dataGridViewTextBoxColumn10.DataPropertyName = "Price"; + this.dataGridViewTextBoxColumn10.HeaderText = "Price"; + this.dataGridViewTextBoxColumn10.Name = "Price"; + this.dataGridViewTextBoxColumn10.ValueType = typeof(decimal); +// +// dataGridViewTextBoxColumn11 +// + this.dataGridViewTextBoxColumn11.DataPropertyName = "Name"; + this.dataGridViewTextBoxColumn11.HeaderText = "Name"; + this.dataGridViewTextBoxColumn11.Name = "Name"; + this.dataGridViewTextBoxColumn11.ValueType = typeof(string); +// +// PetBelongingBindingSource +// + this.PetBelongingBindingSource.DataMember = "PetBelonging"; + this.PetBelongingBindingSource.DataSource = this.animalsDataSet; +// +// dgAnimals +// + this.dgAnimals.AutoGenerateColumns = false; + this.dgAnimals.Columns.Add(this.dataGridViewTextBoxColumn1); + this.dgAnimals.Columns.Add(this.dataGridViewTextBoxColumn2); + this.dgAnimals.DataSource = this.AnimalsBindingSource; + this.dgAnimals.Location = new System.Drawing.Point(13, 38); + this.dgAnimals.Name = "dgAnimals"; + this.dgAnimals.Size = new System.Drawing.Size(245, 150); + this.dgAnimals.TabIndex = 8; +// +// dataGridViewTextBoxColumn1 +// + this.dataGridViewTextBoxColumn1.DataPropertyName = "AnimalID"; + this.dataGridViewTextBoxColumn1.HeaderText = "AnimalID"; + this.dataGridViewTextBoxColumn1.Name = "AnimalID"; + this.dataGridViewTextBoxColumn1.ReadOnly = true; + this.dataGridViewTextBoxColumn1.ValueType = typeof(int); +// +// dataGridViewTextBoxColumn2 +// + this.dataGridViewTextBoxColumn2.DataPropertyName = "AnimalType"; + this.dataGridViewTextBoxColumn2.HeaderText = "AnimalType"; + this.dataGridViewTextBoxColumn2.Name = "AnimalType"; + this.dataGridViewTextBoxColumn2.ValueType = typeof(string); +// +// AnimalsBindingSource +// + this.AnimalsBindingSource.DataMember = "Animals"; + this.AnimalsBindingSource.DataSource = this.animalsDataSet; +// +// dgPets +// + this.dgPets.AutoGenerateColumns = false; + this.dgPets.Columns.Add(this.dataGridViewTextBoxColumn7); + this.dgPets.Columns.Add(this.dataGridViewTextBoxColumn12); + this.dgPets.Columns.Add(this.dataGridViewTextBoxColumn13); + this.dgPets.Columns.Add(this.dataGridViewTextBoxColumn14); + this.dgPets.Columns.Add(this.dataGridViewTextBoxColumn15); + this.dgPets.DataSource = this.PetsBindingSource; + this.dgPets.Location = new System.Drawing.Point(13, 227); + this.dgPets.Name = "dgPets"; + this.dgPets.Size = new System.Drawing.Size(546, 150); + this.dgPets.TabIndex = 10; +// +// dataGridViewTextBoxColumn7 +// + this.dataGridViewTextBoxColumn7.DataPropertyName = "PetID"; + this.dataGridViewTextBoxColumn7.DefaultCellStyle = dataGridViewRow1.DefaultCellStyle; + this.dataGridViewTextBoxColumn7.HeaderText = "PetID"; + this.dataGridViewTextBoxColumn7.Name = "PetID"; + this.dataGridViewTextBoxColumn7.ReadOnly = true; + this.dataGridViewTextBoxColumn7.ValueType = typeof(int); +// +// dataGridViewTextBoxColumn12 +// + this.dataGridViewTextBoxColumn12.DataPropertyName = "AnimalID"; + this.dataGridViewTextBoxColumn12.DefaultCellStyle = dataGridViewRow1.DefaultCellStyle; + this.dataGridViewTextBoxColumn12.HeaderText = "AnimalID"; + this.dataGridViewTextBoxColumn12.Name = "AnimalID"; + this.dataGridViewTextBoxColumn12.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridViewTextBoxColumn12.ValueType = typeof(int); +// +// dataGridViewTextBoxColumn13 +// + this.dataGridViewTextBoxColumn13.DataPropertyName = "FirstName"; + this.dataGridViewTextBoxColumn13.DefaultCellStyle = dataGridViewRow1.DefaultCellStyle; + this.dataGridViewTextBoxColumn13.HeaderText = "FirstName"; + this.dataGridViewTextBoxColumn13.Name = "FirstName"; + this.dataGridViewTextBoxColumn13.ValueType = typeof(string); +// +// dataGridViewTextBoxColumn14 +// + this.dataGridViewTextBoxColumn14.DataPropertyName = "LastName"; + this.dataGridViewTextBoxColumn14.DefaultCellStyle = dataGridViewRow1.DefaultCellStyle; + this.dataGridViewTextBoxColumn14.HeaderText = "LastName"; + this.dataGridViewTextBoxColumn14.Name = "LastName"; + this.dataGridViewTextBoxColumn14.ValueType = typeof(string); +// +// dataGridViewTextBoxColumn15 +// + this.dataGridViewTextBoxColumn15.DataPropertyName = "Weight"; + this.dataGridViewTextBoxColumn15.DefaultCellStyle = dataGridViewRow1.DefaultCellStyle; + this.dataGridViewTextBoxColumn15.HeaderText = "Weight"; + this.dataGridViewTextBoxColumn15.Name = "Weight"; + this.dataGridViewTextBoxColumn15.ValueType = typeof(int); +// +// PetsBindingSource +// + this.PetsBindingSource.DataMember = "Pets"; + this.PetsBindingSource.DataSource = this.animalsDataSet; +// +// animalsDataSet +// + this.animalsDataSet.DataSetName = "AnimalsDataSet"; + this.animalsDataSet.Locale = new System.Globalization.CultureInfo("en-US"); + this.animalsDataSet.RemotingFormat = System.Data.SerializationFormat.Xml; +// +// Form1 +// + this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(723, 387); + this.Controls.Add(this.dgPets); + this.Controls.Add(this.dgPetBelonging); + this.Controls.Add(this.dgAnimals); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.btnExit); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Name = "Form1"; + this.Text = "Exercise 10.1"; + ((System.ComponentModel.ISupportInitialize)(this.dgPetBelonging)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PetBelongingBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgAnimals)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.AnimalsBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgPets)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PetsBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.animalsDataSet)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button btnExit; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.DataGridView dgPetBelonging; + private System.Windows.Forms.DataGridView dgAnimals; + private System.Windows.Forms.DataGridView dgPets; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn9; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn10; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11; + private System.Windows.Forms.BindingSource PetBelongingBindingSource; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.BindingSource AnimalsBindingSource; + private System.Windows.Forms.BindingSource PetsBindingSource; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn13; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn14; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn15; + private AnimalsDataSet animalsDataSet; + } +} + diff --git a/Code/Chapter 10/C#/Exercise 10.1/Form1.cs b/Code/Chapter 10/C#/Exercise 10.1/Form1.cs new file mode 100644 index 0000000..44fb9de --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/Form1.cs @@ -0,0 +1,170 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; +using System.Data.SqlClient; + +#endregion + +namespace Exercise_10_1 +{ + partial class Form1 : Form + { + private static string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI"; + private AnimalsDataSet animalsData; + + public Form1() + { + InitializeComponent(); + FillData(); + } + + private void FillData() + { + animalsData = new AnimalsDataSet(); + SqlDataAdapter sqlDa = new SqlDataAdapter( + "Select * from Animals; Select * from Pets; Select * from PetBelonging", + connectionString); + sqlDa.TableMappings.Add("Table", "Animals"); + sqlDa.TableMappings.Add("Table1", "Pets"); + sqlDa.TableMappings.Add("Table2", "PetBelonging"); + sqlDa.Fill(animalsData); + + dgAnimals.DataSource = animalsData.Tables["Animals"]; + dgPets.DataSource = animalsData.Tables["Pets"]; + dgPetBelonging.DataSource = animalsData.Tables["PetBelonging"]; + } + + private void btnSave_Click(object sender, EventArgs e) + { + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlDataAdapter sqlDa; + + testConnection.Open(); + SqlTransaction trans = testConnection.BeginTransaction(); + SqlParameter param; + + // Lets deal with the inserts first. + + // Starting at the top of the hierarchy - the animals table. + #region insertAnimalCommand + SqlCommand insertAnimalCommand = new SqlCommand(); + insertAnimalCommand.Connection = testConnection; + insertAnimalCommand = new SqlCommand("UP_ANIMALINSERT"); + insertAnimalCommand.CommandType = CommandType.StoredProcedure; + + param = new SqlParameter("@AnimalID", SqlDbType.Int, 4, "AnimalID"); + param.Direction = ParameterDirection.Output; + insertAnimalCommand.Parameters.Add(param); + + param = new SqlParameter("@AnimalType", SqlDbType.VarChar, 50, "AnimalType"); + param.Direction = ParameterDirection.Input; + insertAnimalCommand.Parameters.Add(param); + + insertAnimalCommand.Transaction = trans; + #endregion + + // Moving down the hierarchy - the Pets Table + #region insertPetCommand + SqlCommand insertPetCommand = new SqlCommand(); + insertPetCommand.Connection = testConnection; + + insertPetCommand = new SqlCommand("UP_PETSINSERT"); + insertPetCommand.CommandType = CommandType.StoredProcedure; + + param = new SqlParameter("@PetID", SqlDbType.Int, 4, "PetID"); + param.Direction = ParameterDirection.Output; + insertPetCommand.Parameters.Add(param); + + param = new SqlParameter("@FirstName", SqlDbType.VarChar, 50, "FirstName"); + param.Direction = ParameterDirection.Input; + insertPetCommand.Parameters.Add(param); + + param = new SqlParameter("@LastName", SqlDbType.VarChar, 50, "LastName"); + param.Direction = ParameterDirection.Input; + insertPetCommand.Parameters.Add(param); + + param = new SqlParameter("@Weight", SqlDbType.Int, 4, "Weight"); + param.Direction = ParameterDirection.Input; + insertPetCommand.Parameters.Add(param); + + // This parameter will be retreived from the first command insertAnimalCommand + param = new SqlParameter("@AnimalID", SqlDbType.Int, 4, "AnimalID"); + param.Direction = ParameterDirection.Input; + insertPetCommand.Parameters.Add(param); + + insertPetCommand.Transaction = trans; + #endregion + + // Finally moving to the end of the hierarchy - PetBelonging + #region insertPetBelongingCommand + SqlCommand insertPetBelongingCommand = new SqlCommand(); + insertPetBelongingCommand.Connection = testConnection; + + insertPetBelongingCommand = new SqlCommand("UP_PETBELONGINGINSERT"); + insertPetBelongingCommand.CommandType = CommandType.StoredProcedure; + + param = new SqlParameter("@PetBelongingID", SqlDbType.Int, 4, "PetBelongingID"); + param.Direction = ParameterDirection.Output; + insertPetBelongingCommand.Parameters.Add(param); + + param = new SqlParameter("@Name", SqlDbType.VarChar, 50, "Name"); + param.Direction = ParameterDirection.Input; + insertPetBelongingCommand.Parameters.Add(param); + + param = new SqlParameter("@Price", SqlDbType.Float, 8, "Price"); + param.Direction = ParameterDirection.Input; + insertPetBelongingCommand.Parameters.Add(param); + + // This parameter will be retreived from the first command insertPetCommand + param = new SqlParameter("@PetID", SqlDbType.Int, 4, "PetID"); + param.Direction = ParameterDirection.Input; + insertPetBelongingCommand.Parameters.Add(param); + + insertPetBelongingCommand.Transaction = trans; + #endregion + + // .. Start the work + try + { + sqlDa = new SqlDataAdapter("Select * from Animals", testConnection); + sqlDa.InsertCommand = insertAnimalCommand; + sqlDa.InsertCommand.Connection = testConnection; + sqlDa.Update(animalsData.Animals.Select("", "", DataViewRowState.Added)); + + sqlDa = new SqlDataAdapter("Select * from Pets", testConnection); + sqlDa.InsertCommand = insertPetCommand; + sqlDa.InsertCommand.Connection = testConnection; + sqlDa.Update(animalsData.Pets.Select("", "", DataViewRowState.Added)); + + sqlDa = new SqlDataAdapter("Select * from PetBelonging", testConnection); + sqlDa.InsertCommand = insertPetBelongingCommand; + sqlDa.InsertCommand.Connection = testConnection; + sqlDa.Update(animalsData.PetBelonging.Select("", "", DataViewRowState.Added)); + + // All good, lets commit. + trans.Commit(); + } + catch (System.Exception) + { + trans.Rollback(); + } + finally + { + FillData(); + testConnection.Dispose(); + } + } + } + + private void btnExit_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/Form1.resx b/Code/Chapter 10/C#/Exercise 10.1/Form1.resx new file mode 100644 index 0000000..e4003a2 --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/Form1.resx @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAGVJREFUOE9jYBi0 + oKGh4T86JsmxIM0PDjj8f7CAAYyBmkGYeEB/A7D5Gd0LeMME7OQHUAzyOwxDwwAWFjjDhHoGINuOFAtE + uQDdj1iiERadhKOV/tGInsSo4gJo8kX2N/FJmViVANuw9BhRzmurAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAF5JREFUOE9jYBg0 + oIGB4T8IE+MgrGphgoQMwitPyBBChsNdj2wQSPD/7w9Eew+rIUTbjB6A6C4hJoCp4wJcYUBUNONzNsGw + IMbPeF1BjAGgQCJoCEmhTa5iogKUGMMBbplXHirHSUwAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAERJREFUOE9jYBgF + 6CHwHygAwtgALnEUtbgMwGcwQQNgmslyAbJmkg1A10yyASC/UeQCWOBQFAbohhBM+BSnA4I2DD4FAPaP + Ktbu5llJAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAD1JREFUOE9jYBgF + xITAf2IU4VID0ky2ATDNZBmArJlkA9A1k2wAKDwocgEsQCkKA3RDKIlJ8qORIlvppxkAkxUY6Lh2YDEA + AAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADJJREFUOE9jYBgF + +ELgP6XBAzKAIkNgBpBtCLIBZBmCbgDJhlDVBWRFCFVigSybh5gmAGs9GOibLizyAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAEJJREFUOE9jYBgF + 2ELgP45gAYnjkkPRgkshyQag20aWAciGkG0AzBCyDYAFEFkGIIcuyQagxyZJBuBKH0SlgyGWvQBnHyrW + 2WC3JgAAAABJRU5ErkJggg== + + + \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/Program.cs b/Code/Chapter 10/C#/Exercise 10.1/Program.cs new file mode 100644 index 0000000..6e9bf7a --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_10_1 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/Properties/AssemblyInfo.cs b/Code/Chapter 10/C#/Exercise 10.1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b577078 --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_10_1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_10_1")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 10/C#/Exercise 10.1/Properties/Resources.cs b/Code/Chapter 10/C#/Exercise 10.1/Properties/Resources.cs new file mode 100644 index 0000000..f5d9846 --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_10_1.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 10/C#/Exercise 10.1/Properties/Resources.resx b/Code/Chapter 10/C#/Exercise 10.1/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/Properties/Settings.cs b/Code/Chapter 10/C#/Exercise 10.1/Properties/Settings.cs new file mode 100644 index 0000000..77450c5 --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/Properties/Settings.cs @@ -0,0 +1,48 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_10_1.Properties { + + + sealed partial class Settings : System.Configuration.ApplicationSettingsBase { + + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + [System.Diagnostics.DebuggerNonUserCode()] + public static Settings Value { + get { + if ((Settings.m_Value == null)) { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) { + try { + Settings.m_Value = new Settings(); + } + finally { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + + [System.Diagnostics.DebuggerNonUserCode()] + [System.Configuration.SpecialSetting(System.Configuration.SpecialSetting.ConnectionString)] + [System.Configuration.ApplicationScopedSettingAttribute()] + [System.Configuration.DefaultSettingValueAttribute("Server=(local);Integrated Security=True;Database=test")] + public string testConnection { + get { + return ((string)(this["testConnection"])); + } + } + } +} diff --git a/Code/Chapter 10/C#/Exercise 10.1/Properties/Settings.settings b/Code/Chapter 10/C#/Exercise 10.1/Properties/Settings.settings new file mode 100644 index 0000000..bd092d7 --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/Properties/Settings.settings @@ -0,0 +1,16 @@ + + + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Server=(local);Integrated Security=True;Database=test</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Server=(local);Integrated Security=True;Database=test + + + \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/app.config b/Code/Chapter 10/C#/Exercise 10.1/app.config new file mode 100644 index 0000000..e0c39ea --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/app.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.exe b/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..17eb107c6c42adab853e2d07a7e31201717530ea GIT binary patch literal 53248 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.exe.config b/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.exe.config new file mode 100644 index 0000000..e0c39ea --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.pdb b/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..9cb600f7d0f2b8267f669d3b49c66d1876efb8d4 GIT binary patch literal 99840 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

    u1sz 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 UVA(QdJ&^T4)&p4&jH?I!2HIk5ga7~l literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.vshost.exe b/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.vshost.exe.config b/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.vshost.exe.config new file mode 100644 index 0000000..e0c39ea --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/bin/Debug/Exercise 10.1.vshost.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise 10.1.csproj.GenerateResource.Cache b/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise 10.1.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..e215f3e9b5071870abd75841025be553cc23e6b1 GIT binary patch literal 842 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise 10.1.pdb b/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise 10.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..9cb600f7d0f2b8267f669d3b49c66d1876efb8d4 GIT binary patch literal 99840 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

    u1sz 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 UVA(QdJ&^T4)&p4&jH?I!2HIk5ga7~l literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise_10_1.Form1.resources b/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise_10_1.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..de29e90e39ad3da428e282f31a625f6f23983c8a GIT binary patch literal 2934 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYMU9vpJ}qq*4TBeT2c00-Of_~C;O_|KyCp7 zPau65NY??eJrF+ty45O$A(5d3i2Z=Lj3JXD9n8;XC}MDANC84WhE#@f22Y@xREAsz zJs>L=s3IN60|7kRU4Tk*fEc6^oAxfCYaDRf?#qx5bWbXS8_-Qf48=fWuo=S3%)nqr z*bpC}lW`eQ#zK@4pm3_3 z0}m)w1yViPu!77NMKu`WlLIf3EKzz-sx12I!)fS)@rmlPL}&Fksm z5(K0LK$ruR^5sAOPXtno#X;^)4C~IxyaaMs(j9#r85lP9bN@*M1{Q-tvPY0F14ES> z14Ba#1H&(%P{RubhEf9thF1x|WHp0;XKVta+RdGl+><9B!#%Q@GtH z!tJt?;ckD#B0;gaEsLlAyVx=B$cjfy8J}FgnSb=088MaN_J%JKf#i0nnxNjfpsTOqeWaYNkC|c;9YRbV7n>d2pm6MbMXX~F;{pez3=YqQzUz_}F-?&; z%$PSbTu$q_r_a!df@5@#0vC7`u)a|IAg{r2=mvvcp~%)9JO|PZ9GMeloh)M9ls1Xi z;kwTzMuq)>PnaSe1cjA}&t9i0L@RD~~+N?Nj zFGIS#*0q}n+ks`=P$^Qj&^?%q5W)Nd7|cr#G8;80IVZ49$mQ6?m?GJf$8fSO;3{j1 zD@SNjqt5L18EOpKwh}L9>*;(NI>EZ1?!jt{2-YJl2kMhV9tJUA^4Z2{a5hDRB?95lI@OPn=2JwGj;s1*Hjxg^76QHd8j$`TAwLKpyKF&o|h literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise_10_1.Properties.Resources.resources b/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/Exercise_10_1.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYG#c?@9)eSrePSrXyF$tb&TNAlBmi+ z1+~z=(-fX-uQ63uljG}LDiQc|S8T`5PCJh6OpfQ8Uf7g;&gacgGH-HxrCISr^*(Q{ z1$FMvRh(>Xsy0*0WZWr-Wmy!FE_V!IuX1&l`+2^}eV6-H!Br0(j!UjK3c}+mA$g5U z@^Cd&VTvybzs_B_@N2RnR44J87;O{ z$QyPp@I1tisBiMkWpFd%xiLmAkkB&RGNg%?X~;oS(gyDKoccKu;Mn?ZngIsr`k2dk+1Zj{Wgmr>o zK6kxbT3F6MC>6_xgI=CrD;Fed@a;g>%UclWRcG3nDesq8;uX8d<(5EP*Ym72QQhu} zDlgf#@SkXweqx#JiUm0g(Cr&t-QH+;I{rywnCprm&qAgtP7y_+D~giv-C$eU7@lrw z8iU86;)8(GfFZycz%bw}K@^kC9L}!o6Vu@fFhP3JuOAO1=^eayHFWTxTlfM@)Chc1 zz{nB1$5gl!xS}SwJ9xy$cZ3R+MUS=5)S??fl2EMk>D$}KKR@i6CM2k}I0hf&`pW8g zvuu9cHKVBWLgz~Uj)WH-`;%d+Jtb=|hr<*gawGNf-AoqI(L~)%2-f(zYF*N1v{jp- zKx6Ftmy6nrMr$*qWnBCGevbsL*JkL&cyV)Jj|9WeW@x}DzkaUG{pbN!KMKZ5{swQ! BriTCk literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/TempPE/AnimalsAndPets.Designer.cs.dll b/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/TempPE/AnimalsAndPets.Designer.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..dd791c4d00d177a90bb58b3628ee3d433053dfa9 GIT binary patch literal 8192 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 EJ2xAI1ONa4 literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/TempPE/AnimalsDataSet.Designer.cs.dll b/Code/Chapter 10/C#/Exercise 10.1/obj/Debug/TempPE/AnimalsDataSet.Designer.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..5aa31b1d3e9eaf89d887aa1243ecf2cc8d7b2dc4 GIT binary patch literal 40960 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 aJW%sM%>y+L)I3o0K+OX+5Bzz1;Qs>JmTO@E literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/C#/Exercise 10.1/obj/Exercise 10.1.csproj.FileList.txt b/Code/Chapter 10/C#/Exercise 10.1/obj/Exercise 10.1.csproj.FileList.txt new file mode 100644 index 0000000..6168f7d --- /dev/null +++ b/Code/Chapter 10/C#/Exercise 10.1/obj/Exercise 10.1.csproj.FileList.txt @@ -0,0 +1,9 @@ +.\bin\Debug\Exercise 10.1.exe.config +obj\Debug\Exercise 10.1.exe +obj\Debug\Exercise 10.1.pdb +.\bin\Debug\Exercise 10.1.exe +.\bin\Debug\Exercise 10.1.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_10_1.Form1.resources +obj\Debug\Exercise_10_1.Properties.Resources.resources +obj\Debug\Exercise 10.1.csproj.GenerateResource.Cache diff --git a/Code/Chapter 10/SQL/database setup script.sql b/Code/Chapter 10/SQL/database setup script.sql new file mode 100644 index 0000000..ed06dd2 --- /dev/null +++ b/Code/Chapter 10/SQL/database setup script.sql @@ -0,0 +1,94 @@ +-- Create DataBase +Use Master +GO + +Drop Database Test +GO + +Create Database Test +GO + +Use Test +GO + +-- Setup Tables +CREATE TABLE Animals( + AnimalID INT NOT NULL IDENTITY, + AnimalType VARCHAR(50) NOT NULL, + timestamp, + CONSTRAINT PK_Animals PRIMARY KEY (AnimalID) +) +GO + +CREATE TABLE Pets( + PetID INT NOT NULL IDENTITY, + FirstName VARCHAR(50) NOT NULL, + LastName VARCHAR(50) NOT NULL, + Weight INT NOT NULL, + AnimalID INT NOT NULL REFERENCES Animals(AnimalID), + timestamp, + CONSTRAINT PK_Pets PRIMARY KEY (PetID) +) +GO + +CREATE TABLE PetBelonging( + PetBelongingID INT NOT NULL IDENTITY, + Name VARCHAR(50) NOT NULL, + Price FLOAT NOT NULL, + PetID INT NOT NULL REFERENCES Pets(PetID), + timestamp, + CONSTRAINT PK_PetBelonging PRIMARY KEY (PetBelongingID) +) +GO + + +-- Data Population +Insert into Animals (AnimalType) Values ('Dog') +Insert into Pets (FirstName, LastName, Weight, AnimalID) Values ('Tashu', 'Malik', 100,1) +Insert into PetBelonging(Name, Price, PetID) Values('Collar',10,1) +Insert into PetBelonging(Name, Price, PetID) Values('Bone',2,1) +GO + +-- Create Stored Procedures +CREATE PROCEDURE UP_ANIMALINSERT + @AnimalID INT OUTPUT, + @AnimalType VARCHAR(50) +AS + INSERT INTO ANIMALS + (AnimalType) + VALUES + (@AnimalType) + + SELECT @AnimalID = SCOPE_IDENTITY() +GO + + +CREATE PROCEDURE UP_PETSINSERT + @PetID INT OUTPUT, + @FirstName VARCHAR(50), + @LastName VARCHAR(50), + @Weight INT, + @AnimalID INT +AS + INSERT INTO PETS + (FirstName, LastName, Weight, AnimalID) + VALUES + (@FirstName, @LastName, @Weight, @AnimalID) + + SELECT @PetID = SCOPE_IDENTITY() +GO + + +CREATE PROCEDURE UP_PETBELONGINGINSERT + @PetBelongingID INT OUTPUT, + @Name VARCHAR(50), + @Price FLOAT, + @PetID INT +AS + INSERT INTO PETBELONGING + (Name, Price, PetID) + VALUES + (@Name, @Price, @PetID) + + SELECT @PetBelongingID = SCOPE_IDENTITY() +GO \ No newline at end of file diff --git a/Code/Chapter 10/VB.NET/Chapter 10.sln b/Code/Chapter 10/VB.NET/Chapter 10.sln new file mode 100644 index 0000000..bc52a14 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Chapter 10.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 10.1", "Exercise 10.1\Exercise 10.1.vbproj", "{78345A74-D5F0-4AFF-8CE5-2D16817621FC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {78345A74-D5F0-4AFF-8CE5-2D16817621FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78345A74-D5F0-4AFF-8CE5-2D16817621FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78345A74-D5F0-4AFF-8CE5-2D16817621FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78345A74-D5F0-4AFF-8CE5-2D16817621FC}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 10/VB.NET/Chapter 10.suo b/Code/Chapter 10/VB.NET/Chapter 10.suo new file mode 100644 index 0000000000000000000000000000000000000000..5d734af85a5c267344d667ac9a54a42d399f4ef5 GIT binary patch literal 15360 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 If4Tzy1tbqJkN^Mx literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.Designer.vb b/Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.Designer.vb new file mode 100644 index 0000000..3e448e2 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.Designer.vb @@ -0,0 +1,1255 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System + + + _ +Partial Public Class AnimalsDataSet + Inherits System.Data.DataSet + + Private tableAnimals As AnimalsDataTable + + Private tablePets As PetsDataTable + + Private tablePetBelonging As PetBelongingDataTable + + Private relationFK_Animals_Pets As System.Data.DataRelation + + Private relationFK_Pets_PetBelonging As System.Data.DataRelation + + Private _schemaSerializationMode As System.Data.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema + + _ + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + _ + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Me.DetermineSchemaSerializationMode(info, context) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + If (Not (ds.Tables("Animals")) Is Nothing) Then + MyBase.Tables.Add(New AnimalsDataTable(ds.Tables("Animals"))) + End If + If (Not (ds.Tables("Pets")) Is Nothing) Then + MyBase.Tables.Add(New PetsDataTable(ds.Tables("Pets"))) + End If + If (Not (ds.Tables("PetBelonging")) Is Nothing) Then + MyBase.Tables.Add(New PetBelongingDataTable(ds.Tables("PetBelonging"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public ReadOnly Property Animals() As AnimalsDataTable + Get + Return Me.tableAnimals + End Get + End Property + + _ + Public ReadOnly Property Pets() As PetsDataTable + Get + Return Me.tablePets + End Get + End Property + + _ + Public ReadOnly Property PetBelonging() As PetBelongingDataTable + Get + Return Me.tablePetBelonging + End Get + End Property + + Public Overrides Property SchemaSerializationMode() As System.Data.SchemaSerializationMode + Get + Return Me._schemaSerializationMode + End Get + Set + Me._schemaSerializationMode = value + End Set + End Property + + _ + Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Public Shadows Property EnforceConstraints() As Boolean + Get + Return MyBase.EnforceConstraints + End Get + Set + MyBase.EnforceConstraints = value + End Set + End Property + + Protected Overrides Sub InitializeDerivedDataSet() + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Public Overrides Function Clone() As System.Data.DataSet + Dim cln As AnimalsDataSet = CType(MyBase.Clone,AnimalsDataSet) + cln.InitVars + Return cln + End Function + + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader) + If (Me.DetermineSchemaSerializationMode(reader) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Me.Reset + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXml(reader) + If (Not (ds.Tables("Animals")) Is Nothing) Then + MyBase.Tables.Add(New AnimalsDataTable(ds.Tables("Animals"))) + End If + If (Not (ds.Tables("Pets")) Is Nothing) Then + MyBase.Tables.Add(New PetsDataTable(ds.Tables("Pets"))) + End If + If (Not (ds.Tables("PetBelonging")) Is Nothing) Then + MyBase.Tables.Add(New PetBelongingDataTable(ds.Tables("PetBelonging"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXml(reader) + Me.InitVars + End If + End Sub + + Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema + Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream + Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing) + End Function + + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + Me.tableAnimals = CType(MyBase.Tables("Animals"),AnimalsDataTable) + If (initTable = true) Then + If (Not (Me.tableAnimals) Is Nothing) Then + Me.tableAnimals.InitVars + End If + End If + Me.tablePets = CType(MyBase.Tables("Pets"),PetsDataTable) + If (initTable = true) Then + If (Not (Me.tablePets) Is Nothing) Then + Me.tablePets.InitVars + End If + End If + Me.tablePetBelonging = CType(MyBase.Tables("PetBelonging"),PetBelongingDataTable) + If (initTable = true) Then + If (Not (Me.tablePetBelonging) Is Nothing) Then + Me.tablePetBelonging.InitVars + End If + End If + Me.relationFK_Animals_Pets = Me.Relations("FK_Animals_Pets") + Me.relationFK_Pets_PetBelonging = Me.Relations("FK_Pets_PetBelonging") + End Sub + + Private Sub InitClass() + Me.DataSetName = "AnimalsDataSet" + Me.Prefix = "" + Me.Namespace = "http://tempuri.org/AnimalsDataSet.xsd" + Me.EnforceConstraints = false + Me.tableAnimals = New AnimalsDataTable + MyBase.Tables.Add(Me.tableAnimals) + Me.tablePets = New PetsDataTable + MyBase.Tables.Add(Me.tablePets) + Me.tablePetBelonging = New PetBelongingDataTable + MyBase.Tables.Add(Me.tablePetBelonging) + Dim fkc As System.Data.ForeignKeyConstraint + fkc = New System.Data.ForeignKeyConstraint("FK_Animals_Pets", New System.Data.DataColumn() {Me.tableAnimals.AnimalIDColumn}, New System.Data.DataColumn() {Me.tablePets.AnimalIDColumn}) + Me.tablePets.Constraints.Add(fkc) + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None + fkc.DeleteRule = System.Data.Rule.Cascade + fkc.UpdateRule = System.Data.Rule.Cascade + fkc = New System.Data.ForeignKeyConstraint("FK_Pets_PetBelonging", New System.Data.DataColumn() {Me.tablePets.PetIDColumn}, New System.Data.DataColumn() {Me.tablePetBelonging.PetIDColumn}) + Me.tablePetBelonging.Constraints.Add(fkc) + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None + fkc.DeleteRule = System.Data.Rule.Cascade + fkc.UpdateRule = System.Data.Rule.Cascade + Me.relationFK_Animals_Pets = New System.Data.DataRelation("FK_Animals_Pets", New System.Data.DataColumn() {Me.tableAnimals.AnimalIDColumn}, New System.Data.DataColumn() {Me.tablePets.AnimalIDColumn}, false) + Me.Relations.Add(Me.relationFK_Animals_Pets) + Me.relationFK_Pets_PetBelonging = New System.Data.DataRelation("FK_Pets_PetBelonging", New System.Data.DataColumn() {Me.tablePets.PetIDColumn}, New System.Data.DataColumn() {Me.tablePetBelonging.PetIDColumn}, false) + Me.Relations.Add(Me.relationFK_Pets_PetBelonging) + End Sub + + Private Function ShouldSerializeAnimals() As Boolean + Return false + End Function + + Private Function ShouldSerializePets() As Boolean + Return false + End Function + + Private Function ShouldSerializePetBelonging() As Boolean + Return false + End Function + + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim ds As AnimalsDataSet = New AnimalsDataSet + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + xs.Add(ds.GetSchemaSerializable) + Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any.Namespace = ds.Namespace + sequence.Items.Add(any) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub AnimalsRowChangeEventHandler(ByVal sender As Object, ByVal e As AnimalsRowChangeEvent) + + Public Delegate Sub PetsRowChangeEventHandler(ByVal sender As Object, ByVal e As PetsRowChangeEvent) + + Public Delegate Sub PetBelongingRowChangeEventHandler(ByVal sender As Object, ByVal e As PetBelongingRowChangeEvent) + + _ + Partial Public Class AnimalsDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnAnimalID As System.Data.DataColumn + + Private columnAnimalType As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Animals" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property AnimalIDColumn() As System.Data.DataColumn + Get + Return Me.columnAnimalID + End Get + End Property + + Public ReadOnly Property AnimalTypeColumn() As System.Data.DataColumn + Get + Return Me.columnAnimalType + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As AnimalsRow + Get + Return CType(Me.Rows(index),AnimalsRow) + End Get + End Property + + Public Event AnimalsRowChanged As AnimalsRowChangeEventHandler + + Public Event AnimalsRowChanging As AnimalsRowChangeEventHandler + + Public Event AnimalsRowDeleted As AnimalsRowChangeEventHandler + + Public Event AnimalsRowDeleting As AnimalsRowChangeEventHandler + + Public Overloads Sub AddAnimalsRow(ByVal row As AnimalsRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddAnimalsRow(ByVal AnimalType As String) As AnimalsRow + Dim rowAnimalsRow As AnimalsRow = CType(Me.NewRow,AnimalsRow) + rowAnimalsRow.ItemArray = New Object() {Nothing, AnimalType} + Me.Rows.Add(rowAnimalsRow) + Return rowAnimalsRow + End Function + + Public Function FindByAnimalID(ByVal AnimalID As Integer) As AnimalsRow + Return CType(Me.Rows.Find(New Object() {AnimalID}),AnimalsRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As AnimalsDataTable = CType(MyBase.Clone,AnimalsDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New AnimalsDataTable + End Function + + Friend Sub InitVars() + Me.columnAnimalID = MyBase.Columns("AnimalID") + Me.columnAnimalType = MyBase.Columns("AnimalType") + End Sub + + Private Sub InitClass() + Me.columnAnimalID = New System.Data.DataColumn("AnimalID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnAnimalID) + Me.columnAnimalType = New System.Data.DataColumn("AnimalType", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnAnimalType) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnAnimalID}, true)) + Me.columnAnimalID.AutoIncrement = true + Me.columnAnimalID.AutoIncrementStep = -1 + Me.columnAnimalID.AllowDBNull = false + Me.columnAnimalID.ReadOnly = true + Me.columnAnimalID.Unique = true + End Sub + + Public Function NewAnimalsRow() As AnimalsRow + Return CType(Me.NewRow,AnimalsRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New AnimalsRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(AnimalsRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.AnimalsRowChangedEvent) Is Nothing) Then + RaiseEvent AnimalsRowChanged(Me, New AnimalsRowChangeEvent(CType(e.Row,AnimalsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.AnimalsRowChangingEvent) Is Nothing) Then + RaiseEvent AnimalsRowChanging(Me, New AnimalsRowChangeEvent(CType(e.Row,AnimalsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.AnimalsRowDeletedEvent) Is Nothing) Then + RaiseEvent AnimalsRowDeleted(Me, New AnimalsRowChangeEvent(CType(e.Row,AnimalsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.AnimalsRowDeletingEvent) Is Nothing) Then + RaiseEvent AnimalsRowDeleting(Me, New AnimalsRowChangeEvent(CType(e.Row,AnimalsRow), e.Action)) + End If + End Sub + + Public Sub RemoveAnimalsRow(ByVal row As AnimalsRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As AnimalsDataSet = New AnimalsDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "AnimalsDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + _ + Partial Public Class PetsDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnPetID As System.Data.DataColumn + + Private columnAnimalID As System.Data.DataColumn + + Private columnFirstName As System.Data.DataColumn + + Private columnLastName As System.Data.DataColumn + + Private columnWeight As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Pets" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property PetIDColumn() As System.Data.DataColumn + Get + Return Me.columnPetID + End Get + End Property + + Public ReadOnly Property AnimalIDColumn() As System.Data.DataColumn + Get + Return Me.columnAnimalID + End Get + End Property + + Public ReadOnly Property FirstNameColumn() As System.Data.DataColumn + Get + Return Me.columnFirstName + End Get + End Property + + Public ReadOnly Property LastNameColumn() As System.Data.DataColumn + Get + Return Me.columnLastName + End Get + End Property + + Public ReadOnly Property WeightColumn() As System.Data.DataColumn + Get + Return Me.columnWeight + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As PetsRow + Get + Return CType(Me.Rows(index),PetsRow) + End Get + End Property + + Public Event PetsRowChanged As PetsRowChangeEventHandler + + Public Event PetsRowChanging As PetsRowChangeEventHandler + + Public Event PetsRowDeleted As PetsRowChangeEventHandler + + Public Event PetsRowDeleting As PetsRowChangeEventHandler + + Public Overloads Sub AddPetsRow(ByVal row As PetsRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddPetsRow(ByVal parentAnimalsRowByFK_Animals_Pets As AnimalsRow, ByVal FirstName As String, ByVal LastName As String, ByVal Weight As Integer) As PetsRow + Dim rowPetsRow As PetsRow = CType(Me.NewRow,PetsRow) + rowPetsRow.ItemArray = New Object() {Nothing, parentAnimalsRowByFK_Animals_Pets(0), FirstName, LastName, Weight} + Me.Rows.Add(rowPetsRow) + Return rowPetsRow + End Function + + Public Function FindByPetID(ByVal PetID As Integer) As PetsRow + Return CType(Me.Rows.Find(New Object() {PetID}),PetsRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As PetsDataTable = CType(MyBase.Clone,PetsDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New PetsDataTable + End Function + + Friend Sub InitVars() + Me.columnPetID = MyBase.Columns("PetID") + Me.columnAnimalID = MyBase.Columns("AnimalID") + Me.columnFirstName = MyBase.Columns("FirstName") + Me.columnLastName = MyBase.Columns("LastName") + Me.columnWeight = MyBase.Columns("Weight") + End Sub + + Private Sub InitClass() + Me.columnPetID = New System.Data.DataColumn("PetID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnPetID) + Me.columnAnimalID = New System.Data.DataColumn("AnimalID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnAnimalID) + Me.columnFirstName = New System.Data.DataColumn("FirstName", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnFirstName) + Me.columnLastName = New System.Data.DataColumn("LastName", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnLastName) + Me.columnWeight = New System.Data.DataColumn("Weight", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnWeight) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnPetID}, true)) + Me.columnPetID.AutoIncrement = true + Me.columnPetID.AutoIncrementStep = -1 + Me.columnPetID.AllowDBNull = false + Me.columnPetID.ReadOnly = true + Me.columnPetID.Unique = true + End Sub + + Public Function NewPetsRow() As PetsRow + Return CType(Me.NewRow,PetsRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New PetsRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(PetsRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.PetsRowChangedEvent) Is Nothing) Then + RaiseEvent PetsRowChanged(Me, New PetsRowChangeEvent(CType(e.Row,PetsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.PetsRowChangingEvent) Is Nothing) Then + RaiseEvent PetsRowChanging(Me, New PetsRowChangeEvent(CType(e.Row,PetsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.PetsRowDeletedEvent) Is Nothing) Then + RaiseEvent PetsRowDeleted(Me, New PetsRowChangeEvent(CType(e.Row,PetsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.PetsRowDeletingEvent) Is Nothing) Then + RaiseEvent PetsRowDeleting(Me, New PetsRowChangeEvent(CType(e.Row,PetsRow), e.Action)) + End If + End Sub + + Public Sub RemovePetsRow(ByVal row As PetsRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As AnimalsDataSet = New AnimalsDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "PetsDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + _ + Partial Public Class PetBelongingDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnPetBelongingID As System.Data.DataColumn + + Private columnPetID As System.Data.DataColumn + + Private columnPrice As System.Data.DataColumn + + Private columnName As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "PetBelonging" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property PetBelongingIDColumn() As System.Data.DataColumn + Get + Return Me.columnPetBelongingID + End Get + End Property + + Public ReadOnly Property PetIDColumn() As System.Data.DataColumn + Get + Return Me.columnPetID + End Get + End Property + + Public ReadOnly Property PriceColumn() As System.Data.DataColumn + Get + Return Me.columnPrice + End Get + End Property + + Public ReadOnly Property NameColumn() As System.Data.DataColumn + Get + Return Me.columnName + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As PetBelongingRow + Get + Return CType(Me.Rows(index),PetBelongingRow) + End Get + End Property + + Public Event PetBelongingRowChanged As PetBelongingRowChangeEventHandler + + Public Event PetBelongingRowChanging As PetBelongingRowChangeEventHandler + + Public Event PetBelongingRowDeleted As PetBelongingRowChangeEventHandler + + Public Event PetBelongingRowDeleting As PetBelongingRowChangeEventHandler + + Public Overloads Sub AddPetBelongingRow(ByVal row As PetBelongingRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddPetBelongingRow(ByVal parentPetsRowByFK_Pets_PetBelonging As PetsRow, ByVal Price As Decimal, ByVal Name As String) As PetBelongingRow + Dim rowPetBelongingRow As PetBelongingRow = CType(Me.NewRow,PetBelongingRow) + rowPetBelongingRow.ItemArray = New Object() {Nothing, parentPetsRowByFK_Pets_PetBelonging(0), Price, Name} + Me.Rows.Add(rowPetBelongingRow) + Return rowPetBelongingRow + End Function + + Public Function FindByPetBelongingID(ByVal PetBelongingID As Integer) As PetBelongingRow + Return CType(Me.Rows.Find(New Object() {PetBelongingID}),PetBelongingRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As PetBelongingDataTable = CType(MyBase.Clone,PetBelongingDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New PetBelongingDataTable + End Function + + Friend Sub InitVars() + Me.columnPetBelongingID = MyBase.Columns("PetBelongingID") + Me.columnPetID = MyBase.Columns("PetID") + Me.columnPrice = MyBase.Columns("Price") + Me.columnName = MyBase.Columns("Name") + End Sub + + Private Sub InitClass() + Me.columnPetBelongingID = New System.Data.DataColumn("PetBelongingID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnPetBelongingID) + Me.columnPetID = New System.Data.DataColumn("PetID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnPetID) + Me.columnPrice = New System.Data.DataColumn("Price", GetType(Decimal), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnPrice) + Me.columnName = New System.Data.DataColumn("Name", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnName) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnPetBelongingID}, true)) + Me.columnPetBelongingID.AutoIncrement = true + Me.columnPetBelongingID.AutoIncrementStep = -1 + Me.columnPetBelongingID.AllowDBNull = false + Me.columnPetBelongingID.ReadOnly = true + Me.columnPetBelongingID.Unique = true + End Sub + + Public Function NewPetBelongingRow() As PetBelongingRow + Return CType(Me.NewRow,PetBelongingRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New PetBelongingRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(PetBelongingRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.PetBelongingRowChangedEvent) Is Nothing) Then + RaiseEvent PetBelongingRowChanged(Me, New PetBelongingRowChangeEvent(CType(e.Row,PetBelongingRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.PetBelongingRowChangingEvent) Is Nothing) Then + RaiseEvent PetBelongingRowChanging(Me, New PetBelongingRowChangeEvent(CType(e.Row,PetBelongingRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.PetBelongingRowDeletedEvent) Is Nothing) Then + RaiseEvent PetBelongingRowDeleted(Me, New PetBelongingRowChangeEvent(CType(e.Row,PetBelongingRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.PetBelongingRowDeletingEvent) Is Nothing) Then + RaiseEvent PetBelongingRowDeleting(Me, New PetBelongingRowChangeEvent(CType(e.Row,PetBelongingRow), e.Action)) + End If + End Sub + + Public Sub RemovePetBelongingRow(ByVal row As PetBelongingRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As AnimalsDataSet = New AnimalsDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "PetBelongingDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + Partial Public Class AnimalsRow + Inherits System.Data.DataRow + + Private tableAnimals As AnimalsDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableAnimals = CType(Me.Table,AnimalsDataTable) + End Sub + + Public Property AnimalID() As Integer + Get + Return CType(Me(Me.tableAnimals.AnimalIDColumn),Integer) + End Get + Set + Me(Me.tableAnimals.AnimalIDColumn) = value + End Set + End Property + + Public Property AnimalType() As String + Get + Try + Return CType(Me(Me.tableAnimals.AnimalTypeColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'AnimalType' in table 'Animals' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableAnimals.AnimalTypeColumn) = value + End Set + End Property + + Public Function IsAnimalTypeNull() As Boolean + Return Me.IsNull(Me.tableAnimals.AnimalTypeColumn) + End Function + + Public Sub SetAnimalTypeNull() + Me(Me.tableAnimals.AnimalTypeColumn) = System.Convert.DBNull + End Sub + + Public Function GetPetsRows() As PetsRow() + Return CType(MyBase.GetChildRows(Me.Table.ChildRelations("FK_Animals_Pets")),PetsRow()) + End Function + End Class + + Partial Public Class PetsRow + Inherits System.Data.DataRow + + Private tablePets As PetsDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tablePets = CType(Me.Table,PetsDataTable) + End Sub + + Public Property PetID() As Integer + Get + Return CType(Me(Me.tablePets.PetIDColumn),Integer) + End Get + Set + Me(Me.tablePets.PetIDColumn) = value + End Set + End Property + + Public Property AnimalID() As Integer + Get + Try + Return CType(Me(Me.tablePets.AnimalIDColumn),Integer) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'AnimalID' in table 'Pets' is DBNull.", e) + End Try + End Get + Set + Me(Me.tablePets.AnimalIDColumn) = value + End Set + End Property + + Public Property FirstName() As String + Get + Try + Return CType(Me(Me.tablePets.FirstNameColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'FirstName' in table 'Pets' is DBNull.", e) + End Try + End Get + Set + Me(Me.tablePets.FirstNameColumn) = value + End Set + End Property + + Public Property LastName() As String + Get + Try + Return CType(Me(Me.tablePets.LastNameColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'LastName' in table 'Pets' is DBNull.", e) + End Try + End Get + Set + Me(Me.tablePets.LastNameColumn) = value + End Set + End Property + + Public Property Weight() As Integer + Get + Try + Return CType(Me(Me.tablePets.WeightColumn),Integer) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'Weight' in table 'Pets' is DBNull.", e) + End Try + End Get + Set + Me(Me.tablePets.WeightColumn) = value + End Set + End Property + + Public Property AnimalsRow() As AnimalsRow + Get + Return CType(Me.GetParentRow(Me.Table.ParentRelations("FK_Animals_Pets")),AnimalsRow) + End Get + Set + Me.SetParentRow(value, Me.Table.ParentRelations("FK_Animals_Pets")) + End Set + End Property + + Public Function IsAnimalIDNull() As Boolean + Return Me.IsNull(Me.tablePets.AnimalIDColumn) + End Function + + Public Sub SetAnimalIDNull() + Me(Me.tablePets.AnimalIDColumn) = System.Convert.DBNull + End Sub + + Public Function IsFirstNameNull() As Boolean + Return Me.IsNull(Me.tablePets.FirstNameColumn) + End Function + + Public Sub SetFirstNameNull() + Me(Me.tablePets.FirstNameColumn) = System.Convert.DBNull + End Sub + + Public Function IsLastNameNull() As Boolean + Return Me.IsNull(Me.tablePets.LastNameColumn) + End Function + + Public Sub SetLastNameNull() + Me(Me.tablePets.LastNameColumn) = System.Convert.DBNull + End Sub + + Public Function IsWeightNull() As Boolean + Return Me.IsNull(Me.tablePets.WeightColumn) + End Function + + Public Sub SetWeightNull() + Me(Me.tablePets.WeightColumn) = System.Convert.DBNull + End Sub + + Public Function GetPetBelongingRows() As PetBelongingRow() + Return CType(MyBase.GetChildRows(Me.Table.ChildRelations("FK_Pets_PetBelonging")),PetBelongingRow()) + End Function + End Class + + Partial Public Class PetBelongingRow + Inherits System.Data.DataRow + + Private tablePetBelonging As PetBelongingDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tablePetBelonging = CType(Me.Table,PetBelongingDataTable) + End Sub + + Public Property PetBelongingID() As Integer + Get + Return CType(Me(Me.tablePetBelonging.PetBelongingIDColumn),Integer) + End Get + Set + Me(Me.tablePetBelonging.PetBelongingIDColumn) = value + End Set + End Property + + Public Property PetID() As Integer + Get + Try + Return CType(Me(Me.tablePetBelonging.PetIDColumn),Integer) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'PetID' in table 'PetBelonging' is DBNull.", e) + End Try + End Get + Set + Me(Me.tablePetBelonging.PetIDColumn) = value + End Set + End Property + + Public Property Price() As Decimal + Get + Try + Return CType(Me(Me.tablePetBelonging.PriceColumn),Decimal) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'Price' in table 'PetBelonging' is DBNull.", e) + End Try + End Get + Set + Me(Me.tablePetBelonging.PriceColumn) = value + End Set + End Property + + Public Property Name() As String + Get + Try + Return CType(Me(Me.tablePetBelonging.NameColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'Name' in table 'PetBelonging' is DBNull.", e) + End Try + End Get + Set + Me(Me.tablePetBelonging.NameColumn) = value + End Set + End Property + + Public Property PetsRow() As PetsRow + Get + Return CType(Me.GetParentRow(Me.Table.ParentRelations("FK_Pets_PetBelonging")),PetsRow) + End Get + Set + Me.SetParentRow(value, Me.Table.ParentRelations("FK_Pets_PetBelonging")) + End Set + End Property + + Public Function IsPetIDNull() As Boolean + Return Me.IsNull(Me.tablePetBelonging.PetIDColumn) + End Function + + Public Sub SetPetIDNull() + Me(Me.tablePetBelonging.PetIDColumn) = System.Convert.DBNull + End Sub + + Public Function IsPriceNull() As Boolean + Return Me.IsNull(Me.tablePetBelonging.PriceColumn) + End Function + + Public Sub SetPriceNull() + Me(Me.tablePetBelonging.PriceColumn) = System.Convert.DBNull + End Sub + + Public Function IsNameNull() As Boolean + Return Me.IsNull(Me.tablePetBelonging.NameColumn) + End Function + + Public Sub SetNameNull() + Me(Me.tablePetBelonging.NameColumn) = System.Convert.DBNull + End Sub + End Class + + Public Class AnimalsRowChangeEvent + Inherits System.EventArgs + + Private eventRow As AnimalsRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As AnimalsRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As AnimalsRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class PetsRowChangeEvent + Inherits System.EventArgs + + Private eventRow As PetsRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As PetsRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As PetsRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class PetBelongingRowChangeEvent + Inherits System.EventArgs + + Private eventRow As PetBelongingRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As PetBelongingRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As PetBelongingRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class +End Class diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.xsc b/Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.xsc new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.xsd b/Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.xsd new file mode 100644 index 0000000..fda903e --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.xsd @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.xss b/Code/Chapter 10/VB.NET/Exercise 10.1/AnimalsDataSet.xss new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/Exercise 10.1.vbproj b/Code/Chapter 10/VB.NET/Exercise 10.1/Exercise 10.1.vbproj new file mode 100644 index 0000000..ce79ea1 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/Exercise 10.1.vbproj @@ -0,0 +1,127 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {78345A74-D5F0-4AFF-8CE5-2D16817621FC} + WinExe + Exercise_10_1.My.MyApplication + Exercise_10_1 + Exercise 10.1 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 10.1.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 10.1.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + + + True + True + AnimalsDataSet.xsd + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + AnimalsDataSet.xsd + + + AnimalsDataSet.xsd + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + MSDataSetGenerator + AnimalsDataSet.Designer.vb + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/Exercise 10.1.vbproj.user b/Code/Chapter 10/VB.NET/Exercise 10.1/Exercise 10.1.vbproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/Exercise 10.1.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/Form1.Designer.vb b/Code/Chapter 10/VB.NET/Exercise 10.1/Form1.Designer.vb new file mode 100644 index 0000000..6593208 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/Form1.Designer.vb @@ -0,0 +1,307 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Dim DataGridViewRow1 As System.Windows.Forms.DataGridViewRow = New System.Windows.Forms.DataGridViewRow + Me.AnimalsBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.animalsDataSet = New Exercise_10_1.AnimalsDataSet + Me.dgPets = New System.Windows.Forms.DataGridView + Me.dataGridViewTextBoxColumn7 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.dataGridViewTextBoxColumn12 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.dataGridViewTextBoxColumn13 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.dataGridViewTextBoxColumn14 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.dataGridViewTextBoxColumn15 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.PetsBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.dataGridViewTextBoxColumn2 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.dgAnimals = New System.Windows.Forms.DataGridView + Me.dataGridViewTextBoxColumn1 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.dataGridViewTextBoxColumn9 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.dataGridViewTextBoxColumn8 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.dgPetBelonging = New System.Windows.Forms.DataGridView + Me.dataGridViewTextBoxColumn10 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.dataGridViewTextBoxColumn11 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.PetBelongingBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.btnSave = New System.Windows.Forms.Button + Me.btnExit = New System.Windows.Forms.Button + Me.label3 = New System.Windows.Forms.Label + Me.label2 = New System.Windows.Forms.Label + Me.label1 = New System.Windows.Forms.Label + CType(Me.AnimalsBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.animalsDataSet, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgPets, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PetsBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgAnimals, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgPetBelonging, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PetBelongingBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'AnimalsBindingSource + ' + Me.AnimalsBindingSource.DataMember = "Animals" + Me.AnimalsBindingSource.DataSource = Me.animalsDataSet + ' + 'animalsDataSet + ' + Me.animalsDataSet.DataSetName = "AnimalsDataSet" + Me.animalsDataSet.Locale = New System.Globalization.CultureInfo("en-US") + Me.animalsDataSet.RemotingFormat = System.Data.SerializationFormat.Xml + ' + 'dgPets + ' + Me.dgPets.AutoGenerateColumns = False + Me.dgPets.Columns.Add(Me.dataGridViewTextBoxColumn7) + Me.dgPets.Columns.Add(Me.dataGridViewTextBoxColumn12) + Me.dgPets.Columns.Add(Me.dataGridViewTextBoxColumn13) + Me.dgPets.Columns.Add(Me.dataGridViewTextBoxColumn14) + Me.dgPets.Columns.Add(Me.dataGridViewTextBoxColumn15) + Me.dgPets.DataSource = Me.PetsBindingSource + Me.dgPets.Location = New System.Drawing.Point(3, 224) + Me.dgPets.Name = "dgPets" + Me.dgPets.Size = New System.Drawing.Size(546, 150) + Me.dgPets.TabIndex = 18 + ' + 'dataGridViewTextBoxColumn7 + ' + Me.dataGridViewTextBoxColumn7.DataPropertyName = "PetID" + Me.dataGridViewTextBoxColumn7.DefaultCellStyle = DataGridViewRow1.DefaultCellStyle + Me.dataGridViewTextBoxColumn7.HeaderText = "PetID" + Me.dataGridViewTextBoxColumn7.Name = "PetID" + Me.dataGridViewTextBoxColumn7.ReadOnly = True + Me.dataGridViewTextBoxColumn7.ValueType = GetType(Integer) + ' + 'dataGridViewTextBoxColumn12 + ' + Me.dataGridViewTextBoxColumn12.DataPropertyName = "AnimalID" + Me.dataGridViewTextBoxColumn12.DefaultCellStyle = DataGridViewRow1.DefaultCellStyle + Me.dataGridViewTextBoxColumn12.HeaderText = "AnimalID" + Me.dataGridViewTextBoxColumn12.Name = "AnimalID" + Me.dataGridViewTextBoxColumn12.Resizable = System.Windows.Forms.DataGridViewTriState.[True] + Me.dataGridViewTextBoxColumn12.ValueType = GetType(Integer) + ' + 'dataGridViewTextBoxColumn13 + ' + Me.dataGridViewTextBoxColumn13.DataPropertyName = "FirstName" + Me.dataGridViewTextBoxColumn13.DefaultCellStyle = DataGridViewRow1.DefaultCellStyle + Me.dataGridViewTextBoxColumn13.HeaderText = "FirstName" + Me.dataGridViewTextBoxColumn13.Name = "FirstName" + Me.dataGridViewTextBoxColumn13.ValueType = GetType(String) + ' + 'dataGridViewTextBoxColumn14 + ' + Me.dataGridViewTextBoxColumn14.DataPropertyName = "LastName" + Me.dataGridViewTextBoxColumn14.DefaultCellStyle = DataGridViewRow1.DefaultCellStyle + Me.dataGridViewTextBoxColumn14.HeaderText = "LastName" + Me.dataGridViewTextBoxColumn14.Name = "LastName" + Me.dataGridViewTextBoxColumn14.ValueType = GetType(String) + ' + 'dataGridViewTextBoxColumn15 + ' + Me.dataGridViewTextBoxColumn15.DataPropertyName = "Weight" + Me.dataGridViewTextBoxColumn15.DefaultCellStyle = DataGridViewRow1.DefaultCellStyle + Me.dataGridViewTextBoxColumn15.HeaderText = "Weight" + Me.dataGridViewTextBoxColumn15.Name = "Weight" + Me.dataGridViewTextBoxColumn15.ValueType = GetType(Integer) + ' + 'PetsBindingSource + ' + Me.PetsBindingSource.DataMember = "Pets" + Me.PetsBindingSource.DataSource = Me.animalsDataSet + ' + 'dataGridViewTextBoxColumn2 + ' + Me.dataGridViewTextBoxColumn2.DataPropertyName = "AnimalType" + Me.dataGridViewTextBoxColumn2.HeaderText = "AnimalType" + Me.dataGridViewTextBoxColumn2.Name = "AnimalType" + Me.dataGridViewTextBoxColumn2.ValueType = GetType(String) + ' + 'dgAnimals + ' + Me.dgAnimals.AutoGenerateColumns = False + Me.dgAnimals.Columns.Add(Me.dataGridViewTextBoxColumn1) + Me.dgAnimals.Columns.Add(Me.dataGridViewTextBoxColumn2) + Me.dgAnimals.DataSource = Me.AnimalsBindingSource + Me.dgAnimals.Location = New System.Drawing.Point(3, 35) + Me.dgAnimals.Name = "dgAnimals" + Me.dgAnimals.Size = New System.Drawing.Size(245, 150) + Me.dgAnimals.TabIndex = 16 + ' + 'dataGridViewTextBoxColumn1 + ' + Me.dataGridViewTextBoxColumn1.DataPropertyName = "AnimalID" + Me.dataGridViewTextBoxColumn1.HeaderText = "AnimalID" + Me.dataGridViewTextBoxColumn1.Name = "AnimalID" + Me.dataGridViewTextBoxColumn1.ReadOnly = True + Me.dataGridViewTextBoxColumn1.ValueType = GetType(Integer) + ' + 'dataGridViewTextBoxColumn9 + ' + Me.dataGridViewTextBoxColumn9.DataPropertyName = "PetID" + Me.dataGridViewTextBoxColumn9.HeaderText = "PetID" + Me.dataGridViewTextBoxColumn9.Name = "PetID" + Me.dataGridViewTextBoxColumn9.ValueType = GetType(Integer) + ' + 'dataGridViewTextBoxColumn8 + ' + Me.dataGridViewTextBoxColumn8.DataPropertyName = "PetBelongingID" + Me.dataGridViewTextBoxColumn8.HeaderText = "PetBelongingID" + Me.dataGridViewTextBoxColumn8.Name = "PetBelongingID" + Me.dataGridViewTextBoxColumn8.ReadOnly = True + Me.dataGridViewTextBoxColumn8.ValueType = GetType(Integer) + ' + 'dgPetBelonging + ' + Me.dgPetBelonging.AutoGenerateColumns = False + Me.dgPetBelonging.Columns.Add(Me.dataGridViewTextBoxColumn8) + Me.dgPetBelonging.Columns.Add(Me.dataGridViewTextBoxColumn9) + Me.dgPetBelonging.Columns.Add(Me.dataGridViewTextBoxColumn10) + Me.dgPetBelonging.Columns.Add(Me.dataGridViewTextBoxColumn11) + Me.dgPetBelonging.DataSource = Me.PetBelongingBindingSource + Me.dgPetBelonging.Location = New System.Drawing.Point(258, 35) + Me.dgPetBelonging.Name = "dgPetBelonging" + Me.dgPetBelonging.Size = New System.Drawing.Size(446, 150) + Me.dgPetBelonging.TabIndex = 17 + ' + 'dataGridViewTextBoxColumn10 + ' + Me.dataGridViewTextBoxColumn10.DataPropertyName = "Price" + Me.dataGridViewTextBoxColumn10.HeaderText = "Price" + Me.dataGridViewTextBoxColumn10.Name = "Price" + Me.dataGridViewTextBoxColumn10.ValueType = GetType(Decimal) + ' + 'dataGridViewTextBoxColumn11 + ' + Me.dataGridViewTextBoxColumn11.DataPropertyName = "Name" + Me.dataGridViewTextBoxColumn11.HeaderText = "Name" + Me.dataGridViewTextBoxColumn11.Name = "Name" + Me.dataGridViewTextBoxColumn11.ValueType = GetType(String) + ' + 'PetBelongingBindingSource + ' + Me.PetBelongingBindingSource.DataMember = "PetBelonging" + Me.PetBelongingBindingSource.DataSource = Me.animalsDataSet + ' + 'btnSave + ' + Me.btnSave.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnSave.Location = New System.Drawing.Point(577, 224) + Me.btnSave.Name = "btnSave" + Me.btnSave.Size = New System.Drawing.Size(127, 37) + Me.btnSave.TabIndex = 15 + Me.btnSave.Text = "Save My Data" + ' + 'btnExit + ' + Me.btnExit.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnExit.Location = New System.Drawing.Point(577, 337) + Me.btnExit.Name = "btnExit" + Me.btnExit.Size = New System.Drawing.Size(127, 37) + Me.btnExit.TabIndex = 14 + Me.btnExit.Text = "Exit Application" + ' + 'label3 + ' + Me.label3.AutoSize = True + Me.label3.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.label3.Location = New System.Drawing.Point(258, 4) + Me.label3.Name = "label3" + Me.label3.Size = New System.Drawing.Size(123, 24) + Me.label3.TabIndex = 13 + Me.label3.Text = "PetBelonging" + ' + 'label2 + ' + Me.label2.AutoSize = True + Me.label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.label2.Location = New System.Drawing.Point(3, 193) + Me.label2.Margin = New System.Windows.Forms.Padding(3, 1, 3, 3) + Me.label2.Name = "label2" + Me.label2.Size = New System.Drawing.Size(46, 24) + Me.label2.TabIndex = 12 + Me.label2.Text = "Pets" + ' + 'label1 + ' + Me.label1.AutoSize = True + Me.label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.label1.Location = New System.Drawing.Point(3, 4) + Me.label1.Name = "label1" + Me.label1.Size = New System.Drawing.Size(77, 24) + Me.label1.TabIndex = 11 + Me.label1.Text = "Animals" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(706, 376) + Me.Controls.Add(Me.btnExit) + Me.Controls.Add(Me.label3) + Me.Controls.Add(Me.label2) + Me.Controls.Add(Me.label1) + Me.Controls.Add(Me.dgPets) + Me.Controls.Add(Me.dgAnimals) + Me.Controls.Add(Me.dgPetBelonging) + Me.Controls.Add(Me.btnSave) + Me.Name = "Form1" + Me.Text = "Exercise 10.1" + CType(Me.AnimalsBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.animalsDataSet, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgPets, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.PetsBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgAnimals, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgPetBelonging, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.PetBelongingBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Private WithEvents AnimalsBindingSource As System.Windows.Forms.BindingSource + Private animalsDataSet As Exercise_10_1.AnimalsDataSet + Private WithEvents dgPets As System.Windows.Forms.DataGridView + Private WithEvents dataGridViewTextBoxColumn7 As System.Windows.Forms.DataGridViewTextBoxColumn + Private WithEvents dataGridViewTextBoxColumn12 As System.Windows.Forms.DataGridViewTextBoxColumn + Private WithEvents dataGridViewTextBoxColumn13 As System.Windows.Forms.DataGridViewTextBoxColumn + Private WithEvents dataGridViewTextBoxColumn14 As System.Windows.Forms.DataGridViewTextBoxColumn + Private WithEvents dataGridViewTextBoxColumn15 As System.Windows.Forms.DataGridViewTextBoxColumn + Private WithEvents PetsBindingSource As System.Windows.Forms.BindingSource + Private WithEvents dataGridViewTextBoxColumn2 As System.Windows.Forms.DataGridViewTextBoxColumn + Private WithEvents dgAnimals As System.Windows.Forms.DataGridView + Private WithEvents dataGridViewTextBoxColumn1 As System.Windows.Forms.DataGridViewTextBoxColumn + Private WithEvents dataGridViewTextBoxColumn9 As System.Windows.Forms.DataGridViewTextBoxColumn + Private WithEvents dataGridViewTextBoxColumn8 As System.Windows.Forms.DataGridViewTextBoxColumn + Private WithEvents dgPetBelonging As System.Windows.Forms.DataGridView + Private WithEvents dataGridViewTextBoxColumn10 As System.Windows.Forms.DataGridViewTextBoxColumn + Private WithEvents dataGridViewTextBoxColumn11 As System.Windows.Forms.DataGridViewTextBoxColumn + Private WithEvents PetBelongingBindingSource As System.Windows.Forms.BindingSource + Private WithEvents btnSave As System.Windows.Forms.Button + Private WithEvents btnExit As System.Windows.Forms.Button + Private WithEvents label3 As System.Windows.Forms.Label + Private WithEvents label2 As System.Windows.Forms.Label + Private WithEvents label1 As System.Windows.Forms.Label + +End Class diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/Form1.vb b/Code/Chapter 10/VB.NET/Exercise 10.1/Form1.vb new file mode 100644 index 0000000..99a6aed --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/Form1.vb @@ -0,0 +1,144 @@ +Imports System.Data +Imports System.Data.SqlClient + +Public Class Form1 + Private connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + Private animalsData As AnimalsDataSet + + Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click + Me.Close() + End Sub + Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim sqlDa As SqlDataAdapter + + testConnection.Open() + Dim trans As SqlTransaction = testConnection.BeginTransaction() + Dim param As SqlParameter + + ' Lets deal with the inserts first. + + ' Starting at the top of the hierarchy - the animals table. + ' insertAnimalCommand + Dim insertAnimalCommand As SqlCommand = New SqlCommand() + insertAnimalCommand.Connection = testConnection + insertAnimalCommand = New SqlCommand("UP_ANIMALINSERT") + insertAnimalCommand.CommandType = CommandType.StoredProcedure + + param = New SqlParameter("@AnimalID", SqlDbType.Int, 4, "AnimalID") + param.Direction = ParameterDirection.Output + insertAnimalCommand.Parameters.Add(param) + + param = New SqlParameter("@AnimalType", SqlDbType.VarChar, 50, "AnimalType") + param.Direction = ParameterDirection.Input + insertAnimalCommand.Parameters.Add(param) + + insertAnimalCommand.Transaction = trans + + ' Moving down the hierarchy - the Pets Table + ' insertPetCommand + Dim insertPetCommand As SqlCommand = New SqlCommand() + insertPetCommand.Connection = testConnection + + insertPetCommand = New SqlCommand("UP_PETSINSERT") + insertPetCommand.CommandType = CommandType.StoredProcedure + + param = New SqlParameter("@PetID", SqlDbType.Int, 4, "PetID") + param.Direction = ParameterDirection.Output + insertPetCommand.Parameters.Add(param) + + param = New SqlParameter("@FirstName", SqlDbType.VarChar, 50, "FirstName") + param.Direction = ParameterDirection.Input + insertPetCommand.Parameters.Add(param) + + param = New SqlParameter("@LastName", SqlDbType.VarChar, 50, "LastName") + param.Direction = ParameterDirection.Input + insertPetCommand.Parameters.Add(param) + + param = New SqlParameter("@Weight", SqlDbType.Int, 4, "Weight") + param.Direction = ParameterDirection.Input + insertPetCommand.Parameters.Add(param) + + ' This parameter will be retreived from the first command insertAnimalCommand + param = New SqlParameter("@AnimalID", SqlDbType.Int, 4, "AnimalID") + param.Direction = ParameterDirection.Input + insertPetCommand.Parameters.Add(param) + + insertPetCommand.Transaction = trans + + ' Finally moving to the end of the hierarchy - PetBelonging + ' insertPetBelongingCommand + Dim insertPetBelongingCommand As SqlCommand = New SqlCommand() + insertPetBelongingCommand.Connection = testConnection + + insertPetBelongingCommand = New SqlCommand("UP_PETBELONGINGINSERT") + insertPetBelongingCommand.CommandType = CommandType.StoredProcedure + + param = New SqlParameter("@PetBelongingID", SqlDbType.Int, 4, "PetBelongingID") + param.Direction = ParameterDirection.Output + insertPetBelongingCommand.Parameters.Add(param) + + param = New SqlParameter("@Name", SqlDbType.VarChar, 50, "Name") + param.Direction = ParameterDirection.Input + insertPetBelongingCommand.Parameters.Add(param) + + param = New SqlParameter("@Price", SqlDbType.Float, 8, "Price") + param.Direction = ParameterDirection.Input + insertPetBelongingCommand.Parameters.Add(param) + + ' This parameter will be retreived from the first command insertPetCommand + param = New SqlParameter("@PetID", SqlDbType.Int, 4, "PetID") + param.Direction = ParameterDirection.Input + insertPetBelongingCommand.Parameters.Add(param) + + insertPetBelongingCommand.Transaction = trans + + ' .. Start the work + Try + sqlDa = New SqlDataAdapter("Select * from Animals", testConnection) + sqlDa.InsertCommand = insertAnimalCommand + sqlDa.InsertCommand.Connection = testConnection + sqlDa.Update(animalsData.Animals.Select("", "", DataViewRowState.Added)) + + sqlDa = New SqlDataAdapter("Select * from Pets", testConnection) + sqlDa.InsertCommand = insertPetCommand + sqlDa.InsertCommand.Connection = testConnection + sqlDa.Update(animalsData.Pets.Select("", "", DataViewRowState.Added)) + + sqlDa = New SqlDataAdapter("Select * from PetBelonging", testConnection) + sqlDa.InsertCommand = insertPetBelongingCommand + sqlDa.InsertCommand.Connection = testConnection + sqlDa.Update(animalsData.PetBelonging.Select("", "", DataViewRowState.Added)) + + ' All good, lets commit. + trans.Commit() + Catch + trans.Rollback() + Finally + FillData() + testConnection.Close() + End Try + End Using + End Sub + + Private Sub FillData() + animalsData = New AnimalsDataSet() + Dim sqlDA As SqlDataAdapter = New SqlDataAdapter( _ + "Select * from Animals; Select * from Pets;" & _ + "Select * from PetBelonging", _ + connectionString) + sqlDa.TableMappings.Add("Table", "Animals") + sqlDa.TableMappings.Add("Table1", "Pets") + sqlDa.TableMappings.Add("Table2", "PetBelonging") + sqlDa.Fill(animalsData) + + dgAnimals.DataSource = animalsData.Tables("Animals") + dgPets.DataSource = animalsData.Tables("Pets") + dgPetBelonging.DataSource = _ + animalsData.Tables("PetBelonging") + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + FillData() + End Sub +End Class diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/AssemblyInfo.vb b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..af59004 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyApplication.myapp b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyApplication.myapp new file mode 100644 index 0000000..45b79b0 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_10_1.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyApplication.vb b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyApplication.vb new file mode 100644 index 0000000..f416d13 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyApplication.vb @@ -0,0 +1,28 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = False + Me.EnableVisualStyles = True + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyEvents.vb b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyResources.resx b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyResources.vb b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyResources.vb new file mode 100644 index 0000000..1c00e9e --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + '

    + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_10_1.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MySettings.settings b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MySettings.vb b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/app.config b/Code/Chapter 10/VB.NET/Exercise 10.1/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.exe b/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..98f628b138531f0b355839911ce07197c51bf630 GIT binary patch literal 69632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.exe.config b/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.pdb b/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1063753e2fd789d6dfafd2a306ee8b2c4ef381b3 GIT binary patch literal 214528 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.vshost.exe b/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.vshost.exe.config b/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.xml b/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.xml new file mode 100644 index 0000000..8f00e37 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/bin/Exercise 10.1.xml @@ -0,0 +1,11 @@ + + + + +Exercise10.1 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise 10.1.exe b/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise 10.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..98f628b138531f0b355839911ce07197c51bf630 GIT binary patch literal 69632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise 10.1.pdb b/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise 10.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1063753e2fd789d6dfafd2a306ee8b2c4ef381b3 GIT binary patch literal 214528 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise 10.1.vbproj.GenerateResource.Cache b/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise 10.1.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..523324ae2a37b6ccd17935ebdd382df03e166c16 GIT binary patch literal 786 zcma)3+e*Vg5KV1UdlTw|_)s5;_@K0g)*|{+1S?+9f;UPZeA#9vxOSVBokWaZ;8*xN z{*3>iGet#e5GQbw%+8)UGsnp|j`L2zZ;r|w!LYAZf!te?jtt^89+uFV+2?x@uXwu7CZ-Im)e(Gf1USx;s6E&-1q zJb-%$C4{~LWGO`pI6PDuaCsyU&Qv%C$^Qq+f*%>1 + + + +Exercise10.1 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise_10_1.MyResources.resources b/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/Exercise_10_1.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYJ=L+(T{5!;>Jt!O z!9=fo553VV6TS4x7w{eQoGC&jjUnBOZzpHweCO|*F-*fSe&a`f`cgv(&&#|n0~Itv z`$3xv&t7Aysiw2*AQcb%{0-Z&b90VkJJZ=hTZC;1c^}%LWMVqI(yj?!e+-?qpb37y z=Hwc)jrqpRj5q7B9E(z_j5w#s1{Iv{d8~kI~V%P9uV=M3k0CaHT3!UT-DmDjgL<%Ps^$ zV6NClWj|u-Wyop*bd)Iim=r~avv3h1(|;Z5RN_g%yb`1OhxbO5#Qqn8)+Uo6V-%&r zUqb|q%35cl4T^$9qsiEXK3OgGI{$jMaF2>fBoX4n1Th4Y0#kOhPuA{!99QuKLYi#k zXOUl~+{v!U;1$;GmOD7+pe=ETHcoaYt?BSkJcW=Z2J*E=5Ecu!-RjbE@oBZ<9!zz4 zam_7B)`IOoHr*{!<4tGInRoYUsY1=JfZXB~!V|(ej#T#tqAE(Z&HWde#El=T))j50{%JF5);Rz3`(PQ6dv~nMO>@v@(tzQ9c%#juR6c#lKl4MkfdBvi literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/TempPE/AnimalsDataSet.Designer.vb.dll b/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/TempPE/AnimalsDataSet.Designer.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..76c3d27ebdf8b8348bcd0809a423b0fb34483a48 GIT binary patch literal 45056 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 {S&?U6p`M)3 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%0A1`5Vz7RX{^Vr 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/TempPE/My Project.MyResources.vb.dll b/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Debug/TempPE/My Project.MyResources.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..91dc9707c208f05f5e160edfc8ea21823aa03c40 GIT binary patch literal 6144 zcmeHLeP|rl5udlWx|2>H(Mh!~pEAlC)qjCjEdWB$%}R%S~PUhf6}5LLn){#qI~hkUvZ@iA!AwZYd4)i@3je zyQe$Jc1zp;LY}nqX6DVCH#0kL-rGxk;aQ3hk&5T`ZK7Ava~qcM--Bfgw>6l5E zb)rc|hKX*5^O#&|b3{!m#D9TkMDSpx)q~!1)75?jaT*Sn?XtEkm#B!Swhtl&fAdV^}~PV0|2B2qczR%4xw^ptLfE zDTyVX=RmS%jO~DuL?3b|WE0j+fLhUu6iqDgN)BF3Ca3u4}Uziw~~nP!Bc+qcNuo!{8#iqv?I4B7D1?D~k{6Nqs2!Q1UY%;HeGxHsY{x ziD(!;P2t&?_Fb!x^H}0p1mv^mHy%pUTfo`wje8DFjH7=Cw2E~%j@r&VXl??F9bWhS zh6aS3{w}t0PQraca5yG%d$SHKNgMEV4_e!V?JxSNaq1B z(@y~ZMmLZ@bK)@(Cx;eAloaJA;E$BkN}T?zFz5aV%WsfyIx-xIQaN%o5~m+WP6J+v zv{MWHBl5dQ3w=UmSX9$$l%7++4tPO55B-pcECDuKW(L##VFw0ViIt> zlA|6Hk+U?VL7djtCqx%k{!U2s3Juf`Lu#w&1$9wU(T<|nj(EPlih5I0iH`4z9T>Y2 z&O0L>=E(OD+WPu8#Xe9QLaJFg3~DH()+2+c_1x1YtdP7o|c@G5b6#q_E5z^b7hY_Ha}*iUs`L5(*;E`5KeE_c9IQy^IO2Mrp+XJfiTa zc2p??<`onXYK**$j1ZWk;E#6&=e{B}DA?N#z#HH<*ZfA{jnoX-ii-U-{$8Np(=Gad zu8M0yU52_4mJ1==rSQ5j-b*zO>u?VoP5F`4O z#I}$jw$OXXJ+z%ECtI@3M=0-Q9M`tyDP?6`$8#2Zea7-ihCOO{R)$jLY14B`ZpQRz z*KyO$Se`k%H95OgPnGrRP^vsqEZSDa@GYlshaj|!Ir(DAH(j7puJe?c@qryS=hLRU zXtDBxM_tp%ri}%2a-N4FwP%~BOBYkeoFtyaev-m-7b&Q26O-za2& z(ZR}_nl2T5D{tzo$+As%B`gQbV`B~`xQ12mM|>RP^T;K#LLD@2c|`|#S*w+e-(&if zbqEUht}5Rha*CrW8B{BDuv|1LG=uTIMj>mPEW*@o*U5*RFs{?)f{k3|oFDN#Ge2*a zgV$0aLb)Kharp?-oKj}qam%BI>sq`g?wS{OgdvTHWeqnQY~5-c_F|s|yaPtwtn$Of zS&vgN3qE8_n|5U_hN7ab>) zT%39qdBA3It4T_zQ;Nzo4W5TvQ%TA&&Mial{O0}abHgwG;6=0Z`CAKA|H_FYGo3@% zPu5>}boQ%>tMSi8qHPU$nsE-aH85z#;UhrTGY!xj(Qsnp)ZoF^Sae<62GQ2aL{msK zG0`cfbu!u!@;i8XD}yEmoeVmZZi=-E(TzK-%4bC^DTHY4CZ(NJ4TliV?GYgQKtxHj z^(Oi;(6%M2DWU~kOlfO?Wii-TrwNf5sTcBe!+BP@N`^KDT~p9?@QhXlO$<62bf{3! z(k`e4r%i1cp^#Tw|EN_^Bjh;WlHVF7_cb2mDyA&e)7$N;btirg(5j+kII57m3!zx5Q zV#6N@Xn(=Ce5JMUcdb^T*7Q8K(ooObaobLzL-@5m{x90%sZtF0nShwJ9&n7VHc-y$DO1DpeF!#2fw<|Pt`wu z$oICj?a`2dT^H_ws>C=@0j&lq!fsRz8x>-L3bcSK!EF=1BnYRY3yA{ig^k{aoC7Lo z7u5H$q<~F6q%81rchU5glu4o*1%E>{4~+12!1vk8%Hy&=Wu%_ss&zETCXt*~*%`>< zwoqeB5?=(>2lr=eH6gw6rECGV+lZGzdC(*)qDE8D;?PszWU%7B>ZDGKuvn)oH1KzQ zpR{{FX62;TG3Y3w!g2(1bQGFMZkepKVKU@%bl8T9zfArAwhYO*1b$>u+u4t`(W%CT tW5mBZa4bg@?p|^q^FNXi_!sOg#;O1S literal 0 HcmV?d00001 diff --git a/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Exercise 10.1.vbproj.FileList.txt b/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Exercise 10.1.vbproj.FileList.txt new file mode 100644 index 0000000..d9d1b24 --- /dev/null +++ b/Code/Chapter 10/VB.NET/Exercise 10.1/obj/Exercise 10.1.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Exercise 10.1.exe.config +bin\Exercise 10.1.exe +bin\Exercise 10.1.pdb +bin\Exercise 10.1.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_10_1.MyResources.resources +obj\Debug\Exercise 10.1.vbproj.GenerateResource.Cache +obj\Debug\Exercise 10.1.exe +obj\Debug\Exercise 10.1.xml +obj\Debug\Exercise 10.1.pdb diff --git a/Code/Chapter 11/C#/AccChanges/AccChanges.csproj b/Code/Chapter 11/C#/AccChanges/AccChanges.csproj new file mode 100644 index 0000000..64f047f --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/AccChanges.csproj @@ -0,0 +1,70 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {CFBB23B7-1BFB-4C8B-AAD0-36AC3AC2B680} + WinExe + Properties + AccChanges + AccChanges + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/AccChanges/AccChanges.csproj.user b/Code/Chapter 11/C#/AccChanges/AccChanges.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/AccChanges.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/AccChanges/Form1.Designer.cs b/Code/Chapter 11/C#/AccChanges/Form1.Designer.cs new file mode 100644 index 0000000..7b649de --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/Form1.Designer.cs @@ -0,0 +1,74 @@ +namespace AccChanges +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.button1 = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); + // + // dataGridView1 + // + this.dataGridView1.Location = new System.Drawing.Point(0, 2); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.Size = new System.Drawing.Size(363, 187); + this.dataGridView1.TabIndex = 0; + this.dataGridView1.Text = "dataGridView1"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(288, 195); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 1; + this.button1.Text = "Save"; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(365, 224); + this.Controls.Add(this.button1); + this.Controls.Add(this.dataGridView1); + this.Name = "Form1"; + this.Text = "AccChanges"; + this.Load += new System.EventHandler(this.Form1_Load); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.Button button1; + } +} + diff --git a/Code/Chapter 11/C#/AccChanges/Form1.cs b/Code/Chapter 11/C#/AccChanges/Form1.cs new file mode 100644 index 0000000..5a99c4a --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/Form1.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Data.SqlClient; + +namespace AccChanges +{ + public partial class Form1 : Form + { + private static string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI"; + private DataSet ds = null; + + public Form1() + { + InitializeComponent(); + } + + private void button1_Click(object sender, EventArgs e) + { + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlDataAdapter sqlDA = new SqlDataAdapter("Select * from Customers",testConnection); + SqlCommand myUpdateCommand = new SqlCommand("Update Customers Set FirstName = @FirstName where CustomerID = @CustomerID"); + + SqlParameter param1 = new SqlParameter("@FirstName", SqlDbType.VarChar, 50); + param1.SourceColumn = "FirstName"; + + SqlParameter param2 = new SqlParameter("@CustomerID", SqlDbType.VarChar, 50); + param2.SourceColumn = "CustomerID"; + + myUpdateCommand.Parameters.AddRange(new SqlParameter[] {param1,param2}) ; + myUpdateCommand.Connection = testConnection; + + sqlDA.UpdateCommand = myUpdateCommand; + + testConnection.Open(); + SqlTransaction myTransaction = testConnection.BeginTransaction(); + sqlDA.UpdateCommand.Transaction = myTransaction; + sqlDA.AcceptChangesDuringUpdate = false; + + try + { + sqlDA.Update(ds); + myTransaction.Commit(); + ds.AcceptChanges(); + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + } + } + + private void Form1_Load(object sender, EventArgs e) + { + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlDataAdapter sqlDA = new SqlDataAdapter("Select * from Customers", testConnection); + ds = new DataSet(); + sqlDA.Fill(ds); + dataGridView1.DataSource = ds.Tables[0]; + } + } + } +} \ No newline at end of file diff --git a/Code/Chapter 11/C#/AccChanges/Form1.resx b/Code/Chapter 11/C#/AccChanges/Form1.resx new file mode 100644 index 0000000..02bbfa2 --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/Form1.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/AccChanges/Program.cs b/Code/Chapter 11/C#/AccChanges/Program.cs new file mode 100644 index 0000000..36856cc --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/Program.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace AccChanges +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 11/C#/AccChanges/Properties/AssemblyInfo.cs b/Code/Chapter 11/C#/AccChanges/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9259bfe --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("AccChanges")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("AccChanges")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("805f8309-cb14-4986-b2d5-0812929dc2c3")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 11/C#/AccChanges/Properties/Resources.Designer.cs b/Code/Chapter 11/C#/AccChanges/Properties/Resources.Designer.cs new file mode 100644 index 0000000..fb9e8d7 --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/Properties/Resources.Designer.cs @@ -0,0 +1,74 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "AccChanges.Properties.Resources.get_ResourceManager():System.Resources.ResourceManager")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "AccChanges.Properties.Resources.get_Culture():System.Globalization.CultureInfo")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "AccChanges.Properties.Resources.set_Culture(System.Globalization.CultureInfo):Void")] + +namespace AccChanges.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AccChanges.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Code/Chapter 11/C#/AccChanges/Properties/Resources.resx b/Code/Chapter 11/C#/AccChanges/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/AccChanges/Properties/Settings.Designer.cs b/Code/Chapter 11/C#/AccChanges/Properties/Settings.Designer.cs new file mode 100644 index 0000000..30b530f --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/Properties/Settings.Designer.cs @@ -0,0 +1,31 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "AccChanges.Properties.Settings.get_Default():AccChanges.Properties.Settings")] + +namespace AccChanges.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = new Settings(); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Code/Chapter 11/C#/AccChanges/Properties/Settings.settings b/Code/Chapter 11/C#/AccChanges/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 11/C#/AccChanges/bin/Debug/AccChanges.exe b/Code/Chapter 11/C#/AccChanges/bin/Debug/AccChanges.exe new file mode 100644 index 0000000000000000000000000000000000000000..319a4a7b85fea8a9bdc37c1185c4c40fb463aaec GIT binary patch literal 20480 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 n?F$d{{xOhjP@%c_zarWXJfQ!86)Bdi*x037F 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 O1q-~ltHQ-Q0{;hM0&I2w literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/AccChanges/bin/Debug/AccChanges.vshost.exe b/Code/Chapter 11/C#/AccChanges/bin/Debug/AccChanges.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/AccChanges/obj/AccChanges.csproj.FileList.txt b/Code/Chapter 11/C#/AccChanges/obj/AccChanges.csproj.FileList.txt new file mode 100644 index 0000000..49f517b --- /dev/null +++ b/Code/Chapter 11/C#/AccChanges/obj/AccChanges.csproj.FileList.txt @@ -0,0 +1,8 @@ +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\AccChanges.Form1.resources +obj\Debug\AccChanges.Properties.Resources.resources +obj\Debug\AccChanges.csproj.GenerateResource.Cache +bin\Debug\AccChanges.exe +bin\Debug\AccChanges.pdb +obj\Debug\AccChanges.exe +obj\Debug\AccChanges.pdb diff --git a/Code/Chapter 11/C#/AccChanges/obj/Debug/AccChanges.Form1.resources b/Code/Chapter 11/C#/AccChanges/obj/Debug/AccChanges.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYicIzY`YL$G4>A4v})*E)V((Uwf+U?5ij@S|b zw^=V`kADE}L$(JK$RuQm0%R$53wSwD8gO|i5ROzf0?FTd%0l9domTx%<%F|T1zm+W zqk!=pr&#TR{6|q`^=yg`#&O?hP3`G2Fg_4?<-|}!(V$9asto_#I!_y-BO~NM@DTHV zZnoApBkSRuXKD7tYizROxatybwAE^t?*N3xYaRuC)@)hi~|w zPQUE1>?mpw)&qu+pvf6e7P97#q-O%wkvl)hFq7K^FeZ;~!WxyMfwALm@!jOZ#f{V{ zsYe6>XWeqM-nzd*ONH~Ss-a(v$K_XJr~D&qqy(85!^+IM7U+(RRH*{_VWtK*3LS=I r@S literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/AccChanges/obj/Debug/AccChanges.exe b/Code/Chapter 11/C#/AccChanges/obj/Debug/AccChanges.exe new file mode 100644 index 0000000000000000000000000000000000000000..319a4a7b85fea8a9bdc37c1185c4c40fb463aaec GIT binary patch literal 20480 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 n?F$d{{xOhjP@%c_zarWXJfQ!86)Bdi*x037F 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 O1q-~ltHQ-Q0{;hM0&I2w literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Chapter 11.sln b/Code/Chapter 11/C#/Chapter 11.sln new file mode 100644 index 0000000..f3268a7 --- /dev/null +++ b/Code/Chapter 11/C#/Chapter 11.sln @@ -0,0 +1,50 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 11.1", "Exercise 11.1\Exercise 11.1.csproj", "{70471E41-3D3A-4DB3-B5A7-3DBF54421971}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 11.2", "Exercise 11.2\Exercise 11.2.csproj", "{F9EFAE8C-34B4-467D-9FD4-0F4DD2E2048C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 11.3", "Exercise 11.3\Exercise 11.3.csproj", "{9262919C-DA06-439E-97B7-05FE7C11FD5D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 11.4", "Exercise 11.4\Exercise 11.4.csproj", "{8CC721CB-039D-4478-B49E-47EBCC905008}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AccChanges", "AccChanges\AccChanges.csproj", "{CFBB23B7-1BFB-4C8B-AAD0-36AC3AC2B680}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 11.5", "Exercise 11.5\Exercise 11.5.csproj", "{F7F5E0C1-DC5D-496D-A253-0C6DE1940946}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {70471E41-3D3A-4DB3-B5A7-3DBF54421971}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70471E41-3D3A-4DB3-B5A7-3DBF54421971}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70471E41-3D3A-4DB3-B5A7-3DBF54421971}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70471E41-3D3A-4DB3-B5A7-3DBF54421971}.Release|Any CPU.Build.0 = Release|Any CPU + {F9EFAE8C-34B4-467D-9FD4-0F4DD2E2048C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9EFAE8C-34B4-467D-9FD4-0F4DD2E2048C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9EFAE8C-34B4-467D-9FD4-0F4DD2E2048C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9EFAE8C-34B4-467D-9FD4-0F4DD2E2048C}.Release|Any CPU.Build.0 = Release|Any CPU + {9262919C-DA06-439E-97B7-05FE7C11FD5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9262919C-DA06-439E-97B7-05FE7C11FD5D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9262919C-DA06-439E-97B7-05FE7C11FD5D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9262919C-DA06-439E-97B7-05FE7C11FD5D}.Release|Any CPU.Build.0 = Release|Any CPU + {8CC721CB-039D-4478-B49E-47EBCC905008}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CC721CB-039D-4478-B49E-47EBCC905008}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CC721CB-039D-4478-B49E-47EBCC905008}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CC721CB-039D-4478-B49E-47EBCC905008}.Release|Any CPU.Build.0 = Release|Any CPU + {CFBB23B7-1BFB-4C8B-AAD0-36AC3AC2B680}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFBB23B7-1BFB-4C8B-AAD0-36AC3AC2B680}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFBB23B7-1BFB-4C8B-AAD0-36AC3AC2B680}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFBB23B7-1BFB-4C8B-AAD0-36AC3AC2B680}.Release|Any CPU.Build.0 = Release|Any CPU + {F7F5E0C1-DC5D-496D-A253-0C6DE1940946}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7F5E0C1-DC5D-496D-A253-0C6DE1940946}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7F5E0C1-DC5D-496D-A253-0C6DE1940946}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7F5E0C1-DC5D-496D-A253-0C6DE1940946}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 11/C#/Chapter 11.suo b/Code/Chapter 11/C#/Chapter 11.suo new file mode 100644 index 0000000000000000000000000000000000000000..475158af635898244f1b63b51a808650835dedbd GIT binary patch literal 33792 zcmeHQd5~1a8Gi$K;0+Q_gym34)OC;93q_fonO#;FS=q%!Tq1ko!tS!L3qrt?!~-!= zqe2oqlaz^}s2E7BBvwVJP)Q{*n3PEwlT_4752ATvq19T?nEYR5?h=4X3bTQ~$ z&=k<8K<9zZ2VDTV2t@g~1o>3Ze9$z|bWjn9_hurW1)2>i23-ca95e^?Y0zgtSAebr zT?Lu}x*AjhDg~8+%0W?31*j5K1*!(sfaZd(0bL842f7Y)J&1La{-4ugZ4Lg0F&0T} z0Qov?6MDvfIuBB#`j0Z;mX0hdzwfR04o1ea5C;~i2{o?KR%s2Wy$450ZKJ&5^Yc7d zAXPtepI;NQ%d#z6yEde))*7{501-GMW&y7~Pg)X#dUbAIcm&8Dt0DIH)=JD|>$4N&?|TR{Eied<4R z>i@8QO#7j9RXv0H%VXLA+6d}D?SNVTsmo^lzZB<6|Ec5rK6RP;PaUTI(?;;RoBk(I z#;pG>e$aT~gSAh#{N?IN|NRYzIZ!$h zr-WplBAI_xe3Rd2za(Mh+c27g=nZPlkXD3oZO1sQhIS3&yba^pfU%1~*NY%WMHtIX zq7*IQYTS<_@4~lvbO*jW26$FCg3kOi8hhr8W-)5R&gcjZpVlh zf%9IplI>~(*S%;Jt>zG@2Rs%*;%L3rqjVq6nsIGCTGEUAMbLsa+>hgv-x@|fguD|u zCBklhYH_a{&smMuufY>IC%D<6Ij}#|@g#_tNI3LNY^$>J_WEi6JHY|_p8OBE)=pay z-2M~iIN4wJ^Z@#<8FjB0{X~s)PN+Y^=h0rW1Ds15cQ{u(5RvEh_8awY!pL`k3re?h z%B20Y2gVaeQ{p(6^`RX-Lf(|zsdH(O@?XE?%Ftw^FETsgd}>eGT(dvR?fhgdLP_G( zK@h%p!t@EJQ4%BLv`E{0UC1=;ySL4c{2b@9xS>b6;=xzIl}IFS7@%YOoG z?S!WH>rXbfxe51%&C%?6wf5`egR~I+-zR#RGgmugkMq}H$~U0b#yNusFp5tzt2Y;E z+Wiq>yHYwQt*(>RH+Vw-r~2M+{pR*BfOK_yWjd5t5Ep+7Szy!8fk@y zb~mE`DgPVL_w)n267_#J3Mn4E%JcpOAmz8Yjla9)mNlvP3vG(u_FsvzPs^`kc4054 zm%nnoj9bR~8GB)y{MJ7oWq%6FMG62FpxG6ezoUrPmLe`opm7&w$S&Ai>%6~6cz@Qys5Z6j@L{OK&Xe2>|e*9jr5y@q(xfqdL z@{{d|)Sy=@K{Z0!IU)&+P6@6NPM3@E;)qmXlnAFwpdED>iziK#oq zti%~)7y8SN+=Ipa?nZChpWqk!kK~;wj5kk zIXuW5rpCxkYI31bLFLJfpKLXX_9+hi;QSGX)=+1tN3?95SE^va=%7Y*-Qtxb&iSnx zpInzcaje1^xOT^(d?S z54ZZuyeh|i)SsF+{np=#@A>h+xR=B$srGYy+i(5LQ1%J^!EWuZ^r{^9Gim>FQ~k7` zxz=B2YxaEK;kR?EziRhHW?oYqD7zMaWxx>$Szi+03Cw8P2gsKE22G-G@g zU`!fuO#y$tS^OsW6Hkl?0)@Y+8ApqN5+xvLz(+QTR~5P zz5sdv#5MYdkUy*+KZ1Na=uyxYL0MlZrz%$9kr@Bt`yEPJJ&KFlpU3BGdO^8j&DG~5S|T?ca?e~HrW>w;as%S+sa;7# zo9hJ%RrPTHr>dK|y6%>n_aC{nzuN5~`aQOPDvmi*_^tnQC`;SQtBnqwB=0h^?UC?Vg0OECHYkMPlACxdJ*^fy(7@9zX;EwUql{|d8P+ZVw+yd zy?*ZqFzQdqzTf(HnCcHE|08#YLH@-%nwQ|2e(S#!W#?QgJHXvf4HS1si}5b!KJGe8u6f@{HQmk>?@px7f)pGj?C_0WhHS>3q8)w_51 z+XiZKkg<;pucJnldi|RP%T)6r6o+Vp!k)JQei7gaZese{~@cLy$8-lIEum#-15#|=y_iRaB zBImb-oO9xEzS*wcz8=!;0C~SDWV~C^SR&cjKrZKjOBI#jFAgN&Ww&B|DBZjJ#kik@ zCiB+`Yxc|U2X zy>RXCv9-RwwmH5OTovBNaoyDkBaGoUN>11@0!Qh1#R$euf#Ve;IJY3|7{QtI@M8pn z_c4sXT|*M9s5x&8BM`aSdn2qEp-=p}kr}<1F-sxQE_XMX`BG?D@ki`uP;;DUXZxNH z|FbW8SKV`OoxSk4?@!nsF0{j4iB4#TzJNI*qV0OP?fIIpL_~scZbU>>8%~^v2uCS6 z+6jke>$E49zDYPD9tMYYJm!pM!Vzt9=G=YHFZ(_mF&pO=IN>qndlzz!;9Ni&i-@S6 zP@^&y5wXY8WaNmu*3GCwp$SS*AtgBzw6p8+jweoj=h^s+Wzr|h?P%x3!gjx$ z@w4sEjNh2p_iX*)Up>}zY81AGcM{ofj5t7ld;Yw$s~i;$SXNE7QWZPFO3=#iB8 zaU_NbgHD)#A&@)Q_{;4p#dxjLeXIPVt#lILgu=bCYKe^l1Kk1NMph4R!wS6#1Vb()k62jeDB=C;$7stUCnj z^Ey7}|E)ofP3d5I?=6;B-V$Q>rJUhcj_@XxUKLhy{Ou12kIqfT2%6*Q-0?6{L#Yo; zv=@cY2O=;tmu7y#AcOKZ|Ae~_4kPW)(i61!&Y zbIREHiO~b@zklQX3*`L$otfwg{;vf2cD;AMynrJ6yo>oRAztg(KYV{FhXs%4`u_*+ CSGlVI literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.1/Exercise 11.1.csproj b/Code/Chapter 11/C#/Exercise 11.1/Exercise 11.1.csproj new file mode 100644 index 0000000..5801151 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.1/Exercise 11.1.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {70471E41-3D3A-4DB3-B5A7-3DBF54421971} + Exe + Exercise_11_1 + Exercise 11.1 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.1/Exercise 11.1.csproj.user b/Code/Chapter 11/C#/Exercise 11.1/Exercise 11.1.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.1/Exercise 11.1.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.1/Program.cs b/Code/Chapter 11/C#/Exercise 11.1/Program.cs new file mode 100644 index 0000000..b8a949f --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.1/Program.cs @@ -0,0 +1,45 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; + +#endregion + +namespace Exercise_11_1 +{ + class Program + { + private static string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI"; + static void Main(string[] args) + { + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand myCommand = testConnection.CreateCommand(); + SqlTransaction myTransaction = null; + try + { + testConnection.Open(); + myTransaction = testConnection.BeginTransaction(); + myCommand.Transaction = myTransaction; + myCommand.CommandText = "Insert into CustomerProduct (CustomerID, ProductID) Values (2, 1)"; + myCommand.ExecuteNonQuery(); + myCommand.CommandText = "Update Customers Set AccountBalance = 96 Where CustomerID = 2"; + myCommand.ExecuteNonQuery(); + myTransaction.Commit(); + } + catch (System.Exception ex) + { + myTransaction.Rollback(); + throw ex; + } + finally + { + testConnection.Close(); + } + } + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.1/Properties/AssemblyInfo.cs b/Code/Chapter 11/C#/Exercise 11.1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3c767cb --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.1/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_11_1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_11_1")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 11/C#/Exercise 11.1/Properties/Resources.cs b/Code/Chapter 11/C#/Exercise 11.1/Properties/Resources.cs new file mode 100644 index 0000000..a121a95 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.1/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_11_1.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.1/Properties/Resources.resx b/Code/Chapter 11/C#/Exercise 11.1/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.1/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.1/Properties/Settings.cs b/Code/Chapter 11/C#/Exercise 11.1/Properties/Settings.cs new file mode 100644 index 0000000..540fab6 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.1/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_11_1.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.1/Properties/Settings.settings b/Code/Chapter 11/C#/Exercise 11.1/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.1/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.1/bin/Debug/Exercise 11.1.exe b/Code/Chapter 11/C#/Exercise 11.1/bin/Debug/Exercise 11.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..b4f7c67b64cedb53ba21e10ffe1637ca0cbb4ff5 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.1/bin/Debug/Exercise 11.1.pdb b/Code/Chapter 11/C#/Exercise 11.1/bin/Debug/Exercise 11.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0936fba988766b952fcd6b1e23816a576b07e8e1 GIT binary patch literal 17920 zcmeHOYiv}<6`r-tVjJw*Je<@#a(TbkUW3geX>7b;;$oLj1Epjed%eDfjn})*?mE~} zi8d7qq)jA#q*5dGsiuUsQIxbOYG{y9;6mz51hH_(%tNV4OqlC?q&zvJ5sJYsO1;hz4!WU#6EOPgD)HCF4O)fkWW1OxFdI~X_+>Py)P%kK{c76rEs z*okl?X(Q|N2Omzv`|Lz2Vkd)bb}AK#?N9o`Ng?b_!H_cDsZDoBVxcHZ_YPW}G##et zaMpBqQP3V{x-V-w=`fw!PJh`>#`_atTlPA)orYtxrgPKl{fSU7-J6?^8f(+A6y5-H zT|5E~f=}uAfMkZsQ5FSruW;$k^uV0IReLU?>#y~DpL*}FZ+k|W<}nAxvjNWwtT$I{ za=k1E({|#Wq3B+uDK~4$M%ob9kkNg1VCfv{a_v!U^?<>*Q;!(F`Snj72*NN456;~F=V7@zny9~9cT^3Li=ruNR89ZGlvB>FbA)^y<$jdYSA{U}0(c?vPl9Q$67>L%dP2Z& zeX7hW{o)(XFECW#*>RA5;5^X}b$TvS>=cNx+|U&097l%j3;H3@A5HZqfDHOSL>J|J{N70?ev+i9+Eq|=*#NT-Y8{Sx`Lg#eaf%|8RaPo_%{VJSD`QFG+U z%&~JkUw|$4rlPt~a zfGyxY@KNwf;J3gR!7kli9$;KG@&6hZ4Cr|U@)z^&eG@4uY7IqVNSpZo8Vadv2fOTn6dQAvZ3(49EUR?rvCP-@cr*}=*fG># zY-0bxe7s}|v027mu3`3*Yw;EI^P9j^V2)#igjt*3~9sVyAq*TG9+C98T)lF?7jppM*bck{-N9|=QHfAYa_TY z#ya^{_Dl8!ai9C;KE_|PBlih2=XYLVUuoC|CK z&I2+AK{w6s*wAKrAJ78wyvW%6HQ)l|9|bN1wgVRdyMc>=2Y}RzXzT$lLwOXq9EjIi zu>y#tDE0a^J^@^b@`F16Esf6s5&scO3o-6C8AD4DRZFk~s93)gvAz*p2abYQgAZt2 zCUsx}xLoV6fDE3{q-#y%UidCn&xUZt62%wjAv=Rn3TI)$+daZ1K6#1Sb+T#zwrHIT83F^#cn zJ&>_$1CVxjPF#Te{XoX7CLm+hHZ6ZhV>6I3?2ACe$@F&MQXpd?W0*Q;vNdzgY=S>= zG6j`k>SiJWSBMP~S*G&aGkK%Om{Wol%(=800_Eq?V+-SbHnuQgXJdv7VwhP<=j)Dikhr!?E+3bDdbR$a%duV?+ma*X*x>tf@r(0#g&KINMiA?O%= zRj&0zS$*2^$T6tHlF?V?THl}5KQHz5p~PWdm1}*qRYK~L>w(;Pz{0b`bvYWDvjJj* z{QEE-19=7*O?Q%(ap;qpIL8Nz@C`UdiTD1aWn$Uca@<~QK*1%Htp-~ZYT{iC-d{i; zpOJtc^>wiG`(Ps>mWpa!pXYfdFaGPJDMrJ5J<#s=xBGqBuLpeQ>jAO8rm?nZQ@|Lf z;77{dgzR}RNe^45smHq{W78?igJy{|HP{aw$48hoqvh@Vmb z;$2;CzLhYarDP_XA5P@PwE1u%H`Yu?%@ZKMpE2L*Xm?8A$R9dS(KIXwlg`S=NsaaY zKRB;dEsYECTZ=P5BY9dHT2`F9c5o^C{1SOQds4xObQD zS+AmNykmM_U#LBV2l*oMdmYTZU^%!C-D?4#fX)SQ1NarxXI0!;$P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.1/obj/Debug/Exercise 11.1.csproj.GenerateResource.Cache b/Code/Chapter 11/C#/Exercise 11.1/obj/Debug/Exercise 11.1.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..6916b20a5eb86f5be8a861165f359e84c51bb6b9 GIT binary patch literal 784 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.1/obj/Debug/Exercise 11.1.pdb b/Code/Chapter 11/C#/Exercise 11.1/obj/Debug/Exercise 11.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0936fba988766b952fcd6b1e23816a576b07e8e1 GIT binary patch literal 17920 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.1/obj/Exercise 11.1.csproj.FileList.txt b/Code/Chapter 11/C#/Exercise 11.1/obj/Exercise 11.1.csproj.FileList.txt new file mode 100644 index 0000000..8fdfa6a --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.1/obj/Exercise 11.1.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Exercise 11.1.exe +.\bin\Debug\Exercise 11.1.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_11_1.Properties.Resources.resources +obj\Debug\Exercise 11.1.csproj.GenerateResource.Cache +obj\Debug\Exercise 11.1.exe +obj\Debug\Exercise 11.1.pdb diff --git a/Code/Chapter 11/C#/Exercise 11.2/Exercise 11.2.csproj b/Code/Chapter 11/C#/Exercise 11.2/Exercise 11.2.csproj new file mode 100644 index 0000000..dbfea82 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.2/Exercise 11.2.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {F9EFAE8C-34B4-467D-9FD4-0F4DD2E2048C} + Exe + Exercise_11_2 + Exercise 11.2 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.2/Exercise 11.2.csproj.user b/Code/Chapter 11/C#/Exercise 11.2/Exercise 11.2.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.2/Exercise 11.2.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.2/Program.cs b/Code/Chapter 11/C#/Exercise 11.2/Program.cs new file mode 100644 index 0000000..98a26ce --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.2/Program.cs @@ -0,0 +1,79 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; + +#endregion + +namespace Exercise_11_2 +{ + class Program + { + private static string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI"; + static void Main(string[] args) + { + SqlConnection connection1 = new SqlConnection(connectionString); + SqlConnection connection2 = new SqlConnection(connectionString); + + SqlCommand command1 = connection1.CreateCommand(); + SqlCommand command2 = connection2.CreateCommand(); + + connection1.Open(); + connection2.Open(); + SqlTransaction transaction1 = connection1.BeginTransaction(IsolationLevel.Snapshot); + command1.Transaction = transaction1; + SqlTransaction transaction2 = + connection2.BeginTransaction(IsolationLevel.Snapshot); + command2.Transaction = transaction2; + + SqlDataReader myReader; + try + { + command1.CommandText = + "INSERT INTO CUSTOMERS (FIRSTNAME, LASTNAME, ACCOUNTBALANCE) VALUES ('Bat', 'Man', 100)"; + command1.ExecuteNonQuery(); + + command2.CommandText = + "SELECT FIRSTNAME, LASTNAME from CUSTOMERS where FIRSTNAME = 'Bat'"; + myReader = command2.ExecuteReader(); + + Console.WriteLine("Results when the transaction is midway:"); + if (!myReader.HasRows) + Console.WriteLine("No Rows Found"); + while (myReader.Read()) + { + Console.WriteLine("FirstName: " + myReader[0] + " and LastName: " + myReader[1]); + } + myReader.Close(); + + transaction1.Rollback(); + + command2.CommandText = + "SELECT FIRSTNAME, LASTNAME from CUSTOMERS where FIRSTNAME = 'Bat'"; + myReader = command2.ExecuteReader(); + + Console.WriteLine("Results when the transaction is rolled back:"); + if (!myReader.HasRows) + Console.WriteLine("No Rows Found"); + while (myReader.Read()) + { + Console.WriteLine("FirstName: " + myReader[0] + " and LastName: " + myReader[1]); + } + myReader.Close(); + } + catch (System.Exception ex) + { + Console.WriteLine(ex.ToString()); + } + finally + { + connection1.Dispose(); + connection2.Dispose(); + } + Console.Read(); + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.2/Properties/AssemblyInfo.cs b/Code/Chapter 11/C#/Exercise 11.2/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f6ff1e6 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.2/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_11_2")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_11_2")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 11/C#/Exercise 11.2/Properties/Resources.cs b/Code/Chapter 11/C#/Exercise 11.2/Properties/Resources.cs new file mode 100644 index 0000000..38237d9 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.2/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_11_2.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.2/Properties/Resources.resx b/Code/Chapter 11/C#/Exercise 11.2/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.2/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.2/Properties/Settings.cs b/Code/Chapter 11/C#/Exercise 11.2/Properties/Settings.cs new file mode 100644 index 0000000..33c2ffb --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.2/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_11_2.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.2/Properties/Settings.settings b/Code/Chapter 11/C#/Exercise 11.2/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.2/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.2/bin/Debug/Exercise 11.2.exe b/Code/Chapter 11/C#/Exercise 11.2/bin/Debug/Exercise 11.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..cd5b81b8b6af74ebd8f785433b971404bb159ad3 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.2/bin/Debug/Exercise 11.2.pdb b/Code/Chapter 11/C#/Exercise 11.2/bin/Debug/Exercise 11.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..464d57d9238965fd28f909cf0556061a3b7468a8 GIT binary patch literal 26112 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.2/obj/Debug/Exercise 11.2.csproj.GenerateResource.Cache b/Code/Chapter 11/C#/Exercise 11.2/obj/Debug/Exercise 11.2.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..12d5b3ce56d3f6cc35cf2d56ef1fd9883acf00a2 GIT binary patch literal 784 zcma)3%}T>S5Ke8=Uxj)Q5j_;~AXq|c5xo?_O0{UgKg5HVZFYi7x7o6@5$h9p@wt2m zU%_|KnW7>!h!gmd%+7xE&3sh^;##oZVwu*XeZi@noYUW5G~@)u37OS0? zKNMxxE+^<<6m*Q%)Si}s!Lh(QCk7g(4RUlR$M9!qfeOl}M#!$b>V0u-q-gH_;(t5e+vj=9jKMl`=avjJi46e*^5~(;#ave^68H?wbYFfOy+x_1$-K9U{`MG` zzdf9==UWj$EJm<8lh*=W-$)fHkV`XX@SxCPo}?{grVf=@BoE`g+WvFl%mm3MwiQ6>8O1h)Ae^w3Skd+JJyom8c4oimE~a+D6b;LWQbO2~|*4(BGTA zy`1AHMXgjJv2)qC@4b2R=FM+rXLsK^qqjapQ6f@teDVp=S)94_OL}QiL3LvN(+PUA z>E#V)m64Y>OdT;?t>oARM=xr5-Lh;?%L&aXTbf~MnenVvwC6>trKNdO)%C;>(TEbI zzfYOzptme@Fp!}@|M8naKgNcUI<$m1YWc+-l3J&PGU|bj$1StpSTD7$K zI{Y4FuAgXvfw-{TMzoxDuv>Rw-KAuW2qUPKIOP2`i74fX;~wM>T0u}3j0aq;XhgTA z9M{Q1BV+3a!(-{fQCIpAeaaE04MQ30ZKz~BRMZ!UgY|OAhX{lSgb0KPgb0KPgb0KP zgb0KPgb0KPe0~skh2N`D_}w%@4b*`b^VeF46v#MYrS|hV0k->3Wo?&AFQFm+CFumH z>cU%d^Lchz%uYbFyiuN7V)kW_sL?;gG<2ZYczJDZQ{ze1PRhzUZ9`MC!PipUf&Y?? zH|S=H+if^)X>!igR8963>?Y>)DpcxN!B)wby^?kDWPIB)=l+`hx&gZKL5{kuDcQ8r zc?=b&lTE9Vv6c2J*n?l~Jmo9bBx9=rWyfk%`kvYKn!xoF5Uzwk7{FRSUo@=OYu*39 z!=iI-ZH<&{w2{#W;y*`pE=e)_Dvr0&Khf{0<7&uTw$i{3f9B_K>H|{W#sS0$)k*|s z)@Px60teej0x9qZv~>)NgeO`{fVus%T5D?V0Meyl8O+_r~KAOWLx zXdJ=fDl~N)uo^4efX*eVmK)d-L6UFYd>zHMLQt@LBGgHV-Gr5fT#L(HSJ*knv6180 z>c@lHt<=^Pr5nJ(05KtDRE=qQeA`BH9>o}5filv8OQG4u_0jBZ25F8}*wk;Z>^f@P z+SaAeGWdZSeh{xJBicxj3JV+>J&EJjFTVF2K%rAO%~`J2STlzmiKeYu@G z_1=8%7rJ+C-yyoL-_^dfv$EwGMG^F#6&?_-m5G52|Kpekvj+whxhwcNrehpLZ`aPA zoowAeCg@)QVEYN8TL3@_BW}-nj$svCw)kZe#tz@@(^Wa^<=~3bN)rS1Ph~sdx@C3~4!B2;m;xLe?iL)J_hLQE2t)F0&pe;m+CRt0 zq5`A`s7x{Xfc^x!L0PWE=pLmA`VC2cDCw^xeOpqBaP1mNua|UM(t9FiWDh-zj$`!m z$mvLo{s@|&-st*hg3^-O(OK~KO8%i}8~C3|%{$PfOik=p(fzNhL_V6 zqz3TV2Iw@!U{y07X*#brhGNPL&lg?1xVX;kTjl&?yMl--bcdXvkuqyv%;OM0`Uha}Y{H6*nJIb0z zqjU64IukuiPtl9f1E6n2O=v!hmgogasAc*MZC39B?N(3F>olO=2Y$cQjH+$)7U`f( zbh~^b(;DS0y+JA3PVa#3 zku*=8N{ZU)eQ2=TfKN;PT1jt`nk-!j{g^eV0e1vAb#{sDfF zd!~L+p$tK%qBeqzbpvP_pBg{dExoO{04Nxz{Spl9R^)9~ts87yMC>PdHSw+zD6J-wb!W$!T4rXeh>UvRZm z=}X0;Zp~BL5xOVPm6Ylnao9yH@=UI-;dn_{+!|A9xw>59H0;`@9Knb1;eVZ z=VetdvqQf(x!`<$iob1PWO=NlG26PiESv@ID1#ySk2OJURYFkcSI|Mn@WhB=2?Sba z%g^VMHLpF5ZeNr zJk6$@Mk!Lpa7*lG=y+bpg@ubwwPG9Ef^cr>+85>%aX z=J#V-FtB~XV`;Br7pt1!%98`C3CHAiGBnR_2OW%e@zT7YBI{wc8A`cvUbqj|o+Mp- z9IQTF5>4bg+Jlodm z2H+u$*3;7CAS~Ew47wq@7HwvvW*U<3`5JtU)XAf3@TjhVjzY4kQa8SFcA=G0xsO8~ z!I75Xe!6fpI!q4PRD|P;4eL%iLIM^7^-Dc!)F%T9!c)d4Vd>&|(L}f|>iqT=I8S=w zvm?WILGzFd^v?B$v@ha3k5)P@&~Bo&W2n^ts|_9d+Y7D?`+1^OdtvK9>j63)BM@kz z5v|vx|9S8u;Fi=M`d?#YyiEKAqR=RZKJs*wqdl61&Y@$H_F+kwu*{?0#02f33^)%5 zw{T(8hk0VOJk$+iOdh0yM29){&HnNjuY-|#K%@_vEKR_g+Wb*48V+pO57E1gH=gP1 zfBe9+ebzrtcdDx?{*$|AXV&a^^JFBJzyq#wRU)d95{lRzOp>amD2WD;WFNC}RioC?n5MK&Cl9f@bsCPPR#yq8kRmW#7l)(7RqG(~ z^JsiUV{_{;exvwJXow8M;=Il~Zx0`i#|}@FUVng_5;+_Mi>`e{qTn%*n}G5E`rvAQ z_@9cbJm}~pY{j)b4VxHt7inAj+lvSq-ic!!|E53&Ek@gx*6mf9QZM0&Vn-yhmn`yvI$=^2w8|ABV)=8g`bg;26RT9LaYj6 z;=GN4wuOs$!l!E3a3ae8?LdwL7$D=3fIjFsBeN8F>8AvL=ldC=`KVRFd7Bqv^>}>)oIj^mvIfA7!l+k;DP;&SKBd?97})= zOPs;_bTRpuOu(0oJW(0AozH>6#gcK=%O^uW@8Nl3lRtr g2oVSo2oVSo2oVSo2oVSo2oVSo2oVSo_^%N7H#jV-NB{r; literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.2/obj/Debug/Exercise 11.2.pdb b/Code/Chapter 11/C#/Exercise 11.2/obj/Debug/Exercise 11.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..464d57d9238965fd28f909cf0556061a3b7468a8 GIT binary patch literal 26112 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 ax6k#|OtVVOB!%(m@xmQ4&r^x?75)I7a!V=z literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.2/obj/Exercise 11.2.csproj.FileList.txt b/Code/Chapter 11/C#/Exercise 11.2/obj/Exercise 11.2.csproj.FileList.txt new file mode 100644 index 0000000..fbcb63d --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.2/obj/Exercise 11.2.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Exercise 11.2.exe +.\bin\Debug\Exercise 11.2.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_11_2.Properties.Resources.resources +obj\Debug\Exercise 11.2.csproj.GenerateResource.Cache +obj\Debug\Exercise 11.2.exe +obj\Debug\Exercise 11.2.pdb diff --git a/Code/Chapter 11/C#/Exercise 11.3/Exercise 11.3.csproj b/Code/Chapter 11/C#/Exercise 11.3/Exercise 11.3.csproj new file mode 100644 index 0000000..2a0673e --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.3/Exercise 11.3.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {9262919C-DA06-439E-97B7-05FE7C11FD5D} + Exe + Exercise_11_3 + Exercise 11.3 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.3/Exercise 11.3.csproj.user b/Code/Chapter 11/C#/Exercise 11.3/Exercise 11.3.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.3/Exercise 11.3.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.3/Program.cs b/Code/Chapter 11/C#/Exercise 11.3/Program.cs new file mode 100644 index 0000000..23edd28 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.3/Program.cs @@ -0,0 +1,64 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient ; + +#endregion + +namespace Exercise_11_3 +{ + class Program + { + private static string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI"; + static void Main(string[] args) + { + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = testConnection.CreateCommand(); + testConnection.Open(); + + SqlTransaction myTransaction = testConnection.BeginTransaction(); + testCommand.Transaction = myTransaction; + + try + { + testCommand.CommandText = + "Insert into Customers (FirstName, LastName, AccountBalance) Values ('Bat','Man',100)"; + testCommand.ExecuteNonQuery(); + myTransaction.Save("firstCustomer"); + + testCommand.CommandText = + "Insert into Customers (FirstName, LastName, AccountBalance) Values ('The','Joker',100)"; + testCommand.ExecuteNonQuery(); + + myTransaction.Rollback("firstCustomer"); + + testCommand.CommandText = + "Insert into Customers (FirstName, LastName, AccountBalance) Values ('Robin','Sidekick',100)"; + testCommand.ExecuteNonQuery(); + myTransaction.Commit(); + + testCommand.CommandText = "Select * from Customers"; + SqlDataReader sqlDa = testCommand.ExecuteReader(); + + while (sqlDa.Read()) + { + Console.WriteLine( + " FirstName: " + sqlDa["FirstName"] + + " LastName = " + sqlDa["LastName"] + + " AccountBalance = " + sqlDa["AccountBalance"]); + } + sqlDa.Close(); + } + catch (System.Exception ex) + { + Console.WriteLine(ex.ToString()); + } + testConnection.Close(); + } // testConnection.Dispose is called automatically. + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.3/Properties/AssemblyInfo.cs b/Code/Chapter 11/C#/Exercise 11.3/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0cae654 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.3/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_11_3")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_11_3")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 11/C#/Exercise 11.3/Properties/Resources.cs b/Code/Chapter 11/C#/Exercise 11.3/Properties/Resources.cs new file mode 100644 index 0000000..45f8754 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.3/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_11_3.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.3/Properties/Resources.resx b/Code/Chapter 11/C#/Exercise 11.3/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.3/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.3/Properties/Settings.cs b/Code/Chapter 11/C#/Exercise 11.3/Properties/Settings.cs new file mode 100644 index 0000000..e1ff187 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.3/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_11_3.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.3/Properties/Settings.settings b/Code/Chapter 11/C#/Exercise 11.3/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.3/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.3/bin/Debug/Exercise 11.3.exe b/Code/Chapter 11/C#/Exercise 11.3/bin/Debug/Exercise 11.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..6aac28769446a735eaca7e1939ebb6f6475f55e7 GIT binary patch literal 20480 zcmeHNZ)_aJ6@PpG?Zij!3??BC*~AHP9Or7s2_eJ*+jkB)*opDk38ik$-g$CaytjMo z?u8gt!KhVLR8dMx5eT75X+O|ENTosrRkR|g6`}$})enUhMQNd`P%CIFR8&5M{@(2E z`D{mNKO(wg&)a!__RX8$%+BtpD%o0DEo!D|xoSbEcGXmMQ_UU8t7U6eWLjF9x71vZ4-<_lVfx3U zk@b5!Pf2B!k|0tc;fj*%15r^2P?@MWtnuPTOUBPfT0n)I3&w?Efswp_tgEHXGrNe6 zach8RoPk(g?jTwXnF_o1<+@ApDiKCdFA4BB*Eyn$D^9uKFK-2b&L0n2^`a8pk+B`S z2#Jhs01X~X4{AdhK=c_~7#0jUR=NX~?FLXA$^g+&0~<601OfyC1OfyC1OfyC1OfyC z1OfyC1Of#9j}Z7f-fOw=yJ?7`^k@gsSCd2vc)Y*H&Tn4K39#LNE9-kgGzBA^pQ6*C zk;^YAZ5NbP@tynWbO?NB3sLhj)kY!*y4V7rKuOJv3oU8@adXR#8ESt3Fet6jRJ6@@p+A#~UfE=Soh?jmivy;py0&I?tK-#zp%-rv^OM$`Fb@>=?$!1b_gve%uWz^Lxo%&_%Fe2$tCxk} zdtP7)7R&fxj{iC4q5PpCMP7y8SWj{gdwTZn+RNrqGC==^h1hYL=r*jrS&X_P@7lUq za@gYeCL&(H9aDMg#}&uvppKiSMshfgg6{_)9YcmyU}F@7p&Yy7jMBtFeWdgeRxCGx zH?9HhQO*|I5hh9E&vNF`jkIBVZu60?yNCrLMkli_CC7v^4WkhBmkD=~UF zd^#MXr$CeRZuqyLA4=L0SrbXpo(M~XY(F9CPo(5Ew43Rj2z&ddq-&$x?gr)Jjg4nW z0k-Y56$p9rwT5m0*90UOpEcN7$H7Iho2KXtJf!Fc*tSyi9&H4@Qt1FarVP@!%6=b7 zJPTf-*CqFrwP!IA3jI=Y53Su57U15H+?Q&)cO>^nqC?pRUH2wJc_gt{=?0graapAo z+^FOpq7zCE^Y+GOw)A=k(<_qmdhq7(6b=f#7~W22=@9iwx=+$UNk=5TRnpH&s!6I# zdKc&sx({@U?gwqd)weBtJLpc(l$10{`WSMXIz2{n;R>yTq)JbN@;Th^SqeoSrQc9b zqz&y{6BN74i~ccgNc2i}#4qU)MyjEsVr3CURkpS>S8TFAA=CtzOF)Fqi%@Yqn~L8)*2Hu#37Q)ZX4q zUq+k~gx$!M`-iWZ>Fu5A%Z%GrMcA$`9P;-qhalu6f8C2TC2zm09Wq(VJg%3jw&r3N zrNK%Cd!=mq9Sv!YAb-E5BZWIf(WUatQO&4AK9ip}i#1_MxHWO6=vp>;Cd;?idVFJ= zsg;CHGq!NXO12-+P1x@=L%+uhsJ5Grn8z(?SmTNN@(1cWVwtaZ8rr_BXqhI0$2h$` zn8q~S^t+u9#|=+OgN`H01!KN;YZ-L0V;8Efs4Hp?S1KlL+@8vsJ-1SowJP(rUOM5f zRAHKCtHp~bvR1jGne!{pSTboV)j8o5ZN0)HU8$VZT|+F2Ytxg{wUTK$u3mH~CkoY4 zNh>s(c`__KtW2yie^R|WB^FV+q8q}_3;U#w`!#t2IfWC#&`!ygv)Jo|ccL7is~2=b zcN>Q3FKxN%{k|qo*tq#40vfYSo!8f}>0%+cRNdwS*FOl8di#C;|}jbtGQZZ zJCnc5$Qn946SwM%(&Nfy#7tR?)fEUqat)3c>M}0WT%qB_BNc&le3yacXF8f(;WQ*l zy4fh;E25ES51xB@t$6K8{@?}pi&*Z5E%Vl@u;(eSodl|uVHC9D9C~i_!ajgMI?rL4 z6Y}xQcTnSUg$5O0qa%2>quM2iQDD2ldNCafGj+_?T`{Vg=nt+aYgpKPCas$BNKSVu zmc*aDra)gsAy+#0D)-9e8)E(8(ZTn(+5;u_*wzU=@i=7RUS?BKwrSz}BVp<2?2Vr4L`C-zCHQkVpqRqCAvO#oFl%281Ay^owrtEk-&N(V2 zRT&0*-X?8a9J^7+q%F65@m;Zpwv)2{c)joCvC+a)pPXS#(g_U88^$33Fel+#GL(g9 zKRMw}AjE>4cQ52T+Or6G4#y(slE6QchsHoHVop`O2B~x$>%qcGxY&xJb?QY{%=NIP z)|D%Xt(UJPl@73VYPp=Ys&uIpRy%LQrEF-9M`P1TNe^HR8W>4YuFLIs+{&Tlq83p3 z3OPWNpuEoa6VIOuu7va1N&qvJ*k4gzUOHs+I3th0aaf}qeXj4CKaY0~e=mObOTWAQ zJ4H%7d(ZUIb-T~sAC9FHp;$W}%+ramN=hWbjaa$`HO0~vCMi71E8wAQVUh~Pk}TSg zjHrr|jDn;Na5E8sv^^RR!7D#4$4E(!rEZO=l%9&IAtjlfipRt0mUK%f5{E~5=I0Yi z?dgr}1d}o=(q%-HV0Iq9+quW&284WGe{kIt* z^mR9CKXOL>n~5g!x%}IEA8&bY!;?2ZzAwG&slyMR1%5Pq{q$f3`=O%_VOOtKoauuj zhX+U1o$A=UI%HXM(^=g2rn4us3huJF6HjM5ru|6ejd|KC+&L|u3zo_=mDvIkLg?Qw z7r3qZ+|r|;+gd7}$yzo#lMiU}*;9zjtikWo_yx>XQU_!!AOQja0s#U60s#U60s#U6 z0s#U60s#V_ZUp#S77;#AFDxCW_hqZ+B67Cl-wxb1K!lIN_3}Z8Kj0q4OZg1wFioH} zf-gdc!H<9*M4QXcBky1EzIiA#zWNwmO1ciyiLl40jJzJ9p)m*V!_5MKaNZyRs}J+u+kwfUBnZ9$^aWqig|y#k)QwuNLM5w z=d=pNCH)N3Dd;!@sLQm*3{q^p7=Isp^e^#oRN6VP^JDDA_og1yT{xqU z_Mp{=)*kTOe;WP!i4hyobIQ+83F7^GS--06mpx?A568rF#y&>TF3GdA=(&PK3Xh_M zyqXJ}l`@qE@UpEU3PuDu26$jUM{4IWk{pYV4Rf5j{NG~oFd2t03rU_Ta9d1t!o`Yl zHR3rS@mzZDa#SykDbML3=7|$fWz4hzG&p(6Gq^Z2m-4|e1|>isKp;RMKp;RMKp;RM zKp;RMKp;Ti6N>;|X!)mxYxt!!C;x+5ty9wsoqbbo|E$?bME==yX~;wb#^47Ak2 zPZ7@O5%_TXRqLLe^itLRJ?iPr-zoX_k@igwz5SOzR^7kOjZgjhT{l+kc&X~CiOB zI0;w*oCcf@tOlM7oCTZ>oCEwEa4v8ja6a%n;6mW}zy-icU=jQq0l(&d)1ns_JhM9% zIk<58q1J)alm1Cq?UXg zxE~J#_v4a>=K#_1?;_6op6flRZ35!-?F#vHMf;C|`HaD2$m@syU-bVzV-s)0^-KTf z+y5J^>o#A#DH7fl9ZK6tt2PvhgcE&sBwQP5-)kph{VCfDg@P+0Tat+(JDKjcQ;{A! zo$inCOa)^p6}vPN9ZK4%RAg|UbxR_-I}-D-ijh^UHe%a!V%!y z;F%}mqtm|2T@CF6UI?_`uDYZBafIin(kl7_vruUzD+5TTsJg12eW|oPNS|H8!Ej<= zz>cN+6Y*4VgB`b%{V|>aGWplod(+-{TQnWT-A^W;@nFx*1L1*wJDx^6)yNYivMm(a zwgPDjl~u*_1?1q-0#K&HJ#`Ir4FJTL&wl0QH!(kiboQwUbSC<=!qcZ3)I+kTo>FN$ zl@2H3ako=$-3rv1hPvm1a$}PP+av`VnWXOEU^L#R$eZKt%^%!%O)?r!MfG?gk8-u4 zz{|kb5MSb!$M{%PoELB1)Xf8JQKXeXRY<)GG{Ey#ISS$*(k(rA-g-z@r4+Aw_q&e;0iy62Mswv{JCsQUW3hB1sb!8J z!$NtMmHhwbx?(@psdvyyfy}+oWGD`nf(n32zyO=VFiT0G@pBwN^|o$Cxx{3~el z?Y*vzmi>R26ItB<1x}?oR%VPNBvv-Ztc-L2`(u?vYjB-#kJ4XkL0H=ZP%rTQoqj*> z{!mQ&eO^EByG#U#W?~rUhw^o19g3e99LArbUsHziWr1qhQ{`;q1Ejx0Ap!KC$df>S z=yel@v*|Dh-^t;A#M`n%ndwgfwLiso1o~4op!BD>w~*#61EpWJ8kBz3T2T5`SAZ@; z`n907h<^c;epNpx{VMuX^sDGk(XToHx*YUA&`UtS3i|GQC!K?!&`Hiipzxm$`~!3) z;{OD#2jv4B%h9i1h4>Uu$l^=|WqKuOGveIS@cEpXpqGN45Bhn~g`g~F8M+AcGNdmB zy&Uu+lYY6OYeCURhx$K)@QHujn11<k9y| z_onGf0HpCAK+5G`1kl!^-wJ&&V_5jipO=5inP2Sx6X3;uiv7>llXH9Sncr*wkD9t- z|4*%(d*=7%7drEM?f+Ybx7dGg-TX7Z*Z$LgV1MMy@2w~HU)CDwaOYgT-Z0ksYd^(SlT(E{radZPS8Bh%#Qo(1ARUf zZ|&{CTHuwymB8tk_nUx0U=wh_gquNcHsK|pZNOH{7S~A?Y;cFBGgX~QTc~+4QVC7! z@(pFu-1IsvgRX!d%EdXSPw%duKt``|nYo;`&+E_@(GE^hyAV?9@4yNmbu@v#iv?@~ zb^-fu;demK z!B(4m`Xcm6mV@HEHwS)%_DSfQ&?kW(p!vZ5(>HNo|7lyC4$xZA4JLo1p`D-@Bkjv9 z2Hk}Cg`oVtzYHjQ_6WiRj-dei+KY(pPEcRdX`9A+4v=Mgfz0>nf8Otk-tOGYamdCq z9yRKWR_~PRTSv%U;_3vntLI{^v3oCQLACD#?k+&q@|zIUS+sj1KzB4A-DxLTigx-r z(1R!hzX>bdEid{U>&$CoLf(62uED(g92?`c|F;^x)a3|z>W$U@Z`Sr-*5q*ZAGWgm z5!1fd|MZ@uO*z>A7t!|?bc8;Glw<#y5B>%F&-ok6-Vr%p=imXjM+M3u=VOTI`NB&c z{S=XNWNo=?L&k)kX@f*^B&O+dNR=b}SY{n^lYh%kOS7)cq+%f!egNvAvDoR0tL@}-?m zqMrItOXC0wbqjFF>+UHH99no!3SO_F(d;FIbmzE#=ua z(H97F$pf@co}({WE-yc$FR4!&M{+*^9<-xeuLM^Qx$jNO*#LlgOaObJoO0?c^WHQX zU4nW!HlKWX4#HlTZUUaZ#>*J!CW zUZ)!IIqD)$nTAz-`fb2v%6#S4rG0bjW(|teaq~m${*9^&7wqD%Dd^Nd=wcI0Q}x>{^a`i9q?{JU%vv1VWJ(> z^mapSBr;v}w&?MdCjWPa228o{n|Qa0-)?BPNq^A9&oupyZVd~bd@hHvgN3SN;E=EX z$1XtOnif{RA21C}<^t=0)G74eHUh5!_5ufhdx3WXzXqhgaTw?`RQSyAQ^#(hnyz&w zItn`<-rT)xTYEg6+_!B@qMskzRC{z&nX3G}}RoCXU&T(50>br!QItr$+NTYlG%)jK8|9`fxL4Sz3i@H@an) zY3p0R96?)|eW_M-gc}=IgxW{Y)^v5)v~`);8@A%Rn2X%6_-2_eBTU9 zW*_TD%@6aqzhxii=k+2%_Ob9`8HR5H(qAIv=kd-+c;@FlhCEsD`FVV6k#|AUZKSyT zxjuxaH*Y-p|BK*R2Ydx>j8W^#hf-s#KGFK$pYJ!Mlm2j%K4&%rKUnmawd`wh2FUkE zdcEl%rUIy#T&To{AQE=-iod>%zyrZh;LYIHR{8*Mt$w)j-SZD^e0WWDyB)$g*SeRgvDKq9u=P1w;tV5jP1^5O94{%A+mux33j zPO^S+Uz7PuBLBE1y??#qVQWjbeg9s1!Wx;_uE>P);emgAzAum#AnKSDiD?PB1CKu%u`uohSctOjy5a5`rJxg0q4(|}wG zoZdh0El`S&H}WEka0KucP=w+L6i1*q L0>u$H3rFC;IviL7 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.3/bin/Debug/Exercise 11.3.vshost.exe b/Code/Chapter 11/C#/Exercise 11.3/bin/Debug/Exercise 11.3.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 L0>u$H3rFC;IviL7 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.3/obj/Debug/Exercise_11_3.Properties.Resources.resources b/Code/Chapter 11/C#/Exercise 11.3/obj/Debug/Exercise_11_3.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYZEOCP|I1Qo+6c|ECkb&Ti5v^pyuRI6e*JOY|6W`t>g$) zjEwq7vP=|G=pwKC#k3fPI0Y0%%BO1fJc`xkLw|Q|v$eI`@h6;aKI{5z#fI=+s)7HG zZt=di;?@15Ndh743z+@rOxb%w;ZlW*SfO#I3N02hDp900q)Zl3aTZ7{qOfSt>SUg& z7dGPoEaAG+@Z(*sxvQAD_vt0(M&>3Bm1Jme5uKH-CXu48Q@P4i}Y zftRRBBFy_#`q+2A9heq1e`|KP|5l?>vwyoNOvBoTI1?Bm*SP-k$L-qJ1Jk6 + + Debug + AnyCPU + 8.0.40607 + 2.0 + {8CC721CB-039D-4478-B49E-47EBCC905008} + Exe + Exercise_11_4 + Exercise 11.4 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.4/Exercise 11.4.csproj.user b/Code/Chapter 11/C#/Exercise 11.4/Exercise 11.4.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.4/Exercise 11.4.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.4/Program.cs b/Code/Chapter 11/C#/Exercise 11.4/Program.cs new file mode 100644 index 0000000..6f9c2a4 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.4/Program.cs @@ -0,0 +1,51 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Transactions; + +#endregion + +namespace Exercise_11_4 +{ + class Program + { + private static string connectionString1 = "Server=(local);Database=Credits;Integrated Security=SSPI"; + private static string connectionString2 = "Server=(local);Database=Debits;Integrated Security=SSPI"; + + static void Main(string[] args) + { + try + { + using (TransactionScope myTransaction = new TransactionScope()) + { + using (SqlConnection connection1 = new SqlConnection(connectionString1)) + { + connection1.Open(); + SqlCommand myCommand = connection1.CreateCommand(); + myCommand.CommandText = "Insert into Credits (CreditAmount) Values (100)"; + myCommand.ExecuteNonQuery(); + } + + Console.WriteLine("The first connection transaction has done it's work, moving on to the second."); + Console.ReadLine(); + + using (SqlConnection connection2 = new SqlConnection(connectionString2)) + { + connection2.Open(); + SqlCommand myCommand = connection2.CreateCommand(); + myCommand.CommandText = "Insert into Debits(DebitAmount) Values (100)"; + myCommand.ExecuteNonQuery(); + } + } + } + catch (System.Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.4/Properties/AssemblyInfo.cs b/Code/Chapter 11/C#/Exercise 11.4/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..92869de --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.4/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_11_4")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_11_4")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 11/C#/Exercise 11.4/Properties/Resources.cs b/Code/Chapter 11/C#/Exercise 11.4/Properties/Resources.cs new file mode 100644 index 0000000..ab4b6d4 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.4/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_11_4.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.4/Properties/Resources.resx b/Code/Chapter 11/C#/Exercise 11.4/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.4/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.4/Properties/Settings.cs b/Code/Chapter 11/C#/Exercise 11.4/Properties/Settings.cs new file mode 100644 index 0000000..1a65016 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.4/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_11_4.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 11/C#/Exercise 11.4/Properties/Settings.settings b/Code/Chapter 11/C#/Exercise 11.4/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.4/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.4/bin/Debug/Exercise 11.4.exe b/Code/Chapter 11/C#/Exercise 11.4/bin/Debug/Exercise 11.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..739567ac9d975cd0275e6e4084f70d7a405981d1 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.4/bin/Debug/Exercise 11.4.pdb b/Code/Chapter 11/C#/Exercise 11.4/bin/Debug/Exercise 11.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c9217f7bad7d4c19c8e67b33da568029672d75ef GIT binary patch literal 22016 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.4/bin/Debug/Exercise 11.4.vshost.exe b/Code/Chapter 11/C#/Exercise 11.4/bin/Debug/Exercise 11.4.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.4/obj/Debug/Exercise 11.4.exe b/Code/Chapter 11/C#/Exercise 11.4/obj/Debug/Exercise 11.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..739567ac9d975cd0275e6e4084f70d7a405981d1 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.4/obj/Debug/Exercise 11.4.pdb b/Code/Chapter 11/C#/Exercise 11.4/obj/Debug/Exercise 11.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c9217f7bad7d4c19c8e67b33da568029672d75ef GIT binary patch literal 22016 zcmeHP4RBP|6~3Fq5YS+PAz-xl^23h;n=Hf-tcuB!C_)4c%FnDN%ko0DB)f5U8Hk;+ zOKH`y&ggVtDy^OBl(BY-T1Tqm57u$OK?kd?jAN~JYDb;gI{uBFVLA@>`|i7E_hpkn zST)B>#H~%s@$Tp;AY`%)@Cq0}cQD;xrw3e%PFWGhgy~nrX+%41!EnUw&Bx zTA0L79!}{QII{lQMK6qdt^Dpz_1yAb72LnSZRxHL-v4v?-HV*`nZLMoZF%==<@+vD z>PX3weO(Vku6Sj`50*XtN$cTlv0v|^+7N#7Z1eV24RvpK`=h`6{N~p_D@NW0KnqBo za^N^%3Ggi7MBpUgIlv0wWMCz53UDg$TwoROJm56ow}9sZOM!XF-3;Vv{SSPnpz+m5 zmL+H2c~|qBJO8vlcRkEY8p|0N&i>Ocxa~jF>_a9U%YNl$e>F2OR{P&V_p5=l{bvKI zPiFup0BQT_4@P7E=|gD$=?C(*ACr({$kqC1`u`kvGcRt8W`O%~FK`>R4l~T7KQqfZrv{Pg(xjK-(Z$E7Gz$?L;CR*{DUGWVhlcFKS~f*vCPgX%w&n z6xLQRSE|Bt#sm9-D}XD3lrv4$mCHU{=ku*=^rrVAiV^c?l= z6DY^4F4BEC%mx9nN%@RCbwI%ffe(p8n6)O2c=i>oqv1B9YM;{+eHi6b4-2z$*+G_Ispmj*Mfldc) z2b}@ReLoYlRL#K?Am|c#E`ryp5C$%j7A!Y1p0h@u;-5%iS3gT|vF47jyZLJT6Hf`>Y2fD+N zV6QdTf+t@ejlz>_?`>Q#z4F zM96KY2Sp#b>9x51+;mi=RY7sNb*I9(bpyH2-UCwC=@X;ChsiJk9R2v{$1K)7CmCi9 zT917EH&TQvOPA$rOLg%~qX{3W1@!1cfic<}%)a`s@9nzdfCnmcLO_1T3)CUL%OOw) zB~BZw_^+@!{w(7^j%>L2PyBc@I|h*1;xl5J;)g+Xk@4f+W5f^hz*_|7BF`lK?&=KG zr>~|zszCl4Ez6^>2PN=bR*7jB@3fM9q^~UnrC*}|nTj+64ZP<{^1T-JaguY!^4Xxc z?@ZED;=NaLE-3CmlM6uUgXy=(cL``U(%%N9FQ%`p1-;UgUuEbLQ2OMnLFtp1g3>4R z`yScO+A0NnkyKt9`%{AoZ8PSj`=$F>j<; z&Dm$Ujn(|UVLOuGo~bLpzH=a+u=~6#W5Gx~7)perkvRJ^Obc1nL?i#7(?>> z!dSKr<9ZDAX(0D$4eEio>M7MX;F69q);$9HAS$$iJ`ZGFwn>_96SpAINW|9N@;PmS zVK)%_RK4t~hi(k2*Eisg_VooL8<0<1LzH$cF#C}|8FJVj+vWBhzTJ7c-X1WXk9usk z+EtJCKY(=dH{QhIcMfD~P*=qM%bA|>1@($$w&rqvs9VA-zJfYO zUY5Ce8Q%!6*nh@7>w0CM!Ul zJA+=--=sO@-hg(4ze3hJG@3yxl*c|T$C2w&s z5oDg*$1~5{c~fuR|L4yCbIG9t#uhWy85(y;?9m9`)u_PlITBC^>O>`UnmXi`VQ)?A z^X130<&ekv+*|AmolQ}}Eo-gxpX$NN*B z<#?u}-C1hrGSF(|uL7+By%7|BNYVyQ2MvSH0Hx8O9p3^v3v@f^g`jtUUIhAMP|E$K zq4$B#M*jUK{d+?n2c3ibCrp~-pNll(VK3-2py+e*MbHM&mq01^kfASw`jAhXOB-B) z`&-)TDQXqglzwCeupM|KuwLh(iiR>3N4j+Z{0uj-39l#p!-3(+uBo;{5%QhBRu44hN z6X#N5fdo4RaK{2?fad|^v3(uOXT$=pqTmYDV;$j>cpmbH9Y5O~UCiR#on`j(@1~!$ zqXO^&#g8JP`-#^F?wDnCZ8^FjZAmQHrDb}w&ay3(r(!`%+c3xWvM)6{eV&dbC7%2t z@*TbKXdOY4cZmw_P6O>L`%HUU3Q9Xkn?ZZZ$)i05kG7{iP}w-3q&Nfwrlo@FXmk@i=RgjO9Y3i-BFhtw8R9H&9lf8k+cOw_zb;zUiDA zMLSfeoB*>@UFga)yl|A2hIcpGD->ssdcyDI8~)&6*&gsa?`zYtJ<<;>K#h@2f9KJg zW2ljkb{rnl4i>G-)ZLHqId#(;OX@gfrq29yonDN^qXsLv)N#s8oknzQ41nMJRgJIz zGzr<<`=5eh7;2lLe=`(IrSlIMx>Ju;shuW0*QA4njyJU0ls{zXwT6ZbZ8LlWh9diz z0Jh_T<>oNDDOtz6;5wfC9F|k%vj+=RvyhN69oe@(LQM<1I~Q;kgdncg@i*+GwzpS- zt^{@gdx5mOw8{4Z9|Z0N<``(+PHC8?CTd%Yfx_+jmv_uw*A_{{2G*^JhIz*>HkYdA z*f!?_AhA(SzOhlTqr!hk^P2-1o`v7ZH~e3r{Vy2C{-^v9?6KJYgXn9)aqPdtleWuZ z{~13yb%)x2r_9v3IBoy8V!ITKVE>&mQ-=q}uOZML^87v7^v%8d3ox=$Z7@Bl@5=do z5#Iq2C@jZk7+gzM(p2MRC=dT0Z`&mjzC+hEz z__P6XD5~q(4{;QAV5DzFy|UBP{Fe5GO^pkv@PK2tRi@rGwx!3kRrbm#+LBN|uG$v* zTAEwtGvYX2TW6~h9+m)nhs<#uJov%L`9dIuAgA0SU;0*EbRa5kb4V+ z^F3~shW2Z2|8w*Gh73}+3;(bnH`Cq}P102Jp#Wqbw5`UpyRGS$w2 zyzio(I4~shaB?%ia~scD{MM=&^bvCyXaMDRVXKjsiHr$n0Ut!2E3kI`;C+?PK=Sfi zGcMh9;0z#_uLf8PtOHI0QX9DZ6+o&3m;NjuRe{UP`*W%e`^T7b3UDg$Tp+)vz`Iqx pSJnS74F7+CYM=#V_wime52Ks`yhF}Ieg^V0ke`A444j5D@IO3NM}PnT literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.4/obj/Debug/Exercise_11_4.Properties.Resources.resources b/Code/Chapter 11/C#/Exercise 11.4/obj/Debug/Exercise_11_4.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYof~Wxlh|CfN!SRZ z9{6NxgaW!rEQXnkeswbVI4m`JLN{`?R2dn3 z(s|6}%Y=0}s4ND?=#)jJGx3oj)qexYE4L9dzsaconZps;$bUWV510Uvr7W%R4P;O$ z%^k*5kd(wQ?Cg~ZRjrQ)|9H0gfSSqKD6AP0Srj@Yrs~M9m{E3%>^T$#@}xME^cS{8 zJOGj4L_HjGoC+MFgLB<4C@^%f@+b-vPiW>Wiq-mEZ+CsG@pQN4jb^&F*7ll$_2G3a zdfqGA#oO+RTlEe*@i{loVD!DIqWAjTA%wGtP@4*&!4jq*3J9?_6+~OGNa8%zj$kzf zVw7mH=19zwI7i|<3WJC%kN6q8*a-)5L9gti+x{o0p)KY*VLY6Nc({m=1 z&Dalv5d4K>HrNkkB266otgbeCfr_LB`1!T--LXF%=mvFgZF05$qR|m#|5lM7Piy|k zGfG3tqFw&><$C4gfvyuhiYM9v?at?SRi!4vl$u7Xy}dtwL#c^ErKWLd&ifAvWR5DQ G&;AXZKxml& literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.4/obj/Exercise 11.4.csproj.FileList.txt b/Code/Chapter 11/C#/Exercise 11.4/obj/Exercise 11.4.csproj.FileList.txt new file mode 100644 index 0000000..b1d5962 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.4/obj/Exercise 11.4.csproj.FileList.txt @@ -0,0 +1,7 @@ +obj\Debug\Exercise 11.4.exe +obj\Debug\Exercise 11.4.pdb +.\bin\Debug\Exercise 11.4.exe +.\bin\Debug\Exercise 11.4.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_11_4.Properties.Resources.resources +obj\Debug\Exercise 11.4.csproj.GenerateResource.Cache diff --git a/Code/Chapter 11/C#/Exercise 11.5/Exercise 11.5.csproj b/Code/Chapter 11/C#/Exercise 11.5/Exercise 11.5.csproj new file mode 100644 index 0000000..088d5f5 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.5/Exercise 11.5.csproj @@ -0,0 +1,41 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {F7F5E0C1-DC5D-496D-A253-0C6DE1940946} + Exe + Properties + Exercise_11_5 + Exercise_11_5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.5/Exercise 11.5.csproj.user b/Code/Chapter 11/C#/Exercise 11.5/Exercise 11.5.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.5/Exercise 11.5.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.5/Program.cs b/Code/Chapter 11/C#/Exercise 11.5/Program.cs new file mode 100644 index 0000000..0c36986 --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.5/Program.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Transactions; +using System.Data; +using System.Data.SqlClient; +using System.Threading; + +namespace ConsoleApplication5 +{ + class Program + { + private static string connectionString1 = "Server=(local);Database=Test1;Integrated Security=SSPI"; + private static string connectionString2 = "Server=(local);Database=Test2;Integrated Security=SSPI"; + private static bool isThreadRunning = false; + static void Main(string[] args) + { + try + { + using (TransactionScope myTransaction = new TransactionScope()) + { + Thread myThread; + myThread = new System.Threading.Thread(new ParameterizedThreadStart(ThreadEntryPoint)); + Transaction tran = Transaction.Current.Clone(); + myThread.Start(tran); + + using (SqlConnection connection1 = new SqlConnection(connectionString1)) + { + connection1.Open(); + // Do something here - this connection will auto-enlist + } + // Wait for the other thread to finish + while (isThreadRunning) + { + Console.Write("\rWaiting for thread to finish .."); + } + myTransaction.Complete(); + } + } + catch (System.Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + + private static void ThreadEntryPoint(object transactionInstance) + { + isThreadRunning = true; + Transaction tran = (Transaction)transactionInstance; + using (SqlConnection connection2 = new SqlConnection(connectionString2)) + { + connection2.Open(); + connection2.EnlistTransaction(tran); + // Do something here - this connection is manually enlisted. + tran.Rollback(); // ok to do + } + isThreadRunning = false; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 11/C#/Exercise 11.5/Properties/AssemblyInfo.cs b/Code/Chapter 11/C#/Exercise 11.5/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b654cec --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.5/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_11_5")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_11_5")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("d87193da-b064-4156-9199-24c695071ce2")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 11/C#/Exercise 11.5/bin/Debug/ConsoleApplication5.exe b/Code/Chapter 11/C#/Exercise 11.5/bin/Debug/ConsoleApplication5.exe new file mode 100644 index 0000000000000000000000000000000000000000..9805479d0d3f8b24fb0f67209aac83d413c6ef8c GIT binary patch literal 16384 zcmeHNTWl298UAN>z3U5h@EU@_5QaciL+b6?7=j_BHoFFv7;L=8(AE;n?jF_?W@k1t zv(!!kavxeLy(vghr9MTidP$^60X0=-RYfcnRgt19%0tzv52W9JX4kj1 zP>T8xspqWbpa1-~^Pg|d%sFRfPk-fQiV#s0$0wf<-Nu>Au%r(r3s86Le5ZrnYPqxP zwl;QW*VL@#8x_wjd1l!tn2zHHMqU_R)iEr`$c*QVvRf3%_V(62wa^ozL}OZnwvYYw zSiQAH>d@M>W}=Od7@_p;6E%LA>mUYB&~x5g>StO&h5b;_FNjf*_4;{9Ep5JoxZ}(X z6J1~+)|N{|8zB3`KBDbwbq}f=MCid%X-56zQjI7Xh`9judu<@l$sB8Wqb7?%bSdfi zUI8_k+b|fmF>tIX!^l4A3EPDs=Sr7wuw4qriZV>Jgz*ZoVif`k0fm4L$(lUsN;yS?!PHLsR;cP4)E)8_*ps&U5VyAVCP3XTkPY!>cN5NZ9WGISGuU=&aUW$7-A%M?y03LLbvE_ITih)y z`wKnMP9AJ4z1`C0I(F?*Y4SnL-CA>tExE<&ZgjV+D@vVFcN=VadqP7Z?CZ5&?)wn6 zWe908-%S1sA`{MC>Mvux6`$z*WI&GzG`@=UCj+aLF78noj7IPfEX8f4m`xxTwJC-|j zOkllMD+Zdgp6Bt-;(@#MEB?utBeWNd z#pr^5NN=SZ`ZYa9Ki7W*`YvcI{SlH5+8T*OI_PlZ^N|>hML35`l70)6OPF7X>PC7T zL!${Y4Hx?yvhSplr1R8H69(JgpqGG~Mqk(!*1iW&bh;^P-|T*sdeHM%LS6UoBZ0(0 zqd8=%(JPTodX;tpKc>4R-3z*h`XxUk>4>CRNzY39Wl2p*ElHmP-Ai8w{UY+=R&Rg~ z(hoon(+}x=eHipZeH4<9^;7gZs2*=x%xwbibrW=ojGAbO-bqDalFtRY?m{eue%9txq4(1&q(= zLLG6c72Jw)EY<58JuO)tNA;r7HCbIP`{#1?snc$;YKx~S?K-||i;+sjwhCroxz2&4 zm=iP+zMfo9Pi4R0dbX9P+`J!%GL7e-6@`EbuH)d05aAuv-yj(v%b%L{gjt-dIu33! zI&E4Gg`!a>@a896%Lyo12wblgJvk{Z+hJH5@qJOw+w;dQTTBbjM^hsK?$&%Y5KGDi zMVMt0O$Jt3B(qK+Jhze)-c_q0d^%CJipx>bZh6}Btvn!Uh@7t4LDgGFG3A*>Q8v9R z>-e~pdCw}%28}8}T&xz>Q6Ptk>C88J;9_02N>xu@r$%)~_yy0Z@D*rOPFcaqKGi_U zSZ2v_{lF^tlo9!AsbsF|dMLw{!gv8zYoO#raVfkdEJJ}zZ&KLioaFrFWK0jw)mjjM z=J=)@FFviPi|39@ z1$fzbW*(soxBy2UhYy>hGzIEI)(>qK(E`*=&YwrR*HFgtF{*BF1^RR z!CYghuh~P*#kA{<&Ivi+$oWf%WYOmJAHL{)j*MZ+DWVWi2q**|jDRNhf!J3sthNjH zM0mP4$l2~Bjtj#e;YJS(^MfGMm>DmEj?yH!EWWg#K|Kq4JpAfTzm9%%Kimh%XF7bs z^OraV3g)DmL{=rqNZB;zWDjvH%;iGP)x0*~vPXJN$ywXMY;Mch+k)1SdZL@rOPDA$ zjPt7F#I=XbkMW*B zTo)^_D)0+d^!C&Cm#`;hoL9$Li}qTq4@sX9Tn}C!mN5csAY))muf9ra{Q!q53ITy)5Kssx1QY@a0fm4<;IoB*5q_&(Jo4E}OJ$=FPzWdl6aoqXg@8gpA)pXY2q**; N0tx|z!2b?`{{ZL7RUH5T literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.5/bin/Debug/ConsoleApplication5.pdb b/Code/Chapter 11/C#/Exercise 11.5/bin/Debug/ConsoleApplication5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c75bcd85b4e19fe15ed3228a3317a15bdd278078 GIT binary patch literal 13824 zcmeHMYiv|S6h2!@pH#aD6-vPiw!EslEpHkl&@D)%4Unz!$VOPUw{&42uy+xf5V;sN zCZg8J4^jDnVnI!eiNqL%q(6{E|Cop|#+XPn(cllD#zcM?^!x6eyDX&^l!nLl9ytB( zJu_$KoHJ+U&djz(BdMg3>_}??f1tKjYYi^b=KJdE%1SDmf&$93{>ubB?&dq_UK`xM zIS_%~zg-&65m+EHoZTPxzL$Pk??DcTlq&|5AtmyGBTW2pDW@YaBB#A`ox4^9_WSBR zRV_a^dQkD`5xu$Z``yhSPF#5=_~YS9N0((}mvS!x1Fir3C}yw!e5dFAG54Y|{5-n2 zY4xI0g{QsULFrxjcHW_rOII8?`^(qf?nU-{>A~mLdpk~hPs|j#Sk!!CV^3o7SM5)? ze0-tto4u(c2e@q@U3h(3_3Yln;j??+=s8p@=WMC__fCnxD7C;lc&FIy+IeFUxOD!~ zc@F(wY$nhUYDz|S#Pvkl(87s!EvTo{(ZpsW6byGpV_IuC7Tp?(cWLcTtWG@nJ|(ueaW_Mv1lZmjwTax2b4i!b1EG7MGTQhLnza()w|*J zZdkp?uhsiDr}v26dpNuIfn-o{dgu3!ad-;62TU3cd*cZ|)p<<#dg0GKJyW|s_x#s= z9_!ATWU zm&$BeDx5IFwi3&->osx(7)L+-K z3S#)Jc~w8kCXqB+W*OUTf%11?&M6<5ZP5>|Pk7GgV2MlEaju8m1sQgH8iP*mhR&<1 zjS94(*1b#{`Y!rx>&}w={4W;$cIu;b-!>nwDbD-s{bL)UDy`Bavw->Noci1Y(*8mV z3#38iQ=3{qS3vF%>J>0&=!4h;vow)Tb*)N9Ic%1{ZK$L{mwHZJ`pZ7R%GN8#jWI-V zR{51N?1o|$+MJ6z$G}buiI>~NM<^4+S&-Xt@Lf+FJR5e7vfC}7o-?ODQ8D1}Ck`QI z1$}t2V&IEJ(#aI+Uq`Gxqb0kK-_gcvRwHc7lbMSe1G&yu13Q3| zfpH-9wgYSMj#Lx$X?7|3iwa)?PJ{eq_5KPFxobhutZAX^9tN)-i18f3|<7Tf!}L@Uc_apg;2?mEnjBI%V`Oy96hrQhuAKu1a0xT z3?t~sC}-asALg2!!yYT2Syl!<$_J1ic5-~M_P}0|dLVnj{4y~XG8@Q?m^nbikojvO z1~MPW^=bhSI+p(dg-t+=o%tvbW2fRU8TLI4k5?;uHP}%Po_K}bB^W`+_T|v;12ear z{6+4{Ltqm8FiU{2*F;`%ZLw_SSQN?@v_pmmpg+LOJNimOzKI5gU(y1Ofu8}t33ln` zMSyoYmBs!(=28_F2+mQC5p#{m^^$l{;j;=`6|(F`NgJerp=f`Q<}Kd_D<9G_PM)DA zZKxakf9>(R#5r9JW-d8v1Rhy4=5c2H4y=dUm8-_H$s=k*g#MiRwp`Wc2jk`u zKUprh5y;sHXqc=2_E~cF2Al*%)||H1iJXna0FLGS{O1_&EUvfi{jisRzEq~29EH%>I4QDIpfiadiehu5xJkyEq;w3S50r>{FM* zvY@eX{=9_?al{dM@Kax(ho>44&r|)0`$WpK?;4ysEb9Y1XBbCL%)`GjYm@28{JzQG zK$!0&#>YXPgPa*~Yp=>hoO^p^I!&~R2HR9*8E-#3rB~r#zyH67+WwYkVrz4vBPsqw zIIbJwH&PLQC+^eq)TUT6veg!JL}R+)zvVah*uq$2#2X6|w<(nIlsXbj;%YYqoJm0n zhb{3gg8TM7BoZguuU0~dXh0M1TmzR<#0XG6}1cp}x{sA_!k&yrZ literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.5/bin/Debug/ConsoleApplication5.vshost.exe b/Code/Chapter 11/C#/Exercise 11.5/bin/Debug/ConsoleApplication5.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.5/bin/Debug/Exercise_11_5.vshost.exe b/Code/Chapter 11/C#/Exercise 11.5/bin/Debug/Exercise_11_5.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 N0tx|z!2b?`{{ZL7RUH5T literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.5/obj/Debug/ConsoleApplication5.pdb b/Code/Chapter 11/C#/Exercise 11.5/obj/Debug/ConsoleApplication5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c75bcd85b4e19fe15ed3228a3317a15bdd278078 GIT binary patch literal 13824 zcmeHMYiv|S6h2!@pH#aD6-vPiw!EslEpHkl&@D)%4Unz!$VOPUw{&42uy+xf5V;sN zCZg8J4^jDnVnI!eiNqL%q(6{E|Cop|#+XPn(cllD#zcM?^!x6eyDX&^l!nLl9ytB( zJu_$KoHJ+U&djz(BdMg3>_}??f1tKjYYi^b=KJdE%1SDmf&$93{>ubB?&dq_UK`xM zIS_%~zg-&65m+EHoZTPxzL$Pk??DcTlq&|5AtmyGBTW2pDW@YaBB#A`ox4^9_WSBR zRV_a^dQkD`5xu$Z``yhSPF#5=_~YS9N0((}mvS!x1Fir3C}yw!e5dFAG54Y|{5-n2 zY4xI0g{QsULFrxjcHW_rOII8?`^(qf?nU-{>A~mLdpk~hPs|j#Sk!!CV^3o7SM5)? ze0-tto4u(c2e@q@U3h(3_3Yln;j??+=s8p@=WMC__fCnxD7C;lc&FIy+IeFUxOD!~ zc@F(wY$nhUYDz|S#Pvkl(87s!EvTo{(ZpsW6byGpV_IuC7Tp?(cWLcTtWG@nJ|(ueaW_Mv1lZmjwTax2b4i!b1EG7MGTQhLnza()w|*J zZdkp?uhsiDr}v26dpNuIfn-o{dgu3!ad-;62TU3cd*cZ|)p<<#dg0GKJyW|s_x#s= z9_!ATWU zm&$BeDx5IFwi3&->osx(7)L+-K z3S#)Jc~w8kCXqB+W*OUTf%11?&M6<5ZP5>|Pk7GgV2MlEaju8m1sQgH8iP*mhR&<1 zjS94(*1b#{`Y!rx>&}w={4W;$cIu;b-!>nwDbD-s{bL)UDy`Bavw->Noci1Y(*8mV z3#38iQ=3{qS3vF%>J>0&=!4h;vow)Tb*)N9Ic%1{ZK$L{mwHZJ`pZ7R%GN8#jWI-V zR{51N?1o|$+MJ6z$G}buiI>~NM<^4+S&-Xt@Lf+FJR5e7vfC}7o-?ODQ8D1}Ck`QI z1$}t2V&IEJ(#aI+Uq`Gxqb0kK-_gcvRwHc7lbMSe1G&yu13Q3| zfpH-9wgYSMj#Lx$X?7|3iwa)?PJ{eq_5KPFxobhutZAX^9tN)-i18f3|<7Tf!}L@Uc_apg;2?mEnjBI%V`Oy96hrQhuAKu1a0xT z3?t~sC}-asALg2!!yYT2Syl!<$_J1ic5-~M_P}0|dLVnj{4y~XG8@Q?m^nbikojvO z1~MPW^=bhSI+p(dg-t+=o%tvbW2fRU8TLI4k5?;uHP}%Po_K}bB^W`+_T|v;12ear z{6+4{Ltqm8FiU{2*F;`%ZLw_SSQN?@v_pmmpg+LOJNimOzKI5gU(y1Ofu8}t33ln` zMSyoYmBs!(=28_F2+mQC5p#{m^^$l{;j;=`6|(F`NgJerp=f`Q<}Kd_D<9G_PM)DA zZKxakf9>(R#5r9JW-d8v1Rhy4=5c2H4y=dUm8-_H$s=k*g#MiRwp`Wc2jk`u zKUprh5y;sHXqc=2_E~cF2Al*%)||H1iJXna0FLGS{O1_&EUvfi{jisRzEq~29EH%>I4QDIpfiadiehu5xJkyEq;w3S50r>{FM* zvY@eX{=9_?al{dM@Kax(ho>44&r|)0`$WpK?;4ysEb9Y1XBbCL%)`GjYm@28{JzQG zK$!0&#>YXPgPa*~Yp=>hoO^p^I!&~R2HR9*8E-#3rB~r#zyH67+WwYkVrz4vBPsqw zIIbJwH&PLQC+^eq)TUT6veg!JL}R+)zvVah*uq$2#2X6|w<(nIlsXbj;%YYqoJm0n zhb{3gg8TM7BoZguuU0~dXh0M1TmzR<#0XG6}1cp}x{sA_!k&yrZ literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.5/obj/Debug/Exercise_11_5.exe b/Code/Chapter 11/C#/Exercise 11.5/obj/Debug/Exercise_11_5.exe new file mode 100644 index 0000000000000000000000000000000000000000..c0d6584865107ffbbbb3a07ea46d3233c2fdff1c GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/C#/Exercise 11.5/obj/Exercise 11.5.csproj.FileList.txt b/Code/Chapter 11/C#/Exercise 11.5/obj/Exercise 11.5.csproj.FileList.txt new file mode 100644 index 0000000..db518cf --- /dev/null +++ b/Code/Chapter 11/C#/Exercise 11.5/obj/Exercise 11.5.csproj.FileList.txt @@ -0,0 +1,5 @@ +bin\Debug\Exercise_11_5.exe +bin\Debug\Exercise_11_5.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_11_5.exe +obj\Debug\Exercise_11_5.pdb diff --git a/Code/Chapter 11/SQL/CreateDatabase.sql b/Code/Chapter 11/SQL/CreateDatabase.sql new file mode 100644 index 0000000..ae5101c --- /dev/null +++ b/Code/Chapter 11/SQL/CreateDatabase.sql @@ -0,0 +1,53 @@ +USE MASTER +GO + +DROP DATABASE TEST +GO + +CREATE DATABASE TEST +GO + +USE TEST +GO + +CREATE TABLE [Customers]( + [CustomerID] [int] IDENTITY NOT NULL, + [FirstName] [varchar](50) NOT NULL, + [LastName] [varchar](50) NOT NULL, + [AccountBalance] [float] NOT NULL +, + CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED +( + [CustomerID] ASC +) ON [PRIMARY] +) ON [PRIMARY] +GO + +CREATE TABLE [Products]( + [ProductID] [int] IDENTITY NOT NULL, + [ProductName] [varchar](50) NOT NULL, + [ProductPrice] [float] NOT NULL, + CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED +( + [ProductID] ASC +) ON [PRIMARY] +) ON [PRIMARY] +GO + +CREATE TABLE [CustomerProduct]( + [CustomerProduct] [int] IDENTITY NOT NULL, + [CustomerID] [int] REFERENCES CUSTOMERS NOT NULL, + [ProductID] [int] REFERENCES PRODUCTS NOT NULL, + CONSTRAINT [PK_CustomerProduct] PRIMARY KEY CLUSTERED +( + [CustomerProduct] ASC +) ON [PRIMARY] +) ON [PRIMARY] +GO + +INSERT INTO CUSTOMERS (FIRSTNAME, LASTNAME, ACCOUNTBALANCE) VALUES ('Capt.', 'Kirk', 100) +INSERT INTO CUSTOMERS (FIRSTNAME, LASTNAME, ACCOUNTBALANCE) VALUES ('Super', 'Man', 100) + +INSERT INTO PRODUCTS (PRODUCTNAME, PRODUCTPRICE) VALUES ('Cape',4) +INSERT INTO PRODUCTS (PRODUCTNAME, PRODUCTPRICE) VALUES ('Phasor Gun',9) + diff --git a/Code/Chapter 11/SQL/CreateDistributedDatabase.sql b/Code/Chapter 11/SQL/CreateDistributedDatabase.sql new file mode 100644 index 0000000..1680d3b --- /dev/null +++ b/Code/Chapter 11/SQL/CreateDistributedDatabase.sql @@ -0,0 +1,34 @@ +Use Master +go + +Create Database Credits +go + +use Credits +go + +CREATE TABLE [Credits]( + [CreditID] [int] IDENTITY NOT NULL, + [CreditAmount] [float] NOT NULL, + CONSTRAINT [PK_CreditID] PRIMARY KEY CLUSTERED +( + [CreditID] ASC +) ON [PRIMARY] +) ON [PRIMARY] +GO + +Create Database Debits +go + +use Debits +go + +CREATE TABLE [Debits]( + [DebitID] [int] IDENTITY NOT NULL, + [DebitAmount] [float] NOT NULL, + CONSTRAINT [PK_DebitID] PRIMARY KEY CLUSTERED +( + [DebitID] ASC +) ON [PRIMARY] +) ON [PRIMARY] +GO diff --git a/Code/Chapter 11/VB.NET/AccChanges/AccChanges.vbproj b/Code/Chapter 11/VB.NET/AccChanges/AccChanges.vbproj new file mode 100644 index 0000000..b15181d --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/AccChanges.vbproj @@ -0,0 +1,96 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {1A33B662-7B41-490F-960F-2A2E79783592} + WinExe + AccChanges.My.MyApplication + AccChanges + AccChanges + WindowsForms + + + true + full + true + true + bin\Debug\ + AccChanges.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + AccChanges.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/AccChanges/AccChanges.vbproj.user b/Code/Chapter 11/VB.NET/AccChanges/AccChanges.vbproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/AccChanges.vbproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/AccChanges/Form1.Designer.vb b/Code/Chapter 11/VB.NET/AccChanges/Form1.Designer.vb new file mode 100644 index 0000000..dd8aade --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/Form1.Designer.vb @@ -0,0 +1,59 @@ + _ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.button1 = New System.Windows.Forms.Button + Me.dataGridView1 = New System.Windows.Forms.DataGridView + CType(Me.dataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'button1 + ' + Me.button1.Location = New System.Drawing.Point(288, 194) + Me.button1.Name = "button1" + Me.button1.Size = New System.Drawing.Size(75, 23) + Me.button1.TabIndex = 3 + Me.button1.Text = "Save" + ' + 'dataGridView1 + ' + Me.dataGridView1.Location = New System.Drawing.Point(0, 1) + Me.dataGridView1.Name = "dataGridView1" + Me.dataGridView1.Size = New System.Drawing.Size(363, 187) + Me.dataGridView1.TabIndex = 2 + Me.dataGridView1.Text = "dataGridView1" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(364, 218) + Me.Controls.Add(Me.button1) + Me.Controls.Add(Me.dataGridView1) + Me.Name = "Form1" + Me.Text = "AccChanges" + CType(Me.dataGridView1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents button1 As System.Windows.Forms.Button + Friend WithEvents dataGridView1 As System.Windows.Forms.DataGridView + +End Class diff --git a/Code/Chapter 11/VB.NET/AccChanges/Form1.resx b/Code/Chapter 11/VB.NET/AccChanges/Form1.resx new file mode 100644 index 0000000..02bbfa2 --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/Form1.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/AccChanges/Form1.vb b/Code/Chapter 11/VB.NET/AccChanges/Form1.vb new file mode 100644 index 0000000..7269c21 --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/Form1.vb @@ -0,0 +1,48 @@ +Imports System.Data +Imports System.Data.SqlClient + +Public Class Form1 + + Private Shared connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + Private ds As DataSet = Nothing + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim sqlDA As SqlDataAdapter = New SqlDataAdapter("Select * from Customers", testConnection) + ds = New DataSet() + sqlDA.Fill(ds) + dataGridView1.DataSource = ds.Tables(0) + End Using + End Sub + + Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim sqlDA As SqlDataAdapter = New SqlDataAdapter("Select * from Customers", testConnection) + Dim myUpdateCommand As SqlCommand = New SqlCommand("Update Customers Set FirstName = @FirstName where CustomerID = @CustomerID") + + Dim param1 As SqlParameter = New SqlParameter("@FirstName", SqlDbType.VarChar, 50) + param1.SourceColumn = "FirstName" + + Dim param2 As SqlParameter = New SqlParameter("@CustomerID", SqlDbType.VarChar, 50) + param2.SourceColumn = "CustomerID" + + myUpdateCommand.Parameters.AddRange(New SqlParameter() {param1, param2}) + myUpdateCommand.Connection = testConnection + + sqlDA.UpdateCommand = myUpdateCommand + + testConnection.Open() + Dim myTransaction As SqlTransaction = testConnection.BeginTransaction() + sqlDA.UpdateCommand.Transaction = myTransaction + sqlDA.AcceptChangesDuringUpdate = False + + Try + sqlDA.Update(ds) + myTransaction.Commit() + ds.AcceptChanges() + Catch ex As Exception + MessageBox.Show(ex.ToString()) + End Try + End Using + End Sub +End Class diff --git a/Code/Chapter 11/VB.NET/AccChanges/My Project/Application.Designer.vb b/Code/Chapter 11/VB.NET/AccChanges/My Project/Application.Designer.vb new file mode 100644 index 0000000..0fdaca0 --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/My Project/Application.Designer.vb @@ -0,0 +1,37 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Namespace My + + 'NOTE: This file is auto-generated, do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to project properties or double-click on the My Project node in the + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Class MyApplication + + _ + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.AccChanges.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 11/VB.NET/AccChanges/My Project/Application.myapp b/Code/Chapter 11/VB.NET/AccChanges/My Project/Application.myapp new file mode 100644 index 0000000..1243847 --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/My Project/Application.myapp @@ -0,0 +1,11 @@ + + + true + Form1 + false + 0 + true + 0 + 0 + true + diff --git a/Code/Chapter 11/VB.NET/AccChanges/My Project/ApplicationEvents.vb b/Code/Chapter 11/VB.NET/AccChanges/My Project/ApplicationEvents.vb new file mode 100644 index 0000000..3b9cdcd --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/My Project/ApplicationEvents.vb @@ -0,0 +1,15 @@ +Namespace My + + 'The following events are available for MyApplication + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + Class MyApplication + + End Class + +End Namespace diff --git a/Code/Chapter 11/VB.NET/AccChanges/My Project/AssemblyInfo.vb b/Code/Chapter 11/VB.NET/AccChanges/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..b37ae63 --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 11/VB.NET/AccChanges/My Project/Resources.Designer.vb b/Code/Chapter 11/VB.NET/AccChanges/My Project/Resources.Designer.vb new file mode 100644 index 0000000..cc13dc2 --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("AccChanges.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 11/VB.NET/AccChanges/My Project/Resources.resx b/Code/Chapter 11/VB.NET/AccChanges/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/AccChanges/My Project/Settings.Designer.vb b/Code/Chapter 11/VB.NET/AccChanges/My Project/Settings.Designer.vb new file mode 100644 index 0000000..dd41773 --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.AccChanges.Settings + Get + Return Global.AccChanges.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 11/VB.NET/AccChanges/My Project/Settings.settings b/Code/Chapter 11/VB.NET/AccChanges/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 11/VB.NET/AccChanges/bin/Debug/AccChanges.exe b/Code/Chapter 11/VB.NET/AccChanges/bin/Debug/AccChanges.exe new file mode 100644 index 0000000000000000000000000000000000000000..46dc495133a7f0e84a6cc3c38a3277ca8f7be3bd GIT binary patch literal 32768 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 YH4oH0Q1d{|12qrSJW%t%Z=nbNH?RNS7ytkO literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/AccChanges/bin/Debug/AccChanges.pdb b/Code/Chapter 11/VB.NET/AccChanges/bin/Debug/AccChanges.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3523559095173f70d2828a047a2f44f2035d56ca GIT binary patch literal 60928 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 U;^fCxk>b+CH4xXpuUG^B0dpNn`~Uy| literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/AccChanges/bin/Debug/AccChanges.vshost.exe b/Code/Chapter 11/VB.NET/AccChanges/bin/Debug/AccChanges.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + +AccChanges + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/AccChanges/obj/AccChanges.vbproj.FileList.txt b/Code/Chapter 11/VB.NET/AccChanges/obj/AccChanges.vbproj.FileList.txt new file mode 100644 index 0000000..606ffa0 --- /dev/null +++ b/Code/Chapter 11/VB.NET/AccChanges/obj/AccChanges.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Debug\AccChanges.exe +bin\Debug\AccChanges.pdb +bin\Debug\AccChanges.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\AccChanges.Form1.resources +obj\Debug\AccChanges.Resources.resources +obj\Debug\AccChanges.vbproj.GenerateResource.Cache +obj\Debug\AccChanges.exe +obj\Debug\AccChanges.xml +obj\Debug\AccChanges.pdb diff --git a/Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.Form1.resources b/Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 YH4oH0Q1d{|12qrSJW%t%Z=nbNH?RNS7ytkO literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.pdb b/Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3523559095173f70d2828a047a2f44f2035d56ca GIT binary patch literal 60928 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 U;^fCxk>b+CH4xXpuUG^B0dpNn`~Uy| literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.vbproj.GenerateResource.Cache b/Code/Chapter 11/VB.NET/AccChanges/obj/Debug/AccChanges.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..c795b6fb7ca3cf93bff817bad03433e8f97b1311 GIT binary patch literal 842 zcma)4!A{#i5Vf1wBo0X7fKb&QBE+E*k(Csoa*0qIl!71#2jYv&}dEVX&D&r3H+Rki3Zo8PIv0;{&{qP4n&7W z$dTY77VbCO7@FC+uwdH^Iy4fFthrDUY=aZW>MPV~xfq@bT>yGst>y(mt5MZ!{{d^g zg7f|p{F@KkJ3K%Xwa7OEb|JYoM_dRU=aI3qeoUfVh7C$SAD11X_=R@yi3Bu-O#ofF z&6nLqniMo6asfyEYO$WGzd + + + +AccChanges + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/AccChanges/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll b/Code/Chapter 11/VB.NET/AccChanges/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..1b3d663514ff734b76f8944d5129045bfa22019e GIT binary patch literal 7168 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/AssemblyInfo.vb b/Code/Chapter 11/VB.NET/Exercise 11.1/AssemblyInfo.vb new file mode 100644 index 0000000..10f590d --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/AssemblyInfo.vb @@ -0,0 +1,31 @@ +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: + + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/Exercise 11.1.vbproj b/Code/Chapter 11/VB.NET/Exercise 11.1/Exercise 11.1.vbproj new file mode 100644 index 0000000..7c00623 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/Exercise 11.1.vbproj @@ -0,0 +1,121 @@ + + + Local + 8.0.40607 + 2.0 + {91B531EF-7D4E-4BA1-9627-EFF4460B1069} + Debug + AnyCPU + + + + + Exercise_11_1 + + + None + JScript + Grid + IE50 + false + Exe + Binary + On + Off + Exercise_11_1 + Exercise_11_1.Module1 + + + + + bin\ + 285212672 + + + + + true + true + true + false + false + false + false + 1 + 42016,42017,42018,42019,42032 + Exercise_11_1.xml + + + bin\ + 285212672 + + + + + false + true + false + true + false + false + false + 1 + 42016,42017,42018,42019,42032 + + + + System + + + System.Data + + + System.XML + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + MySettings.settings + + + + + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/Exercise 11.1.vbproj.user b/Code/Chapter 11/VB.NET/Exercise 11.1/Exercise 11.1.vbproj.user new file mode 100644 index 0000000..1d52eb0 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/Exercise 11.1.vbproj.user @@ -0,0 +1,60 @@ + + + 8.0.40607 + Debug + AnyCPU + + + + + + + 0 + ProjectFiles + 0 + + + false + false + false + false + false + + + Project + + + + + + + + + + + false + 42016,42017,42018,42019,42032 + + + false + false + false + false + false + + + Project + + + + + + + + + + + true + 42016,42017,42018,42019,42032 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/Module1.vb b/Code/Chapter 11/VB.NET/Exercise 11.1/Module1.vb new file mode 100644 index 0000000..8258513 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/Module1.vb @@ -0,0 +1,32 @@ +Imports System +Imports System.Data +Imports System.Data.SqlClient + +Module Module1 + Private connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + Sub Main() + Using testConnection As New SqlConnection(connectionString) + Dim myCommand As SqlCommand = testConnection.CreateCommand() + Dim myTransaction As SqlTransaction = Nothing + + Try + testConnection.Open() + myTransaction = testConnection.BeginTransaction() + myCommand.Transaction = myTransaction + myCommand.CommandText = "Insert into CustomerProduct (CustomerID, ProductID) Values (2, 1)" + myCommand.ExecuteNonQuery() + myCommand.CommandText = "Update Customers Set AccountBalance = 96 Where CustomerID = 2" + myCommand.ExecuteNonQuery() + myTransaction.Commit() + Catch ex As Exception + Try + myTransaction.Rollback() + Catch ex1 As SqlException + Throw ex1 + End Try + Finally + testConnection.Close() + End Try + End Using + End Sub +End Module \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyApplication.myapp b/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyApplication.myapp new file mode 100644 index 0000000..922ecdc --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 2 + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyApplication.vb b/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyApplication.vb new file mode 100644 index 0000000..976337f --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyApplication.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.40607.42 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyResources.resx b/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyResources.resx new file mode 100644 index 0000000..fbe7edd --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MyResources.resx @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MySettings.settings b/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MySettings.vb b/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MySettings.vb new file mode 100644 index 0000000..7e8227c --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/My Project/MySettings.vb @@ -0,0 +1,39 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.40607.42 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/SimpleTransaction.sln b/Code/Chapter 11/VB.NET/Exercise 11.1/SimpleTransaction.sln new file mode 100644 index 0000000..5093032 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/SimpleTransaction.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SimpleTransaction", "SimpleTransaction.vbproj", "{91B531EF-7D4E-4BA1-9627-EFF4460B1069}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {91B531EF-7D4E-4BA1-9627-EFF4460B1069}.Debug.ActiveCfg = Debug|.NET + {91B531EF-7D4E-4BA1-9627-EFF4460B1069}.Debug.Build.0 = Debug|.NET + {91B531EF-7D4E-4BA1-9627-EFF4460B1069}.Release.ActiveCfg = Release|.NET + {91B531EF-7D4E-4BA1-9627-EFF4460B1069}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/SimpleTransaction.sln.old b/Code/Chapter 11/VB.NET/Exercise 11.1/SimpleTransaction.sln.old new file mode 100644 index 0000000..3c71413 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/SimpleTransaction.sln.old @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SimpleTransaction", "SimpleTransaction.vbproj", "{91B531EF-7D4E-4BA1-9627-EFF4460B1069}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {91B531EF-7D4E-4BA1-9627-EFF4460B1069}.Debug.ActiveCfg = Debug|.NET + {91B531EF-7D4E-4BA1-9627-EFF4460B1069}.Debug.Build.0 = Debug|.NET + {91B531EF-7D4E-4BA1-9627-EFF4460B1069}.Release.ActiveCfg = Release|.NET + {91B531EF-7D4E-4BA1-9627-EFF4460B1069}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/SimpleTransaction.suo b/Code/Chapter 11/VB.NET/Exercise 11.1/SimpleTransaction.suo new file mode 100644 index 0000000000000000000000000000000000000000..931f0205363bc9c11261dd491030e5d5c82c4bee GIT binary patch literal 8704 zcmeHNO>9(E6h6}*p-7>ifTH3P`6)>23`_w<&@ycW>G0DZN=!F1o!55S*LjnfX-fk} zF`5u}Yz#Yfias|1$7|*}e_WGiK`d(w2)bor0QW!Fw-5tXxjgLmF!F0a zYeDNkkANNp?E47!f;_%h;CM zvn$)oiR6Gey)KfO%I0F0(PgIXOiuCDw8e5U%3pRW+G%tT44Y%BSl^b6S@w|8o=E2G z3>g}tc06gBMxPlsI_%7t>Rvakv@BwerR|iNa>lOjOQsU`WY%M^In)#F5BjAQ&kTBJ@!N^A#~a4p3d7c?kJW_nT4fOZiKK?=OGGne(v@yN-(g5h z1OGJsv?&Qm=$2Cb%0oinPauFfpcQc=l{1yxf0~a{2Aie)MxVaa)Q8$h~lSI2A&2ki@_Q1wZq91LYy>obry!8)Bq)l4*l0nGsho%|z z*5!X&4@W!BN9C!|{$2y`N%Yg~7`!`hwi zr)(x&U+TRYjl>|PLXYA9=Hrl=#T?LQ6hnfbE1xl1x$++ZZ$vAAJmbH@G@rV{vF>HL zR+RfmC>iUdvBs{(ROItptE4(m{f1xk=SR*5zVAG*4DV*(3_`;Yg6tN!&=Aa^Lz)0C zZE&aU$c53;iuxvS?S|9cgB*D}&=N*X5bYs6ccc9^Ig9O*gxRJQ$o0UO==8IA(sZ1~ zYnBN(Iy!P&M$ltG0c8TEVgUmWLem2Vj;I5MF=eh!z>ol^KVYC^_Xi9fuNN@*$6~+` znlS-cH%%6XkBH3NSLB|IONi$CkZ%d;30 z{fvdx(%Zzr*+FcYA?1H4+1Wr2f8i7OujEoTQ(^l|<;PI@sta((uqj7iL5x+3Vf;*E z=(-K~e%d8tx^m@j2JcI*|BK-3ovpwah!J{aTHyXe?E(6*T7)(rSKsO*HWa1cC%WN+Vby-QnSrJ8t=L-|_JOSZb8JOTY9(0WMexm2y7Hzw~3 z%1Jb%6-T>&xpZTB^qtKYzp8p~&7TA8nEBzA)@>I@j(l|O{c~Nnzx*V?h?_SeCowyH zkR6BZGdgyhhR9SS8vX7+s}6o_X29%i1YUVu=baPp?kxOzF$Qkp36W0!=>uQbgofE2 zl*rG#xQR@|`8`lKj@k>nvvDkww{(Pb#)&z^QFJ{yv|i?QQ7;4?#|R8pOa$&c3dfPt zn`?S!k&jOpJU=g9XL#x=ZEEi6+q#wyuVlVH^yax+-_>9F!8R3hBcJ2zd z;AVN9v{zrQ!luvX8%v!rs^s^@aK`XFo^$`^o&Tp4bkoC>O8Wju?}1Xhx@{*ibXE(M xv~0c?YRpQ;S=93X%V$hpBqadj3|K?=3>hjhmAiQ9Yv+HM_Wdv8E(xV8{sy literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/app.config b/Code/Chapter 11/VB.NET/Exercise 11.1/app.config new file mode 100644 index 0000000..1b99773 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/app.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.exe b/Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.exe new file mode 100644 index 0000000000000000000000000000000000000000..852a9a72e06279bfdfd0d729e1b287760e52fef6 GIT binary patch literal 24576 zcmeHP3v3+6dH!ea$&+;A9Z6Y=1$h<84rNhip5AgLhfh&VNr~1`Qj}7mmd6#f*4^!C z_f8Tc#J)s@;YVsHjf*s>P{=jfxGC(~h}$ZSYS59>hwT_ifCj0XC=!x3X@e$p5umP{ z%KiS?y%(vtPKy9VutV-Y|7-sF=bzcxnVls^KXje~L=?pJ_S;04kaOx$@SQ;g;`nWU z9;fG9zOwp~82QTT@#ChW6>V$A*7I6cFBGhjHf3mbxuBT^ZD3zU%Ujb%YRQt=TF>;@ zAkl~j(i`Ks{%UR4C@vO>D3JzEx6A$TcH~U=;9{U5Yjynwru^reF5&{86WWDlflzcc zuZfjT5OxnSc9iI=5yff-6{5w==^VoGF2xUJd|RwLQRU zNrP7@XId}mM4x7E4=!#?H?D@%Lo}DN9Xku2YQs?=tk;99A@zWhvW=VtMb)MXgseA) zt0DCe^)-+_>PNtjfFA)r0)7Pi2>223Bj88CkANQmKLWo55$NH4H4^VlC531l8}nz| zhy>^)QTW1|`a1#E`=8PsvJ*vPM0fJ9>die#*Xu>fNz5vyRg z9z?0OZlSiNP)^YOT*O)gacn(>@2tvD95OayVJq7#gF(pHthHpm3{^nJ6F>tMt@`v}!VI}WuuS%-Epk)dADoV@Fjz$@mL0e(7b6K4)Ndq4(2mcdj z+^y|5#G*)7jN`UGwm!N(L^8HssJ6O(AvOsLBqWhWetl~yc*t!k* zqV~nWG+@Y9BU>DaTJL2tV&`GWTBC3a!zp%0#QwMWtf+N6D_q@rdneqEp`W7G`xK|m z<+KGU5&TGJCwNzh+`I*Ktz)Hc5nWvtM&Op+5N)AEs4Eh-;58!gEqE`~`;lYRVo@8~ zjD{_z!6UR`1#k)6euTr%c$^;oG@)-u>~=U3s_QH0GZh4k+@PF}EH5|qBPVluNdr>(a)`Q#mvHtH$iOb;2m@n%cHa-;&+3HN9igW}|!ijx`G_D;G*;-l*1| zF-jO!wKUc{z`yKsU*-dSLd_uVd!|$D#Fp-D8@I7`h;o3P2+ErKi5^FOiSbOyHVZQj zYm6+#XhEab9LUgRyr1G%RBMI~3=bfG6~y;Y@0z}xHO0zEAjP4M-)m_>IeJTM;vVIg z@i<2Bs0%kHzYnAxxY&*NdNc+$-`7fq%V1_uWnok4b52x=u#7wHYxG&bkoZ1Ib%?l# zQC@r&_z!`{=`lGg<8)oV0{E7K?+Yvqgz4VEJ%9zk7(E?$5b(=^HjKWv0^bJzuHe#O zm_~zf5vG%XF?uA}2AeMhe;@pBD*lh4lce>bj!=?zC^!HZrc5Xmks0*N0P=wkj zP2EBRJS;WzC&Nv+^^5e;_XaJ|i#EmHUVa^A1x++j#}$=WzEa!* z+2e|8i>?v3f_m1YhD9f+S3SxWTR{E5qt1&yP{GxNv|D~dWI?UVl#K-6kuD&SgcpUI*!~6%~kXl8<5}{^_=qX1ioBenzZX&MH+O!q2ILczld zu2ry0!OaTp^!V&)7ctzd;7$c~B{da13Aj|u(mlZsi50}LTR|MNbu<~A0f%GsFr5va z2F{**67V;~fa>MX0B?~`DE=QR_#EI;@f_V3YM0N^nNS-&M;{HXkYAw3LaP9OH?&lI zfu0E+rx)o3NdJz$7FsJ`r0WX*=g=+C|0(e66c4x2KPj7O1>c~)@OJqI?E(A`aQbD7 zxK1CC3BWd50k~AG25gb*6rNUahl0Hd4l8)Cf*P%%*U`pDX{SihABnh3(JKl*so>`o z{Gx(a6g(^TLFb(KAmF1y2mF+%0RE2noa~`Zu+{@VK2QA~yp_I${(6+!#ZgsPR`Ih~ z8hnXN@JB^Ol{!b~Q1%?1Rgk3*L)s}WD(MsSL-3!V?*cxlEIdiC&~J%3CA~s_PjPug z@&88Ea!v8StE`b=uSl?0ng^Ai3hz=e35FU|)PWhRjGu?-JM@qAFZ2`ocM+`c{RAt~F+9gPJ%$T6SuF`XIXLk%shVPhg(gz7 zUYrfhKcJY&8%%X*0ECRpy`zLT%YckSsI<~Ef%pb&`Vf8(BK)v&YF%fnNClpQ=_vG_gnd5 zxn$Tt$8769BU=J?$e79)_9+vK5*j~lV>y!1j~V->SPZRGCYC2h)8zV)ZZ?bJSWA@D z)BmPEr5Ze{)zZL&;|8U&B?~^?tWBu_!}YA@y1TX^*FO|hWoL}iWKAPqLz^2xtkqCA z<(ZnNbHG7(SWzK)mCaLOX=BjxlTAUKr`=d#W2wQD=r@Nf8Zt_Ibmw?KPFHDswrDUz z<>QvSu%do+O39d<94$`>nz;bEa&&!>XY@)vi~an4fgb<|i|=g{&I{6-bxu!kWc= z(JB~)5(br#qrqtt1E9~gPCNQk&gd;+JvoJOI$w~1_eR~TX=A|3r?}hA96D{tC>Ze3 znC3{uyDAeuTe0WxCuZ?Z^SeVxB zY4>)i7l%2+z%sWwDXq z(d2f9+XJ4I2iP8XnyU@B-L{qYIK3DNr*yt2-H}%tCZn@MwpA|nTe+M&T7ITi!v#z; zR!NB`@~L_Qp30oe_2*0sCt|ENlwB&HM>826xAlUf zt3i%QENc|iED1rKaGMJcRGEE6qdfqLzPkSZC`MUs2yIG7~jIDdihCNFx zGfU*nw*$&|gC|y=Uk7a)QQnVuPU+bb)SokSyGhia!>vuj?mf;oNA-56%y_RGzy)HVoGOkqqnQOubO5>r{uZam*V>)ay7#ekwPM$W9x1-9AxQu8R7t;;e1X9B;5w z6(MBP@_xvC~ zks*U@I;G$)>csBZqAcmi*U_)g0I(9SDO?V8c41aGfR!K{rUG(B8B44NhlJ2M02 z%ix*d&7wpGKV#6Q$~i8=W^9NwD6jzwSU(D|QH%0QItC33=E^X|nw<+YhT&QlB+Z)4 zT?g(#IFv(ac9lzSRJv)%=VL)u&*NCCMZ5S z+qfzt@_3Dl6KWN-2zq?~s0AY}78C(Pt%|U26)RT;B0}PdhDjtl61`kU2k3YRWmi!! zh8Tn*2#16O!O((eP&}>++U(u_s4!K1K%{UBm#nOnb5a>gFYYOoitdzNz-1D3 zd1nCJw!MsNj4e#nvw~&`7Rol}GPT%Kdke!zP3QO>AHFEOowOc>`M{5W9|1oCegymo z_!0R36@luv_Y!WM#kH~rS2xlA%s^)HLhK)|B%dDm)ZmMMwd>Lm!Hbu{yC-^!*rYgG zA2yujqBF63cyI5Bwm}=6)%q;!#00+$ndm>R7qMm3(&>qVeW|^J;}g{_4_K-6gf(^F zgxWRM`0iWA;`9_M@sl3`KLUOP{0R6F@FUk0*0Y3tM1pEm25%44M3yMHMee>Fh zlR$hN&wmq8;cst`B1hJcr201L4EQ(*qw@>ocuVjA(Nj0!^ZSFjoABBAHyJb~)+YKv z6ORd(|K`u&<7|a~JBxDsLc>dyWBBISEv7h6&A8tHSLMrfIMt{xH$!v~M~#z!gR~#m zFzutgpoal>1LyP?!5`mn{Sh>__)wH_&fl-3_3w#2Qe^{xLLGtHuw&vN6sPkzwmgQT zOipVFM|wENktv@C7h$hnj|SbH_)591dr%#tIt@B$O2K9d2e@h4L|cGu0=5M- z;b1k1vei>)8{YGw?_NMYM8DA6(CG`8&6pW7dl{ajWu(dJZ1*p*J6_ z*Q57NHafj_^&rQW$AHb_Q!#3w0wIV>#mxYL;;PWx+#Ce>#~%3QfAFC)K>lAJZ!`G6 zrqfNS7#wIy#ULuFr=R$AJs7|ckB1u5uP=<>NHy(!?X}@jG5Bg@dI>jKW9s?2d$Y+M z5OWxAm0#Qyfc;2gojlI@8KdE + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.pdb b/Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..90b76b1ebc9e872c3e87c621a86d5c9a225dc714 GIT binary patch literal 34304 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 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.xml b/Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.xml new file mode 100644 index 0000000..f4ed466 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/bin/Exercise_11_1.xml @@ -0,0 +1,11 @@ + + + + +Exercise_11_1 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/bin/SimpleTransaction.exe b/Code/Chapter 11/VB.NET/Exercise 11.1/bin/SimpleTransaction.exe new file mode 100644 index 0000000000000000000000000000000000000000..94eae450ccdbbef90c7d293649ecd623e4cdd72f GIT binary patch literal 9216 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/bin/SimpleTransaction.pdb b/Code/Chapter 11/VB.NET/Exercise 11.1/bin/SimpleTransaction.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2d48b06690393dfbd11ba4a1cf5cc259a6d1ea83 GIT binary patch literal 13824 zcmeI2Yit!o6vwCKA;q>>kg7#+d4rVORvxXOPkM>E@w<_*`qD-+bNU$?$Fl3J^6>-CJhmN)uM<1w0R$s_tvYTS%uw8oZ9 z(&;fWoo4Q+WgN)swyS47)3Gz#T-V5TTLZi7UMJDttyFeXre~N!Zmf_SD3l8n>WLK6 zBZY$6K%r1-t)`DqC>tvz8Br)J3b}zoUV%b-q>vdYbiECfc6yFmMw8g)dYdM9MU@+( z$Kn-m5L!Y&Nld*fKcpEUlzu0n1r~hUSoRKj`6mWf*!$0xMK1f-n#!^<9g=o4qgLYg zRph1b$|qm?xt+Ykgv5vNj7UyE;$@_)^cBZap{&T4(!^Roe3wvn)=01IQXmzc0q{lO zR`H2S>!uCVs%bSMn&Kyx75*Z%tmdjkJrS*0@au#>;Ce*_&U1w7g+_Q^utT`^A{uvx=->tdeltrZ14*K@Lc)QL{BK`82T zy6QUA-Q{)Z`Mf^R)d)|X)Ae8_ip^w_hsldAYH7=O>c*kAN|_j=9PQ&at+bhk%;U6+ z+n|T4ENCNslr}MyA$c=(l4MNoJ#=rUaD<8`f-`pT#t zU-;63PbI$C9>e=p;9O8XpI|S4K8OwcT9CZ2f#m%=!COG_$F1N7kZ^!Q+@;70iFhTf^UQE@ZSe_Q~ns-1AY$f1dV2=JY@P7Dnzy~NV1|I}hf)9ZSFa!T?5L@_L z!7i{3d<0B_I=CC`1`mQ+@GwYd`#JEJioKh;(QdNalW2zumh1X)LP;-!Jf;L09LoLu!s2)l{mB?;}RzWG^Ck1Ya%J+`I z7Rv3=V&qms8=$4oE!53}u9Yuy*$p*8cM$RA=(mvk>Y!Xfl*`zHGsyi;{K%Ri=Qv4{ z*C2`KQu_Z|K<@PGDjI&3^{bLtUkr+iWqpcVP43!~Hcs=28e^OxN~{U60Q-I^6`=(d zsp{bT$a6T86F^6LP1knY%MWzzb4*^$s^_ZZ0iWX_>p}PeSgTeS)HQBwl+;v&#tFB% zqMTT1QY8zB1vK`2dA3JO@!3Gmdb5y|y?To6*E02@PU2(v9}w~Djp|fOrFv$Tywmc| zq%^1=dJT$`yw~0q6n;4q*MO`4_y{6qK-{Vw+t>+9^HMsd~!x2O8G4kD(+(iWyy<7si z4cGgd)X2|ulSs9K&t)@knOq-cb!axeMXhd53a)M619Qn$=U^3hkxL;~caV#kt!Gl;loP?g#^=Wg>ECDC>!g mGY69QOqncqX2JcUtS9rKo1s$r?=29n<^TP-r4c8G1^x!!cFAr4 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/bin/SimpleTransaction.vshost.exe b/Code/Chapter 11/VB.NET/Exercise 11.1/bin/SimpleTransaction.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..87ed49ad954ce326d6b3914c6a1e9a97ee2d004c GIT binary patch literal 5120 zcmeHKeQXrR6@Pm^&c+4P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Chapter10.exe b/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Chapter10.exe new file mode 100644 index 0000000000000000000000000000000000000000..fc386d4dad54a04f1a0acbf8ee51cac5b5289e14 GIT binary patch literal 9216 zcmeHMeQaA-6+h2*9LH(AI_XDB+wFC2Hy2VjZnCEBQs%_YvaqB{>nz(?pnb7lowq)} z=f3ycCTJfXOoAcyrD+mW2s(sN`4}40q-{u`3@U^eUH_O62v}7FLTLK~A&?j#QGVyX z=j1ub%DQPVL9cVqJ@?#m&pqedbMHNNMn3u&1&JtxdhsIB3uw8d1-vw!l63+Tn;UIh3DK4&vymkXILHH(2u$O!vn{AP)aFS;@YLYI`$ zxMRb-9#4a{E>zCnMHs{_2_@qVwLvQnG~SeG1KrPlzGG`*6=-cyibu`Wi$)W;K%?iI z5JPK$(65O;*w@V}65Y!HL3uAKjshVnC7^=78OSMAL>w2XKlhP-Nt_h-K0TgFb|$-e zI&Toe4Wy%ef#uvsv;|@RAnN9vV`)awW|q^4=X!REo+hO%h8(Z9g` ze%+ix%LT_r8eA1{*Z;fJ#d?B9FhZPN##v_^07AfvF)V>n3Gx_@GnHr?p4CTb7VxBi zrvbzCJm_J1Nx%yN{zuq1y18_zCOV8k-*+SnCyT8_|3rQ0ACdJ zbAs}^fDJ(&y;{H?0mlJZ8&@acL7<0e8s6rfd*`enhuY9f(OFoyhklRuw~zitGGI{J zN<-8Nt=3VylmxsQ?pQ~gr5;>6?ZD&IE%gFsq<+90c;b|oHUQevE%4w2(l8yM$E7ja zM4t!$CVC2xDHC)j{YsjI^>2XZPWr3V2FXoeVKO~7M-_rPSB~t_RG}4>5O& z&d`q`8h1et>ao=wQ0;U*~RYmsE*eiuq+tEP8d;bTPdoP(N)E&8_nn@%+5J*yMz8BRfW%8mDpPg`)5k0b&jnbnk{VcL$Cw<)VmRf`V#9aN9#-d6V6wpyCf zXD3w4#?~%ntr(70Qj^#Y)iTTTwhdM^-}0H^99yqzis3AXsL95D6x5Pp9bGzC@D{1K zzidDm)xh1Vk_FsCdyFci39JAL_Y}dQflI@<4eAjx1%DaPqyl*I7?m+z5aTK8pq=RR zOqS9`q~0dh<5h+zOZ(7M=tkfMX0c=iTFJQ46!aK3sR*w9VkHN!!3prNv>P$o<&i0e z(F%0PL$7_fC8>Ijnb=!Rvvw_%2KBiq8; z~jqZ+4M1}wcsq*G4=cG(kkB0 z@t7udpkqk_?A?%_`Ln_pYg7O~)NV4jZF zxu9NGj@A>19u5eO_WDt_WFK^){DHbScb)3S_?U3+LX30t%9z6^XGYkqLJF^=h=5=( zDtME5(_}BmSjYd2Ej!+=+PSTf~2SWW)^LkTP~s#m4|< zgDWp~+y;IGJsls8m9p4#zJ&_N9clF_q`8-kd)vvhS7bo~KJ;J!m*wRw_-GK4DV`?90S{R88Z6aC!CUKTbvpOa+p3-F{lb@!ym<`(G5a$yR> zuay6y2ZG{%0SRPP{IffL6Rh%Y5{J>E@s)u1ykxLevYhl6Vp`pvv<3K5jLh)g8YNf1oF*8 zfCF?8*bt2(J3WMUKa##t!TG(=AOGpBh^(SMmnz zo`k%c6G%>mIbr5=FQabpjg`gvv#?eXd>9ry9fGH(c@`3EypgO&8Il(CWO=<5!&)`o z3GiCrUf@X~hwnt)L*29sZ3>xT5AwmD`MK;F_uGmAJ#?Qo8S!HCnk+RX8i;Z* zRNWI@tr9R)e3%36%e`M>kPzW@@Z B+PMG# literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Exercise 11.1.vbproj.GenerateResource.Cache b/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Exercise 11.1.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..dc489a18d9a85dda3420c57f28800eddc47727ec GIT binary patch literal 786 zcma)3O-sW-5KV0p`=L+|;z18ZJP4N1Dx#MnSW$~D_=R}T!!|p?wcD)hBx3vpp8Q+> z84vygohe$R4dMh|lG)ieZ{|5U$8kO>_{}jlLvYf(+VY4Z>8)8ei+-5zK-9HCB zg6IGqAd(OT3Xr9gEa3H_(tt~SfzVaa03`n(C<{SsY+A^zW)n_Qjp*{kS#}x!af{W? z$zO`{D;FuoF!b9-Yidu+K>t|aT`c+@qHmT};{ajgTM`Ls*{3Yk_gkNEIrOixX$?q%cO0q|N6>9+g-mkK^2Y+`f8mFS!Ly Haa6tl2TJJH literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Exercise_11_1.MyResources.resources b/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/Exercise_11_1.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 + + + +Exercise_11_1 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/ResGen.cache b/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/ResGen.cache new file mode 100644 index 0000000000000000000000000000000000000000..219d77613c4ae41a80987f319bb2848d50773681 GIT binary patch literal 992 zcmbVL&2G~`5VpZiVJgsZUO!1dokWcj<9i2DNkS5BX(#{2JPvlF37SAjB+pU7dSsT>GZkO7G6 z)~Yv_OtrIE{Ois36UMOo8Y^!Fs>;d+Fs4Hs^Zt!{Yu?a}F!u~L;fS3kN?_0dd)=&;HiIv48D z6S+W(02Iqty26Hc6)Irm;_t09J_}z@`0xJaI9L={6E;$2TUWy5ds!?KNpXcfN|PHt spjEp(3#`k!{`1G}*0;~L4XhFrd$1mS|Jp9yKrh`OXMK6Rb_ed-9|kcAi2wiq literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/SimpleTransaction.exe b/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/SimpleTransaction.exe new file mode 100644 index 0000000000000000000000000000000000000000..94eae450ccdbbef90c7d293649ecd623e4cdd72f GIT binary patch literal 9216 zcmeHMU2Ggz6+Sawuh*M+o3)$2CZ*FRZPwJ;`Y%8INxN&WoWF^WI0OiHJfd7cLN;M$M3t_`OjT-LY$a5Tj>W zU%K|RGWycB<5PyCm2InF>qRZ6mr9naO$yDflr*EHWyZ2v(aMWtTU&I!uX^_o(Wnxl z$4%o-#grvVn5dm6@VIBYQEMnE6r#AKRnKl_u>BIA1oj(P7pP_OZ@%`Mo;118 zdk@oxh^i5v8LX;AOSzpQTFdpNf<_cn7eRYRU~JMA(=OVtz&yDYUhCWX2hr3I%JX6(|8n5zQuT$IgK#*Ki0#6lE1k08-G9w1sIwP_C(pPS$rFN&r$s1A*pc z@_*O^r}$g}cyIDn=w3&ZX(LiVql9;BAQk~@xvNU4hNJJ@OHKS^Ca3w^Sv_z~HX126i zIAGZ3Ew+OpR;y%MU_@_dv9~MptR-Ms*znPgNXwefW02AjjYn75pM=a)6pyZqN4Q#L zuT(w8>UbytA4HjZm3_U>P2ehu)=v}E*6EAQX?u1~Tl2p_+Y58r!k4Daeib8X=FYhw zaRvLKCEgMb-SnYW3%5^{>{Jt#6LBUJxQ3!P(Ce>r$Xo2E(D5EBn&(wSLl>)f+*4tq z<2_V_Z(38c;+2b4oWGY^tqy77=H{Au`vk~%BylD9L7UHaU7uJEUPmj%TP@s>b-js| zV4QEoPQslSrQZ;Jm?+)vZR`T72)3k!g6&V(YzjzX{*53`qF{G1CS=^Q7=`l18!F~0IyVT#6`0dbes}OH}Do^Gw?8E;&hL)8n~d`2LDx*6phd$N`}(( zgfc>V=xJ!XmcE6t2WVCq1Aajn2j^vQSY|)G_NMYN_~tJdtCOncG2@l$1~TM~M`~KMMRAdQ8$^llW< zk)!O4AjJk}C?r9-k=-+HPA#@61y&=UO(6l|_jLM8PNpCv`B%pfzU_HygX9 z@#CB<4o!<(#TC1((w>U2XKL+iPB(R%#w~xwx@yiG-#o&6Io)Mz`+8}&ZaaeZTBbRv z=ZuvAyE3 z=|?v0IHEXd&g>JmgGe`uR!Xi>6iN1oZI$N&I9xFT(+`ejImD)+m)v<3HQfkPUKDlv zNMqNaRi3ep!qftz;E;SJw?GHaq?cwIm1TsJvkkd18#~7hx6Tt6ACsh*7DPwyCWi#s zq~Z3<&^EMmx)pQ@x0s8fYAG71dwz0B=$ks=4K2fF@Pur7;c$<)FfmJw?egFiBTHCNHNG;MwRu3TZ=9 zdC0M`0vEGJ$Kf-f;=3-W_Y{`Oke}J&yexxlCIJNrZu{W+Pd&g<+2r+nmB5Y{^!lCk0l$~ zD~-IFjYO+Ywz|268$TG4nj0KAf%hKow;Ua*i%Pxw9P}N>_U5A@K-c%ObGN}gr0;>d zgU;kQb6_;uT^A1Tcxf1;LEp3tg@6`5ZoDoIt4@=07ij?t|2-=~db;S9^!`__r0;#K zq;Ih+*>eCf<_j)(mNo1a9g))zMS-UT%8`eWuR#aTVYEyfQyytyZjl#-T@L7R6c z)ON}(oGz_-;Q6mS({XO}%RjpFv#VCVmZr$}K0dK;b^jX=MNZvu@PYWRqPHL|R<4dU zX%q>O5{ZR0Md6kb(x^S&j8=P_#Bng!qQoE;i(pjjY9=9!uV~Gr#$v#bUXHfX-m)at z-rC;Q9*+QG?aLvnz@BDJRaBMdP{YW^!Rl0KeY$(|z}Brj0~>qNTZT6F_iVm-V|vS0 zP@9JaGnfwE<2Tw9{x=7f`ytaBQ;ksj zHc{V$l*vXaB$GdxUkZ`To2C@Ha6NS4hwNooj0bApUR4a@@4stPDEI}vH=D`6Gj{u% z8%~_O>(M)Y-*rBgKg_`$yk#O|TXD z6X~*ztgv@Na{K%GxA;;Uwe(?RV45wC8R9sGYlBmI860PV39WnU#2`KvPc)?e6V~K? z(2iWNu`gN9Pr|~>@cul|M7SG}c~F%JpSA7!jGVPM;_zYNFTcKF(=^-lbroi^`E_0=|o+; z7$3Tt_~Xz%WV#1|hiEUT5&VYUh4u*WcKLgn=uGI3?|AkobY}kneBJTtJA6GM)PZRw zHzRrb@G`NXhZ6$D0XCQ!Y2wxGR*r$aKo0^`{`obcPI`8UeE zMOo-7%9pJOcue;*WcFAR@ zR>R43Q6{IHx-3=?`y%1{BZXR#`xl2iaQ?s!K-Iees#OAof`?f^v$M0{;2)9r<9|rX z3Yh;ld4bVC3&-oA9Lm%|IfO~(;m?=b^UeSTf1C)yryBh?T7z9@&yKj|(2GHM4*y&V zLTb^`tTP9VS!}oJ2UnV)za=;)?{j`9YACgRJ_~wbsPg9KjqO#yAQ!dITm0?ndu@13 z8uRx1u6KCh8y@w-GW?vUcotUH0Uxz$9p@4niafINtg?4h(zIpLOZ+BQY1uNb#qZ(3 ctM(EUUl#emJb;8?DU|<$6NAg}f9HX}1Byflxc~qF literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/SimpleTransaction.pdb b/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Debug/SimpleTransaction.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2d48b06690393dfbd11ba4a1cf5cc259a6d1ea83 GIT binary patch literal 13824 zcmeI2Yit!o6vwCKA;q>>kg7#+d4rVORvxXOPkM>E@w<_*`qD-+bNU$?$Fl3J^6>-CJhmN)uM<1w0R$s_tvYTS%uw8oZ9 z(&;fWoo4Q+WgN)swyS47)3Gz#T-V5TTLZi7UMJDttyFeXre~N!Zmf_SD3l8n>WLK6 zBZY$6K%r1-t)`DqC>tvz8Br)J3b}zoUV%b-q>vdYbiECfc6yFmMw8g)dYdM9MU@+( z$Kn-m5L!Y&Nld*fKcpEUlzu0n1r~hUSoRKj`6mWf*!$0xMK1f-n#!^<9g=o4qgLYg zRph1b$|qm?xt+Ykgv5vNj7UyE;$@_)^cBZap{&T4(!^Roe3wvn)=01IQXmzc0q{lO zR`H2S>!uCVs%bSMn&Kyx75*Z%tmdjkJrS*0@au#>;Ce*_&U1w7g+_Q^utT`^A{uvx=->tdeltrZ14*K@Lc)QL{BK`82T zy6QUA-Q{)Z`Mf^R)d)|X)Ae8_ip^w_hsldAYH7=O>c*kAN|_j=9PQ&at+bhk%;U6+ z+n|T4ENCNslr}MyA$c=(l4MNoJ#=rUaD<8`f-`pT#t zU-;63PbI$C9>e=p;9O8XpI|S4K8OwcT9CZ2f#m%=!COG_$F1N7kZ^!Q+@;70iFhTf^UQE@ZSe_Q~ns-1AY$f1dV2=JY@P7Dnzy~NV1|I}hf)9ZSFa!T?5L@_L z!7i{3d<0B_I=CC`1`mQ+@GwYd`#JEJioKh;(QdNalW2zumh1X)LP;-!Jf;L09LoLu!s2)l{mB?;}RzWG^Ck1Ya%J+`I z7Rv3=V&qms8=$4oE!53}u9Yuy*$p*8cM$RA=(mvk>Y!Xfl*`zHGsyi;{K%Ri=Qv4{ z*C2`KQu_Z|K<@PGDjI&3^{bLtUkr+iWqpcVP43!~Hcs=28e^OxN~{U60Q-I^6`=(d zsp{bT$a6T86F^6LP1knY%MWzzb4*^$s^_ZZ0iWX_>p}PeSgTeS)HQBwl+;v&#tFB% zqMTT1QY8zB1vK`2dA3JO@!3Gmdb5y|y?To6*E02@PU2(v9}w~Djp|fOrFv$Tywmc| zq%^1=dJT$`yw~0q6n;4q*MO`4_y{6qK-{Vw+t>+9^HMsd~!x2O8G4kD(+(iWyy<7si z4cGgd)X2|ulSs9K&t)@knOq-cb!axeMXhd53a)M619Qn$=U^3hkxL;~caV#kt!Gl;loP?g#^=Wg>ECDC>!g mGY69QOqncqX2JcUtS9rKo1s$r?=29n<^TP-r4c8G1^x!!cFAr4 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Exercise 11.1.vbproj.FileList.txt b/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Exercise 11.1.vbproj.FileList.txt new file mode 100644 index 0000000..0ebcbc4 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.1/obj/Exercise 11.1.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Exercise_11_1.exe.config +bin\Exercise_11_1.exe +bin\Exercise_11_1.pdb +bin\Exercise_11_1.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_11_1.MyResources.resources +obj\Debug\Exercise 11.1.vbproj.GenerateResource.Cache +obj\Debug\Exercise_11_1.exe +obj\Debug\Exercise_11_1.xml +obj\Debug\Exercise_11_1.pdb diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/Exercise 11.2.vbproj b/Code/Chapter 11/VB.NET/Exercise 11.2/Exercise 11.2.vbproj new file mode 100644 index 0000000..bf0f1d0 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/Exercise 11.2.vbproj @@ -0,0 +1,98 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {3C3CA1A8-4019-4FCD-8324-5F78C9040960} + Exe + Exercise_11_2.Module1 + Exercise_11_2 + Exercise 11.2 + Windows + + + true + full + true + true + true + bin\ + Exercise 11.2.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 11.2.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/Exercise 11.2.vbproj.user b/Code/Chapter 11/VB.NET/Exercise 11.2/Exercise 11.2.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/Exercise 11.2.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/Module1.vb b/Code/Chapter 11/VB.NET/Exercise 11.2/Module1.vb new file mode 100644 index 0000000..0ab93d3 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/Module1.vb @@ -0,0 +1,69 @@ +Imports System.Data +Imports System.Data.SqlClient + +Module Module1 + Private connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + + Sub Main() + Dim connection1 As SqlConnection = New SqlConnection(connectionString) + Dim connection2 As SqlConnection = New SqlConnection(connectionString) + + Dim command1 As SqlCommand = connection1.CreateCommand() + Dim command2 As SqlCommand = connection2.CreateCommand() + + connection1.Open() + connection2.Open() + Dim transaction1 As SqlTransaction = _ + connection1.BeginTransaction(IsolationLevel.Snapshot) + command1.Transaction = transaction1 + Dim transaction2 As SqlTransaction = _ + connection2.BeginTransaction(IsolationLevel.Snapshot) + command2.Transaction = transaction2 + + Dim myReader As SqlDataReader + Try + command1.CommandText = _ + "INSERT INTO CUSTOMERS (FIRSTNAME, LASTNAME, ACCOUNTBALANCE) " & _ + " VALUES ('Bat', 'Man', 100)" + command1.ExecuteNonQuery() + + command2.CommandText = _ + "SELECT FIRSTNAME, LASTNAME from CUSTOMERS where FIRSTNAME = 'Bat'" + myReader = command2.ExecuteReader() + + Console.WriteLine("Results when the transaction is midway:") + + If Not myReader.HasRows Then + Console.WriteLine("No Rows Found") + End If + + While myReader.Read() + Console.WriteLine("FirstName: " + myReader(0) + " and LastName: " + myReader(1)) + End While + + myReader.Close() + + transaction1.Rollback() + + command2.CommandText = _ + "SELECT FIRSTNAME, LASTNAME from CUSTOMERS where FIRSTNAME = 'Bat'" + myReader = command2.ExecuteReader() + + Console.WriteLine("Results when the transaction is rolled back:") + If Not myReader.HasRows Then + Console.WriteLine("No Rows Found") + End If + While myReader.Read() + Console.WriteLine("FirstName: " + myReader(0) + " and LastName: " + myReader(1)) + End While + myReader.Close() + Catch ex As System.Exception + Console.WriteLine(ex.ToString()) + Finally + connection1.Dispose() + connection2.Dispose() + End Try + Console.Read() + End Sub + +End Module diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/AssemblyInfo.vb b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8f45294 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyApplication.myapp b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyApplication.vb b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyResources.resx b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyResources.vb b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MySettings.settings b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MySettings.vb b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/app.config b/Code/Chapter 11/VB.NET/Exercise 11.2/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/bin/Exercise 11.2.exe b/Code/Chapter 11/VB.NET/Exercise 11.2/bin/Exercise 11.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..b93f1842a463607dc8ad88c5c99faa0d75d05e0f GIT binary patch literal 24576 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 B@`L~Y literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/bin/Exercise 11.2.exe.config b/Code/Chapter 11/VB.NET/Exercise 11.2/bin/Exercise 11.2.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/bin/Exercise 11.2.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/bin/Exercise 11.2.pdb b/Code/Chapter 11/VB.NET/Exercise 11.2/bin/Exercise 11.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3459f33a605e25a544d1dae4c801d1cf10efe3e9 GIT binary patch literal 40448 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 W!)XDh1)LUeTEJ-mrv + + + +Exercise11.2 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise 11.2.exe b/Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise 11.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..b93f1842a463607dc8ad88c5c99faa0d75d05e0f GIT binary patch literal 24576 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 B@`L~Y literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise 11.2.pdb b/Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise 11.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3459f33a605e25a544d1dae4c801d1cf10efe3e9 GIT binary patch literal 40448 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 W!)XDh1)LUeTEJ-mrvfWt*Mg+HF>L5;1;(pW!$7 z6aI||QbhB|1547@+Ah|F@2)lz;C)fx!gLYePv_wa^+-4<}-8%!^ zhj16}Ae0dL3Xr7~E#TFj(tx#rKsZ+65G4QaDhqyOY?8|?r4vq4jp?$)S#lZwaf{Vf z78=zZ5zKbewF~aoutut=Hif*K&&H!(aSwr(4@RZ>dx! zEV>MNf+~OUL7p|&`$>Z&-O}vW{e&ztvGoBxa_OPU*cjH&O)(g~lE-;od|98Xygp@S IImJ=_00BbiTmS$7 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise 11.2.xml b/Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise 11.2.xml new file mode 100644 index 0000000..845d382 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise 11.2.xml @@ -0,0 +1,11 @@ + + + + +Exercise11.2 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise_11_2.MyResources.resources b/Code/Chapter 11/VB.NET/Exercise 11.2/obj/Debug/Exercise_11_2.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYzHt|@jvhh~CHV~eG zci?Hba6^J8;01UGn9o!+hX_^K!+16G&3rT8jvd!=oZo!##i^ZR^JY(ujkY>YgU6Xv zQ7{m8VjJ}XGFIxOeJ2Qm=2jR6VWZy3RGJxTCzPc|s7C!|Hd1o@oMr<(p`<+uoAGAc ziZ?c*%}_Lj2d3K#34+&TpHkALV@e`Q#**xL2A2)lqn=b`D~4h+93gvYBrNU9WI_=_ zU1?~XYBMVo-0O>r&zHrJXM_P-&f6&Pt>WQ&hEz;hi{>Y}(x2Isra?z5#l5nQHh3oN z+f`dN!pb%?n-NLha=WiBzD353L|dc@4&gxd^k)#)I$1sXBB2V(@R9XIOtMOey9| z!rIl8u<4$TWGpEv(g$f%%j>x6=1T_govS~8+-!dR + + Debug + AnyCPU + 8.0.40607 + 2.0 + {816C820F-D828-4168-9FFD-341B83C1756C} + Exe + Exercise_11_3.Module1 + Exercise_11_3 + Exercise 11.3 + Windows + + + true + full + true + true + true + bin\ + Exercise 11.3.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 11.3.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/Exercise 11.3.vbproj.user b/Code/Chapter 11/VB.NET/Exercise 11.3/Exercise 11.3.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/Exercise 11.3.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/Module1.vb b/Code/Chapter 11/VB.NET/Exercise 11.3/Module1.vb new file mode 100644 index 0000000..1f0c6c1 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/Module1.vb @@ -0,0 +1,53 @@ +Imports System.Data +Imports System.Data.SqlClient + +Module Module1 + + Private connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + + Sub Main() + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = testConnection.CreateCommand() + testConnection.Open() + + Dim myTransaction As SqlTransaction = testConnection.BeginTransaction() + testCommand.Transaction = myTransaction + + Try + testCommand.CommandText = _ + "Insert into Customers (FirstName, LastName, AccountBalance)" _ + & " Values ('Bat','Man',100)" + testCommand.ExecuteNonQuery() + myTransaction.Save("firstCustomer") + + testCommand.CommandText = _ + "Insert into Customers (FirstName, LastName, AccountBalance)" _ + & " Values ('The','Joker',100)" + testCommand.ExecuteNonQuery() + + myTransaction.Rollback("firstCustomer") + + testCommand.CommandText = _ + "Insert into Customers (FirstName, LastName, AccountBalance)" _ + & " Values ('Robin','Sidekick',100)" + testCommand.ExecuteNonQuery() + myTransaction.Commit() + + testCommand.CommandText = "Select * from Customers" + Dim sqlDa As SqlDataReader = testCommand.ExecuteReader() + + While sqlDa.Read() + Console.WriteLine( _ + " FirstName: " + sqlDa("FirstName") + _ + " LastName = " + sqlDa("LastName") + _ + " AccountBalance = " + sqlDa("AccountBalance")) + End While + sqlDa.Close() + Catch ex As System.Exception + Console.WriteLine(ex.ToString()) + End Try + testConnection.Close() + End Using + End Sub + +End Module diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/AssemblyInfo.vb b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..0b6c8d8 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyApplication.myapp b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyApplication.vb b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyResources.resx b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyResources.vb b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MySettings.settings b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MySettings.vb b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/app.config b/Code/Chapter 11/VB.NET/Exercise 11.3/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.exe b/Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..5187838a8a70a00010665ded57675fe3e6d5008f GIT binary patch literal 24576 zcmeHP4Qw38b$+vZw|Ar@T6ffMMaiolODBsulOknFmgF4&B+(%yMn_Y%Ba1rTEvb|4 zZcn>+vX}(Q8OopPz;GKCjt~`*e_+Hhn%Y1B+d*s4apKg8?b-zbB(R~Xuv^$kQP*fu z*oiCmd$YU8JCaVF76A-*=QMBU{mh#;Z{Fsd$123)~K9;rhqGe84sl1*}6$)laA2W2TT+p)xz4t&;&zl(|zFv$kQwN>EOhKfN!rg>x`YfmC-e*5 z0wQtmT4hU_0Q4T>(ov{Hle1EVXg(7YL@j*%s7WWPRTl=nucmIiWSlMm&#VFf&+89L z)uh9!xSdIrQbhMLHG#~1X+y3_38JaEWm{>`WFL;Az;X%Xnv?(~ZW%cfg0fE)Fj;O0 zxh5rux@%Cs=zGBTfbRj{1HK1*5BMJNJ>Yx5_kiyK-vgfj4eu0bs%})-RAH)QNl!ZC_u@oW3+ttR3(&V#3_QC|zEnVH}rS6IyfoC+%m3Ks?&K}qLf%20bGB1##MZWLTQER;m&pOf z;P|y?h|c5sZ(L56tZZSzW{EFh#(f8~ckQi7YQ-IekLcF!y|up=*ImF%%UAjaOgLpgM)~D#$gBF^9T|~7lTUFhrA0p=Hh5t%J7xzunb?hYiLGZiJl5G zjWxYXF9EiSCZW+Tu~jtEdGQkNj8SDPD32?b6pbz`&nr#Tr?#n0^k?c903Vg`7wVL% zkrH?t@LIq|Iuh6xXrxntX2j;BfqMcPT?tG9UJbCeH9^+DGuRCM<={wAqjR8W^zGnO zAWE+Vp9@CmR}#J_VL*EhGEt3dUDUQg&ttOuqAdRwWsR;0G3*Sj32F4%&@F&P3D1V! zR_~+xFn2V1IK(zQC*d1XQiQqnYrK41;N zc*GV`64(M@Dg{yL4%A%$*|5Y;xEO{Ml3$^Fz|;6v49Sc19bh5CBMQ7{!CMWjOQ@X= z2_3K^HUmB&ZUX#?*o#`nm3smIM7aR?jB*k1SIQ;8JJhEE4fTgKq@zL7mW4$#nmAmC z9g|pOS&vu>-g${Nhi?%pfIa47MG*t`f{R@cTYRxaxf^l(ejP8o zhFf>~5TIoeTSDJbmO}EIcpTx*8~#t_Az*K~Sfly~YjLq9>i2+!@j&ym1gS-0PU}I6 zNo+~jQh&@V3GOiuGwrT{Yt#l}5BCH99o+_anNpGxkuWRaItg1P?38eqOXr@o62ndj zcS(3sawjFc3$R_BqqhTJ5X*^uy`0#`8);$i94PG53)C9CfHGThKj2@9UKt^epu9;!CcJT@w)sE5gR7ClCDoc05henju;tb$MNIszK0DMI0lC}B)+r?)jyiLNC zgjoqsN;oOuT@vcFmflBOcheCOr?pC(5~qI`{{Xl`mNzMz)i}K>z6Z+d;t9ZCiz&e0 zihluol~`VtlJk@$kZgv00`v6el%Ni1?vdplEZ^Qh4BSmOilef{w4|pcJqx-iDpLNe zq@1O*sC$+^4|opTTf`;Fy`O#!%Kh{@;Db`bgY+|cLQF~Sv(lbtCH;B8ZzxwJ{dKA5 zElDB4wvk}lRKfaH!EH4N_Jc0zx|B)Cazd7m%JNZJuE_Ew38y4wN|vukND6BvMS4Ja zP`po96xO^_tPvYTtGG*iS==lBTs$PcE3Q+HD_>FWQ7$S8wO8Gz4yZ$FQXNq*(CsMQ zuHH*SxE@i*)N%E=T2LQW{>@+`v~#ML+bR{+(|*9W6`7d%Gw2S&ZVj2& z2=i$t#1~?|^Od&};9_ zC%cM8ER0emET5?Fv|**QwlUh?KH3oiRA$2N?<=N48a%^a?SBvW2n#!){puy@A&xRP5TqU_kn$z@njp0>e zYG~-6LGg6Sgz0m2J>F|L9jNxuSpt&N4OEqNCydf)RU%(4*7ucIs-|tqGd4r!RvTVq zL0QPl%M20b*7`O-TIcH-(zOlN*6KTn;kC)6y+&zY%0AYEm+&+^Su~g+ufwLZ{-hp^ zUC9_7?JwA+R3VKL4O7-ds5fgDO+-U2n@xlouL64N20#fRlpaat%Cea%KW!EYhzdlP z+vH#>TcDY%ZSq25FjYuRz)z!=VGmANp5R_Ae^a^a=bSKg7x(>zaZ?JqxODDJMQpFf zw`{Miti529H<8D;N)J*EEjvsT+WHx54Eblfcv6ZtQv*>;nte1 z8{OK;F|Ek+XmvQJS>90cXCO7@c=BYfCznMy5tpiyim_oURj^ZXjycSH9=+ybFSHz# zn`PW-(?(I=htt*ppXAe4Ln;54jeWD8IRv#BSC+Yh38m0JjuKp7$t|hoPn6-=Yz($JIvH&+eUsYH|gBWJ;WUY zr#hZS?(>cYjl5}1cBd>W%MVAhz|))hI3(a5^xm0c^>f{!K?~m#Z1xkTwY=FJG;*oa zvSd%&=*BUNfi;%RWlNLOT+iM;xHGutAJfde``{Rr?iFbpy z@okfPFogBai6j|h(J2Xc=U*DTtsK_(JE<3?67m?b4Vm3|%o!+^!0V?1t_Dq@ zK1&&tAsxGQ1NFdT8#EU!jkm; zXn;Abpbtn>N>oehLX&CKE=!HwkjNnyKr_${okk?349wBI0bg#h$s3??0}V=9F1O<_ zs0}s5it%dOGi{^FUw(YLF-*tMDW@B^zyT+KSrV^yrSinb$J~Q3aZHZ8V{#JZ3`{ zz2~bBZ+Yj=@%@V_{KV%Dk1X%JaxVPXr$)aR`FZ0_s!jq&k@!fIqVq%A;^;CFozFzFoOt#MFCwXEl?T`=oDRyLX)zJLJNghMYy&JAr`LUEi2f~ zq~aVR5JN%Hnp7>i9C;6q9B<$C8 zMKm=n#Wrwoa@fchajQ2%+npn7oV~J;+dtO>yL{qb%ChV1J z)~ARKhgQ1}poMr506D%*%Pkzu7Zd_PZa}b)6fG@kNGQl*jYM>Dq@UYZ47@3bx~uT! z0A31);4lRoxJwV9LrqO7L7nb{5e>$@6;K>cijtW&b9Ovwri%MYrJ}QD@#xXn`;F$g zHW{v8FcytCWPkw}5bn7Wl#b<*%rY?8;ZcK&dGK4Bu%B;f!GH+CL$1gHJIQF%f{+$X zMU7}Snvb4Tf~ZkB7vk~ZYeyDbDDH6dqo*5UE_?*27?hqyZ@KsRPj} z9_nFb$ssFM#A2wr$ii{~3w^=}lsxAi`Ha{G^8-jy8SXz#n}a90s)EnDx# z;=Ww85AW&U-!-6b)(0o`Zqqz*m^YV)dyb`wSo~t)c6g*azQ1qyuotUxEqB-)JAPQM zf9vV-VrC4D_{sNx?*ZQfz6X2{_#W^*;CsOLfbRj{1HK1*5BMJV19?EjS1|J1&d<8YkQI>G@m z-beA69QHzb(=WI5mX^)^otE$KGRGJb!qvEk2q}yQD9Npv%MypR#&4J-9XWxFFH-?A2@xN2r;0N}D-}Ws z89ycgOifLJfOAG)}>+qjZCNi@bPJ9pag$>tu}pW zw*LmawEv}-`b)*Y3$^J-n5eZW@q3SEojE|J5N?$}Tvnk!RNE%UIX|;>WG~LAP@X$g zIJh~moeLm}zgL`x+;DZhw)cQE=H37Gb)PeQdk36h+500$@f57AOFY#ob(D{Q2svft zTxIVlr0WZ%m-tDk(87fd#?MK9uKUUNfbRj{1HK1*5BMJVgn9rQLj1Q|Iy&dK9iPxX m``z+A;CsOLfbRj{1HK1*5BMJNJ>Yx5_kiyK-vj^8Jn-KP_6Se_ literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.exe.config b/Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.pdb b/Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..905b29591436ea88db1a9951c25754447e6461d4 GIT binary patch literal 40448 zcmeHQ3vg7|c|I$NSQt=oOmX72hZ3ENpWyn+At~2;E5)&Q;&-$#HAgkV2_g_9h`BEA2@MZjQf4( zardrRNyL%BNcX_6|K4-{^Pk84&;S4Daql)p!ijh?zAfboRs@$U@ijKB@m2dPD+?!- z);9@+Jo#U2#N{3jBZT;jLhj!Y&;z|6xnVT-K#h^%w?}g?jNZ22@KV4dWuORxKtPx- zKKiHtI6uuhH;m*S$REj#bK5p(4?N}%c;0J{2I<+&Jhb6QZ`YlCF!8rfXqQ1; zDthMS+V3BEZpPTt_b-~6?jF^hdL1=>sGk3QyB@gv{7+B)`6JtZfBQeYbm8Ues0&7Q zRfp>N|J~`1HSvG@$@_1Q23m8b4Ief9teAn=x+8#6vs&wd0?Eu=SDs z*HIUY>Z%Ua^G_U_{O;W)|M~RS|GwnH{V#RhJE}YNI%@n-J^$X8ald}%%$A>fUwgEE z)5G6-hfhPs%y$? zmevHymsc%YftZ?bpt3sP-`y@m!^)Q0u7s6L`szaAo!wo@mNo0|uHE1(_ciwT>f-U8 zEx~w))e_th>PlG&Um(!3xz2xgLvu^R9xD-!BrQbwt6Cc49odo|QfNubG$$T7E?cnr%-bAc+#5mQc+es*BJQLK%lkCuMNBqlaZE{gnYAd z(D(Qod$hTQT$L3!^(0ePC+lIZ{lR!N3Tq7Wl@x+yHkva`{>_nOcPLsHN=CxqKcD<_ zCW1#SnF_^H;4m27ZYz;QSp(D6hf-E;tfM*72>}?O+%=J?WtucFT`Uv}M?z87@0R}C zu{IiS4@J?60m`JelIWE7eh@miY9ZON1D3hDt}&F_F>t+_QVE*2tmjrA32l$Xlc`7; z@sl#o6MYxTDIa;li{ocru~f_F-ZAVAA(|DEf2Tt}|H;Vbb}QAoITY>2GoXwfKztf` zNN;Fd8Fgh;DG2|N$Y`nXN!__X2#G0_S_Cm}eZ|z9uopV5Ky0on3$86owPHpSEo-Wj z@=Y0k7j$I+rAs}w4rYGHxC|u_=MqsZY0n}?$+X8F4=m)AB4wU5^WFqJ0r;)+m(qp6 zrMRC7d^7NT9lr>82JUIYkd|Ji<8K3=h5KsY*}!Xc{5oJC?$-m)0lo|P7GRzWoeSIq zjJBl5!(A*C%V0b5&;jcJHS&52YIl=ZrLSk;dZT?^ET$pPjez-LJbK{*c#Q+l&NI;7 z_y9G4O#td4H+=japdB~%|8?j~23wGEjlTEN_EDBZ!!B6Yq;3DtfS$A_eK33O>Rwm( zeq7y4|1Zmbgr7)}H2N31(H2`RrnYXqP5TeWwf}GfGwLuN^8Em=rF^foQtLv=9bCF% zGJS}%kntChk9iE8E9d?C)vh0$a!x}2cpsxbIiIEdj42K|cZzFYU->YNCc>u_l7Ha` zc)yM-BkRpQUACN`fQ&zjJft@?uAIAa9tr!0Wxm&+oEv?Pbq8CYL(ZkB_LcF+wIX-w zb6k6$Ff!g8S3W-OsmqT*z8?bt=?#r5m1&nnXyqHNp{7P*@FXVv6y>T+Rr@>=^&0`PZm5=7J{X9su%mt4U`*|q+;<5FTvoEJ<9@Bx@wwol6nOM`GA$eRt9OI?_0H1ca83Y{1MHow~kdJu`ojab~@ibD$ zlNmEyi`ffMexJwoA2~PVx&{Nr9H;15@yI@pxDfY<6N`Y$ffoZ;0WSew27D_p*NTva z^@bu0+;aG$dGOc|Vhv-ZUeB0@_}N+O5Xzo;q-{g?taTxrYm{}txkmW^a-Bi*&R)w< zW7uQs0GLaAeQJf~u@V@=UVIu@)vrv}!>ncS-2euz(Ujo22CxYb1?&Yp1-O=he!H3f zAJ=u^`jQDylwPbYDgVFE`TrL|Pg;{c(D^>5se|u+p7-`Q?TQAY5i6ELeutml?^*D{ z))t(;y<~?of$15*NK4NJ#=cA%{tLVnk%s@m&U~l_81wP;oxsQ=-<81mpNF>Kp6_IQ z9vD2*UjW9lduTWC9Nd2i7vH3tRzwGjJvF4B!CpT;Qd^lnK(W0){`9E~}^#i!&IMn*O~JliyXzE+r89hTGwTL|DhMY7HLhotLxnJAJ^*qhuOC|tnD>*nF)|_FXl8# zhUvowoYs$LgYj32bydMG4e&l67L+i@BEAQ7z-XZL^ygS9!$h-ahA8s}wIOQF_ ztalUQY}^Gy zE#q6P_9iQ_JA$uYl9oFCVaRzG@-m;Hb!FX^^{XxG#)rYVVO!Rn;%apIyO7g$05x~? z$ay4g1?Quyc!BU&P~SX;^)+DZoruSPu{R>HSCKA-r(TLZf>O+0OZ7Lgm{0ldx!>jK zL4J;*`++&kz6h+&Y}_H&AXq2zP(D#^9$(QszN&frwasHi77t}_a`V`yc|59leADK! zGK+^A$GLg@kLK}~=5b!)Vsv^?^60ysvJmasgUS3pz(K(CfHQ!LfD&~2t$=z!2OoeN zMoka!H@!;7SG?1PfpGxy;17X0M#?q*5OKVJ6mmiw(eW#Ee1pCZ>GU^re51M7>Cb8W zs*dNrGye0PJc)m)^OZyX7{6T8;hdGce^Ap~I{gKm{yiPvsq=rRgk z>(O-oqT}c2_$fM``>J3eA{xJ}@iRJoimu0lI{qHbr$NVmMc@CUPXCR@9;73w-!ND@ zvdcYcn*o@ucC!4K{J}#8wt1j1Sp6L7tm?-PK4euKvbu{m1JyB$_)1D=IekL^{ELJy zeOU>ZW%M7?{Ul99JkKPQ0V)BsJG6(*fHpuB06QV}0}cX?0D1w(0jB_G0dE5?0`P9A zd>_&W%y%Md0QG=PfEGX+@D0G@fCB)YdpHJo5pWXlI^a#f2Y`ahnuh}1Fk*XPmY5{{ zw8@xb;57Wk#wD!{u~ed`byGZo!271=LVnLH{@=UJZ7(JX&VKXz%1wi|&!M*s1g;25C}e;eK^PV+|l zXE|(ML5@RjCLhZ#Ft%x1rVO3~D(ItQRh%vZ4xh0}BoNj{l4C0esd*o=bjss#x&zX*k1s0dmH7lyIh4>|vq~Q-N=i*KhUeDEuzC zx*{)LnR^vmBq)~*oZFC9*DIW{sBqak){Q;3U@xy*UQ-#UtTVKRZ|-tR#2zl{A#{N| z3wZp$CJt1N`I(WL%7!&d>#H$f5C$&eQzBI&$;3jmiOhR14cHc420nG*91;z6x77!N z)fhT53|!`o;ta+w!!ZEMJn?!TTR^M{2J32S zmj=mour^N?$1yWtxPZc0e%t#zVXs1;=cj&sP1FT~RSi{jx`6|?uUOP`kr#ny&dK_UC+0`G#ESab6%BR4depD{$NqOr z2XOtmZ}8xY8jN406AUeHc?}a|@9*F~jawO*RtqqDKk(C40{${>Q&yUtB-6N7oXMA+ z7Q?NatO4txC<$242XFFc_c*0m(=Q-`FQToe^UHBMvSH2$_nktWweO5QOaf6JpeM_L|w5a04b z@IW^y$>wi#jsrb|i6b7188_+j&_e~NnHSg2e{D#0!f$c^H2}kK|G?c9|Fqc^xylz;h9R48;@XVO0bSC9Dvp7)xgLDv1uf+x?N9&=y)p32m^6L+xA{Oezese`K5w6$)!(t`cqw(-g6|oJ!Yn80H;)g7ms65t? z|L*57Fz^2dI)}Be%YI06m`h7IfAVse%X0oYC6zaQHwxh)yiw2K!wr?}{{nNd{1IR( za>g0ON~KL>LS=djfa>pu0P@=mFp3zLZphsO+=C$e24fw|t0KuhM5sdFa_?X(u5-ac z#Pgl$Qu1`uu+d4hRqKKO E2RN{_ssI20 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.xml b/Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.xml new file mode 100644 index 0000000..36a8279 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/bin/Exercise 11.3.xml @@ -0,0 +1,11 @@ + + + + +Exercise11.3 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.exe b/Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..5187838a8a70a00010665ded57675fe3e6d5008f GIT binary patch literal 24576 zcmeHP4Qw38b$+vZw|Ar@T6ffMMaiolODBsulOknFmgF4&B+(%yMn_Y%Ba1rTEvb|4 zZcn>+vX}(Q8OopPz;GKCjt~`*e_+Hhn%Y1B+d*s4apKg8?b-zbB(R~Xuv^$kQP*fu z*oiCmd$YU8JCaVF76A-*=QMBU{mh#;Z{Fsd$123)~K9;rhqGe84sl1*}6$)laA2W2TT+p)xz4t&;&zl(|zFv$kQwN>EOhKfN!rg>x`YfmC-e*5 z0wQtmT4hU_0Q4T>(ov{Hle1EVXg(7YL@j*%s7WWPRTl=nucmIiWSlMm&#VFf&+89L z)uh9!xSdIrQbhMLHG#~1X+y3_38JaEWm{>`WFL;Az;X%Xnv?(~ZW%cfg0fE)Fj;O0 zxh5rux@%Cs=zGBTfbRj{1HK1*5BMJNJ>Yx5_kiyK-vgfj4eu0bs%})-RAH)QNl!ZC_u@oW3+ttR3(&V#3_QC|zEnVH}rS6IyfoC+%m3Ks?&K}qLf%20bGB1##MZWLTQER;m&pOf z;P|y?h|c5sZ(L56tZZSzW{EFh#(f8~ckQi7YQ-IekLcF!y|up=*ImF%%UAjaOgLpgM)~D#$gBF^9T|~7lTUFhrA0p=Hh5t%J7xzunb?hYiLGZiJl5G zjWxYXF9EiSCZW+Tu~jtEdGQkNj8SDPD32?b6pbz`&nr#Tr?#n0^k?c903Vg`7wVL% zkrH?t@LIq|Iuh6xXrxntX2j;BfqMcPT?tG9UJbCeH9^+DGuRCM<={wAqjR8W^zGnO zAWE+Vp9@CmR}#J_VL*EhGEt3dUDUQg&ttOuqAdRwWsR;0G3*Sj32F4%&@F&P3D1V! zR_~+xFn2V1IK(zQC*d1XQiQqnYrK41;N zc*GV`64(M@Dg{yL4%A%$*|5Y;xEO{Ml3$^Fz|;6v49Sc19bh5CBMQ7{!CMWjOQ@X= z2_3K^HUmB&ZUX#?*o#`nm3smIM7aR?jB*k1SIQ;8JJhEE4fTgKq@zL7mW4$#nmAmC z9g|pOS&vu>-g${Nhi?%pfIa47MG*t`f{R@cTYRxaxf^l(ejP8o zhFf>~5TIoeTSDJbmO}EIcpTx*8~#t_Az*K~Sfly~YjLq9>i2+!@j&ym1gS-0PU}I6 zNo+~jQh&@V3GOiuGwrT{Yt#l}5BCH99o+_anNpGxkuWRaItg1P?38eqOXr@o62ndj zcS(3sawjFc3$R_BqqhTJ5X*^uy`0#`8);$i94PG53)C9CfHGThKj2@9UKt^epu9;!CcJT@w)sE5gR7ClCDoc05henju;tb$MNIszK0DMI0lC}B)+r?)jyiLNC zgjoqsN;oOuT@vcFmflBOcheCOr?pC(5~qI`{{Xl`mNzMz)i}K>z6Z+d;t9ZCiz&e0 zihluol~`VtlJk@$kZgv00`v6el%Ni1?vdplEZ^Qh4BSmOilef{w4|pcJqx-iDpLNe zq@1O*sC$+^4|opTTf`;Fy`O#!%Kh{@;Db`bgY+|cLQF~Sv(lbtCH;B8ZzxwJ{dKA5 zElDB4wvk}lRKfaH!EH4N_Jc0zx|B)Cazd7m%JNZJuE_Ew38y4wN|vukND6BvMS4Ja zP`po96xO^_tPvYTtGG*iS==lBTs$PcE3Q+HD_>FWQ7$S8wO8Gz4yZ$FQXNq*(CsMQ zuHH*SxE@i*)N%E=T2LQW{>@+`v~#ML+bR{+(|*9W6`7d%Gw2S&ZVj2& z2=i$t#1~?|^Od&};9_ zC%cM8ER0emET5?Fv|**QwlUh?KH3oiRA$2N?<=N48a%^a?SBvW2n#!){puy@A&xRP5TqU_kn$z@njp0>e zYG~-6LGg6Sgz0m2J>F|L9jNxuSpt&N4OEqNCydf)RU%(4*7ucIs-|tqGd4r!RvTVq zL0QPl%M20b*7`O-TIcH-(zOlN*6KTn;kC)6y+&zY%0AYEm+&+^Su~g+ufwLZ{-hp^ zUC9_7?JwA+R3VKL4O7-ds5fgDO+-U2n@xlouL64N20#fRlpaat%Cea%KW!EYhzdlP z+vH#>TcDY%ZSq25FjYuRz)z!=VGmANp5R_Ae^a^a=bSKg7x(>zaZ?JqxODDJMQpFf zw`{Miti529H<8D;N)J*EEjvsT+WHx54Eblfcv6ZtQv*>;nte1 z8{OK;F|Ek+XmvQJS>90cXCO7@c=BYfCznMy5tpiyim_oURj^ZXjycSH9=+ybFSHz# zn`PW-(?(I=htt*ppXAe4Ln;54jeWD8IRv#BSC+Yh38m0JjuKp7$t|hoPn6-=Yz($JIvH&+eUsYH|gBWJ;WUY zr#hZS?(>cYjl5}1cBd>W%MVAhz|))hI3(a5^xm0c^>f{!K?~m#Z1xkTwY=FJG;*oa zvSd%&=*BUNfi;%RWlNLOT+iM;xHGutAJfde``{Rr?iFbpy z@okfPFogBai6j|h(J2Xc=U*DTtsK_(JE<3?67m?b4Vm3|%o!+^!0V?1t_Dq@ zK1&&tAsxGQ1NFdT8#EU!jkm; zXn;Abpbtn>N>oehLX&CKE=!HwkjNnyKr_${okk?349wBI0bg#h$s3??0}V=9F1O<_ zs0}s5it%dOGi{^FUw(YLF-*tMDW@B^zyT+KSrV^yrSinb$J~Q3aZHZ8V{#JZ3`{ zz2~bBZ+Yj=@%@V_{KV%Dk1X%JaxVPXr$)aR`FZ0_s!jq&k@!fIqVq%A;^;CFozFzFoOt#MFCwXEl?T`=oDRyLX)zJLJNghMYy&JAr`LUEi2f~ zq~aVR5JN%Hnp7>i9C;6q9B<$C8 zMKm=n#Wrwoa@fchajQ2%+npn7oV~J;+dtO>yL{qb%ChV1J z)~ARKhgQ1}poMr506D%*%Pkzu7Zd_PZa}b)6fG@kNGQl*jYM>Dq@UYZ47@3bx~uT! z0A31);4lRoxJwV9LrqO7L7nb{5e>$@6;K>cijtW&b9Ovwri%MYrJ}QD@#xXn`;F$g zHW{v8FcytCWPkw}5bn7Wl#b<*%rY?8;ZcK&dGK4Bu%B;f!GH+CL$1gHJIQF%f{+$X zMU7}Snvb4Tf~ZkB7vk~ZYeyDbDDH6dqo*5UE_?*27?hqyZ@KsRPj} z9_nFb$ssFM#A2wr$ii{~3w^=}lsxAi`Ha{G^8-jy8SXz#n}a90s)EnDx# z;=Ww85AW&U-!-6b)(0o`Zqqz*m^YV)dyb`wSo~t)c6g*azQ1qyuotUxEqB-)JAPQM zf9vV-VrC4D_{sNx?*ZQfz6X2{_#W^*;CsOLfbRj{1HK1*5BMJV19?EjS1|J1&d<8YkQI>G@m z-beA69QHzb(=WI5mX^)^otE$KGRGJb!qvEk2q}yQD9Npv%MypR#&4J-9XWxFFH-?A2@xN2r;0N}D-}Ws z89ycgOifLJfOAG)}>+qjZCNi@bPJ9pag$>tu}pW zw*LmawEv}-`b)*Y3$^J-n5eZW@q3SEojE|J5N?$}Tvnk!RNE%UIX|;>WG~LAP@X$g zIJh~moeLm}zgL`x+;DZhw)cQE=H37Gb)PeQdk36h+500$@f57AOFY#ob(D{Q2svft zTxIVlr0WZ%m-tDk(87fd#?MK9uKUUNfbRj{1HK1*5BMJVgn9rQLj1Q|Iy&dK9iPxX m``z+A;CsOLfbRj{1HK1*5BMJNJ>Yx5_kiyK-vj^8Jn-KP_6Se_ literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.pdb b/Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..905b29591436ea88db1a9951c25754447e6461d4 GIT binary patch literal 40448 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 E2RN{_ssI20 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.vbproj.GenerateResource.Cache b/Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..96f06315e459245ef34b33a7f62ae3c9a5174569 GIT binary patch literal 786 zcma)3%}T>S5Ke8=f1w`4gC2@_5G(R#3w~s5lFO{76V6gi>9WLGb{YS1i`7=; z4@KFPeu5E-oQY3W7) literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.xml b/Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.xml new file mode 100644 index 0000000..36a8279 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise 11.3.xml @@ -0,0 +1,11 @@ + + + + +Exercise11.3 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise_11_3.MyResources.resources b/Code/Chapter 11/VB.NET/Exercise 11.3/obj/Debug/Exercise_11_3.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYzHt|@jvhh~CHV~eG zci?Hba6^J8;01UGn9o!+hX_^K!+16G&3rT8jvd!=oZo!##i^ZR^JY(ujkY>YgU6Xv zQ7{m8VjJ}XGFIxOeJ2Qm=2jR6VWZy3RGJxTCzPc|s7C!|Hd1o@oMr<(p`<+uoAGAc ziZ?c*%}_Lj2d3K#34+&TpHkALV@e`Q#**xL2A2)lqn=b`D~4h+93gvYBrNU9WI_=_ zU1?~XYBMVo-0O>r&zHrJXM_P-&f6&Pt>WQ&hEz;hi{>Y}(x2Isra?z5#l5nQHh3oN z+f`dN!pb%?n-NLha=WiBzD353L|dc@4&gxd^k)#)I$1sXBB2V(@R9XIOtMOey9| z!rIl8u<4$TWGpEv(g$f%%j>x6=1T_govS~8+-!dR + + Debug + AnyCPU + 8.0.50215 + 2.0 + {4AE353D3-3B96-456F-988C-98BBA0E95790} + Exe + Exercise_11_4.Module1 + Exercise_11_4 + Exercise 11.4 + Windows + + + true + full + true + true + true + bin\ + Exercise 11.4.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 11.4.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.Designer.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/Exercise 11.4.vbproj.user b/Code/Chapter 11/VB.NET/Exercise 11.4/Exercise 11.4.vbproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/Exercise 11.4.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/Module1.vb b/Code/Chapter 11/VB.NET/Exercise 11.4/Module1.vb new file mode 100644 index 0000000..e5e366a --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/Module1.vb @@ -0,0 +1,40 @@ +Imports System.Data +Imports System.Data.SqlClient +Imports System.Transactions + +Module Module1 + + Private connectionString1 As String = "Server=(local);Database=Credits;Integrated Security=SSPI" + Private connectionString2 As String = "Server=(local);Database=Debits;Integrated Security=SSPI" + + Sub Main() + Try + Using myTransaction As TransactionScope = New TransactionScope() + Using connection1 As SqlConnection = New SqlConnection(connectionString1) + connection1.Open() + Dim myCommand As SqlCommand = connection1.CreateCommand() + myCommand.CommandText = _ + "Insert into Credits (CreditAmount) Values (100)" + myCommand.ExecuteNonQuery() + End Using + + Console.WriteLine( _ + "The first connection transaction has done it's work," & _ + " moving on to the second.") + Console.ReadLine() + + Using connection2 As SqlConnection = New SqlConnection(connectionString2) + connection2.Open() + Dim myCommand As SqlCommand = connection2.CreateCommand() + myCommand.CommandText = _ + "Insert into Debits(DebitAmount) Values (100)" + myCommand.ExecuteNonQuery() + End Using + + End Using + Catch ex As System.Exception + Console.WriteLine(ex.ToString()) + End Try + End Sub + +End Module diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/AssemblyInfo.vb b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..9473e40 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyApplication.Designer.vb b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyApplication.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyApplication.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyApplication.myapp b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyApplication.myapp new file mode 100644 index 0000000..ab664c1 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyResources.resx b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyResources.vb b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MySettings.settings b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MySettings.vb b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/app.config b/Code/Chapter 11/VB.NET/Exercise 11.4/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/bin/Exercise 11.4.exe b/Code/Chapter 11/VB.NET/Exercise 11.4/bin/Exercise 11.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..ed7734a46565b531265a33b66e2bbfde186b7345 GIT binary patch literal 24576 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/bin/Exercise 11.4.pdb b/Code/Chapter 11/VB.NET/Exercise 11.4/bin/Exercise 11.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..f816ae73299d46f94e40a8f45b4871df73cdfba9 GIT binary patch literal 40448 zcmeHQ3viUzb-pW!3?_iq&d?EvsE+cSVsy zo5dk1cHN0xdnP#J%$NyHahrDN)a}rW>8P=j@nq~Vp-jhZ9k-;|<78r+*knp3Jo

    +&`&_aOOhZE;0_KPt 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 b0Q3W!fQ`Ur;3nX$gqB;GxRdrRuYvyuI_W+G literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/bin/Exercise 11.4.xml b/Code/Chapter 11/VB.NET/Exercise 11.4/bin/Exercise 11.4.xml new file mode 100644 index 0000000..d05070a --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/bin/Exercise 11.4.xml @@ -0,0 +1,11 @@ + + + + +Exercise11.4 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise 11.4.exe b/Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise 11.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..ed7734a46565b531265a33b66e2bbfde186b7345 GIT binary patch literal 24576 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

    +&`&_aOOhZE;0_KPt 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 b0Q3W!fQ`Ur;3nX$gqB;GxRdrRuYvyuI_W+G literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise 11.4.vbproj.GenerateResource.Cache b/Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise 11.4.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..4eab493ae4ca67ebe3f41263acc5abc8cc160d2f GIT binary patch literal 786 zcma)3O-sW-5KV1U`z6$ac+f);4}vAMYSBv-tW=8@{6aiL5;6V)|CxWp zqxcterl?2_;sjoj+1WR5<~bS1ao#ET%~6>mxa=$68Z<%V?Z!$=?_A&z>$MB8s7%;i z^BVlrYn@m}v4wUBab$(A*N)?XR{kL*=Vl0Dd(c=9TES+}Y|2(ctP7XhtfaDgr-1tq z?!g^|5<*`AvXr6)yzD9sI6n{wM=BhG;y^}e{4Q#AK}@xPvI?eM&%Qkk&m zGUN%W{KW@(*1XV9Y9#5FX20quWSNPr59pCg4^=Mb%3^`QWoV{5^V{lGN{wyi&6V}H z%Q*k-V#2Pk1_YrP!NNpd3yk_ksz8C9n>d39g%RdS+DvBbQISRRIM*+48{3uVr_3y; GILaRo?CD7W literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise 11.4.xml b/Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise 11.4.xml new file mode 100644 index 0000000..d05070a --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise 11.4.xml @@ -0,0 +1,11 @@ + + + + +Exercise11.4 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise_11_4.MyResources.resources b/Code/Chapter 11/VB.NET/Exercise 11.4/obj/Debug/Exercise_11_4.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {3B44DA5E-A256-4D50-B957-DA1AF719F6DA} + Exe + Exercise_11_4.Module1 + Exercise_11_4 + Exercise 11.4 + Console + + + true + full + true + true + bin\Debug\ + Exercise_11.5.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise_11.5.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/Exercise 11.5.vbproj.user b/Code/Chapter 11/VB.NET/Exercise 11.5/Exercise 11.5.vbproj.user new file mode 100644 index 0000000..33b0772 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.5/Exercise 11.5.vbproj.user @@ -0,0 +1,6 @@ + + + 8.0.50215 + ShowAllFiles + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/Module1.vb b/Code/Chapter 11/VB.NET/Exercise 11.5/Module1.vb new file mode 100644 index 0000000..329ca09 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.5/Module1.vb @@ -0,0 +1,49 @@ +Imports System.Data +Imports System.Data.SqlClient +Imports System.Threading +Imports System.Transactions + +Module Module1 + Private connectionString1 As String = "Server=(local);Database=Credits;Integrated Security=SSPI" + Private connectionString2 As String = "Server=(local);Database=Debits;Integrated Security=SSPI" + + Private isThreadRunning As Boolean = False + + Sub Main() + Try + Using myTransaction As TransactionScope = New TransactionScope() + Dim myThread As Thread + myThread = _ + New System.Threading.Thread( _ + New ParameterizedThreadStart(AddressOf ThreadEntryPoint)) + Dim tran As Transaction = Transaction.Current.Clone() + myThread.Start(tran) + + Using connection1 As SqlConnection = _ + New SqlConnection(connectionString1) + connection1.Open() + ' Do something here - this connection will autoenlist + End Using + ' Wait for the other thread to finish + While (isThreadRunning) + Console.Write("\rWaiting for thread to finish ..") + End While + myTransaction.Complete() + End Using + Catch ex As System.Exception + Console.WriteLine(ex.ToString()) + End Try + End Sub + + Private Sub ThreadEntryPoint(ByVal transactionInstance As Object) + isThreadRunning = True + Dim tran As Transaction = CType(transactionInstance, Transaction) + Using connection2 As SqlConnection = New SqlConnection(connectionString2) + connection2.Open() + connection2.EnlistTransaction(tran) + ' Do something here - this connection is manually enlisted. + tran.Rollback() ' ok to do + End Using + isThreadRunning = False + End Sub +End Module diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Application.Designer.vb b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Application.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Application.myapp b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/AssemblyInfo.vb b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8b4d6f6 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Resources.Designer.vb b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Resources.Designer.vb new file mode 100644 index 0000000..e6d9cd0 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_11_4.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Resources.resx b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Settings.Designer.vb b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Settings.Designer.vb new file mode 100644 index 0000000..a5fb0da --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_11_4.Settings + Get + Return Global.Exercise_11_4.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Settings.settings b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.5/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise 11.4.exe b/Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise 11.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..e264a145b0a7d898db7abfeed9065baa164a2cc7 GIT binary patch literal 24576 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 Gf&T)rf~ofa literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise 11.4.pdb b/Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise 11.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6068e1fd7fe38da8bb1a00c27c82c164b15ba5ca GIT binary patch literal 46592 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise 11.4.vshost.exe b/Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise 11.4.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise_11.5.xml b/Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise_11.5.xml new file mode 100644 index 0000000..a0cb990 --- /dev/null +++ b/Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise_11.5.xml @@ -0,0 +1,24 @@ + + + + +Exercise11.4 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise_11_5.vshost.exe b/Code/Chapter 11/VB.NET/Exercise 11.5/bin/Debug/Exercise_11_5.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 Gf&T)rf~ofa literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/Exercise 11.4.pdb b/Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/Exercise 11.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6068e1fd7fe38da8bb1a00c27c82c164b15ba5ca GIT binary patch literal 46592 zcmeHQdvILUc|R-3@>9n03)>j7#xnSUR$4tQ$-JzWA7B{;3EPuykXEZJd+};l?5tU*vefH0SKKTvI!-qhCTPn_; zErVa0;hX0sa}AVE=E8YpbFG1g13}+My|H$7?Ou2&QIZMH-h8-c=dC*)IdH#;Oq}le znIO-fBsEY-|I-#a^*`TP+95w+yDAX z<)ItJiCdm1`OfUezxk!gp}(y>zE+6SGqxV@|89KaOM`cBd-{X6lix^w?@`@l5NGCn z|Hant9y`8#`aj&Y=JL$wl&;i^sPGfj{(pY-`6pLC`>RNE%Z<1H{huDV`68-(eJMKQR>iX&_U8xsQ;U}v7-=1?_#cR>g1@HWw|B0n1 zR=s)=Re_gP)WEl}&O>K>_2&JZ>@{%a)R|M9+nL4zf3RsV*f7)>sSelIH&r*ZG&NT@ z*EI*L8|xcd5Yik8);0wL`v!#Q+z@IVNm{9tzbzcuJ35jIZQ8oMb(_E1-!V#>m5fAF7J>qep{~T>Xv~r_}gM`n*D%SOQ{#j zwMfr){TR(Wsk{)4&B7CY>c95?r7@@r}q@kS5G=g z@2^CZW9wVFSg&OxL`4TTOL_9|Qpm>Fjcn|;(tRD)PvOh%RozqA|I2qArb_eKPa{CtG4DuA*PK4~vVM|-k_4{)$C znT6s8LE7s8N>+TftU-)KEr9N7&@yff{F(3(4u6iQ5G%z@Y+(8rVKV@<^>kdH^aGj! z-2kc7;CoKhfYbgT)pce!CP+}1<+MN2{&(I93zxF({}IrW*5KW2wj2I@Y|4fI(liAI+$cIZ+qZn7Ve(-)b}7^?5Bo&&#ug1P&%;A(*DRTL; z`pjG~!BVW&r|s;AbL@f*ziI|jyd zwnD&j1!Vlk@TH7*L{lS)RIZQ%NBevjGQLX>tPQ=J9J}E?Irrpzs>(U#7osJW+u|tY zH{G{et(H3F*Q_nS1!GRfIeX(^e#=kdMapkLE-g!W?T4(s33}2Ryqi3_;XQfvSoAs<`7Bap-6QR48gP(Df#hq|Q< zKJzh6^0*c}uC{sXN4V>f3OE5c3Gm#-RRd+nuIXbR;0s)n^5oxzu+i(BdtA(3+pcgtyxU5Wh<$8E z-H$(vYv>ExT*Dw0u%8gejkaqnOI?_@@ZK-Cet{dl*jjQioVU*Gtuud~>&*PF^VgZ3 z0%!X0tL;9#5Jtj`Xp;t_FV@&J=Z@1U`yHT3L-zgfo3*asd^^p-T01Uitl<#^*<*X> zn)U-UOmMW*#w~*G8F1>Jc5JR2P1#|WoGA4HCW(VviGd5*&||IhP38SDwhC|hKB=>Q-TfDg#5htGY&6&UGO ziXeusC78kZGmOEnmSgbzF|_JK6yA4?F|ka)1wQ8`H`shRmyjKYE4|~BItXMra~jub z9vJgyxP|X}n+NAs7TSB4d7g-l^9%2y6EzR-s{tK=5MV!Gq8z$V_W7R&IB5XK@)?Ju z9g28zZ>YeGu9r9TJbb+pXO|@n@u?%`{j*+dEh2kmE^nZmUrLp6glDAUD|W zt@~Dm*Ryz5@(oPTJOtV`S_aK}nct2p#PFEIT!EJIIS=t(2PE;%eG>SOc@ec1wjwvK zG-*J~v!Cp8UFpE5A&|t8=Qi+r4S+c=vBSZW=6avQ-ZGGGP>QSztT%vu{hpZ!x-_`<;^2oImJj*qdAp8Kr>)^BQx4=g|XSTyf zJ!i^9C-QVTanyO2+a{M=dk&A0sZl5qW1DJh{H{0UCP- z8rlzN0Bi%q0G|77YJm3N*!b6Vy+hyF4&O`pKjKY_Dd&H2$lV;HBN1&pdAx?WjAv-w z#@KH7^BIE|>oXL?73w2SWWKz)0dH=g*u8V?&*tyZqfD7OVAv?zK0C#Zwx99{+okd6 z+J4iAH**YoXb9lUdJ>;uOUp~ZNXoWjZTAhx@*wC*Yw&Jz;fD9***kyZoxc&HA2OwE zq)*yQyvhw0y?lVX4QDebj~M4?*jHoUYrcMGzjr6X(bp8a;8$YL$Rcqq`%H+E-NI|gw4VQcSwH*=^yex8&b=s7HvkV^Ar3+>@XojA051bPck$N% z`)B;0&l}R%WL;uSjhdD$Jy)Jb} zxS2mW%?V04r_4@+%(f!TmRZMd$dHzD+X0#V7;zcT(7MT`8{U&!Pj08W++vNumRqOT z8M!rga~|R3IGj^%vFW|M8)3HG-j=fM>?e@b!-zwAL*pioZg@{#J$ap~@@m#O7dqrs zi`zLiHUwi#=af~L&+_cf1G(yv6Nw@V%$ zqkNpdmAVi9YQS5p3{>zEKm%YKAO<)Hcnok1a1uaw7H-+hnh#lF$FLUvB!Ikv_(Q)D zyy*KtPk&g459{!)`u*qneTDXqYyUyb??;-hOY^}UM2fHWXKMOiX!^%B-IF?eOoxAw zc>&y`^)AG~H62&OOH0_%%A-4|VvL&AZ0Gt$o%rP~$o`Jfd@NO4fndMkh=1=La*6bMPlC z+ilcOtjqsT{>I~PCv-j!Du+4Q$$2@KmydXsVO;0W!{omMJ%0Ro!k;-O2SsWd!km|! zdF6IXp8u@^P_I$vZ2|NG`T;Qj^ozWs>nQwVfD?ch0Ivbw1bhJa1b{ot#6o}{a1DTa zuDBno8xR8Q0i*$s0FD5j0z3zJ9>6=j-T?3%@@YUBipTTF%KE;I@@w`~9afH{duZ0WZ@~>r@-Vc2^U2u}x z{32L3j>73UP~6TmN`?8=n=C!kE)|NtwmF*y_cWIZ?2K^y*p11T!s$4UH2N`Eka6^n zZ5VnLuIao=bd$pAIE~pjyqBq5 zQ(ekXJsyO7oC z?{P$;T>k!7+)ikJXq}x+t*y=V_!^Znd<&z08#a4rye*%uwOlKnx^xv8n6ZhbvumacgE3xuD8Q8?Z`#q|4M8Mj^& zgQGDkC>m=!J33oBpcCne^PeXUYW_>Wocs^HS)@)2UFEsHrLL`WeH&DRbj8z~EBZ0g zq00c6UgivL?ba^04Q+eU*w|j*)=}3ksfzQTFP_Q!-cJ-OPl2oTT3ebsYTG*7m{|3* zfe%gQIER|=e7N0%;cGO)(DIefYyvY!nvZKOg6l4V<9y|KJmbL0fgyZ+F1BOZUk6|~ zC0#!5euNsH`M5`c8!z4w;JzR^o}1o}5k6jCP6B7@Ge14<&t0W?>ZX)$ECct{nt1s* zeziPLMMqn19OLoq+tWHAAIGy?w~T}1op{D{O*0JPlPB-1sSelI zH&r*ZG&NT@*EI*L8|xcd5Yik8);0x6IPv+(DmiC{CMq4Jq?vOe&YU`PitSENfA|2$ z#!{}r@vLy(-$_#g4+nz2k9uS6Z2uP?N|a=Rvo{~^*?H@ZM-JS77v#5QTQt6RYkVjn zYU1Hxtf$wcl98G{xQxe24#X0Xy((ZR8naS0pITxh6BWnW5DF_{9?-%(gnLqB5a!`A zKYk5tZzw`xj%0;--#{R4r9;+!b+fG!=Hcu|eF2z{`A3oo_Mwp1kytbmPDc~*z@S4} zT-ZcYDQkEjHWo!YP;4(~Vo09wB*0kl*<0Fd8m&>0JcSI^0@9M_rt8#Rlmby1@`4PQpJ za&2fA!V1A^gnx{x?p`j$GdO(y0XjomZ+-+#b{%+pvH)vLc;5)V@4{za={5jchAqVY z3BOS0vd9kv`>jV;X9=UI0S^^gQkKna|Cl4Do=s*YMS;}DJK z+u0XG_Hd$!a|WuP=!d@oz%OGZpbD@Ga24Qc0L!%ouokcma1Edu5CGHwY5_q2`_=UT z4xuoGfjcx+KaF+R0@wh!7H}QldcX|;e#9FAt$;Q_JD>y53D^YK4A=tL3b+Z-1=t3- g8L%B-`iOX(Ft>BUIC+e`8t`hss{yYDE~XmzU-4b^vH$=8 literal 0 HcmV?d00001 diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/Exercise 11.5.vbproj.GenerateResource.Cache b/Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/Exercise 11.5.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..e3ffa09ffd0be384b684675c982178d8b9b3190f GIT binary patch literal 784 zcma)3%}T>S5Ke7V`=d|~BBF;P9t2BhEuxnqSW$~Ds4e2b%Qic~wcD)hBw~C5-^YjW z8GHv1zJbmZ6{$g-z?Wop_M30!b25(Oyi@R-V{V4vvZs7&&;*gUA1f`rfxr>gsuy5U znXt9x)%mGa+p&&f3#}01$O>Jnp2kD1{1Zq9W&~ktSZ@Z~!A{U<$nCml3YXh#q_TVG zfJYD>z%7IlLSF&0l%fT^JX9KRX($l7Djb32{{v;gkBm)nnYDDnX{rfbmN-i;<3Db( z+Bx|{QFgVTU<6~YZM3HLv<&o)1ztyDsA19|M|W}zf0oWtL8)tmJQO^{?B`|+Z8N?V z7How{+eX5vHFrvaEpVc*9w0}{#r%cPF`(mQvySVQ3u(PNUtH@cnmfPvU(a^;c-~T} zOjvXo@&pzB;)6VEUhXATl5|6}Uy)%ZwmzUo9^F^CnCprK0+*qY?#pkZHz_qSnfF%K z-yY-Aw}%OPz8MgNVhk%&c`Y#N8L0vVa&hVm?iEIuCu#GUi9 + + + +Exercise11.4 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/Exercise_11_4.Resources.resources b/Code/Chapter 11/VB.NET/Exercise 11.5/obj/Debug/Exercise_11_4.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-2/Exercise 12-2.csproj b/Code/Chapter 12/C#/Exercise 12-2/Exercise 12-2.csproj new file mode 100644 index 0000000..c9e4dfd --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-2/Exercise 12-2.csproj @@ -0,0 +1,40 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {49BF554D-04C5-432A-B7E2-4D35752BAD9C} + Exe + Properties + Exercise_12_2 + Exercise 12-2 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-2/Exercise 12-2.csproj.user b/Code/Chapter 12/C#/Exercise 12-2/Exercise 12-2.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-2/Exercise 12-2.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-2/Program.cs b/Code/Chapter 12/C#/Exercise 12-2/Program.cs new file mode 100644 index 0000000..9047afe --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-2/Program.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; + +namespace Exercise_12_2 +{ + class Program + { + private static string strConnection = "Server=(local);Database=Test;Integrated Security=SSPI"; + static void Main(string[] args) + { + string strXMLDoc = + "" + @"" + + @"" + ""; + + SqlConnection sqlConnection = new SqlConnection(strConnection); + SqlCommand openXMLCommand = new SqlCommand("RegionInsert", sqlConnection); + openXMLCommand.CommandType = CommandType.StoredProcedure; + + SqlParameter xmlDocParm = + openXMLCommand.Parameters.Add("@xmlDoc", SqlDbType.NVarChar, 4000); + xmlDocParm.Value = strXMLDoc; + + sqlConnection.Open(); + openXMLCommand.ExecuteNonQuery(); + + xmlDocParm.Value = strXMLDoc.Replace("Town", "state"); + openXMLCommand.CommandText = "RegionUpdate"; + openXMLCommand.ExecuteNonQuery(); + + openXMLCommand.CommandText = "RegionDelete"; + openXMLCommand.ExecuteNonQuery(); + + sqlConnection.Close(); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-2/Properties/AssemblyInfo.cs b/Code/Chapter 12/C#/Exercise 12-2/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..fb197f7 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-2/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise 12-2")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise 12-2")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7137c25e-328f-4f72-beb0-bbb3662a6174")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 12/C#/Exercise 12-2/bin/Debug/Exercise 12-2.exe b/Code/Chapter 12/C#/Exercise 12-2/bin/Debug/Exercise 12-2.exe new file mode 100644 index 0000000000000000000000000000000000000000..174b4be082053ae990873084406f27b03a98df41 GIT binary patch literal 16384 zcmeHNO>7&-6@E+767|Pea{cextH^b1x1uS^ww(Bva%Zl z*isPK$HdW6Qiwh-h2z4JW2I#r?3cjNQc^@yEmbXQ1~dbj0nLDBKr^5j&Gy|Fe z&A|T=1Katz8ik)tL$rOoow%RcLi>{aXQk|CAY&=97=LPz223V)#R_r@=cv-B}K@1mWdPmL}*1?;6)Lo(D$-Ξ z=q<><2(1ABqBIm{>p++_`@?J<19nk1d{#vn#2PTX9dA<(gHx^z(kx~&Z?e-px<&)6 z9p>6M_vB~?=K870wR?M3!^?GMtk59kXgBRuIIQp(@Bob|`Duld3TG8Qr|@}&mO@+M zZQwAy0(^>I1MWZ!-1D2jFVS1{o6tDqe}AJgve1$v*J3SXq((S`61SkvK4^k=#r zo`;+d?}lDN-=q48Qyj`h3^9HH+3#}%H1cbwAnQ{Y#XCadu43JXeqi+&5MM;`&d zL4TzsimV6M0yRq(mqBnP1S*4)N@&-uG^*z=yTzI#F3|Leg5lx|wTf?-MSQm63+Yy~Lf)|p!lR2dySULy z+AS~Ho}G8ZhOW_by5{&bxrJd-T18Q|x3Ho;4c5J_8nr#;nSrRwGMwpgwwaW4AZ71#6qT&-v z8<&r&mCIJ8*yfG_%ec5Qc^24MKQFFT1$n~1(OO3z^A_GY3tT5@*J)gQCAc;9h^)nn zE1A6NY_eFyFik(z`I6<-gc`hgna@>4g?}CeT)9`=%5ya#*C@FA(}JivR-rvEe!rV` zTu9R8uVbw1(Bl;%^?_D0km@=c5B}lxBYP$xC;PBd@-=4!;Gq35G!c<6=LpcQ5N z0W^$mGefahtfxBy$DzwZFCYgn`VHzHLpp*#qGJXfo){aSC?rpb(edP&mC=(c6UouM z$R|eg`TY3l(@E>}*u+UBEd~d?+n}Lzb_|v6NytqLk11B|AHxsaa0=!oU#xd zI3yBUkz8!I;qcrm04K;2o5(BASP3?a|#ETB+ ze)vN61u|1g(x4g83}^=aw-_+gXJb58ueZ-DcxJ=Svq{f>{O;guDWVVg#$GQUhOqnK znI%g%fYV5Cve-Q5=nCqyz!}I~ejfSc-@#K&Vd z8o=B53O0Q%hbaPFR2w>{ACB7CgG5O=(A$v&Vl@zxueSIKw*SpN^(&tQKBEVJCy_w# zC-n@)(6-^fbwbADOe5Xl)Te+LISDe6&LwG7J)kGRJMl@YI)R9z5m{ z{2R%N#B4daxdJSs?W4wu!_IN=I&mMDAeU6@H2A6_x#3i@L^r_&;hD5kXVQH{ZX#-C z0a*ij;C|-n?d*Ci4L&%s$B*fp;&L8+xk&VC;L2~A)uZNx|D8}AwzutMvXjR%s?8+U zgIA=C6?MRXiK~fMYGVaD+hN+eXa+O`ngPv#W6iT;qnzP@X zbMLu7=iYnH+&hgWWnIf?y;&*ZkJQvivGyjZ))xrOnN<;O7oY+mJb)$O?R*9;vcUb# z0}B)vEgBkjY1&#KaPiM+J9c;A!^5TD2R-ZQ$L87$C=TYaM_TaJG*zmtCcS8uQN@({DsK%l}V5OHR!ZFZnItIf$;eeYpFrQ)iBOaNNHp zVtM)s#)l$XvmUq-%(@r8e4?WRY37H)%u~P){fNZqvIb;fF!OTD;?boEw!qNf&>-i= zV7-wI@%nyU$zQB6j=3i<5UW%*FoRMqN^UB>obm+H{^6&004 zv~)V5_E_yO4&~OfEuBImZ3#V1|5qeJqOkD0y1$Me+I+hC+v<{nZ$A5?3o0TeqR7KL z5|n8(-hr?^t{3V#w*QqK1@Yd*A+%XU`C?fEBy;o7;Jz^w1)&<3vL1TfNzKjZ%F%=DDzBT zQQ|)@p|$xi7%jtffcY}E6O=m&iPx`*ZJ2C?^%*Z;q+#xy-LImXRD^N94T-YpcWW4PJvz>@_C( zSxeZI2$7&-6@E+767|Pea{cextH^b1x1uS^ww(Bva%Zl z*isPK$HdW6Qiwh-h2z4JW2I#r?3cjNQc^@yEmbXQ1~dbj0nLDBKr^5j&Gy|Fe z&A|T=1Katz8ik)tL$rOoow%RcLi>{aXQk|CAY&=97=LPz223V)#R_r@=cv-B}K@1mWdPmL}*1?;6)Lo(D$-Ξ z=q<><2(1ABqBIm{>p++_`@?J<19nk1d{#vn#2PTX9dA<(gHx^z(kx~&Z?e-px<&)6 z9p>6M_vB~?=K870wR?M3!^?GMtk59kXgBRuIIQp(@Bob|`Duld3TG8Qr|@}&mO@+M zZQwAy0(^>I1MWZ!-1D2jFVS1{o6tDqe}AJgve1$v*J3SXq((S`61SkvK4^k=#r zo`;+d?}lDN-=q48Qyj`h3^9HH+3#}%H1cbwAnQ{Y#XCadu43JXeqi+&5MM;`&d zL4TzsimV6M0yRq(mqBnP1S*4)N@&-uG^*z=yTzI#F3|Leg5lx|wTf?-MSQm63+Yy~Lf)|p!lR2dySULy z+AS~Ho}G8ZhOW_by5{&bxrJd-T18Q|x3Ho;4c5J_8nr#;nSrRwGMwpgwwaW4AZ71#6qT&-v z8<&r&mCIJ8*yfG_%ec5Qc^24MKQFFT1$n~1(OO3z^A_GY3tT5@*J)gQCAc;9h^)nn zE1A6NY_eFyFik(z`I6<-gc`hgna@>4g?}CeT)9`=%5ya#*C@FA(}JivR-rvEe!rV` zTu9R8uVbw1(Bl;%^?_D0km@=c5B}lxBYP$xC;PBd@-=4!;Gq35G!c<6=LpcQ5N z0W^$mGefahtfxBy$DzwZFCYgn`VHzHLpp*#qGJXfo){aSC?rpb(edP&mC=(c6UouM z$R|eg`TY3l(@E>}*u+UBEd~d?+n}Lzb_|v6NytqLk11B|AHxsaa0=!oU#xd zI3yBUkz8!I;qcrm04K;2o5(BASP3?a|#ETB+ ze)vN61u|1g(x4g83}^=aw-_+gXJb58ueZ-DcxJ=Svq{f>{O;guDWVVg#$GQUhOqnK znI%g%fYV5Cve-Q5=nCqyz!}I~ejfSc-@#K&Vd z8o=B53O0Q%hbaPFR2w>{ACB7CgG5O=(A$v&Vl@zxueSIKw*SpN^(&tQKBEVJCy_w# zC-n@)(6-^fbwbADOe5Xl)Te+LISDe6&LwG7J)kGRJMl@YI)R9z5m{ z{2R%N#B4daxdJSs?W4wu!_IN=I&mMDAeU6@H2A6_x#3i@L^r_&;hD5kXVQH{ZX#-C z0a*ij;C|-n?d*Ci4L&%s$B*fp;&L8+xk&VC;L2~A)uZNx|D8}AwzutMvXjR%s?8+U zgIA=C6?MRXiK~fMYGVaD+hN+eXa+O`ngPv#W6iT;qnzP@X zbMLu7=iYnH+&hgWWnIf?y;&*ZkJQvivGyjZ))xrOnN<;O7oY+mJb)$O?R*9;vcUb# z0}B)vEgBkjY1&#KaPiM+J9c;A!^5TD2R-ZQ$L87$C=TYaM_TaJG*zmtCcS8uQN@({DsK%l}V5OHR!ZFZnItIf$;eeYpFrQ)iBOaNNHp zVtM)s#)l$XvmUq-%(@r8e4?WRY37H)%u~P){fNZqvIb;fF!OTD;?boEw!qNf&>-i= zV7-wI@%nyU$zQB6j=3i<5UW%*FoRMqN^UB>obm+H{^6&004 zv~)V5_E_yO4&~OfEuBImZ3#V1|5qeJqOkD0y1$Me+I+hC+v<{nZ$A5?3o0TeqR7KL z5|n8(-hr?^t{3V#w*QqK1@Yd*A+%XU`C?fEBy;o7;Jz^w1)&<3vL1TfNzKjZ%F%=DDzBT zQQ|)@p|$xi7%jtffcY}E6O=m&iPx`*ZJ2C?^%*Z;q+#xy-LImXRD^N94T-YpcWW4PJvz>@_C( zSxeZI2$ + + Debug + AnyCPU + 8.0.50215 + 2.0 + {6D7AA275-00C3-4F25-A44D-4FA98E813DAF} + Exe + Properties + Exercise_12_3 + Exercise 12-3 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-3/Exercise 12-3.csproj.user b/Code/Chapter 12/C#/Exercise 12-3/Exercise 12-3.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-3/Exercise 12-3.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-3/Program.cs b/Code/Chapter 12/C#/Exercise 12-3/Program.cs new file mode 100644 index 0000000..f03d5ea --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-3/Program.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Xml; + +namespace Exercise_12_3 +{ + class Program + { + private static string connectionString = "Server=(local);Database=AdventureWorks;Integrated Security=SSPI"; + static void Main(string[] args) + { + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = + new SqlCommand("Select Top 1 Resume from HumanResources.JobCandidate", testConnection); + testConnection.Open(); + + // Method 1 + XmlReader xrdr = testCommand.ExecuteXmlReader(); + xrdr.Read(); + Console.WriteLine(xrdr.ReadOuterXml()); + + SqlDataReader rdr = testCommand.ExecuteReader(); + + while (rdr.Read()) + { + // Method 2 + Console.WriteLine(rdr.GetString(0)); + + // Method 3 + XmlReader xr = rdr.GetSqlXml(0).CreateReader(); + xr.Read(); + Console.WriteLine(xr.ReadOuterXml()); + + // Method 4 + Object o = rdr.GetProviderSpecificValue(0); + // Strangely enough this prints SqlString + Console.WriteLine(o.GetType().ToString()); + Console.WriteLine(o.ToString()); + } + } + } + } +} diff --git a/Code/Chapter 12/C#/Exercise 12-3/Properties/AssemblyInfo.cs b/Code/Chapter 12/C#/Exercise 12-3/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..34c83a0 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-3/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise 12-3")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise 12-3")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a3420cc3-7a7a-4304-b4ad-0c7bb058195d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 12/C#/Exercise 12-3/bin/Debug/Exercise 12-3.exe b/Code/Chapter 12/C#/Exercise 12-3/bin/Debug/Exercise 12-3.exe new file mode 100644 index 0000000000000000000000000000000000000000..a60e52708e60d8a88fee3e82255e482729428c0b GIT binary patch literal 16384 zcmeHNZEPGz8Gd)~a{fqsiqC02NSdy3fF!Mt^G6hyIAHtE2@Y{=e6~|kSI*wv__Foh z?qzo`u|cFkLY1l_L<weHzVc3@O|ujHF$!!ljh3yp#>{Hkl%u92I{8)dI3(j6V`hiY9AUQk1ja=l(NOP?D@iOw@O zLUfpc*jO$S?SRgJ-+_&`d&ve7X0TRTA%AjBB1(s1C4{_dI|ytt##-EvWHE>?rv1RT zAj#N9z_5>jtD%e_`m`?`4~`rwUBtzH8C(rzglMcmRIEZkA)pXY2q**;0tx|zfI>ha zpb$_9ypIt08_u;{_-v}vHX7+Bx{ZUY1{qg^ZU0Z%pNY}W(Ex2b=^AJ}z)7^doqX_> zM9>Lgd%{bhq86_U)s9wg7pf1pdiS9^ygRb&LDli#1!~*v?Ojtt*ayM;07zH7GafZW zz1|Wo``Nm!bDM|rdb@W&NYp7b>jJfT2iY&tndtony`4(zx~oZ{CE+~)1HDB@HAJrC zME&iT2=U^~?k{5w*LhM$59)^vxE&qKpBd96TG842N`E?&K9)J&f1F!vBM0;aov7y; z&ieTK!cAN~`OvrBQotU60K)H}?wQNe&6eoc-gA0xA_v_Ykau9To-xNOurms}($3$f zQyUBa)&>Z8!G$nswn-jC$l5^NQRCT%^*lA^d1=S!1n5-~pkI^pH}rk*f0XpEQq!Wb z^@Eb0lyqKFPtq?-`aMa1r@gA3pueE=1nt%Tr6p(xw4I*Tt9m;2=BySU=9IOmO5zyt)~t4d4?`vo*E5x zv-ITNMd|_;4@v2ny+4h)HDro1QN0CAB5J z4BAa!0R0F(1=@uexaa3UAENKjO}z{J+xh^#NO$xh(0}N|^doAEjX>WW8>e5;aO@2I zmFAGxYnH{n{>1?*2bSkMc7gJ%K`6>JRd`%j zAz7a5qP9IZdSYnOv|UPDq372;(=%epiCkzj2t>Kyte&zRF)#c8%|=5!X@zPi){L7B z(TM4psvFv6k)Civ;d_<5@UPgG2hU>6**uB#85tvX@V-@-8Kn?+GJ z{pBs%c$HP(E?o*Yn*da?YHeXa3>DK|-P|JUxl4Ab>YEJMW^+yimTyJg0p&!YS}K`MQ;&3bm0`Vs)dnazP%MSNhGnFX;mrugT#;O`9%*e25;NSxMl>_(dRqY!X34)U_CLJg4$fFp!2>RinF#Wc;pkX6R3C*rn7~;zg55Qg#m-U4iids)lhCBg}k7SoV@_&6`eD5I5#VvYz#7BTVG% zpyCC*rWCOP50`wpi0nMx{|+vTLNaKUJgT7X!!-kKKvgQEHfRZNBoDlS9D;Qwxit?D zvXA!cou)JJD&P&p_9EH1O!O>>p5T#ux+3XGI*d_0v@%g2!Fw$y{YW$D z?V>%80HD#rr)AhrU|(Rppb|9E2t~xkV_4GLhIJLaFB(RFCUcA^ zrBO%oLqn|?N45bIeVsVSo9V2+`@C;f&Ux8 zIoM1-mp`~O{;S2$|90w2=e~I@`{X-c<%DtkV+*4dUj%_MW?IYDO0aNh;@s$2qt}>R zHO4$|c_EAU#X|OyS-}H?y(HaLB3s@_328nK=f8EXT?x-mwAJ^&842( zHd_|6o{z!gRwDNuA<{*M^E7+``w$r;l2b$>pb$_9yuT38|^^0WAzyU`gW+H30Pkxxi# z^j*Jhsi}|=u-80xcOU)OGE3oIe+gLtmqYTu0cPd??;PkD&591lcsv)Kj zUN-clEqdA^eKPor9{mQ9g8&1JpG4dG$T?&d0dfoOr-J_0#~G&;*f;~SW#+=!Q$O|M z#KxcITO0bAmwrJ*+dgDWnYD|@Ou@gN+xUo>^P_X1oP}Y}{jX!CVdpq_ow$#);7hV~ z7Kl`k3vuKnx`fyX`PoLDffJ;GU%x~Fc?Ejlex_>e7(I@qjt5KsdrZR;%W3rGA*-tb ztFU2K_nH^cpv17b?M5Uw;y5JRjAA`Fmn>sN9Ux%fZsL_%UxAJ7Fl|*70tx|zfI>ha zpb$_9Chapb$_9C@#yW3K*R!twtVST4lG`d`iQMudg^%l%8YHAmtEFm0#W#B=kK}!v= ze=|S>x!Ftp8nx+$)xhANKisfmw+B8tn*T|qqlR&8p~-*(F*@o5&P(FQri|9WrOvH& zLpj5)!FG{qdpYZ+Q_Y(W|MdM?*I=EI&Odr!hpT(ob#jdmmvUQ9?mQl?|GewT)^~qt zJhwmg+F`m4skn1@zn1;Srxn>}D>e-{y7Q1XAAA!yAG`ou04@aI3|<6wfhnH@wrOrO zFkAM|#c&uyY}?O`U8noj$>KlPMQi+Ln(a-*>Au6Rm;M?!V|G#E#2z={99R#290l}) zGT>tHJa9Ic@tiULO7mXEdd7aP2{xsN29|y6b(}y~zW7ah_S`q89kk`O5L`l!^SmRF zvJH5qf3WT5;sLP@&n&M8vrGj``V0>f>n4#`4`!LQE|NCQum&!VTppoql5E#k8))c@ zsquKgzg>Bx?ZHg}-|k>vLX9aUl~nIEU6{jLUnhYBZ+dV0TCKn_WZoDc~$ zp73eWsL^jj_B`r*4cTKr-e=%Ze zy|WY5gkLm?Dxeb$uzlXiu+P*b<)wc-ZTbh#^pep3>=Y6Zg(HPR2`z^D(|C{LF{i1+ zY`)`Hh&Sntur0@!U-4U0jhSDFZ3-W8hDcHt{Y>&s35wm%dbc300C6r!t^(c;bOVuH@rBY!|o$d_Q<8xLSWkRbU~;R}HQM7lGG< z?*-R_y?S{8dk$h-lGr|VNqiYDD{7jg%=WOhkZHHMR}f!3JPz9gK%#~8{B2$dK3L70;Z(t z*iV_Fh3UvoA)a1E{{#D9ufiCA5m)ti!sXRl$+){xU*k&QM-I6dpw42k+LG_xpx0k_ zy>I?co*|! z17&HOMPT{8pZ6s6DV{mFN08tAX-A$X`2EMG^wEHVy&C8DWF*f9v}dlqr!(f}WOXw% zk3-LBqK)_FRqEgU5L*xCi&aAlaKo_^qrMNk7RI`-OSD@Po@lUFjT_7T zZZ+7Y#%6l`x9lWl_VS+I#*G6Nc-%C;+*lw>4}fxG5kZ<|E5KaLGMu<}bDpn+Zn*y& z)}0LZeZUh)bN^Qc_F|E+uK&{UB(fg&1Gsb5_XLa+oRbWoR6kW|-4Add!2Q5&VD^D3 bztTE{BAaGO150M9UAtLZ1GWazUju&wdJD*+ literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-3/bin/Debug/Exercise 12-3.vshost.exe b/Code/Chapter 12/C#/Exercise 12-3/bin/Debug/Exercise 12-3.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-3/obj/Debug/Exercise 12-3.exe b/Code/Chapter 12/C#/Exercise 12-3/obj/Debug/Exercise 12-3.exe new file mode 100644 index 0000000000000000000000000000000000000000..a60e52708e60d8a88fee3e82255e482729428c0b GIT binary patch literal 16384 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 bztTE{BAaGO150M9UAtLZ1GWazUju&wdJD*+ literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-3/obj/Exercise 12-3.csproj.FileList.txt b/Code/Chapter 12/C#/Exercise 12-3/obj/Exercise 12-3.csproj.FileList.txt new file mode 100644 index 0000000..ab45490 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-3/obj/Exercise 12-3.csproj.FileList.txt @@ -0,0 +1,5 @@ +bin\Debug\Exercise 12-3.exe +bin\Debug\Exercise 12-3.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise 12-3.exe +obj\Debug\Exercise 12-3.pdb diff --git a/Code/Chapter 12/C#/Exercise 12-4/Exercise 12-4.csproj b/Code/Chapter 12/C#/Exercise 12-4/Exercise 12-4.csproj new file mode 100644 index 0000000..9ad130e --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-4/Exercise 12-4.csproj @@ -0,0 +1,41 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {DE6243FB-4442-4CA4-8370-5059E16D4A42} + Exe + Properties + Exercise_12_4 + Exercise 12-4 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-4/Exercise 12-4.csproj.user b/Code/Chapter 12/C#/Exercise 12-4/Exercise 12-4.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-4/Exercise 12-4.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-4/Program.cs b/Code/Chapter 12/C#/Exercise 12-4/Program.cs new file mode 100644 index 0000000..45551a5 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-4/Program.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Data.SqlXml; +using System.IO; + +namespace Exercise_12_4 +{ + class Program + { + private static string connectionString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI"; + static void Main(string[] args) + { + SqlXmlCommand cmd = new SqlXmlCommand(connectionString); + SqlXmlParameter parm; + cmd.CommandText = "SELECT FirstName, LastName FROM Person.Contact WHERE LastName=? For XML Auto"; + parm = cmd.CreateParameter(); + parm.Value = "Achong"; + string strResult; + try + { + Stream strm = cmd.ExecuteStream(); + strm.Position = 0; + using (StreamReader sr = new StreamReader(strm)) + { + Console.WriteLine(sr.ReadToEnd()); + } + } + catch (SqlXmlException e) + { + //in case of an error, this prints error returned. + e.ErrorStream.Position = 0; + strResult = new StreamReader(e.ErrorStream).ReadToEnd(); + System.Console.WriteLine(strResult); + } + } + } +} \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-4/Properties/AssemblyInfo.cs b/Code/Chapter 12/C#/Exercise 12-4/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b8e075c --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-4/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise 12-4")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise 12-4")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("25919cba-379b-400d-bc64-821e26cb51fb")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 12/C#/Exercise 12-4/bin/Debug/Exercise 12-4.exe b/Code/Chapter 12/C#/Exercise 12-4/bin/Debug/Exercise 12-4.exe new file mode 100644 index 0000000000000000000000000000000000000000..b1079e2806b06124b25e9fee1e240d80c7a3a1b0 GIT binary patch literal 16384 zcmeHMU2Ggz6+Sb&{)v;U>UDlxl9q8DXcFSldgC;IO=El44yJbevyKxQgEKpOy`E%t zXFD^S*dP@nRfR}^8mXvMYLTEX6jUfuB??j{=nEhg3C2_s~KG7?vx%5kVXR-`+>Z3nN(aT$I zcDhhE(Kg6_ae!#=M%|s-1`%ekQd-gexI_RDP`(8(C%xY3fuAi8Aw zfp4QFW9tXQHU_RWr619ozHmJla;$U-7u#iUtttIPgKL_KRR|~q6aoqXg@8gpA)pXY z2q**;0t$iuBLtr0b2SQ|O?7IbLtRAA;^3;GjjNe;|4rGG(djvKK;L$H3^WS+FJ8g{mV-?MZJpxc!|hrQh#pPwse6 z>u7Fo?rDYUZkGNIaD%#V_R#(3lUFS!+~C>Jhh)A49?{fG*}@M zPBqj2E`nR;2^_pv-@gZb4-OVSHK<8sqI34uteG*7WR7N!a^EI$K^JtQ?#GDUL|wxB zgziGi>Fe|&_}@zUS1D=HSbLwOrzD+` z)RXjUl73Ipx3t%^lk{geZ>CQDpIS2=18t)(=#Jh-&w)16uk@dT{zFnqFuyawG29Q@ zMkf=F3^9r?LiH}ZVc7>9xz$c1u$nM9`Wy5J=BClUE^a;1IY%9sU#D!{=)9OH$7q!F zcABHzz=vs^z~&<|;AVw`?V_aqARGdi5;pkLC%iPKm`_G8jkx&pd~ z7D2n|+n|RfJxSjIpQE3GJ}e~#NiRxjOZgT0HM9Zlc#}R)f1(SNT#nWsz{F(+xJIiV z2{g(|hVP=k$2Ny3LLbcs$GlSA6%WzSqVR1e5Jqpdr_U6Nf+nIDc`KT^-t1f-RRY`d zU8hKer63d)8ZTZJc1X5Yt)h0kYIMibnB`Q-v_sF2EzK!0??xsx5Co!9beD!5SIh`M zK(~Pq|CC}q6f4S2ifBZ0s$LD9iZDm2q42$0LHJi4TLg5b?vz%&&_tsczp!ff#C5b!l^toL8N9%5~pjz&5M% zBCvg@c6;Tt6Rw?83`*Xy%2h829Xp`BDAvnmYu(f%86HJgZ(y|nN)8lD;jdsB31oOv z!nGD97pz7auYsIk=oB5-3D-<>-MvJXkLTZ*WBXp<&4*^*3N5qnsC%K}QdGf9#j2Jl z5aC?RPxI^1NIPNSZL+{pQ_dGwC|28SKV!Ld(U{K2IN|OSR)z0b8~0M&V#5h9a2U|o zVoG48ed2LqmaA!R2ytL_0?!q6-giPV>Qn`d-gEXI^m7+SQ2Tqr7IkRjjq z{CH5)mN!5CW6RGJXoyB}EL6rF~27(IN{7vOCa^#Ik;)5D%I03Qp|Um1ZuKLIn3 zt|Gva9P$(uXcAqvS`k+On^PF91dl?7T!()E ziyl6ng8}SEq+C!L67DHrZD3RZpKR?wwgfK){3c*c^v2%dKRo@`$IpD_ODCSc_}N2$ zq1GRLZg%GGzIU$c%_(dj+C8a+L0Zz#v=kG)38eiLv#qVyAOFnF<>l9JBn?WBv1l)I zlgzcTU3wCIQ%OSKR7*>GBt4c&Po~eMg^sOO+on-VFLr(Whz?*&${so1d)zKsJ%^7T zFZT3hGNqoP{Xk#Ov23r%K42G*^v)NN8)*FC-K|kN*LaE;uf1Rx*-YjLQCg$z>;Ey- zig9EgFwtj(dwEx!)_0xvt=d_yx^ml1FZkZIK-xCGq43lH8m?Oha3NWkD&z}q-Womr zM>jS4^&dR+_S^41b&Ka}2Yc;xKBsL^ALEg6HJcV#w*XT@x8 z!K&fkhkao-*FC!~&{?l|c~(AI*2~RW3A28jldQOWlX;`jT3|?X1 zZPF%#&*;&w4>=8gQqNNgeH-?9j2<9YVLvtaTODTzXFN{ZY{)nhGH?#fQV%gQ8EosT zK4zp{u%>S>(!9*d#bc&n-^i7GM9leCBYnhP{()ne@Xc}XIg=YSQ>b6i&NVFET#t~mQmJOLcYfd?dq)Vy)5Kssx z1QY@vZUl_zTlPyQKHSq#(JKTL0tx|zfI>hapb$_9Cz#!3g{tb!hm0 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-4/bin/Debug/Exercise 12-4.pdb b/Code/Chapter 12/C#/Exercise 12-4/bin/Debug/Exercise 12-4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fbaea8675159895e7ccd7e792b661b9a3e18eaf3 GIT binary patch literal 13824 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-4/obj/Debug/Exercise 12-4.pdb b/Code/Chapter 12/C#/Exercise 12-4/obj/Debug/Exercise 12-4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fbaea8675159895e7ccd7e792b661b9a3e18eaf3 GIT binary patch literal 13824 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 + + Debug + AnyCPU + 8.0.50727 + 2.0 + {6A729951-3BFA-45B6-8A5D-FD04589E2FD8} + Exe + Properties + Exercise_12_5 + Exercise 12-5 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-5/Exercise 12-5.csproj.user b/Code/Chapter 12/C#/Exercise 12-5/Exercise 12-5.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-5/Exercise 12-5.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-5/Program.cs b/Code/Chapter 12/C#/Exercise 12-5/Program.cs new file mode 100644 index 0000000..4a40602 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-5/Program.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Data.SqlXml; +using System.IO; + +namespace Exercise_12_5 +{ + class Program + { + private static string connectionString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI"; + static void Main(string[] args) + { + FileStream xmlQuery = new FileStream("command.xml", FileMode.Open); + SqlXmlCommand cmd = new SqlXmlCommand(connectionString); + cmd.CommandStream = xmlQuery; + cmd.CommandType = SqlXmlCommandType.Template; + + SqlXmlParameter parm; + parm = cmd.CreateParameter(); + parm.Name = "@LastName"; + parm.Value = "Achong"; + + cmd.ClientSideXml = true; + cmd.RootTag = "Person"; + + string strResult; + try + { + Stream strm = cmd.ExecuteStream(); + strm.Position = 0; + using (StreamReader sr = new StreamReader(strm)) + { + Console.WriteLine(sr.ReadToEnd()); + } + } + catch (SqlXmlException e) + { + //in case of an error, this prints error returned. + e.ErrorStream.Position = 0; + strResult = new StreamReader(e.ErrorStream).ReadToEnd(); + System.Console.WriteLine(strResult); + } + } + } +} diff --git a/Code/Chapter 12/C#/Exercise 12-5/Properties/AssemblyInfo.cs b/Code/Chapter 12/C#/Exercise 12-5/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..bfea561 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-5/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise 12-5")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise 12-5")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5960c17b-3e0b-4292-ab13-345b8b1f4212")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 12/C#/Exercise 12-5/bin/Debug/Exercise 12-5.exe b/Code/Chapter 12/C#/Exercise 12-5/bin/Debug/Exercise 12-5.exe new file mode 100644 index 0000000000000000000000000000000000000000..ef464ab7f031958c2eb17c9f9b0d5f47bbfd8050 GIT binary patch literal 16384 zcmeHNU2Ggz6+W}Owl_|^WY=k&kTf0RAd(cX)@z$2B%!uprNh5@81I5=Hw&yG4|A#iEP$-pwG;$r$~((UL_aI-9f| zTSrUAHU@@mR9vgd7@|+wqGrL6W2LjW*e-=@RT(3iSk(;J0D%C30D%C30D%C30D%C3 z0D%C30D%C3|0e|aT#dqK(-3t~sh{XA99$K&adoopzbU&?VY-bD=o=>+w6W8{QM9}J zY48yz4t8@_r06K|dpjxKX+3~; z+lSYbj--#CO)W1(2NZY>(G`k6O9+_D6O?;_k`OCNJCER&d6EbAg!ZX$dSIgP*$G7= z>7C0jr<1AVXzF14AouN{8tB(TL<3Kw7k+zq1J^*owGFfCu*J`S{y$I;%oXTHmv^Ke zcz7ny( zq(hQAAtTgDPlI;T^P#KYUzYqE;JfM1QZgH6n*~YTFh}(aXg7T$d{qYRMeO0c6?5GS zWVscmJgjC^p3il99J5uZ*w3wJb}UdYW_&`nuJ3p?d|A$4p-L!D3)DwDCGD4VKj>~6 zlKf#w$0f~6dP>sAB-JD}B)tUMPoD?<1YHB|MGOn{NqP~q5A+A2qoBVDO@Q7BouD64 zXSfgaBjG7Xc7}I@J_yN+bTB+iFHtUhntqDDN9pHuAzY$g(&xfw=}r1dxR?G&-+|30 zIZBc?)032>U33+6fW8kpEa?$?1$>5n0s4rP6eN8@QeDa~(x0Gp=&ztp(YsjX$g+38 zP`k_nb?LQspU13{|g0L?ex^U>>rcqh(lCkRZ zhGUd#Vnx;(Hq)%RP5T~-qODa#U9&IVqmR{CvW@C_ccThGRhs%e6o{drnM)gcWGwTX zQEl291GZ6}6^?Ejje9GLhP!%BJ}6m3tD2VM8oEPSQEpbN+M20*GQ7I5-oR=dlpH9Q z!fs>f31oP)qNXiM&RL1nUjsQo*C-n`!(BDaHTM!}Hr|*1fca_SHOD<7w7O(D9-1Hm=%{Af>zncwr4S;;b(7wdxkO? z-4!cswm%7->^QI0n!bygAxyVmR0K!EMzfaX7PTrr5;|_xRUyq-j=}5YhdC>7BiU5M zugE^jRnf{}B3OLKstG!68?Kl%OhNgq;WR9VSByMX_><2q>O$TJRK@T)+qP_f(4;P( zEqz%tkxakP?eeMX!DF%&q0+o7Y*D zn3D#NMN~?hVXNKD%`w*vN3jUO(bleLBA+;wI1@|ECA7q)5O!*1i$YyPNE+}*v|pjU zqlZ70(uWR~2Zu$fJUEg*oF3H5L&Jl^BctU*<)L#U=^?z0JLI0&r%)o(da0~ZeYM!bTWB$~{j{w$PFiOBHYuLBtt*bSZGW@j-QWtYBEFFn zk&De1vV}i9|KmH#ufCrBlD6%7&qF_XmcP&BK3y7b*urtt2~EG)Y&fOk`IF<5>YzHc zq)u4Y#Zm^(YAJJGYv3WmK2gdHl-5LAvdR}q@=dc=o@`XgMDJq!R*AK~7qtYdYd`1p zM0nV33?jD^x%UW>tkgI+!xyoSlR753fCLBx2m}axxDim~XJeeOm)FkIJ6&N9+8}2; z{_Wt=F{0bN5%}eHXaw9mHrfTy9L<8uW1ByTb{_P&_tl+Vi~RjP?}Xv)DXr7SL%tv0 zH(DBBgfxL=^VrU9_%VA6iyTCj??qCGRY6Ry zOaVAo+30DDv`OJJy7xDNqyrdW{22PS?6Vl%K{COqL<9a-#>pX1;v`3hj8hdAr^qx7 z682#DiLUZ7FYTOFeTR@`rP>#dnSgyOnXxewPKerB7Z85Gv6Ar3I$kICF$umZduM=1 z1IZ6ZUPaEv|BtXyrsDLe;x8>x;MganpJ~6J;m6X#gCmof;C~d;QHiCO7FLju>4;)w zR>&FNcV0vz62rB9*CV+e$3wEuIM#z#q>dG>0Ra_vlb5HqR&RYjOgkt60s#U60s#U6 z0s#U60s#U60s#U60{`0xsNT0}72no_5+D#D5FijB5FijB5FijB5FijB5FijB5FijB I@Zm(@-&ffkG5`Po literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-5/bin/Debug/Exercise 12-5.pdb b/Code/Chapter 12/C#/Exercise 12-5/bin/Debug/Exercise 12-5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fe617542ae13a5136477b54b5a2b3b7e100873e6 GIT binary patch literal 13824 zcmeHNU2GIp6uwhxe`#eAD+0nmTPRd^yM+QGNq@G5RJs7vR=z~#1s1QRiG1TvypYBqj7A$FL=Okyp znS1ZKbMHClo_pua`a_Bqi^tj$vd`lyEtUOE>*dw%va-CKIkim!lqQ4(m<#UaJ?KFb zoZm^Hfvk+OzXu(fvKr|5>&%p$yEE~@!Q8LB(i+CG85RTb#Nc2$aGH)EhbFZKuC{Eh z?9V*s>S+=u8hg{;?yK8);J07Cb@f!5_qhl6KJ98d=Q_4bh^txk$F{#4tvb{CQo|>I z)SQ1&d+z|q^XxEAk$Rp1v;K|d$~J^-Eu z&H&#B&IV_J={x@w`?)_jH2xZx`*WFe1jCqd;ZXnipH51&-K`K@!mu}U1oQ(^HJJXv zzI!WH6mG>e>#M-5Q^7W!#>McqI?AfRtV?Z+TZhJ21J?$w4bV0^`}M62RCj1qbvN7P>8SF@?nq25D5BOrOYQR?*sOwZUB@|a>Z~5|yz$PuWLkmXSN?ZtKZ6IjM zN4n(QF|9qIq{u6jR|*5_b@CladHP=)UJusq``Rq;#wLro9*g zY{ca)t$((6X#6x_um5>8;5e`UIy?NxH9@6)S4TXszW(v*26?&c?~-d`v34s2Suuqn zX@qE`+QCR}v3hF@MT24VhTzn~-pqiM>}{mjWWTFcK}}RuHCP98k0RZz=NZOaw^+tk za#6&E3_5Fq@r$_{+dAhg{J~HZP#~tcD0cycc3alxh$7dMOD*oH>gon3n|D047GJXp>`%9F6OYzZ-0<**9H?ochhs>t&uSE2g&yJjRO74F4_do zHO9_Uh_9(=WlsK^DYDT=1B1eOz%JB?k%ax1t^i!3;_kX4Eg~?F$qOU#5A-Y#dD;tbmoU3m%(RT#XD{ujjHjsh4feV41z(v4UfQ7)lz>5Rd^fxU$2rNSRA?yAvU@`7#lf}SZ zAjYJB1Y8R21Hxwd*T7QXH$e7x+QKuyhf$u1x2YUhCI{Y>BbI zdB6)W?{&a@=%d^~bY&3RkW3l2F9Fwqy@tF|i61_bcHkN^Z7L1fnx@A*4MJ~v4z4)v zOtHr(`xC!eVBNSgeMrVN*F*!j6-<(i-y8o(H!i+AOVcO*u=y@OC);yL#!zR$z>F2N z!9oiwEc9Cl7?DO}KY4^6Mk7Ch_{6HZ3+#Wp3S-=6+${og%PsRV#ugiURSEn^vNryOGGe-UHkd-bFzM~j3F_cJ@ER~}4iJaI zI(REM9nAM$zE|=a56}I4FKh|Nly>2XYl^2W6jtM&G06Y&89W271(UcrvCMuZ%Q&7z zU^^$nGKX$Y19(q1&T)M}+W%$i0Dc(PI+*q^0e3*@sowzU50s^C>~DXx5p6=B;@c+A zhCYZOltO)H&?i=k4d6>#rjpNAMxTHVfkn7 zOO{Ix<%4WlBI}r^FtZyhNm3dzS9yl8G!)nPeVcn3$&PhI=9}1CC4T>B8hmWi*cgwU zqqnAl5{o!+ld_D-nAdjgsPJ{SS9<>0H)^oF#g7M%Uy;rqsNENwwLh=&%kGmX^E8B_ z?e)>NnD9h{5jAdx`<-gARn^8i{-^9DW1GCEw=plEgmI0e;&mGi zZYL|vz{I%Di=i9F|8s_uAzuePg8Q4rf7|g`&wYUZ1>s)6_`tQuJ%DQGelUC=;4`^r c%mmX6RKG*xqk-Au^H}Gpjs_eJOaKl11Cv_H;{X5v literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-5/bin/Debug/Exercise 12-5.vshost.exe b/Code/Chapter 12/C#/Exercise 12-5/bin/Debug/Exercise 12-5.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + +SELECT FirstName, LastName FROM Person.Contact WHERE LastName=@LastName For XML Auto + + diff --git a/Code/Chapter 12/C#/Exercise 12-5/obj/Debug/Exercise 12-5.exe b/Code/Chapter 12/C#/Exercise 12-5/obj/Debug/Exercise 12-5.exe new file mode 100644 index 0000000000000000000000000000000000000000..ef464ab7f031958c2eb17c9f9b0d5f47bbfd8050 GIT binary patch literal 16384 zcmeHNU2Ggz6+W}Owl_|^WY=k&kTf0RAd(cX)@z$2B%!uprNh5@81I5=Hw&yG4|A#iEP$-pwG;$r$~((UL_aI-9f| zTSrUAHU@@mR9vgd7@|+wqGrL6W2LjW*e-=@RT(3iSk(;J0D%C30D%C30D%C30D%C3 z0D%C30D%C3|0e|aT#dqK(-3t~sh{XA99$K&adoopzbU&?VY-bD=o=>+w6W8{QM9}J zY48yz4t8@_r06K|dpjxKX+3~; z+lSYbj--#CO)W1(2NZY>(G`k6O9+_D6O?;_k`OCNJCER&d6EbAg!ZX$dSIgP*$G7= z>7C0jr<1AVXzF14AouN{8tB(TL<3Kw7k+zq1J^*owGFfCu*J`S{y$I;%oXTHmv^Ke zcz7ny( zq(hQAAtTgDPlI;T^P#KYUzYqE;JfM1QZgH6n*~YTFh}(aXg7T$d{qYRMeO0c6?5GS zWVscmJgjC^p3il99J5uZ*w3wJb}UdYW_&`nuJ3p?d|A$4p-L!D3)DwDCGD4VKj>~6 zlKf#w$0f~6dP>sAB-JD}B)tUMPoD?<1YHB|MGOn{NqP~q5A+A2qoBVDO@Q7BouD64 zXSfgaBjG7Xc7}I@J_yN+bTB+iFHtUhntqDDN9pHuAzY$g(&xfw=}r1dxR?G&-+|30 zIZBc?)032>U33+6fW8kpEa?$?1$>5n0s4rP6eN8@QeDa~(x0Gp=&ztp(YsjX$g+38 zP`k_nb?LQspU13{|g0L?ex^U>>rcqh(lCkRZ zhGUd#Vnx;(Hq)%RP5T~-qODa#U9&IVqmR{CvW@C_ccThGRhs%e6o{drnM)gcWGwTX zQEl291GZ6}6^?Ejje9GLhP!%BJ}6m3tD2VM8oEPSQEpbN+M20*GQ7I5-oR=dlpH9Q z!fs>f31oP)qNXiM&RL1nUjsQo*C-n`!(BDaHTM!}Hr|*1fca_SHOD<7w7O(D9-1Hm=%{Af>zncwr4S;;b(7wdxkO? z-4!cswm%7->^QI0n!bygAxyVmR0K!EMzfaX7PTrr5;|_xRUyq-j=}5YhdC>7BiU5M zugE^jRnf{}B3OLKstG!68?Kl%OhNgq;WR9VSByMX_><2q>O$TJRK@T)+qP_f(4;P( zEqz%tkxakP?eeMX!DF%&q0+o7Y*D zn3D#NMN~?hVXNKD%`w*vN3jUO(bleLBA+;wI1@|ECA7q)5O!*1i$YyPNE+}*v|pjU zqlZ70(uWR~2Zu$fJUEg*oF3H5L&Jl^BctU*<)L#U=^?z0JLI0&r%)o(da0~ZeYM!bTWB$~{j{w$PFiOBHYuLBtt*bSZGW@j-QWtYBEFFn zk&De1vV}i9|KmH#ufCrBlD6%7&qF_XmcP&BK3y7b*urtt2~EG)Y&fOk`IF<5>YzHc zq)u4Y#Zm^(YAJJGYv3WmK2gdHl-5LAvdR}q@=dc=o@`XgMDJq!R*AK~7qtYdYd`1p zM0nV33?jD^x%UW>tkgI+!xyoSlR753fCLBx2m}axxDim~XJeeOm)FkIJ6&N9+8}2; z{_Wt=F{0bN5%}eHXaw9mHrfTy9L<8uW1ByTb{_P&_tl+Vi~RjP?}Xv)DXr7SL%tv0 zH(DBBgfxL=^VrU9_%VA6iyTCj??qCGRY6Ry zOaVAo+30DDv`OJJy7xDNqyrdW{22PS?6Vl%K{COqL<9a-#>pX1;v`3hj8hdAr^qx7 z682#DiLUZ7FYTOFeTR@`rP>#dnSgyOnXxewPKerB7Z85Gv6Ar3I$kICF$umZduM=1 z1IZ6ZUPaEv|BtXyrsDLe;x8>x;MganpJ~6J;m6X#gCmof;C~d;QHiCO7FLju>4;)w zR>&FNcV0vz62rB9*CV+e$3wEuIM#z#q>dG>0Ra_vlb5HqR&RYjOgkt60s#U60s#U6 z0s#U60s#U60s#U60{`0xsNT0}72no_5+D#D5FijB5FijB5FijB5FijB5FijB5FijB I@Zm(@-&ffkG5`Po literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-5/obj/Debug/Exercise 12-5.pdb b/Code/Chapter 12/C#/Exercise 12-5/obj/Debug/Exercise 12-5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fe617542ae13a5136477b54b5a2b3b7e100873e6 GIT binary patch literal 13824 zcmeHNU2GIp6uwhxe`#eAD+0nmTPRd^yM+QGNq@G5RJs7vR=z~#1s1QRiG1TvypYBqj7A$FL=Okyp znS1ZKbMHClo_pua`a_Bqi^tj$vd`lyEtUOE>*dw%va-CKIkim!lqQ4(m<#UaJ?KFb zoZm^Hfvk+OzXu(fvKr|5>&%p$yEE~@!Q8LB(i+CG85RTb#Nc2$aGH)EhbFZKuC{Eh z?9V*s>S+=u8hg{;?yK8);J07Cb@f!5_qhl6KJ98d=Q_4bh^txk$F{#4tvb{CQo|>I z)SQ1&d+z|q^XxEAk$Rp1v;K|d$~J^-Eu z&H&#B&IV_J={x@w`?)_jH2xZx`*WFe1jCqd;ZXnipH51&-K`K@!mu}U1oQ(^HJJXv zzI!WH6mG>e>#M-5Q^7W!#>McqI?AfRtV?Z+TZhJ21J?$w4bV0^`}M62RCj1qbvN7P>8SF@?nq25D5BOrOYQR?*sOwZUB@|a>Z~5|yz$PuWLkmXSN?ZtKZ6IjM zN4n(QF|9qIq{u6jR|*5_b@CladHP=)UJusq``Rq;#wLro9*g zY{ca)t$((6X#6x_um5>8;5e`UIy?NxH9@6)S4TXszW(v*26?&c?~-d`v34s2Suuqn zX@qE`+QCR}v3hF@MT24VhTzn~-pqiM>}{mjWWTFcK}}RuHCP98k0RZz=NZOaw^+tk za#6&E3_5Fq@r$_{+dAhg{J~HZP#~tcD0cycc3alxh$7dMOD*oH>gon3n|D047GJXp>`%9F6OYzZ-0<**9H?ochhs>t&uSE2g&yJjRO74F4_do zHO9_Uh_9(=WlsK^DYDT=1B1eOz%JB?k%ax1t^i!3;_kX4Eg~?F$qOU#5A-Y#dD;tbmoU3m%(RT#XD{ujjHjsh4feV41z(v4UfQ7)lz>5Rd^fxU$2rNSRA?yAvU@`7#lf}SZ zAjYJB1Y8R21Hxwd*T7QXH$e7x+QKuyhf$u1x2YUhCI{Y>BbI zdB6)W?{&a@=%d^~bY&3RkW3l2F9Fwqy@tF|i61_bcHkN^Z7L1fnx@A*4MJ~v4z4)v zOtHr(`xC!eVBNSgeMrVN*F*!j6-<(i-y8o(H!i+AOVcO*u=y@OC);yL#!zR$z>F2N z!9oiwEc9Cl7?DO}KY4^6Mk7Ch_{6HZ3+#Wp3S-=6+${og%PsRV#ugiURSEn^vNryOGGe-UHkd-bFzM~j3F_cJ@ER~}4iJaI zI(REM9nAM$zE|=a56}I4FKh|Nly>2XYl^2W6jtM&G06Y&89W271(UcrvCMuZ%Q&7z zU^^$nGKX$Y19(q1&T)M}+W%$i0Dc(PI+*q^0e3*@sowzU50s^C>~DXx5p6=B;@c+A zhCYZOltO)H&?i=k4d6>#rjpNAMxTHVfkn7 zOO{Ix<%4WlBI}r^FtZyhNm3dzS9yl8G!)nPeVcn3$&PhI=9}1CC4T>B8hmWi*cgwU zqqnAl5{o!+ld_D-nAdjgsPJ{SS9<>0H)^oF#g7M%Uy;rqsNENwwLh=&%kGmX^E8B_ z?e)>NnD9h{5jAdx`<-gARn^8i{-^9DW1GCEw=plEgmI0e;&mGi zZYL|vz{I%Di=i9F|8s_uAzuePg8Q4rf7|g`&wYUZ1>s)6_`tQuJ%DQGelUC=;4`^r c%mmX6RKG*xqk-Au^H}Gpjs_eJOaKl11Cv_H;{X5v literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-5/obj/Exercise 12-5.csproj.FileList.txt b/Code/Chapter 12/C#/Exercise 12-5/obj/Exercise 12-5.csproj.FileList.txt new file mode 100644 index 0000000..0364a7d --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-5/obj/Exercise 12-5.csproj.FileList.txt @@ -0,0 +1,5 @@ +obj\Debug\ResolveAssemblyReference.cache +bin\Debug\Exercise 12-5.exe +bin\Debug\Exercise 12-5.pdb +obj\Debug\Exercise 12-5.exe +obj\Debug\Exercise 12-5.pdb diff --git a/Code/Chapter 12/C#/Exercise 12-6/Exercise 12-6.csproj b/Code/Chapter 12/C#/Exercise 12-6/Exercise 12-6.csproj new file mode 100644 index 0000000..7895eca --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-6/Exercise 12-6.csproj @@ -0,0 +1,41 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {5D372DF2-87CD-46E5-811D-026A1341E862} + Exe + Properties + Exercise_12_6 + Exercise 12-6 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-6/Exercise 12-6.csproj.user b/Code/Chapter 12/C#/Exercise 12-6/Exercise 12-6.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-6/Exercise 12-6.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-6/Program.cs b/Code/Chapter 12/C#/Exercise 12-6/Program.cs new file mode 100644 index 0000000..0fbe619 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-6/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Data.SqlXml; +using System.IO; + +namespace Exercise_12_6 +{ + class Program + { + private static string connectionString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI"; + static void Main(string[] args) + { + FileStream xmlQuery = new FileStream("updategram.xml", FileMode.Open); + SqlXmlCommand cmd = new SqlXmlCommand(connectionString); + cmd.CommandStream = xmlQuery; + cmd.CommandType = SqlXmlCommandType.UpdateGram; + cmd.ExecuteNonQuery(); + xmlQuery.Close(); + } + } +} diff --git a/Code/Chapter 12/C#/Exercise 12-6/Properties/AssemblyInfo.cs b/Code/Chapter 12/C#/Exercise 12-6/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..7fd59a5 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-6/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise 12-6")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise 12-6")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("b5c17f6a-4733-4105-9066-3385ee9c22b9")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 12/C#/Exercise 12-6/bin/Debug/Exercise 12-6.exe b/Code/Chapter 12/C#/Exercise 12-6/bin/Debug/Exercise 12-6.exe new file mode 100644 index 0000000000000000000000000000000000000000..ec9f59bee44eba49f38c35344ca86bcce09ab2fa GIT binary patch literal 16384 zcmeHNU2Ggz75--9*v^lw*rrV)`ZK{sI8i)WuYZ!@1Z?j*?G`(BypGcrBWHH@dOh{* z&UR)tu?vcfR6yYYwE`rBK!B)3N`!>?5mgZnRDDcDd4LC=@`Qwhio^p#2(^6o&aCaV zLj;e|dsp+_bI&>V-gCd1xqI%~Gta+*eE?c`z5hP&25VWy6+Rp`Y3_XT%})I6z`YZ1 z7}NJoEUdbrSquDfU{_4Xu2%iXEDAHIS53ES=4K0K#V-k~qvK#-GW6UOFm3F^OIN&X zW48O~G!7ZaoB9F^9!DL0dj9ZpQjZHRWKNhZwYBp56QE!=*&ubj_s+7io zeo4gcat%04-4Xgdw%hiwwh3?rTcw@tr?*;w6^ZqT?Un-s+Ek25+-#|00@th{3>>yp zY~vK9kI8FC8E5oXAUvOrGFDvUCH>O8c9d~oaz|5(ngPv#WwX$t#s+XPnI0E2B_t*rj5(v#kYGwi{>T?mM^;~|ft2M^w)+!A(C zJk-|ece6&@alc2^{)c4M>OUf@Q&#XKyKPGUQ%|J&AEojXCJWC@8Y-&zjC(y}rLB?l znT(u_aeKtGDWLZz@EYqDp5=QBQQ%g~q4c=DA9$N}@09{Pu1X${d!M?J&$0d-+kckr zNzX5`mW4wYS07119?$U)V+ag`5y?v0l*}o%bRCH-eWYEkM9PxFNsJM1KoGyC@GgEt z`40-;Rhl+KT0f%jg2F|GzQV64yrb}U##_c1{=~ssaV+(Bqm}EH7^d7*D{c}G;@hb& zQNE+(w<*gw;%H(HkMOsQKC&iTUC1-mIaB()is#Wm-FH;$i^rDH!_|B>wjKLtYBpJW zDbMds#E;OArHsY&7=Q$2Vce zB%ap1Sn*;POoXAR6upg$t|t~n5VG4u#3#R4kHnU7k0GAXny*(Qw<4^3H4=eeD~RB_ z>xd9f)!oweC|SR<=!S056WhARwAs2B)q@8Z76Q8@Dt55;fIfb0BXG;B(OwgYD%G6_ z7#Ks%u5Rq@k@c%9Zn+-VlCZtzoCux3tv%Sd;6^*wl#r5h?Q+!*Bi9L$6UBPDY&R`E z)^Tg${U%qtsFZ>7Rs>sI#tIeQyzuOGC579OCig%sFmj8o=SDl0+4L;I4!EBs6Xs_j z?>V0lVONwW3i)w@d4WilcxzdgB|@-~9OxqHjI(g*PW}X8PKHi1uH+w6u79 z`2MX_YbQ5N;72&AYEkQ}-3+@LX$K zsyp9(nO_^mVFPW0{08F(IBB4-IN}VRSsAqlhR+NQ4Ga&aM+VNNM@I*ShR%)%an8wP zis$$}r#A7U2D-D2H^_YJb<@nG(<4B)fsW><1?`+i^`Q{|9Q}mc^A}Q&UJdLT@8Q(C zBhKm1r@#67Z|_87FH4`Pk1tKs z0uhGhr0uNLYvIzx{H2L$bHJS0FeiO~Z7Iv=aw)rN*SN`WPh86OE;R+ZK94q!Pd?Gu6E#9acVR{uw>~3^U~<2b{l?eH;Ec&K@$A zl!;`mX`U%&y)wmhXpxDk$N;7VjV ze2G|LU*=%{b}ox{8Hc=2a*S!pWz{=NMrurbW#nb7GIsFHyjy4T%x&_MQ7kac!KOZ3}^;41DXNNfM!55pc&8%Xa@eb88DOo8RuUYbkPiG1~dbj c0nLDBKr^5j&Gy|Fe&46a$|C51#0sDQSWdHyG literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-6/bin/Debug/Exercise 12-6.pdb b/Code/Chapter 12/C#/Exercise 12-6/bin/Debug/Exercise 12-6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a86b7310af6e5b8465f268f0c02e35a223addba0 GIT binary patch literal 13824 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 + + + + + + + + + diff --git a/Code/Chapter 12/C#/Exercise 12-6/obj/Debug/Exercise 12-6.exe b/Code/Chapter 12/C#/Exercise 12-6/obj/Debug/Exercise 12-6.exe new file mode 100644 index 0000000000000000000000000000000000000000..ec9f59bee44eba49f38c35344ca86bcce09ab2fa GIT binary patch literal 16384 zcmeHNU2Ggz75--9*v^lw*rrV)`ZK{sI8i)WuYZ!@1Z?j*?G`(BypGcrBWHH@dOh{* z&UR)tu?vcfR6yYYwE`rBK!B)3N`!>?5mgZnRDDcDd4LC=@`Qwhio^p#2(^6o&aCaV zLj;e|dsp+_bI&>V-gCd1xqI%~Gta+*eE?c`z5hP&25VWy6+Rp`Y3_XT%})I6z`YZ1 z7}NJoEUdbrSquDfU{_4Xu2%iXEDAHIS53ES=4K0K#V-k~qvK#-GW6UOFm3F^OIN&X zW48O~G!7ZaoB9F^9!DL0dj9ZpQjZHRWKNhZwYBp56QE!=*&ubj_s+7io zeo4gcat%04-4Xgdw%hiwwh3?rTcw@tr?*;w6^ZqT?Un-s+Ek25+-#|00@th{3>>yp zY~vK9kI8FC8E5oXAUvOrGFDvUCH>O8c9d~oaz|5(ngPv#WwX$t#s+XPnI0E2B_t*rj5(v#kYGwi{>T?mM^;~|ft2M^w)+!A(C zJk-|ece6&@alc2^{)c4M>OUf@Q&#XKyKPGUQ%|J&AEojXCJWC@8Y-&zjC(y}rLB?l znT(u_aeKtGDWLZz@EYqDp5=QBQQ%g~q4c=DA9$N}@09{Pu1X${d!M?J&$0d-+kckr zNzX5`mW4wYS07119?$U)V+ag`5y?v0l*}o%bRCH-eWYEkM9PxFNsJM1KoGyC@GgEt z`40-;Rhl+KT0f%jg2F|GzQV64yrb}U##_c1{=~ssaV+(Bqm}EH7^d7*D{c}G;@hb& zQNE+(w<*gw;%H(HkMOsQKC&iTUC1-mIaB()is#Wm-FH;$i^rDH!_|B>wjKLtYBpJW zDbMds#E;OArHsY&7=Q$2Vce zB%ap1Sn*;POoXAR6upg$t|t~n5VG4u#3#R4kHnU7k0GAXny*(Qw<4^3H4=eeD~RB_ z>xd9f)!oweC|SR<=!S056WhARwAs2B)q@8Z76Q8@Dt55;fIfb0BXG;B(OwgYD%G6_ z7#Ks%u5Rq@k@c%9Zn+-VlCZtzoCux3tv%Sd;6^*wl#r5h?Q+!*Bi9L$6UBPDY&R`E z)^Tg${U%qtsFZ>7Rs>sI#tIeQyzuOGC579OCig%sFmj8o=SDl0+4L;I4!EBs6Xs_j z?>V0lVONwW3i)w@d4WilcxzdgB|@-~9OxqHjI(g*PW}X8PKHi1uH+w6u79 z`2MX_YbQ5N;72&AYEkQ}-3+@LX$K zsyp9(nO_^mVFPW0{08F(IBB4-IN}VRSsAqlhR+NQ4Ga&aM+VNNM@I*ShR%)%an8wP zis$$}r#A7U2D-D2H^_YJb<@nG(<4B)fsW><1?`+i^`Q{|9Q}mc^A}Q&UJdLT@8Q(C zBhKm1r@#67Z|_87FH4`Pk1tKs z0uhGhr0uNLYvIzx{H2L$bHJS0FeiO~Z7Iv=aw)rN*SN`WPh86OE;R+ZK94q!Pd?Gu6E#9acVR{uw>~3^U~<2b{l?eH;Ec&K@$A zl!;`mX`U%&y)wmhXpxDk$N;7VjV ze2G|LU*=%{b}ox{8Hc=2a*S!pWz{=NMrurbW#nb7GIsFHyjy4T%x&_MQ7kac!KOZ3}^;41DXNNfM!55pc&8%Xa@eb88DOo8RuUYbkPiG1~dbj c0nLDBKr^5j&Gy|Fe&46a$|C51#0sDQSWdHyG literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-6/obj/Debug/Exercise 12-6.pdb b/Code/Chapter 12/C#/Exercise 12-6/obj/Debug/Exercise 12-6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a86b7310af6e5b8465f268f0c02e35a223addba0 GIT binary patch literal 13824 zcmeHNU2GIp6uw((=?|@L#fo5>5oo9d_NUgCACqo(TeQ-(U@?N(*lwp&*>rcO&Mu*i zJd8?=51L>iiA0SUi9SGl!SEoGU;>RABTxyppcOWA zfAc^C#YHQ|#$8&p8VLOT`=VXDyYTVxvhRYPP4r{;IRL8==si;>#AtE*nVwJ6p$mPlb)32u zzVxc`*%59V($@D5{PWcIk1m&ge|Xbq->LdC)GY(bfeOG2@ZNg?m*$@a!p@W=pE^T6 z1GFC#jAb|curvIp||ysOTV1=;C27D zi1*W1Fg_GHEnC2A0rve$rgGPAlqnAZlxcvZA5fTjuZg-4Kw0j+xO8cjH86H{>?&thkUPm4v?#M*{5Lrr8fC0M_)F}B0d zUozq;pPCUu-4cu2?Nh_be%%;|sX6UcwpZ80v>VzFPPXSh3IW_BB+hGzRdRpsmIio6 zO>}sHZ+ZJHznWjAC$lNmxMa&bD=l@|EXpYZ+n{+=)IIa%t z8_dMEwLjC+p=?y5!%A4!2OJmV_!PRNX}pmposrV(^wyt9$CKy{&Z(EZ*$!#4x9NP- zQmBXfIs{NvBoknaBHd%N1@}vz>l1Z+Jr}jk!kThcfhsGkTcT(@k%p{FEb+44H9+1= zd8t_IeXeUblhsn9da~?`=*gs}W)pfk<9kv|Yeqs9l{xZV+E5nF#Y)yiP2DUx6OZy zoZRzs`&Tt31*eaH(Ze=T(Fz%!XV8f2W4?mEjkaYwsi(KtF^D-1Nr+QL)P*JTscKd? zaQ_U(@eCI-Pl9$u9OF-vhn!A5sFnIHMjg~(5ppUf$Eg5keg!!dliy@8UsC~xLQMMK zN^n2;{osw@%fXk5V%TX15C+x(n*jw_B`D+g0l;31XJU=i!&-oZb(^K&SFVnszk^oY zU-;!5P3y|moq}=$&;j%Tk`!6E3Fo@M^$P4oFBS^)O{zY3$zqR&|i1V};p+#1UlZ-5a!!f}F-SBXb+>I03| z{f|K~|A{Uwuc=y8Shj)55a%PE(e>SJ>8vr_y+co=5tS<)n{q3Ag#7>@?P=FJ_H^x^ z*ZX9VE-vrSzk-;5t1u;>4XA`-+{f6QSMmA3H+A0Ip9_SW7w3RYfc(aD3}qA84RC)j z562h55`fSCd>`&j>gs^-XAITfpGayM|19MHI0pAvH9%r;V%=(hV{&ZyuFZM5bY~jC zyP@?QcMhEPf89CY$51u_+P@Y^;{3M)A%On}$o;^!v<==fZ`c>yQ||YFC}9B*&-?z8 zp!MAcXY0)}v2J9Us1rSy`xC$h-~&KX6$%eo7gx^8I{WMJr01*-`3;8jjJ6PY{=yN_Mh=$EgftH3QJX3D`(s$iyK9LKN3h`;L#dR|oD z4^t( + + Debug + AnyCPU + 8.0.50727 + 2.0 + {865EDCB6-B43C-461C-9771-353020FCBCC4} + Exe + Properties + Exercise_12_7 + Exercise 12-7 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-7/Exercise 12-7.csproj.user b/Code/Chapter 12/C#/Exercise 12-7/Exercise 12-7.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-7/Exercise 12-7.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-7/Program.cs b/Code/Chapter 12/C#/Exercise 12-7/Program.cs new file mode 100644 index 0000000..936800c --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-7/Program.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using Microsoft.Data.SqlXml; +using System.IO; + +namespace Exercise_12_7 +{ + class Program + { + private static string connectionString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI"; + static void Main(string[] args) + { + SqlXmlCommand cmd = new SqlXmlCommand(connectionString); + cmd.CommandText = "Person.Contact"; + cmd.CommandType = SqlXmlCommandType.XPath; + cmd.SchemaPath = "Person.Contact.xsd"; + cmd.ClientSideXml = true; + cmd.RootTag = "Person.Contact"; + + SqlXmlAdapter da = new SqlXmlAdapter(cmd) ; + DataSet ds = new DataSet(); + try + { + // Fill the dataset + da.Fill(ds); + // Make some change + ds.Tables[0].Rows[1]["LastName"] = "Unabel"; + // Update the data back to the database. + da.Update(ds.GetChanges()); + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + } +} \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12-7/Properties/AssemblyInfo.cs b/Code/Chapter 12/C#/Exercise 12-7/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..fdcac16 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-7/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise 12-7")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise 12-7")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("cec3cb3e-bd6c-44fb-a80f-3432724223df")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 12/C#/Exercise 12-7/bin/Debug/Exercise 12-7.exe b/Code/Chapter 12/C#/Exercise 12-7/bin/Debug/Exercise 12-7.exe new file mode 100644 index 0000000000000000000000000000000000000000..2faf091d94a0569c2a8f3a5d8daf79c4e73337b7 GIT binary patch literal 16384 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 + + + + + + + + diff --git a/Code/Chapter 12/C#/Exercise 12-7/obj/Debug/Exercise 12-7.exe b/Code/Chapter 12/C#/Exercise 12-7/obj/Debug/Exercise 12-7.exe new file mode 100644 index 0000000000000000000000000000000000000000..2faf091d94a0569c2a8f3a5d8daf79c4e73337b7 GIT binary patch literal 16384 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 YQ5Y4(Y1$O=I@1(GOPgYdvrLQs0AT#`RR910 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12-7/obj/Exercise 12-7.csproj.FileList.txt b/Code/Chapter 12/C#/Exercise 12-7/obj/Exercise 12-7.csproj.FileList.txt new file mode 100644 index 0000000..f696973 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12-7/obj/Exercise 12-7.csproj.FileList.txt @@ -0,0 +1,5 @@ +obj\Debug\ResolveAssemblyReference.cache +bin\Debug\Exercise 12-7.exe +bin\Debug\Exercise 12-7.pdb +obj\Debug\Exercise 12-7.exe +obj\Debug\Exercise 12-7.pdb diff --git a/Code/Chapter 12/C#/Exercise 12.1/Exercise 12-1.csproj b/Code/Chapter 12/C#/Exercise 12.1/Exercise 12-1.csproj new file mode 100644 index 0000000..6494770 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12.1/Exercise 12-1.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {14FBB501-C5CD-4450-9CD6-4286AD6CD71A} + Exe + Exercise_12_1 + Exercise 12.1 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12.1/Exercise 12-1.csproj.user b/Code/Chapter 12/C#/Exercise 12.1/Exercise 12-1.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12.1/Exercise 12-1.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12.1/Program.cs b/Code/Chapter 12/C#/Exercise 12.1/Program.cs new file mode 100644 index 0000000..65f7e38 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12.1/Program.cs @@ -0,0 +1,48 @@ +#region Using directives +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Xml; +using System.IO ; +#endregion + +namespace Exercise_12_1 +{ + class Program + { + private static string connectionString = "Server=(local);Database=AdventureWorks;Integrated Security=SSPI"; + static void Main(string[] args) + { + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = testConnection.CreateCommand(); testCommand.CommandText = + "SELECT " + + "LOGINID, TITLE, " + + " HUMANRESOURCES.DEPARTMENT.DEPARTMENTID, HUMANRESOURCES.DEPARTMENT.NAME " + + "FROM " + + " HUMANRESOURCES.EMPLOYEE " + + " INNER JOIN HUMANRESOURCES.DEPARTMENT ON " + + " HUMANRESOURCES.EMPLOYEE.DEPARTMENTID = HUMANRESOURCES.DEPARTMENT.DEPARTMENTID " + + "WHERE HUMANRESOURCES.DEPARTMENT.DEPARTMENTID = 7 " + + "FOR XML RAW, XMLDATA"; + + testConnection.Open(); + XmlReader xrdr = testCommand.ExecuteXmlReader(); + StreamWriter sw = new StreamWriter("Output.xml"); + sw.WriteLine(""); + + while (xrdr.Read()) + { + sw.WriteLine(xrdr.ReadOuterXml()); + } + + sw.WriteLine(""); + sw.Close(); + xrdr.Close(); + testConnection.Close(); + } + } + } +} \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12.1/Properties/AssemblyInfo.cs b/Code/Chapter 12/C#/Exercise 12.1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d5571b4 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12.1/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_12_1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_12_1")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 12/C#/Exercise 12.1/Properties/Resources.cs b/Code/Chapter 12/C#/Exercise 12.1/Properties/Resources.cs new file mode 100644 index 0000000..3f94f86 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12.1/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_12_1.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 12/C#/Exercise 12.1/Properties/Resources.resx b/Code/Chapter 12/C#/Exercise 12.1/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12.1/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12.1/Properties/Settings.cs b/Code/Chapter 12/C#/Exercise 12.1/Properties/Settings.cs new file mode 100644 index 0000000..3e00fa9 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12.1/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_12_1.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 12/C#/Exercise 12.1/Properties/Settings.settings b/Code/Chapter 12/C#/Exercise 12.1/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12.1/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 12/C#/Exercise 12.1/bin/Debug/Exercise 12.1.exe b/Code/Chapter 12/C#/Exercise 12.1/bin/Debug/Exercise 12.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..d683e3d8ff5ab1181cd4ddc0d98c4160624fb207 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12.1/bin/Debug/Exercise 12.1.pdb b/Code/Chapter 12/C#/Exercise 12.1/bin/Debug/Exercise 12.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a3e07f41e879efc66d927eda50405413b0070002 GIT binary patch literal 22016 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12.1/bin/Debug/Exercise 12.1.vshost.exe b/Code/Chapter 12/C#/Exercise 12.1/bin/Debug/Exercise 12.1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12-1.csproj.GenerateResource.Cache b/Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12-1.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..8b4f5f10324ceed8321b5388bd8e84e7bf15ecd1 GIT binary patch literal 784 zcma)3OG*Pl5S^GzzAAAcBDx6TLNE-8BDx8J5kIKl4{_n9GhKsCI@6)6M-tZx9>d#s z1TWzov?{1b9K;%UGgDpt>Qy~2<9XgY1;05aCkU=jRA>#F$OSuz(lWRd*u{G73M?uU zx7LCNKlNHW(JryjiXm}U=z8rm>1Y)m!SK>_A#QaV>(NHE88w@7qaoIX&uvyx*@JVy zeTa9V53z(eRDdj{WC5@Dlm?vZ2!vx5cR}+1uCfq1V~4rSQaa%{)rc-joMoT!AGcWT zr2L^MyLd4~2fd(ew5Im73=9qg-a66IFlvyaJ2{3wOAAy`J~l$`2_B;Gx!Gdd^!mbr ztukrbNI13TPD!vuPF$#a$kB2!eZ=+W!H8Pp^R?*)c zAMGEBX*cl8II?R)_sm#cs5{u+vo*!NxC#GMXGBcdw GsC)o&AL!8l literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12.1.csproj.GenerateResource.Cache b/Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12.1.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..8b4f5f10324ceed8321b5388bd8e84e7bf15ecd1 GIT binary patch literal 784 zcma)3OG*Pl5S^GzzAAAcBDx6TLNE-8BDx8J5kIKl4{_n9GhKsCI@6)6M-tZx9>d#s z1TWzov?{1b9K;%UGgDpt>Qy~2<9XgY1;05aCkU=jRA>#F$OSuz(lWRd*u{G73M?uU zx7LCNKlNHW(JryjiXm}U=z8rm>1Y)m!SK>_A#QaV>(NHE88w@7qaoIX&uvyx*@JVy zeTa9V53z(eRDdj{WC5@Dlm?vZ2!vx5cR}+1uCfq1V~4rSQaa%{)rc-joMoT!AGcWT zr2L^MyLd4~2fd(ew5Im73=9qg-a66IFlvyaJ2{3wOAAy`J~l$`2_B;Gx!Gdd^!mbr ztukrbNI13TPD!vuPF$#a$kB2!eZ=+W!H8Pp^R?*)c zAMGEBX*cl8II?R)_sm#cs5{u+vo*!NxC#GMXGBcdw GsC)o&AL!8l literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12.1.exe b/Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..d683e3d8ff5ab1181cd4ddc0d98c4160624fb207 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12.1.pdb b/Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise 12.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a3e07f41e879efc66d927eda50405413b0070002 GIT binary patch literal 22016 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise_12_1.Properties.Resources.resources b/Code/Chapter 12/C#/Exercise 12.1/obj/Debug/Exercise_12_1.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYx&l%Z3v*0DN#Sf%GGzL1B1PraBnw)M=AS;KD3AMZ$ia{)P+3B0^LLOzqqeu1 zNI(;aW#zNiCUmtrp8V^@$|D*kmq+1DlgOel37EPgKlOXycTjV3D2fzGc{b%;+EQ`| zDn>?qBv~d3DRhz7y<%DnL!1JNBIQ#xdj`cy{-lyaHj0tfpDq9d8|-BQ-vmr8I>r~8d4^Us5o;Z=22KQXytgG zu@^Ss0W9LW(&MMQ$cv+c*9%AYJfa7%7@~-9E0<5$1=I1m40y;PxOl<`dtArbMw({K z^a3wXlSJ63_dh;N&3@fCEo%P8d)^tt6%m_lQxsC eh*&f3efwNX&9tl3OjH;jAI{$*^BlEEU;Yo*oJ)!T literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/C#/Exercise 12.1/obj/Exercise 12-1.csproj.FileList.txt b/Code/Chapter 12/C#/Exercise 12.1/obj/Exercise 12-1.csproj.FileList.txt new file mode 100644 index 0000000..4a7a7cf --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12.1/obj/Exercise 12-1.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Exercise 12.1.exe +.\bin\Debug\Exercise 12.1.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_12_1.Properties.Resources.resources +obj\Debug\Exercise 12-1.csproj.GenerateResource.Cache +obj\Debug\Exercise 12.1.exe +obj\Debug\Exercise 12.1.pdb diff --git a/Code/Chapter 12/C#/Exercise 12.1/obj/Exercise 12.1.csproj.FileList.txt b/Code/Chapter 12/C#/Exercise 12.1/obj/Exercise 12.1.csproj.FileList.txt new file mode 100644 index 0000000..4e28710 --- /dev/null +++ b/Code/Chapter 12/C#/Exercise 12.1/obj/Exercise 12.1.csproj.FileList.txt @@ -0,0 +1,7 @@ +obj\Debug\Exercise 12.1.exe +obj\Debug\Exercise 12.1.pdb +.\bin\Debug\Exercise 12.1.exe +.\bin\Debug\Exercise 12.1.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_12_1.Properties.Resources.resources +obj\Debug\Exercise 12.1.csproj.GenerateResource.Cache diff --git a/Code/Chapter 12/SQL/ForXMLExplicit.sql b/Code/Chapter 12/SQL/ForXMLExplicit.sql new file mode 100644 index 0000000..1a8abbc --- /dev/null +++ b/Code/Chapter 12/SQL/ForXMLExplicit.sql @@ -0,0 +1,91 @@ +-- Drop from bottom to top of hierarchy. This insures that +-- the child FOREIGN KEY to parent's primary key references +-- are cleaned up so the parent can then be dropped +IF EXISTS (SELECT * FROM dbo.sysobjects + WHERE id = OBJECT_ID(N'[dbo].[ChildOfSon]') AND + OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [dbo].[ChildOfSon] +GO +IF EXISTS (SELECT * FROM dbo.sysobjects + WHERE id = OBJECT_ID(N'[dbo].[Daughter]') AND + OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [dbo].[Daughter] +GO +IF EXISTS (SELECT * FROM dbo.sysobjects + WHERE id = OBJECT_ID(N'[dbo].[Son]') AND + OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [dbo].[Son] +GO +IF EXISTS (SELECT * FROM dbo.sysobjects + WHERE id = OBJECT_ID(N'[dbo].[GrandParent]') AND + OBJECTPROPERTY(id, N'IsUserTable') = 1) + DROP TABLE [dbo].[GrandParent] +GO +CREATE TABLE [dbo].[GrandParent] ( + [GrandParentID] [INT] PRIMARY KEY , + [GrandParentName] [NCHAR] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [Diary] [NVARCHAR](3000) +) ON [PRIMARY] +GO +CREATE TABLE [dbo].[Son] ( + [SonID] [INT] PRIMARY KEY , + [GrandParentID] [INT] NOT NULL + REFERENCES GrandParent(GrandParentID), + [SonName] [NCHAR] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [PermanentRecord] [NVARCHAR](3000) +) ON [PRIMARY] +GO +CREATE TABLE [dbo].[Daughter] ( + [DaughterID] [INT] PRIMARY KEY , + [GrandParentID] [INT] NOT NULL + REFERENCES GrandParent(GrandParentID), + [DaughterName] [NCHAR] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [SomeData] [NVARCHAR](3000) +) ON [PRIMARY] +GO +GO +CREATE TABLE [dbo].[ChildOfSon] ( + [ChildOfSonID] [INT] PRIMARY KEY , + [SonID] [INT] NOT NULL + REFERENCES Son(SonID), + [ChildOfSonName] [NCHAR] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [GrandKidData] [NVARCHAR](3000) +) ON [PRIMARY] +GO +INSERT INTO GrandParent (GrandParentID, GrandParentName, Diary) +VALUES (1, 'Jeb', ' ChapNum="1" Body="They call me Ishmael" ChapNum="2" Body="Whale sinks"') +GO +INSERT INTO GrandParent (GrandParentID, GrandParentName, Diary) +VALUES (2, 'Olivia', ' ChapNum="1" Body="It was the best of times" ChapNum="2" Body="If is a far, far"') +GO +INSERT INTO GrandParent (GrandParentID, GrandParentName, Diary) +VALUES (3, 'Rex', ' ChapNum="1" Body="Dad takes over spice world" ChapNum="2" Body="Revenge"') +GO +INSERT INTO Son (SonID, GrandParentID, SonName, PermanentRecord) +VALUES (1, 2, 'Luke', ' ChapNum="1" Body="A new hope" ChapNum="2" Body="Exploding Death Star"') +GO +INSERT INTO Son (SonID, GrandParentID, SonName, PermanentRecord) +VALUES (2, 2, 'Darth', ' ChapNum="1" Body="Bye, Bye ice planet" ChapNum="2" Body="Luke, you are my son"') +GO +INSERT INTO Son (SonID, GrandParentID, SonName, PermanentRecord) +VALUES (3, 1, 'Han', ' ChapNum="1" Body="Bye, Bye Yoda" ChapNum="2" Body="Yet another Death Star, boom boom"') +GO +INSERT INTO Daughter (DaughterID, GrandParentID, DaughterName, SomeData) +VALUES (1, 1, 'Sade', 'abcd<>''') +GO +INSERT INTO Daughter (DaughterID, GrandParentID, DaughterName, SomeData) +VALUES (2, 2, 'Avril', 'efg><''''&&&"...') +GO +INSERT INTO Daughter (DaughterID, GrandParentID, DaughterName, SomeData) +VALUES (3, 2, 'Sonya', '<><><><><>') +GO +INSERT INTO ChildOfSon (ChildOfSonID, SonID, ChildOfSonName, GrandKidData) +VALUES (1, 1, 'Jasmine', '%%%%%%%%%%') +GO +INSERT INTO ChildOfSon (ChildOfSonID, SonID, ChildOfSonName, GrandKidData) +VALUES (2, 1, 'Sophia', '"/?%#') +GO +INSERT INTO ChildOfSon (ChildOfSonID, SonID, ChildOfSonName, GrandKidData) +VALUES (3, 3, 'Kyle', '?????"""???') + + diff --git a/Code/Chapter 12/SQL/OpenXMLDemo.sql b/Code/Chapter 12/SQL/OpenXMLDemo.sql new file mode 100644 index 0000000..9459451 --- /dev/null +++ b/Code/Chapter 12/SQL/OpenXMLDemo.sql @@ -0,0 +1,29 @@ +DECLARE @newRegions NVARCHAR(2048) +SET @newRegions = N' + + + +' + +EXEC RegionInsert @newRegions +GO + +DECLARE @newRegions NVARCHAR(2048) +SET @newRegions = N' + + + +' + +EXEC RegionUpdate @newRegions + +GO + +DECLARE @newRegions NVARCHAR(2048) +SET @newRegions = N' + + + +' + +EXEC RegionDelete @newRegions diff --git a/Code/Chapter 12/SQL/OpenXMLSP.sql b/Code/Chapter 12/SQL/OpenXMLSP.sql new file mode 100644 index 0000000..f7e697f --- /dev/null +++ b/Code/Chapter 12/SQL/OpenXMLSP.sql @@ -0,0 +1,57 @@ +CREATE DATABASE TEST +GO + +USE TEST +GO + +CREATE TABLE Region +( +RegionID INT PRIMARY KEY, +RegionDescription VARCHAR(3000) +) +GO + +-- XML Document is of the form +-- +-- region elements here +-- region elements here +-- ... +-- +CREATE PROCEDURE RegionInsert @xmlDoc NVARCHAR(4000) AS +DECLARE @docIndex INT +EXECUTE sp_xml_preparedocument @docIndex OUTPUT, @xmlDoc + +-- 1 is ATTRIBUTE-centric mapping +INSERT Region +SELECT RegionID, RegionDescription +FROM OPENXML(@docIndex, N'/Top/Region', 1) WITH Region + +EXECUTE sp_xml_removedocument @docIndex + +GO + +CREATE PROCEDURE RegionUpdate @xmlDoc NVARCHAR(4000) AS + + DECLARE @docIndex INT + + EXECUTE sp_xml_preparedocument @docIndex OUTPUT, @xmlDoc + + UPDATE Region + SET Region.RegionDescription = XMLRegion.RegionDescription + FROM OPENXML(@docIndex, N'/Top/Region',1) WITH Region AS XMLRegion + WHERE Region.RegionID = XMLRegion.RegionID + + EXECUTE sp_xml_removedocument @docIndex + +GO + +CREATE PROCEDURE RegionDelete @xmlDoc NVARCHAR(4000) AS + DECLARE @docIndex INT + + EXECUTE sp_xml_preparedocument @docIndex OUTPUT, @xmlDoc + + DELETE Region + FROM OPENXML(@docIndex, N'/Top/Region', 1) WITH Region AS XMLRegion + WHERE Region.RegionID=XMLRegion.RegionID + + EXECUTE sp_xml_removedocument @docIndex diff --git a/Code/Chapter 12/VB.NET/Chapter 12.sln b/Code/Chapter 12/VB.NET/Chapter 12.sln new file mode 100644 index 0000000..29b34f2 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Chapter 12.sln @@ -0,0 +1,56 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 12-2", "Exercise 12-2\Exercise 12-2.vbproj", "{E4616B56-1C1A-4E3D-82EC-D3124C6E5BDE}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 12-1", "Exercise 12-1\Exercise 12-1.vbproj", "{8806B130-9DD9-484C-8934-724D705823D7}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 12-3", "Exercise 12-3\Exercise 12-3.vbproj", "{3321276C-7796-4052-9CD3-C3103F7B778A}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 12-4", "Exercise 12-4\Exercise 12-4.vbproj", "{28D41A26-D40F-4E08-A817-FE5CB1C3877C}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 12-5", "Exercise 12-5\Exercise 12-5.vbproj", "{4AAF80AD-66A3-4880-9001-1AE05B43649E}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 12-6", "Exercise 12-6\Exercise 12-6.vbproj", "{27A09A4D-AB44-460F-B415-193B731F3FEC}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 12-7", "Exercise 12-7\Exercise 12-7.vbproj", "{795224C8-8BD0-4FC1-B20A-C4B5FEAAD001}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E4616B56-1C1A-4E3D-82EC-D3124C6E5BDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4616B56-1C1A-4E3D-82EC-D3124C6E5BDE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4616B56-1C1A-4E3D-82EC-D3124C6E5BDE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4616B56-1C1A-4E3D-82EC-D3124C6E5BDE}.Release|Any CPU.Build.0 = Release|Any CPU + {8806B130-9DD9-484C-8934-724D705823D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8806B130-9DD9-484C-8934-724D705823D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8806B130-9DD9-484C-8934-724D705823D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8806B130-9DD9-484C-8934-724D705823D7}.Release|Any CPU.Build.0 = Release|Any CPU + {3321276C-7796-4052-9CD3-C3103F7B778A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3321276C-7796-4052-9CD3-C3103F7B778A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3321276C-7796-4052-9CD3-C3103F7B778A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3321276C-7796-4052-9CD3-C3103F7B778A}.Release|Any CPU.Build.0 = Release|Any CPU + {28D41A26-D40F-4E08-A817-FE5CB1C3877C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28D41A26-D40F-4E08-A817-FE5CB1C3877C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28D41A26-D40F-4E08-A817-FE5CB1C3877C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28D41A26-D40F-4E08-A817-FE5CB1C3877C}.Release|Any CPU.Build.0 = Release|Any CPU + {4AAF80AD-66A3-4880-9001-1AE05B43649E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4AAF80AD-66A3-4880-9001-1AE05B43649E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4AAF80AD-66A3-4880-9001-1AE05B43649E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4AAF80AD-66A3-4880-9001-1AE05B43649E}.Release|Any CPU.Build.0 = Release|Any CPU + {27A09A4D-AB44-460F-B415-193B731F3FEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27A09A4D-AB44-460F-B415-193B731F3FEC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27A09A4D-AB44-460F-B415-193B731F3FEC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27A09A4D-AB44-460F-B415-193B731F3FEC}.Release|Any CPU.Build.0 = Release|Any CPU + {795224C8-8BD0-4FC1-B20A-C4B5FEAAD001}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {795224C8-8BD0-4FC1-B20A-C4B5FEAAD001}.Debug|Any CPU.Build.0 = Debug|Any CPU + {795224C8-8BD0-4FC1-B20A-C4B5FEAAD001}.Release|Any CPU.ActiveCfg = Release|Any CPU + {795224C8-8BD0-4FC1-B20A-C4B5FEAAD001}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 12/VB.NET/Chapter 12.suo b/Code/Chapter 12/VB.NET/Chapter 12.suo new file mode 100644 index 0000000000000000000000000000000000000000..2463c5da95e8a033e19cb1c91891d6ab918e8acd GIT binary patch literal 49152 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 + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {8806B130-9DD9-484C-8934-724D705823D7} + Exe + Exercise_12_1.Module1 + Exercise_12_1 + Exercise 12-1 + Console + + + true + full + true + true + bin\Debug\ + Exercise 12-1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise 12-1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/Exercise 12-1.vbproj.user b/Code/Chapter 12/VB.NET/Exercise 12-1/Exercise 12-1.vbproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-1/Exercise 12-1.vbproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/Module1.vb b/Code/Chapter 12/VB.NET/Exercise 12-1/Module1.vb new file mode 100644 index 0000000..1a2a91c --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-1/Module1.vb @@ -0,0 +1,39 @@ +Imports System.Data +Imports System.Text +Imports System.Data.SqlClient +Imports System.Xml +Imports System.IO + +Module Module1 + Private strConnection As String = "Server=(local);Database=AdventureWorks;Integrated Security=SSPI" + + Sub Main() + Using testConnection As SqlConnection = New SqlConnection(strConnection) + Dim testCommand As SqlCommand = testConnection.CreateCommand() + testCommand.CommandText = _ + "SELECT " & _ + "LOGINID, TITLE, " & _ + " HUMANRESOURCES.DEPARTMENT.DEPARTMENTID, HUMANRESOURCES.DEPARTMENT.NAME " & _ + "FROM " & _ + " HUMANRESOURCES.EMPLOYEE " & _ + " INNER JOIN HUMANRESOURCES.DEPARTMENT ON " & _ + " HUMANRESOURCES.EMPLOYEE.DEPARTMENTID = HUMANRESOURCES.DEPARTMENT.DEPARTMENTID " & _ + "WHERE HUMANRESOURCES.DEPARTMENT.DEPARTMENTID = 7 " & _ + "FOR XML RAW, XMLDATA" + + testConnection.Open() + Dim xrdr As XmlReader = testCommand.ExecuteXmlReader() + Dim sw As StreamWriter = New StreamWriter("Output.xml") + + sw.WriteLine("") + While xrdr.Read() + sw.WriteLine(xrdr.ReadOuterXml()) + End While + sw.WriteLine("") + + sw.Close() + xrdr.Close() + testConnection.Close() + End Using + End Sub +End Module diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Application.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Application.Designer.vb new file mode 100644 index 0000000..c5978d6 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Application.myapp b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/AssemblyInfo.vb b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..ccdc0c9 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Resources.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Resources.Designer.vb new file mode 100644 index 0000000..9c2ab9e --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_12_1.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Resources.resx b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Settings.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Settings.Designer.vb new file mode 100644 index 0000000..2a027ba --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_12_1.Settings + Get + Return Global.Exercise_12_1.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Settings.settings b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-1/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/bin/Debug/Exercise 12-1.exe b/Code/Chapter 12/VB.NET/Exercise 12-1/bin/Debug/Exercise 12-1.exe new file mode 100644 index 0000000000000000000000000000000000000000..052576c50d33d07eb375f9b76ffd5c25943e3e72 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/bin/Debug/Exercise 12-1.vshost.exe b/Code/Chapter 12/VB.NET/Exercise 12-1/bin/Debug/Exercise 12-1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + +Exercise12-1 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/obj/Debug/Exercise 12-1.exe b/Code/Chapter 12/VB.NET/Exercise 12-1/obj/Debug/Exercise 12-1.exe new file mode 100644 index 0000000000000000000000000000000000000000..052576c50d33d07eb375f9b76ffd5c25943e3e72 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/obj/Debug/Exercise 12-1.vbproj.GenerateResource.Cache b/Code/Chapter 12/VB.NET/Exercise 12-1/obj/Debug/Exercise 12-1.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..e0c60b71b8ab3c7a24d293ee1f4e822fcd4cb8ca GIT binary patch literal 784 zcma)3OG*Pl5S^Gzz6x<6L39zsgt#2R=rQ(gV)RXr!;IL_K#x4St#UEfm5Kx|Lo3~v-$pM}YGg9+ zt)jm@#@e@s346XA5QJg~b7OfeFzOkp0tIqr> + + + +Exercise12-1 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-1/obj/Debug/Exercise_12_1.Resources.resources b/Code/Chapter 12/VB.NET/Exercise 12-1/obj/Debug/Exercise_12_1.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/Exercise 12-2.vbproj b/Code/Chapter 12/VB.NET/Exercise 12-2/Exercise 12-2.vbproj new file mode 100644 index 0000000..ca49367 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/Exercise 12-2.vbproj @@ -0,0 +1,136 @@ + + + Local + 8.0.50215 + 2.0 + {E4616B56-1C1A-4E3D-82EC-D3124C6E5BDE} + Debug + AnyCPU + + + + + Exercise_12_2 + + + None + JScript + Grid + IE50 + false + Exe + Binary + On + Off + Exercise_12_2 + Exercise_12_2.Module1 + Console + + + + + + + bin\ + Exercise_12_2.xml + 285212672 + + + + + true + true + true + false + false + false + false + 1 + 42016,42017,42018,42019,42032 + + + bin\ + Exercise_12_2.xml + 285212672 + + + + + false + true + false + false + false + false + false + 1 + 42016,42017,42018,42019,42032 + + + + System + + + System.Data + + + System.XML + + + + + + + + + + + + + Code + + + True + Application.myapp + + + True + True + Resources.resx + + + True + True + Settings.settings + + + Code + + + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + + My.Resources + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/Exercise 12-2.vbproj.user b/Code/Chapter 12/VB.NET/Exercise 12-2/Exercise 12-2.vbproj.user new file mode 100644 index 0000000..c929ff6 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/Exercise 12-2.vbproj.user @@ -0,0 +1,58 @@ + + + 8.0.50215 + Debug + AnyCPU + + + + + + + 0 + ProjectFiles + 0 + + + false + false + false + false + false + + + Project + + + + + + + + + + + true + + + false + false + false + false + false + + + Project + + + + + + + + + + + true + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/Module.vb b/Code/Chapter 12/VB.NET/Exercise 12-2/Module.vb new file mode 100644 index 0000000..0ad9da0 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/Module.vb @@ -0,0 +1,33 @@ +Imports System.Data +Imports System.Data.SqlClient + +Module Module1 + Private strConnection As String = "Server=(local);Database=Test;Integrated Security=SSPI" + Sub Main() + Dim strXMLDoc As String = _ + "" & _ + "" & _ + "" & _ + "" + + Dim sqlConnection As SqlConnection = New SqlConnection(strConnection) + Dim openXMLCommand As SqlCommand = New SqlCommand("RegionInsert", sqlConnection) + openXMLCommand.CommandType = CommandType.StoredProcedure + + Dim xmlDocParm As SqlParameter = _ + openXMLCommand.Parameters.Add("@xmlDoc", SqlDbType.NVarChar, 4000) + xmlDocParm.Value = strXMLDoc + + sqlConnection.Open() + openXMLCommand.ExecuteNonQuery() + + xmlDocParm.Value = strXMLDoc.Replace("Town", "state") + openXMLCommand.CommandText = "RegionUpdate" + openXMLCommand.ExecuteNonQuery() + + openXMLCommand.CommandText = "RegionDelete" + openXMLCommand.ExecuteNonQuery() + + sqlConnection.Close() + End Sub +End Module diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Application.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Application.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Application.myapp b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Application.myapp new file mode 100644 index 0000000..ab664c1 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Resources.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Resources.Designer.vb new file mode 100644 index 0000000..858ae28 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_12_2.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Resources.resx b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Resources.resx new file mode 100644 index 0000000..26a50bd --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Resources.resx @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Settings.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Settings.Designer.vb new file mode 100644 index 0000000..f43a9f4 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_12_2.Settings + Get + Return Global.Exercise_12_2.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Settings.settings b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Settings.settings new file mode 100644 index 0000000..049245f --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/My Project/Settings.settings @@ -0,0 +1,6 @@ + + + + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/OpenXMLDemo.sln b/Code/Chapter 12/VB.NET/Exercise 12-2/OpenXMLDemo.sln new file mode 100644 index 0000000..fa00ec9 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/OpenXMLDemo.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "OpenXMLDemo", "OpenXMLDemo.vbproj", "{E4616B56-1C1A-4E3D-82EC-D3124C6E5BDE}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {E4616B56-1C1A-4E3D-82EC-D3124C6E5BDE}.Debug.ActiveCfg = Debug|.NET + {E4616B56-1C1A-4E3D-82EC-D3124C6E5BDE}.Debug.Build.0 = Debug|.NET + {E4616B56-1C1A-4E3D-82EC-D3124C6E5BDE}.Release.ActiveCfg = Release|.NET + {E4616B56-1C1A-4E3D-82EC-D3124C6E5BDE}.Release.Build.0 = Release|.NET + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/OpenXMLDemo.suo b/Code/Chapter 12/VB.NET/Exercise 12-2/OpenXMLDemo.suo new file mode 100644 index 0000000000000000000000000000000000000000..d8e7b5a0845db01a81001851d68c337c2189b6a2 GIT binary patch literal 7680 zcmeHLO>h)N6n@K({AeKj7!(jkL4|wycC$HWuiQm_=o!uSSWp)#Puy|8%rhi`dd)@u|{mf6d zxBc?@*Smj}7@U!{a%X9iJkr#jLYb(bUt|pmtlwE$T8bJ)P<#jv&<^|wS=ZOka2>uI zfIRa}z>UDoz(;|P0sDYFYvM!rf9$}dcz8lFWL#W)eObgQCx-!9zkKJZJDuSAwOhM> zEZj`31=06ZD!@f>^yG@12lpA2#^q|%k?=hrYf?N3m?I@e!eK&s!jza2$ec`wjc+KI z@U|e6ZVw`|w(kS5g5=Np!f#u`rViRn-Yvp;aN-F#Qo#GF&f%+M^Dfz{f)GgGV795b}%;~lx8 zZMmU6V;AEiJa^vm1KV?3J9dDB_0p7GiOsZa!YkWF(`lt1$eQ7-RRQO_y83gWZ@cAI z`aPredsC(}XI!+amSek?k?|^3&xMR?eFM7xf?u4qg3!mzo~ye0vx~;1!16J|4Smm1 zjeY4N7d>fJJwKXZ>zFlf7ddZ(YHP+{3_{4>M7NGR$urt~IXhwGz^$UHePg!icx7X} zWQU$lg8r;mupP^owhG2s&#x%Pn_6m{TUXIHZM!9JA!v}VdwnW9!O6B{9J^ZZOuuAI zVt3fI;hg1KzUi>6Af*dEemQ;%UKu$hc^QKZElN!)u$}Z~ff%swu9WblWexGzsF%@` z2UgJQpk)rVEIglaj~VjtQS=A_=5`f*UeZ!Ui-op8j;pbHo)H|o?+c*jIxj=^2}o{X zJs#S-f%BLvhw)=|Ps|y8$gl_w^vnxbAzRwPVfa7#3~hzl(KWZzuIqY(Kjjaw8)dAB z9FuuM@K^r7SN`N$fX0;Zkn1$gAcPLhDrvNo?Z5QDDRk3+Qik@FjUL9-^p%7-f9|>k z8Rl@dp3)6!aeFuj{@c(^pPZCGL$BQw8W88t_=}MT_0Wa{Zb$C))lvM@&Hgj?((zB6 z|5>%>5>DU4srdJeg1|qe^OU6P=YD?*8c=1X?Olv>^*NW zdRP#iPadwU3Jur zqMc=IOWQ(=N}FiF1~K}sftuDbhqf9l9re$UA$bc~!4yizmvUZi6S|>^A6a|1i*YE4l8Mk&-HiK>AO|}D;-Z;l!dlC z&>~xDzNvJ&1`DinW0BXCe-Sy2*h1tQ?!$McqNCuic_+1hd%;)#tLVgE{|gvXF@dS%jlYJ#U;iIV z%Ks@$qSsG9=ivOcw~h9B2D(s2EA6N5iF1zXu>Z?@pOpVT41KqLL5E;x7h-zHxH1Gy zL+j{WXqE5Q%}6^)yHVxstEro(X`V%(VgTkt-ARG}Zz=w-Vmy^p|C{pDPHC1L;TDJMoz3LSCN8|VRu>Z~Lrx^aNH`0ebz4GQ4KVSc7 z^3FG3sf30>>b(<8fdVeW+XnORqRPHYSVz0;o42h~_FYlg_uVt(aVk8I=IonUa&z|G z$l@E>cYqyj&c00*X>z7}XWzW_t=YG3(b;zqt1Cg4JZ@eAZ%;|)LT@U{S~Rln`q3`$ zQK!P?+q~2N9_atv`u}$h`@lQE9GG6|ej3R8$N#@{CrR~x2(&u?TaA^gi&uZG#(dq* I@gVd63zWe=wEzGB literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/bin/Exercise 12-2.vshost.exe b/Code/Chapter 12/VB.NET/Exercise 12-2/bin/Exercise 12-2.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/bin/Exercise_12_2.vshost.exe b/Code/Chapter 12/VB.NET/Exercise 12-2/bin/Exercise_12_2.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + +Exercise_12_2 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/bin/OpenXMLDemo.exe b/Code/Chapter 12/VB.NET/Exercise 12-2/bin/OpenXMLDemo.exe new file mode 100644 index 0000000000000000000000000000000000000000..d3e126bfc81ec86644f550ee9643b5f73fad5ec4 GIT binary patch literal 7168 zcmeHLZ)hCH6@Pm=pQN)TTe53MK_%Us2u;$a0fP%oTnd63N+C|aq|lFsQb<3ALZEJ;b$@U6 zPPZ4SiJejxir(G4dGqGYdvD&(yqVppXI7|*h{7nhZxg+XnjtRnXQK+b+aI{rPCswG zvG-kN^2XlT1;bTKj$Lr{qMFk!%l6c)P@S@+8kU-xPOC*bFSNF{=>DqenWIFLN|^p~ z_0RDti*8c8vQ>!?McIJQ{Z21x6(x>B)FJ7R?>95pe+id?s}0Nx)DHQt*VU#kO^-lt zn&~q{3oTV{$fzT)Cx;6>40V=%G+`R7T zL?1FEj)FPYVggD+oM=^ZTqlQ?oWmIq96L-s2ytl89AVlJlyj<}m-XF`5`Z|-XrQ@C z{vSu6#QO@sYm=8kcrQ^53s>>mkr@@lUBJ%%F#Q1X7~eq-aLEOVZgo~bHoGtpjYjUb zu{EOrb|QNV7~5K$Yhc+j0W{mqz9@W(9*8(UQqY4v6D42Dc@GTd z*UZI=kNSfmc2)Yunsk-bY;WbU^w0t7fnPB35Egs-sZmAF*xwfy2DAY!HZ(XW=e>nY z)RXXh-*d>1s6S*n?Ky^3a9QMKc>NKy?K_z!5AO1|+c$P{B8B=zw6Ab`)U>mx86c{R z?FtcZefqmH#DNEocAjhEeuw(O`K_cs z1|6Y?m0rwvK}jH^RzOGS4doTk?t|%-;?+? zi8XqKUWLu861$WG{Y^Rx{4Kf!{7cFIzQnIf{5EhL@k~<^(rJ2%F5~w)w7pH?iXRU< za@D|e0b?i}p^H1Y#WYqM0Lx&F7e!1M8s+?r*vRYOKyF0xBpR8r^JP;Up`x3!9n;9t zl#z36*Pi#ZIm0dM=BVx(aC+JGM6p_FDLznqmUgOW(sW5!r=})TqG;1}_N>Tx#B`NS zQ@UZ*#CfQeK5r&XLs%X$WfzOOmG?=@!eGOO_<3_i#~na;!XYi^*$!0&XO~NYT;ZJ# zwu9nH+cc|M3J_aUaF!cP@JZ`$S2`g| zrk)d&G;LRG94!r=l?+ojY2jQjasq}u%usjoezX%Fc77JNC_S5)U2ue+53ppUwUnV3 zEZg;roQqgy%Y}lTHN`ry6JowL*M#eeV%A)q6OM}rt`{v^o>3IqgoTjWr8VEi%0|F^ zax%@{n}%+Abrm(;vyPq@Mcp~KzAI^$mK~$8u)(Mq2a7DXK?hsXt>yK~Qo_wSMu}I# z`p#Ly3q~Ta_%yL3h$`PsVQYIRDmI%o=^ zAAU0a#&3)xZ9lfgsO1-5&&+kjZobrV<;l~}clNzrOan-QPGceeox^zM8r+^D_=c^07?H&XtQe0$dfTQB4caQH#3QnBV2bdGsQBoq1bRHtuGj++NUPwkAG!M@UeHyz zuR!v~Uu(w~2$``C_vyHQ^JJ>9t0@L*4oAmn;G@XkX{7&Y91*8cAE#rW8GaT1_@BN% z3SBk$^~0~9l)e6^2;bW(0~Nm)DA1}S&mTjs$rU-|g2do+zRh-Yw$rf3q874X!C7Jm=xc9LcjT;ab2aYyk&7 z4)Va9>T-Vc^HLu_r*kqwzU;X4X}YR|FAD5aZI0aHs1jDlXZz;IdIoxIoTFu&`(9vX zzO9suU!%;Yqxg9-9G5y0m;qm2idY3EBA{XgHa?Bd(}O7?p1xmk)QViE*vwdG8$-q4 z>6HqBLcxz&K&z{(;NXKJ{`}!lR>1rX@;0OY6c!tx6izijDGVcZ_++zP4+bd2<6;nA zTpz#58XW)Ng9)z`em@A;k>r99zw4*j;0_wASZ)e9EKl4J?bzYB_zPR$NWBBanPbbHzVy@45L+ga6wI{0kISz|jBz literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/bin/OpenXMLDemo.pdb b/Code/Chapter 12/VB.NET/Exercise 12-2/bin/OpenXMLDemo.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e376e41605cda95b09ea621a914e8f6c49a0dbc8 GIT binary patch literal 13824 zcmeHNU2GIp6u!%!6ezfeMOvxjT1c_7+tvmuQl;Gmsj#$ROM}SK44zoIdf5r9R`pJ+nzB)X%h6LWikX3Pi_X@THEK`WaQtg;%*$zf&dc;^ zIi4`D`Ydqs+Rba+-yPv<`o*tV*VSy`(fYwEFVdP*uWWCs<~ zGIUwX_7+XWvO2SA@^n4hwLP1W$5l<*D)o-qiYb}Oq^cZ8J5q97E+WUuG9h(zW|Kx< z$qx5r2a1Y*IK4lm6pU=IWhsRbZK_`%HR6*aLgaR2^LL14%@V6HC6ySmMPDr06U!0Z z5zF$#l4psP^TlF1D66rcrX@d`msI2gWi$hruE;9T#N*U=dJ|ew6O%pdUak6j%h29ZLfOc zonQAN&2o-E%M_pw^oQBJL0<{-`gKBj|17|<+a{ilvc;dg%b(zsi^qs-yWOj)*4h^J&*j%QxglA4MI$Z5YN>X)hV zm~L3MnzML6c{?9xvJn)`YC}$(EW!KQZu?EsGEL zrDb~@EERZ?=*yO|VpibE*d~`zw6l56zWQ~njIty9zwnJ3W_dHwP* zw((XToIm1WY?tQJc;(pkeK7)0Tj%-SInVFt!(Rix_wwm)M3yheoi^m69t6tHH06B~ z_&e}hAi>XPdJS-f2>|L$v-V2RRiMD>$3W{rB~b9b*$s-Io=$;20=f_MQP6{+>p_oz zqR#Xb=myYf&?eB6ppS#T3)&3&A?OpJOA*!e;sEd!?A3Zf2S7IgHv+c+yMR4`H1nD< z|I|A=?L<4&kvjSF2c`(o4kSQ#N2eGl_xw*eeXcAdmI9za#L;Q3A5vA>cSL zg!#1q@AMn%64xbkyADpNf^v8cd9=r)7+WXb8#;Xbe~>Cvy&vsYXucYX7&Z?aIA?Lb zYI)$2gaX`)1)9ZbXWxj>$4)OfkZwD=Ter=rql1RZLs+BO}dPv~Ju0Z*n1UHy973MQ88s-tOl*y2!Ql%lLKQ?|A;04J>1Rxxre5 zlUBV`Ia2!l3eS}EX9D&2se7Jtds?VxPXE2mQ_0c6`A0=usB@HZ)3?j#NLBj%R}P&d z_N)3azQl=yE*BI_BrG$R7+2)HVvgWe?wFe~ic3N(u`phrWYOr%3&vzK!H~iqbzc>Lw&f|Np zhpnKe&|?buyMWX9#`eysOF?lT;RuQQ4BllpLQ+7!32{DQKfM3o;f2br1>#NvHv`U{ YM(I8XpCQbn1>CuO9y<)XT2L1F8_3;{m;e9( literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/bin/OpenXMLDemo.vshost.exe b/Code/Chapter 12/VB.NET/Exercise 12-2/bin/OpenXMLDemo.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 E0RjW(nE(I) literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/Exercise_12_2.Resources.resources b/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/Exercise_12_2.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/Exercise_12_2.xml b/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/Exercise_12_2.xml new file mode 100644 index 0000000..c346828 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/Exercise_12_2.xml @@ -0,0 +1,24 @@ + + + + +Exercise_12_2 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/OpenXMLDemo.exe b/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/OpenXMLDemo.exe new file mode 100644 index 0000000000000000000000000000000000000000..d3e126bfc81ec86644f550ee9643b5f73fad5ec4 GIT binary patch literal 7168 zcmeHLZ)hCH6@Pm=pQN)TTe53MK_%Us2u;$a0fP%oTnd63N+C|aq|lFsQb<3ALZEJ;b$@U6 zPPZ4SiJejxir(G4dGqGYdvD&(yqVppXI7|*h{7nhZxg+XnjtRnXQK+b+aI{rPCswG zvG-kN^2XlT1;bTKj$Lr{qMFk!%l6c)P@S@+8kU-xPOC*bFSNF{=>DqenWIFLN|^p~ z_0RDti*8c8vQ>!?McIJQ{Z21x6(x>B)FJ7R?>95pe+id?s}0Nx)DHQt*VU#kO^-lt zn&~q{3oTV{$fzT)Cx;6>40V=%G+`R7T zL?1FEj)FPYVggD+oM=^ZTqlQ?oWmIq96L-s2ytl89AVlJlyj<}m-XF`5`Z|-XrQ@C z{vSu6#QO@sYm=8kcrQ^53s>>mkr@@lUBJ%%F#Q1X7~eq-aLEOVZgo~bHoGtpjYjUb zu{EOrb|QNV7~5K$Yhc+j0W{mqz9@W(9*8(UQqY4v6D42Dc@GTd z*UZI=kNSfmc2)Yunsk-bY;WbU^w0t7fnPB35Egs-sZmAF*xwfy2DAY!HZ(XW=e>nY z)RXXh-*d>1s6S*n?Ky^3a9QMKc>NKy?K_z!5AO1|+c$P{B8B=zw6Ab`)U>mx86c{R z?FtcZefqmH#DNEocAjhEeuw(O`K_cs z1|6Y?m0rwvK}jH^RzOGS4doTk?t|%-;?+? zi8XqKUWLu861$WG{Y^Rx{4Kf!{7cFIzQnIf{5EhL@k~<^(rJ2%F5~w)w7pH?iXRU< za@D|e0b?i}p^H1Y#WYqM0Lx&F7e!1M8s+?r*vRYOKyF0xBpR8r^JP;Up`x3!9n;9t zl#z36*Pi#ZIm0dM=BVx(aC+JGM6p_FDLznqmUgOW(sW5!r=})TqG;1}_N>Tx#B`NS zQ@UZ*#CfQeK5r&XLs%X$WfzOOmG?=@!eGOO_<3_i#~na;!XYi^*$!0&XO~NYT;ZJ# zwu9nH+cc|M3J_aUaF!cP@JZ`$S2`g| zrk)d&G;LRG94!r=l?+ojY2jQjasq}u%usjoezX%Fc77JNC_S5)U2ue+53ppUwUnV3 zEZg;roQqgy%Y}lTHN`ry6JowL*M#eeV%A)q6OM}rt`{v^o>3IqgoTjWr8VEi%0|F^ zax%@{n}%+Abrm(;vyPq@Mcp~KzAI^$mK~$8u)(Mq2a7DXK?hsXt>yK~Qo_wSMu}I# z`p#Ly3q~Ta_%yL3h$`PsVQYIRDmI%o=^ zAAU0a#&3)xZ9lfgsO1-5&&+kjZobrV<;l~}clNzrOan-QPGceeox^zM8r+^D_=c^07?H&XtQe0$dfTQB4caQH#3QnBV2bdGsQBoq1bRHtuGj++NUPwkAG!M@UeHyz zuR!v~Uu(w~2$``C_vyHQ^JJ>9t0@L*4oAmn;G@XkX{7&Y91*8cAE#rW8GaT1_@BN% z3SBk$^~0~9l)e6^2;bW(0~Nm)DA1}S&mTjs$rU-|g2do+zRh-Yw$rf3q874X!C7Jm=xc9LcjT;ab2aYyk&7 z4)Va9>T-Vc^HLu_r*kqwzU;X4X}YR|FAD5aZI0aHs1jDlXZz;IdIoxIoTFu&`(9vX zzO9suU!%;Yqxg9-9G5y0m;qm2idY3EBA{XgHa?Bd(}O7?p1xmk)QViE*vwdG8$-q4 z>6HqBLcxz&K&z{(;NXKJ{`}!lR>1rX@;0OY6c!tx6izijDGVcZ_++zP4+bd2<6;nA zTpz#58XW)Ng9)z`em@A;k>r99zw4*j;0_wASZ)e9EKl4J?bzYB_zPR$NWBBanPbbHzVy@45L+ga6wI{0kISz|jBz literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/OpenXMLDemo.pdb b/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/OpenXMLDemo.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e376e41605cda95b09ea621a914e8f6c49a0dbc8 GIT binary patch literal 13824 zcmeHNU2GIp6u!%!6ezfeMOvxjT1c_7+tvmuQl;Gmsj#$ROM}SK44zoIdf5r9R`pJ+nzB)X%h6LWikX3Pi_X@THEK`WaQtg;%*$zf&dc;^ zIi4`D`Ydqs+Rba+-yPv<`o*tV*VSy`(fYwEFVdP*uWWCs<~ zGIUwX_7+XWvO2SA@^n4hwLP1W$5l<*D)o-qiYb}Oq^cZ8J5q97E+WUuG9h(zW|Kx< z$qx5r2a1Y*IK4lm6pU=IWhsRbZK_`%HR6*aLgaR2^LL14%@V6HC6ySmMPDr06U!0Z z5zF$#l4psP^TlF1D66rcrX@d`msI2gWi$hruE;9T#N*U=dJ|ew6O%pdUak6j%h29ZLfOc zonQAN&2o-E%M_pw^oQBJL0<{-`gKBj|17|<+a{ilvc;dg%b(zsi^qs-yWOj)*4h^J&*j%QxglA4MI$Z5YN>X)hV zm~L3MnzML6c{?9xvJn)`YC}$(EW!KQZu?EsGEL zrDb~@EERZ?=*yO|VpibE*d~`zw6l56zWQ~njIty9zwnJ3W_dHwP* zw((XToIm1WY?tQJc;(pkeK7)0Tj%-SInVFt!(Rix_wwm)M3yheoi^m69t6tHH06B~ z_&e}hAi>XPdJS-f2>|L$v-V2RRiMD>$3W{rB~b9b*$s-Io=$;20=f_MQP6{+>p_oz zqR#Xb=myYf&?eB6ppS#T3)&3&A?OpJOA*!e;sEd!?A3Zf2S7IgHv+c+yMR4`H1nD< z|I|A=?L<4&kvjSF2c`(o4kSQ#N2eGl_xw*eeXcAdmI9za#L;Q3A5vA>cSL zg!#1q@AMn%64xbkyADpNf^v8cd9=r)7+WXb8#;Xbe~>Cvy&vsYXucYX7&Z?aIA?Lb zYI)$2gaX`)1)9ZbXWxj>$4)OfkZwD=Ter=rql1RZLs+BO}dPv~Ju0Z*n1UHy973MQ88s-tOl*y2!Ql%lLKQ?|A;04J>1Rxxre5 zlUBV`Ia2!l3eS}EX9D&2se7Jtds?VxPXE2mQ_0c6`A0=usB@HZ)3?j#NLBj%R}P&d z_N)3azQl=yE*BI_BrG$R7+2)HVvgWe?wFe~ic3N(u`phrWYOr%3&vzK!H~iqbzc>Lw&f|Np zhpnKe&|?buyMWX9#`eysOF?lT;RuQQ4BllpLQ+7!32{DQKfM3o;f2br1>#NvHv`U{ YM(I8XpCQbn1>CuO9y<)XT2L1F8_3;{m;e9( literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll b/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..f21ae0a90c27ec644a05e869c6bc5df6cc8f3dcb GIT binary patch literal 7168 zcmeHLZ)_aZ5uf*N?~gBz@%ikKG>N;$rgfb7O)YD&&}GNiQ1Zvg7NsrtVhDx>eTm6O($$nKN^%SEqYI*ZX!6jf)uV zJN?z+XtdX;rE8T)5w$~-2&8+jz+J~Rgo}xen+)Oxr{d>3E#ZQkTcBPgFY!oT6Laj>OEbq_yj9F`pFSeQh>GACC1nsJM$gDtFW7W1mL(jG zRGjF?rI?Yu*_tMbAERepMrYZJf^CSA`yd+h=~yOT3prxT$OjPS`u;R$Y;$^ZVzVYy zVmKZyRYaYMwb8pBn8W(S-Awzg4PutwI_U3&r!?nL(iYfbyo|hqWe!$8y(;+tro6tt ztrtBvuL?9tXFXKO+BhhGu9?hnOit_9U4&A3850WT;%tPm*QuN>v4t`VRxij4Vx-mF zAAPh?(J7Z0_2oRwJF$cmXj~6naHHyh`?PQ$)`WdHmn=uEWO`BGiBLW~dF`+WtC4H_ z=oPtv+*JctY`qEqD`tb9NAA0i6D=UZaa`S#zH61|J+^onod$64J}^mt1kZWx-g96q zkNaD|bI48iumsz>@?BAct|vrExqy6ZSLg(-l{V0!P^ZfyKox~Dv`HQVdPE^X zd*l)_cUqxf1dV>FP%L$mydRZyUZHGiZS31X+qujro7xil9?(>Xu8utkbhAQ1)Nxu+ zDDWAlib88rUyMDE)wwt9_qam50CCB5M+42rnuv3HJ?M+bHS;~hF>O(FP|@v*_9*QZ zMF$n#uBf4?rRWjRj966sIz{iM-)T3Cb;OxmN1VY;^tNU}!Wnyr+T)AjE3mvz|6V2i;$|fdQ5<^b6NnLOZI`~(p8?iKtZl&#po_UUBlkg}n zhm_@zvYb);jN+FRzoht6ihov7lI-~$y@~OY!VspYh^n{;f6cN_Zk5;IPs6$=P!mbe z6#lU4sIY!90s6X_0zD}{3;I{_InW=rrVDnT z>)c`%eQ-CJvy-NK)GC@DO)a>lF*j)(HYa9T4XdNpoaxSNrTwPoR9!Y&?lxCfOq#y0 zjj?VmS;In*XOx#;<3iGrEXyy;KZ zRHYibe4fgxVNfbf1Ff(*;30$TPBA5QTVcZ5#=MrMm*shdb*`wU)i`cr=Uqpzz8*QW z$Mi=HZ(#&qDKxcMF+wK_gf`-<+NvD|^0CE`p;evO++4%d0rvay3T^H&KW8 z$t^EpP$IdpG76|{*fipRJLVrW?5c_S;FKx>M^$qdtU*JKMAcF-%EmnM=!RtlOrh}} zyzm&db$d|6BURh4y5?BJ&|c%grg9WgkzkY16Jb3)MU9I=6YotZnY}@gg{j$8n`% z(#IOU&qA&(U5 z9CxnnDeRHAjQO(T`Bo7-zd2i-$Le8_IkS9$>Hccjw@PO2f?z`h4`aF>7fSFX1Zxv& zxuQogDZ5tRyIrRgN_G}~>!`t-Kv3$nH7P9aah+;q#IbGcTiE^TQSs6QBXB(gTsWyH zQdQJWrIuAhj&0Riwn|YK^KduBz%BDZqBxGmTaD&3Yk=)+;MkZa*>a5Ti z>2Y0%On)l+l8C}jVh#bH(!i$zKEr$_;MC_yAZXmj z@#;fK$keeB88qxU{M{xtY=|X=#Fa{rXzR%A;(2Q;yXph_HvVsQ5p69%7|@YGm7MG7akVbi=7bonBi5$S6Z0pG1bz_oAbwk&2Hl07ZxY{M6SNn240JbmZa>%Fd>4C^;v2~|A;3nm z?9HCVd0YZs4eX-3@eOBVCmq9Xdl)+_w;nv@_+=GZ15yuqgM8RIKtVgLH6vDmn0#1S zkk4Pl(;Em&;Mb$*Z;)oyZ%JDak*L}8?(ShXXFru?PA(G!I`qYL1Q~{v6H0 zA0JXgy=org(9Ww-M&Ppo|2&g0iJ+I1poj5 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Exercise 12-2.vbproj.FileList.txt b/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Exercise 12-2.vbproj.FileList.txt new file mode 100644 index 0000000..abcb833 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/obj/Exercise 12-2.vbproj.FileList.txt @@ -0,0 +1,9 @@ +bin\Exercise_12_2.exe +bin\Exercise_12_2.pdb +bin\Exercise_12_2.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_12_2.Resources.resources +obj\Debug\Exercise 12-2.vbproj.GenerateResource.Cache +obj\Debug\Exercise_12_2.exe +obj\Debug\Exercise_12_2.xml +obj\Debug\Exercise_12_2.pdb diff --git a/Code/Chapter 12/VB.NET/Exercise 12-2/obj/OpenXMLDemo.vbproj.FileList.txt b/Code/Chapter 12/VB.NET/Exercise 12-2/obj/OpenXMLDemo.vbproj.FileList.txt new file mode 100644 index 0000000..ef62f85 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-2/obj/OpenXMLDemo.vbproj.FileList.txt @@ -0,0 +1,2 @@ +obj\Debug\OpenXMLDemo.exe +obj\Debug\OpenXMLDemo.pdb diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/Exercise 12-3.vbproj b/Code/Chapter 12/VB.NET/Exercise 12-3/Exercise 12-3.vbproj new file mode 100644 index 0000000..515d174 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-3/Exercise 12-3.vbproj @@ -0,0 +1,84 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {3321276C-7796-4052-9CD3-C3103F7B778A} + Exe + Exercise_12_3.Module1 + Exercise_12_3 + Exercise 12-3 + Console + + + true + full + true + true + bin\Debug\ + Exercise 12-3.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise 12-3.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/Exercise 12-3.vbproj.user b/Code/Chapter 12/VB.NET/Exercise 12-3/Exercise 12-3.vbproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-3/Exercise 12-3.vbproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/Module1.vb b/Code/Chapter 12/VB.NET/Exercise 12-3/Module1.vb new file mode 100644 index 0000000..f162d6b --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-3/Module1.vb @@ -0,0 +1,41 @@ +Imports System.Data +Imports System.Data.SqlClient +Imports System.Xml + +Module Module1 + + Private connectionString As String = "Server=(local);Database=AdventureWorks;Integrated Security=SSPI" + + Sub Main() + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = _ + New SqlCommand("Select Top 1 Resume from HumanResources.JobCandidate", _ + testConnection) + testConnection.Open() + Dim rdr As SqlDataReader = testCommand.ExecuteReader() + + ' Method 1 + Dim xrdr As XmlReader = testCommand.ExecuteXmlReader() + xrdr.Read() + Console.WriteLine(xrdr.ReadOuterXml()) + + + While rdr.Read() + ' Method 2 + Console.WriteLine(rdr.GetString(0)) + + ' Method 3 + Dim xr As XmlReader = rdr.GetSqlXml(0).CreateReader() + xr.Read() + Console.WriteLine(xr.ReadOuterXml()) + + ' Method 4 + Dim o As Object = rdr.GetProviderSpecificValue(0) + ' Strangely enough this prints SqlString + Console.WriteLine(o.GetType().ToString()) + Console.WriteLine(o.ToString()) + End While + End Using + End Sub + +End Module diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Application.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Application.Designer.vb new file mode 100644 index 0000000..c5978d6 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Application.myapp b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/AssemblyInfo.vb b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..b58ac22 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Resources.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Resources.Designer.vb new file mode 100644 index 0000000..59eecde --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_12_3.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Resources.resx b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Settings.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Settings.Designer.vb new file mode 100644 index 0000000..51a54b4 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_12_3.Settings + Get + Return Global.Exercise_12_3.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Settings.settings b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-3/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/bin/Debug/Exercise 12-3.exe b/Code/Chapter 12/VB.NET/Exercise 12-3/bin/Debug/Exercise 12-3.exe new file mode 100644 index 0000000000000000000000000000000000000000..dbcdda4b653a1055cb69c13308f0c49fc13ab017 GIT binary patch literal 24576 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 + + + +Exercise12-3 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise 12-3.exe b/Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise 12-3.exe new file mode 100644 index 0000000000000000000000000000000000000000..dbcdda4b653a1055cb69c13308f0c49fc13ab017 GIT binary patch literal 24576 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 G9OVxb3Fx5! literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise 12-3.xml b/Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise 12-3.xml new file mode 100644 index 0000000..d32961b --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise 12-3.xml @@ -0,0 +1,24 @@ + + + + +Exercise12-3 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise_12_3.Resources.resources b/Code/Chapter 12/VB.NET/Exercise 12-3/obj/Debug/Exercise_12_3.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {28D41A26-D40F-4E08-A817-FE5CB1C3877C} + Exe + Exercise_12_4.Module1 + Exercise_12_4 + Exercise 12-4 + Console + + + true + full + true + true + bin\Debug\ + Exercise 12-4.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise 12-4.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/Exercise 12-4.vbproj.user b/Code/Chapter 12/VB.NET/Exercise 12-4/Exercise 12-4.vbproj.user new file mode 100644 index 0000000..e4a7c97 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-4/Exercise 12-4.vbproj.user @@ -0,0 +1,6 @@ + + + 8.0.50215 + ProjectFiles + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/Module1.vb b/Code/Chapter 12/VB.NET/Exercise 12-4/Module1.vb new file mode 100644 index 0000000..7e7efc6 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-4/Module1.vb @@ -0,0 +1,32 @@ +Imports System.Text +Imports Microsoft.Data.SqlXml +Imports System.IO +Imports System.Data + +Module Module1 + + Private connectionString As String = _ + "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI" + + Sub Main() + Dim cmd As SqlXmlCommand = New SqlXmlCommand(connectionString) + cmd.CommandText = "SELECT FirstName, LastName FROM Person.Contact WHERE LastName=? For XML Auto" + Dim parm As SqlXmlParameter + parm = cmd.CreateParameter() + parm.Value = "Achong" + Dim strResult As String + Try + Dim strm As Stream = cmd.ExecuteStream() + strm.Position = 0 + Using sr As StreamReader = New StreamReader(strm) + Console.WriteLine(sr.ReadToEnd()) + End Using + Catch e As SqlXmlException + 'in case of an error, this prints error returned. + e.ErrorStream.Position = 0 + strResult = New StreamReader(e.ErrorStream).ReadToEnd() + System.Console.WriteLine(strResult) + End Try + End Sub + +End Module diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Application.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Application.Designer.vb new file mode 100644 index 0000000..c5978d6 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Application.myapp b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/AssemblyInfo.vb b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..f1e6c12 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Resources.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Resources.Designer.vb new file mode 100644 index 0000000..93c6997 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_12_4.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Resources.resx b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Settings.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Settings.Designer.vb new file mode 100644 index 0000000..49b1e0b --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_12_4.Settings + Get + Return Global.Exercise_12_4.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Settings.settings b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-4/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/bin/Debug/Exercise 12-4.exe b/Code/Chapter 12/VB.NET/Exercise 12-4/bin/Debug/Exercise 12-4.exe new file mode 100644 index 0000000000000000000000000000000000000000..59c152c5cb1fa0a5eeed84d564667fdd779f34ce GIT binary patch literal 24576 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 Y2t5#bAoM`!fzSh?2SN}0#(Lm?08RFb8~^|S literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/bin/Debug/Exercise 12-4.pdb b/Code/Chapter 12/VB.NET/Exercise 12-4/bin/Debug/Exercise 12-4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..af9fecdc215da54610bbcfdd69cb144ac0958b9e GIT binary patch literal 42496 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 ZfHpuYU^8F~;PZ0#d|nB;>0Fg1@c)XD1Ofm6 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/bin/Debug/Exercise 12-4.vshost.exe b/Code/Chapter 12/VB.NET/Exercise 12-4/bin/Debug/Exercise 12-4.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + +Exercise12-4 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.exe b/Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.exe new file mode 100644 index 0000000000000000000000000000000000000000..59c152c5cb1fa0a5eeed84d564667fdd779f34ce GIT binary patch literal 24576 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 Y2t5#bAoM`!fzSh?2SN}0#(Lm?08RFb8~^|S literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.pdb b/Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..af9fecdc215da54610bbcfdd69cb144ac0958b9e GIT binary patch literal 42496 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 ZfHpuYU^8F~;PZ0#d|nB;>0Fg1@c)XD1Ofm6 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.vbproj.GenerateResource.Cache b/Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..77d018dc31b1dd34ce0844c40a972d8db1fc3d5d GIT binary patch literal 784 zcma)3O-sW-5KV1U`=L+|QbZ3$JP0kJwG_P+!HOSf!7s#vmu+@}Yqwe1Nu=>4c=4b4 z7yJ?a2c0P@QiC{wmt=PK&6{~n#&Mi?3Vw6U%@ADmm2VB2Ao6x%rKNWvaEOiCC0JA@ z>~45Xej2r2tfSaMH-tE{LN{tB@jxs82$Bmkgs?kkwu4Tv8MIom(-dvta+~#3cJB;u zAHrR@gHS@~D?pY~w18K8N&{900^wMNLy-Kxt1S4Du}Lnonoc-PHKEHAXUS#!$1PSn zCx0l)uAC8QlpB zw!)-6BjLoFdnLgZIB~8XAV5 z9%J>}!-PGr2Lz!Q!SYmI3yk_ksz8BUoH~QC!U*#uZ9X$`sK_FDm}dRy^|Af(oLS%$ GNBIK`GUz%0 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.xml b/Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.xml new file mode 100644 index 0000000..cb5572a --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise 12-4.xml @@ -0,0 +1,24 @@ + + + + +Exercise12-4 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise_12_4.Resources.resources b/Code/Chapter 12/VB.NET/Exercise 12-4/obj/Debug/Exercise_12_4.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {4AAF80AD-66A3-4880-9001-1AE05B43649E} + Exe + Exercise_12_5.Module1 + Exercise_12_5 + Exercise 12-5 + Console + + + true + full + true + true + bin\Debug\ + Exercise 12-5.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise 12-5.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/Exercise 12-5.vbproj.user b/Code/Chapter 12/VB.NET/Exercise 12-5/Exercise 12-5.vbproj.user new file mode 100644 index 0000000..e4a7c97 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-5/Exercise 12-5.vbproj.user @@ -0,0 +1,6 @@ + + + 8.0.50215 + ProjectFiles + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/Module1.vb b/Code/Chapter 12/VB.NET/Exercise 12-5/Module1.vb new file mode 100644 index 0000000..affd6ad --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-5/Module1.vb @@ -0,0 +1,39 @@ +Imports System.Text +Imports Microsoft.Data.SqlXml +Imports System.IO +Imports System.Data + +Module Module1 + + Private connectionString As String = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI" + + Sub Main() + Dim xmlQuery As FileStream = New FileStream("command.xml", FileMode.Open) + Dim cmd As SqlXmlCommand = New SqlXmlCommand(connectionString) + cmd.CommandStream = xmlQuery + cmd.CommandType = SqlXmlCommandType.Template + + Dim parm As SqlXmlParameter + parm = cmd.CreateParameter() + parm.Name = "@LastName" + parm.Value = "Achong" + + cmd.ClientSideXml = True + cmd.RootTag = "Person" + + Dim strResult As String + Try + Dim strm As Stream = cmd.ExecuteStream() + strm.Position = 0 + Using sr As StreamReader = New StreamReader(strm) + Console.WriteLine(sr.ReadToEnd()) + End Using + Catch e As SqlXmlException + 'in case of an error, this prints error returned. + e.ErrorStream.Position = 0 + strResult = New StreamReader(e.ErrorStream).ReadToEnd() + System.Console.WriteLine(strResult) + End Try + End Sub + +End Module diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Application.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Application.Designer.vb new file mode 100644 index 0000000..c5978d6 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Application.myapp b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/AssemblyInfo.vb b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..882848a --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Resources.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Resources.Designer.vb new file mode 100644 index 0000000..cca41c1 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_12_5.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Resources.resx b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Settings.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Settings.Designer.vb new file mode 100644 index 0000000..def0b75 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_12_5.Settings + Get + Return Global.Exercise_12_5.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Settings.settings b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-5/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/Exercise 12-5.exe b/Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/Exercise 12-5.exe new file mode 100644 index 0000000000000000000000000000000000000000..19d01d41a4fcfc5e05b06d31930ec5fcb9232d1d GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/Exercise 12-5.pdb b/Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/Exercise 12-5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..8447c65e5af5f3f71cc3e9b6e450e362bcaa64a5 GIT binary patch literal 42496 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 + + + +Exercise12-5 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/command.xml b/Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/command.xml new file mode 100644 index 0000000..795fcc8 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-5/bin/Debug/command.xml @@ -0,0 +1,8 @@ + + + + + +SELECT FirstName, LastName FROM Person.Contact WHERE LastName=@LastName For XML Auto + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/obj/Debug/Exercise 12-5.exe b/Code/Chapter 12/VB.NET/Exercise 12-5/obj/Debug/Exercise 12-5.exe new file mode 100644 index 0000000000000000000000000000000000000000..19d01d41a4fcfc5e05b06d31930ec5fcb9232d1d GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/obj/Debug/Exercise 12-5.pdb b/Code/Chapter 12/VB.NET/Exercise 12-5/obj/Debug/Exercise 12-5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..8447c65e5af5f3f71cc3e9b6e450e362bcaa64a5 GIT binary patch literal 42496 zcmeHQ3vg7|c|NNbPho_4o5upeJhjpaAqg-TX(b*3@dyHwTB%sAu3*b*cfGqJ$aTxQ zsfnG*bZCc8LxVfc1gCZ5Y267;ofcwE;&f}e9Wy`!ByEb^6e06n|V`sMQ z5^yE*zu@mLdgvj1VuLe4CU&KK;+m(5e6V%-7Auw@DEc^=mwPe$wj5x6fCdZWT{de`59zo^RiB;?4j1 zLDjK)#nASzlze&I<41q1s_%zYXO{|bY4ql^`@R}o|5EQCZ2iW&trs3n{N)L4GKk9) zpL((7tEbP-8uiM9OJ=7Bin>s5p_d=2`X6`nvvWUtes6lrd%fk$wzbQtgIlN=iZ-hw zRsXx^iEn)7wa35T_tc@G=?}fJvuF$S7JKoLs{dF1=bL}_-1hHpeevl}|L5Kb_j+%! zVkp||j#T|0Z}{%N{NlsvKWcp9#MkO)fB5G`TcEeti;q`e%o7ErkaLTP0cmU z_09g8l`9%n!KXRouWR!A4)qApzPhU=p0JWhZ)-4ga3G%S+OT$WGaN@MkAvPFiP-O0p%h*@9tnqnscX(eL=iIA1N z!L@=0uhY4)b+XG!rNYtuH~MvwCK>13R6!5C1o%C`G5{UsezIH>Rt>%atx=9nV?W>} zz+dQ{_)p@#5U+3RnbMe9(-}SKSei>H*;;{h6`)@P@I{sb^ zAn*78`s9D?)qZS746^{nvAG!9=bn7|5z?~xk(OajS~f{TyYAsbUneb_C}|nyq-Aq7 zv>(O>he*q2OIn6GY1xbo?a=prw1l*5-lS!ila@{0(4Ox2;j5&j2#}UxPFi@~^p4&B zYO$13FP_jMywH*BJA|ls4bQAMvENE{Z?saIqsde-8j`O%Rg_kd$4SIxJVQH2R97u9 zoqe~zzI&ywV-Wv!SBmn=A8u41=;Br)HOORV=Al*HybzNRmX!?XM>6fP;J<4ynX>wY zm}>v_1!9p1ECLt;NtK?War*lC)q#!Gscu-ik?LJ_ z*m_qX!KdZ(T`F6+F$&4QSbwP~0V64&zECQbVBSlsPC*{u0zGL>_(;lyE0acGU71uH zNS#W|w>f$f%A}E}_aGDd0IIL@$bJitkTxMY`2%jZN2DoJdw|ggigzwvPEXR$kZExr z{HuZY0#}L2Vv1M;87vX^i2Lxn7D7K=Fr9k%#zf;vQ|?+Zxva#hT7Wo&5}(zY$_5F6W0Hsjc~u}a#Ua#s$yYjMh*V=kA}l)V=qck2!cvd1}$jO;l@$Mkviy3adZNoi6tq<%@ex?%?&>^^UI((dmzLEfH09Lk)bab?bx zxnh>NnR@Q%PKV5Ck-4g`tJ6KAv#%Qkk?VHK+kIBgE-P^;j1@ATE&A#=+Sm+=g( zD|fEk6|>wKJ9Dx_?wq1y`nvZZGn)Wv-osG>@a2$LDMwtFm~gemFmmW17bwYaV}M^H`n5L+OfV(D8a6RugxF(Qqo!IDeGhbJ&=j-(Jfs}&jX#X2c`{#UJo7EQ_h@==O z=fR<*y@(v@fawO4obrK7#!MWJJ1Y=*K6+9x=9v zk_V5J4H7u*nMK+Ls0F4S1v>|LJo^6yu&XB8>t5WmLpKrdC=z=D@GRg06L#INT>{Sj z->maD zznsQZb`Yp1B0l39`uuzR41=W4{)ITM?r?QSG3XAq^W6P{PC=Nj=YH>Y*kVRbjL4CO zY5+Erp8dUg?;yt}ZJ-$sne+lvZ%~G5>k(s4MaLBan_J_GMC~`E9y4R2Gnh=KbB>87 zLnkcN{N$eC00u+@3G5(MW1{Iu^I61W97E^o0<(|UxkuRDJDl10?Aw6zUPZNc_*%Na zjLVidWYvh8u{DgGZqk!>v=fY*0y%9ka*D$~-6k>!s2_$Pqiu-CIEK!ZQ&&!5ix%3K z@5(8UvY1X8E2>5oIqz{8pzL3dZAVkS%sySna+>`w=33J1AGxm>OR+r1ltzCpmIK!S z1JXWVK)Ml_^CW7$$B%xz1fzt%!9L?f=)|W17GT^k*`9Y%eQy4FmuB!``m2CBE?I5! zU6jQ`=>w0{4Is;!yIG@oV2qQdd9c>zu~_mj>o+_XMaTJ}>G;jLqfS5^@F?IEz;(ab z5`d{@@BfbIxi;G{L>Ss`MHHBAMzlYGiQS|<-a7z#(wcC04CjvFieU`LbAY*HIEsg{ z*I;+qBBVve?jwx7_G7))q|G))=R8rx5nw56I4rg)m^{F16c|Q(Ee?5m9q|~)(77__ z%3LwaoY}L3eG0bBIYr0VW@dkCr=G~*zBl9GRq=T|7`f{ljN3Bz6Uf^R5Rl%`xH9L; zTrta>>F2QC>y$YuHo5Y4j)NOGXFrGE6(`^)<*hTO&RpY}ecWEi+VhA*dPC#Nn=5a{ zEN`Zd!#LWOH;35Rwxv1$6xUR9Aw$NEhs>SAgOs^I!os}|-QDIQkM3?MdoMulB8ba) zhSrrmSN4io_U_i}aWfpUmq&bX*NIwJn`zTsy(VY+Mzh}j0T$BeY@x<)h+xHcfTf(a zg_H4EGFwm)#(pw|Nbe#(;~IKbR$W;wW?40B=Xcp6C1o(xy3uw7+G{auMQgfS`J;qKR|EGC;1dO4g_=V(gFL*4?;-Thh@}EDtqIp2T?v^xo+f3fW>OoBo3pT>DZo) zL;I`PiF%TKA@_fp3mQQ{JCyNLh{rgFF8>~qjzJUEdAH-W`cL;PjeC~nW<5(Y+&Z9{ zuUTf>p+cCpPr1tNGnL%r-><>F6_mYoz_dH>1y=h&)@JEfb54djxEeya{yOy~$;|z4 zJkLSLzQ{O?FDuXwDf!Pi|G5eDq&4A%WHtBROvm%)?cl+^1ChP`>?<9# zoz~%$d*^GWpd1&+@*Ya}&ey(F);*Lrtd$Fs{reOH=inE57 zSTdEsE=_eiJvBD#s?rLD&x3gqCHlhq51C zV8;~#Y0G>u&T`Nn1Jr}&5gmu`SdQmvXPiXFHZWNx@!0x`<4)eIK?mDj+92rbVSC6=JIL`Vey6>7 z#+WtDJfc$4*r&?7!qV6yDsXlzy%8Auq0;Q*u}33)KQMTwyMQrQp6&(4d|jHla29Y( zV~(9U9%kiW?3+FcjP{WJoc8}3Fxo--Y2bOl{{)P>OTP$=dPu(lj50{S3XHN!mm!zq zaKqR*)Z8dgj1ns}o&!7!Fc&ZzFcy^c_E1B@I$xMmk?B@yzE5iZ85(~|`#+}X9?^W}Y5cOLds&As)bwL?IxYJ7?@c^S zcUH&St?^Fn|CoM$TjP0}j|Y6G{$ypl_4*gGU(j7Ee~$1h z{soy17pOR76&D{00Zsz`3UC@Q1b6}PZ-5^I-UWOF;Jrwb0bamz0QER^Jnu;2w_ehKF95y> zI0bkHa0YM=z)WFiMw!AL*DfC_@>Hl4W3S zY{{gd!c-c5OuU;qVO@H3o!s&b*nNRts|38z>ueACoUskrp^XL|x&sOMXm3-$f_?ez z@Xkh$DV?D8Q9W(SjNY%1`o$c0G`A2q^b883!ssT4e&#&@DsJZBu}M#bY25_ z#=8|F`>?W!qr!9?hi+!xOU>al{5JH;U%wOdpGkw~XiE7tCdUCA6Gw&VIIA*xndbmx z9DO*z&?|pUAI#8mA9Jb5?9w#!%3ss>WXhR)FH1$fon@K#Q8YSkC=-`^!AeE`&0;29 zMWf^PX8Ho|X(`R=pOv4c#pHr1HK<4ou&;1B=2L_XfrdbRYcmuIT;VkC6q}|?GO<|qhdZt-4ZM}p46LvBH@5p% zLhVUcIL!&-1Lz*QGXTEVGuM}9=K*Z3IJh(_cLED72MwIrXPM%h=o)XxdQUguZ~T@cT^?Te*k`H(m38{R;)! zhv|l#*GILt2R78TH?=7?*GO-oSggx44SHFg>EY6|^;~0fYfJrx2Bmxozt3dxP)>V4 zU%0+ZBKEe3W`AR2YoNY`uT%4nzMnFWbk04B%7^)1C;gXb4@1jG{$`Hv-~(K4SPT4y z3)@j3th+!M=W(?dV*HbFO#28xSM^n4pGTO&7T*jxZzZoKcnZ@9c%K$t1d z+<07v!*wzC#KAn0UEiTn9Jr$9~T^#^e0DSqsb!<9!jlH;t}bA^Df_c$WiA z3F&gfct?XVP;MNk6AeSXh#yCVU%jh~&VT`@HK z+?H=Wb!6SzFP(VvLCALP)^PM7zr-tQqrrZBKcqI92-O~dVPPeDBC*gx<* zTWBQ{6~|iL6^tjWWYXIc3>_SZC%gJ^4_L%otwboCwBS{;~USEvKyOd zGHLbqLLNCfz^7t9zV}O7sT4oEoRuPbS*$Eet@U?nlqfDnGiC3@UWY3t z{B3$Z_Nsr1aQ1ra_1Uw{2e23WI)ME408EdGpRSW*ISy$)M2TXGMBJ&1=hG-ot`+Tt zUp`n2|L0M(=OeMnA^_iO31BH;8DKe}2H*qK0_p&M0PSiHZ#ahI$gvSX z8;)g&=?~tkg`ERx9d9i#_HT0UrdSVX0ki@FfHuHJzy?4&U=v_7;Nx;TKdyw_bZ*KL F_Tm)}NjQfgu{@2#xA zJ;tSP4-@u$Gav}X5LTx0T42;OQUwa+;?x<86-JmRY4e$hLq!(J!;H3`Umu$ + + + +Exercise12-5 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-5/obj/Debug/Exercise_12_5.Resources.resources b/Code/Chapter 12/VB.NET/Exercise 12-5/obj/Debug/Exercise_12_5.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {27A09A4D-AB44-460F-B415-193B731F3FEC} + Exe + Exercise_12_6.Module1 + Exercise_12_6 + Exercise 12-6 + Console + + + true + full + true + true + bin\Debug\ + Exercise 12-6.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise 12-6.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/Exercise 12-6.vbproj.user b/Code/Chapter 12/VB.NET/Exercise 12-6/Exercise 12-6.vbproj.user new file mode 100644 index 0000000..e4a7c97 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/Exercise 12-6.vbproj.user @@ -0,0 +1,6 @@ + + + 8.0.50215 + ProjectFiles + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/Module1.vb b/Code/Chapter 12/VB.NET/Exercise 12-6/Module1.vb new file mode 100644 index 0000000..bca2867 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/Module1.vb @@ -0,0 +1,18 @@ +Imports System.Text +Imports Microsoft.Data.SqlXml +Imports System.IO + +Module Module1 + + Private connectionString As String = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI" + + Sub Main() + Dim xmlQuery As FileStream = New FileStream("updategram.xml", FileMode.Open) + Dim cmd As SqlXmlCommand = New SqlXmlCommand(connectionString) + cmd.CommandStream = xmlQuery + cmd.CommandType = SqlXmlCommandType.UpdateGram + cmd.ExecuteNonQuery() + xmlQuery.Close() + End Sub + +End Module diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Application.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Application.Designer.vb new file mode 100644 index 0000000..c5978d6 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Application.myapp b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/AssemblyInfo.vb b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..f48e145 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Resources.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Resources.Designer.vb new file mode 100644 index 0000000..0d816b5 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_12_6.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Resources.resx b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Settings.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Settings.Designer.vb new file mode 100644 index 0000000..0e191fa --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_12_6.Settings + Get + Return Global.Exercise_12_6.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Settings.settings b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/Exercise 12-6.exe b/Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/Exercise 12-6.exe new file mode 100644 index 0000000000000000000000000000000000000000..a980ac5c6d619f7adebb8f41126aa79f07416c70 GIT binary patch literal 24576 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 B*`xpf literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/Exercise 12-6.vshost.exe b/Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/Exercise 12-6.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + +Exercise12-6 + + + + +

    + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/updategram.xml b/Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/updategram.xml new file mode 100644 index 0000000..1858a87 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/bin/Debug/updategram.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise 12-6.exe b/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise 12-6.exe new file mode 100644 index 0000000000000000000000000000000000000000..a980ac5c6d619f7adebb8f41126aa79f07416c70 GIT binary patch literal 24576 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 B*`xpf literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise 12-6.vbproj.GenerateResource.Cache b/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise 12-6.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..c5b64e922d252d0894313fba55579457f6022e37 GIT binary patch literal 784 zcma)3O-sW-5KV1U`=L+|QbZ3$JP4N1T8dtZV8su#;1}Y-%Qic~wcD)hB+_{D=s)w9 zc=HDc9(1OtNDblyUXt0_H*e-S8OL$nDfrDXGevOOQ@%B5g2>yBm6qPQzya247hqAD zu(R$p_^H>rv5sO3oe<*43SF-q$9=8*LrBie0K!hc(F)qZM$l}^c0;s;%WYOu*}YT1 zJqUN;7D5T3uK-y}(E?uXDh*ie3xp#T4nXq%jAGcWT zjQpV}yL6Ud1VgWDw5Im74D|K|UPq#@VcZ}`cXAAWmQGVa>BtDVD|m?M&&?LPW_T+s z*b0+&jf7)s?vw;u;KZ4_ha4>z^A|$LfR2;RI<8wTr1d)Z;#x`3eDI6^jQe^(Wt`3Tvsd*xD3s7Uw#|CMyavMytlIc z_86<*9wzMhT0jtrAuLYhwZN!nqzV+s`H3?aDU2{r(q=Pbhl(tchjHFspC4LJkC{16 Hag;v*AJ^$z literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise 12-6.xml b/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise 12-6.xml new file mode 100644 index 0000000..2e58bed --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise 12-6.xml @@ -0,0 +1,24 @@ + + + + +Exercise12-6 + + + + +

    + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise_12_6.Resources.resources b/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Debug/Exercise_12_6.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYlwmJ+ZViR+Iro@+Am^$(Jdz>|R&O|U{LNLHLq8ryd^O<1IAZ=>b$i(H zMfW3qa4&qogVj!bq1Wgw_2%cjMx8CN9Ikm|s&%JzAY(pg#VqF7W%Y#5m6pBoe938s zzR$Zcc_5t+ncRz6$LH|Z%91c3{&j1CHrSgX^VV564x>U6j@b+c4_U;c85nJb9^a0_ zec|!Q#1Ad;m>U$4%_5A6^F0J>+eMO=0g)py zgBcd`c@oRbl{UH5kJzBPPFa!d)}77WtkoBeHJsP^{Kx*@Eynm-iA7PDG+$h$7}oB<_zxNmXRrKvXzqe(}b_v3h7} zi8Z>7cjlKD7J2>VaseT#qAJv%I7I6l9kEDQtQ|3{RFE$5>6wtLv>mGM+{ zeaTH|VI$~;mWzhE#UwY~q~FRe`e4oPhmnZ)2A3w)^)PCNK^%qt1($Lk27O#d{kP3T zba7-uwOK4W!WZ#D-d*=uUsjZ%@p-*a(DbYtg-pgQCk0HrXdE_Z&=dV(#K0?~k`kat z(}M|TU+&bkqu4nT+PlZ~C-HwG15++Y!&s#!lb@mLU7U(c>pU&lpOMI4Ah8DSU8&V- z&6U~&@zln|QzPQ3O*IDMv0foF#xr`cyj;e>S%rP@t?O#0@i_thFER#$w4&L@pEUbl zDVw|jn(+tOJWeJjkE+z^XevcOm*Ad`_EPF)rJ~W4`YO~4j-VKdzUZleXfX_=?FFD> zE$?ozPr`^EBEUm2x8>gD`vUBVqb7}!nXf?mGz>U%+FCku*3v|XNlU**1vUq=8%Dn9 z*wz(N(Z#m)I!XQaRLkhUr4(C#LK=DqSk`}~3BXTtYArza3^eLH=XAaY-b9&`*A0Cr z+SWDt;W=!s(@g(`pfF-u{pXZo>pzip2%8^C8N&wDb_SbM44b#8z{LbM_^P$7w-0eM z3*7vWf{OlqO0o6t(zy9HjhhNM3-89v*N@vfmlvOWse`-lA_O;KJjG`xjS6r&xfOVw Px)rWXZiS1}wif>Z@k#E2 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Exercise 12-6.vbproj.FileList.txt b/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Exercise 12-6.vbproj.FileList.txt new file mode 100644 index 0000000..dd2edc9 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-6/obj/Exercise 12-6.vbproj.FileList.txt @@ -0,0 +1,9 @@ +bin\Debug\Exercise 12-6.exe +bin\Debug\Exercise 12-6.pdb +bin\Debug\Exercise 12-6.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_12_6.Resources.resources +obj\Debug\Exercise 12-6.vbproj.GenerateResource.Cache +obj\Debug\Exercise 12-6.exe +obj\Debug\Exercise 12-6.xml +obj\Debug\Exercise 12-6.pdb diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/Exercise 12-7.vbproj b/Code/Chapter 12/VB.NET/Exercise 12-7/Exercise 12-7.vbproj new file mode 100644 index 0000000..4581b95 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/Exercise 12-7.vbproj @@ -0,0 +1,85 @@ + + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {795224C8-8BD0-4FC1-B20A-C4B5FEAAD001} + Exe + Exercise_12_7.Module1 + Exercise_12_7 + Exercise 12-7 + Console + + + true + full + true + true + bin\Debug\ + Exercise 12-7.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise 12-7.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/Exercise 12-7.vbproj.user b/Code/Chapter 12/VB.NET/Exercise 12-7/Exercise 12-7.vbproj.user new file mode 100644 index 0000000..e4a7c97 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/Exercise 12-7.vbproj.user @@ -0,0 +1,6 @@ + + + 8.0.50215 + ProjectFiles + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/Module1.vb b/Code/Chapter 12/VB.NET/Exercise 12-7/Module1.vb new file mode 100644 index 0000000..ed341b7 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/Module1.vb @@ -0,0 +1,31 @@ +Imports System.Text +Imports Microsoft.Data.SqlXml +Imports System.IO + +Module Module1 + + Private connectionString As String = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI" + + Sub Main() + Dim cmd As SqlXmlCommand = New SqlXmlCommand(connectionString) + cmd.CommandText = "Person.Contact" + cmd.CommandType = SqlXmlCommandType.XPath + cmd.SchemaPath = "Person.Contact.xsd" + cmd.ClientSideXml = True + cmd.RootTag = "Person.Contact" + + Dim da As SqlXmlAdapter = New SqlXmlAdapter(cmd) + Dim ds As DataSet = New DataSet() + Try + ' Fill the dataset + da.Fill(ds) + ' Make some change + ds.Tables(0).Rows(1)("LastName") = "Unabel" + ' Update the data back to the database. + da.Update(ds.GetChanges()) + Catch ex As Exception + Console.WriteLine(ex.ToString()) + End Try + End Sub + +End Module diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Application.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Application.Designer.vb new file mode 100644 index 0000000..c5978d6 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Application.myapp b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/AssemblyInfo.vb b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..4e94779 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Resources.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Resources.Designer.vb new file mode 100644 index 0000000..a99d4f4 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_12_7.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Resources.resx b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Settings.Designer.vb b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Settings.Designer.vb new file mode 100644 index 0000000..91eae4a --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_12_7.Settings + Get + Return Global.Exercise_12_7.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Settings.settings b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.exe b/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.exe new file mode 100644 index 0000000000000000000000000000000000000000..fef4100c837c55ba9158d2a82f0196c65004a9ca GIT binary patch literal 24576 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 AwEzGB literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.pdb b/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.pdb new file mode 100644 index 0000000000000000000000000000000000000000..bc1179dbd774a84ccf9b7a164f59cf4de58970be GIT binary patch literal 42496 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.vshost.exe b/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.xml b/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.xml new file mode 100644 index 0000000..9ddee82 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Exercise 12-7.xml @@ -0,0 +1,24 @@ + + + + +Exercise12-7 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Person.Contact.xsd b/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Person.Contact.xsd new file mode 100644 index 0000000..659ec82 --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/bin/Debug/Person.Contact.xsd @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise 12-7.exe b/Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise 12-7.exe new file mode 100644 index 0000000000000000000000000000000000000000..fef4100c837c55ba9158d2a82f0196c65004a9ca GIT binary patch literal 24576 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 AwEzGB literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise 12-7.pdb b/Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise 12-7.pdb new file mode 100644 index 0000000000000000000000000000000000000000..bc1179dbd774a84ccf9b7a164f59cf4de58970be GIT binary patch literal 42496 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise 12-7.vbproj.GenerateResource.Cache b/Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise 12-7.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..75a2fb73527b15ba9d69f64fafa8599be2ee6ae9 GIT binary patch literal 784 zcma)3O-sW-5KV1U`=L+|BBF;P9t2BhEuxpASn&fb_=R}zvdvC#?RHmo5;2}U`p^6? z;(ySYq9Qej6L?8xXWzV;=jA-ld#B(x$J7MDRZoS^qK)EUCsA4k7Xk;^s9%CZWld)- zX!6sjcM}~a4mt*s*a_XJpCo;)!Xrp8>;O!s-)u+g(MHs2$@Qja3!mGpWU>cmfcs!} z;SP)h6DmNKQg(n>drAY&^##JQG6RtOzpEUCv2|%7x0FpdPBo&-6KBO|{KqX;J0*W8 z$}gU$7{f5=TCJ%)EdzrCfj6<}YZx^s(47LqpQV#jP&u|j?g<`Z@^iDLt{vV92d>7X zT`S?l*?T3yl{j&(9-%>gW;(05TDq-1Y zC=%58iw}yddA^s{NzyINeocni#D#zXdGt`@Vy-Kf2z-WCwlBYpUZvE?WZqj*crvr + + + +Exercise12-7 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise_12_7.Resources.resources b/Code/Chapter 12/VB.NET/Exercise 12-7/obj/Debug/Exercise_12_7.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYwMvU>1XhQVCpMVRNwi zG>*SWYqG?wl0o}5TCxnnBCVsPEK_s$)A9~|nri*o_~v|f{;qr?p>)T|X5zzTZmnxQ znl76bEv7AEQ5+@aRYq;iyYAmt(WK58%~{}q8Qn(ADT`zoMSn#v2m!@^4h_HnX;>%9 zAjw&}5pcE>OzOp*#GpnK8cpg79X0eBRiQ=@AEeb?RDd0s{&B)e)Z{p?m-G1=g7wxK zs@Q6;qDOAg;)C`$9Vp-I%{o@3|zbbO&Lg^_8vJxF|nYiyUi)sid z%wlvY6CR$#DR^-$>rX%X;_;`&AoN8Mg#^Nf>XLnEB&OTHATiUHp=t#$zrjgpisl^< z*6hTFAtuou0`X9FE3S-G3#b>$r?U&n=;|fZ)7#V4t>l!Rcuzc+>rDi3hjvbF&@Xw1 z;wqRfHlhfFSdFp5CZO|I*(7ewCu8mx&xFR$vAxSC+Y;Fbkl+0LIWDyx}C_SLpq(u+^@Bn(zzQyq0LzPQ~y^ zJQkMCK`pk5C1$HP+bR~Dt=@ua7^l1hmxpVIWoJ2VKPY}=5ztfVfdmKS%foNu#yelt zCeA@JP}4%pyQr>PfmV1JA3ju0TX*gIpIm+ zmq*AWx&b#;!<&7)h;oX~s7UcJf(t^k`3w5<_yC%K;aYCQ<5?jdplyeE)p3sNl$D&#Rjr}pUJWs1OOtW(+ z!q==M0xvqSxea>!S%5<2Ea1O(DH4AMv<29F1xgh*NWLquS;nxr9TME&zy?3PC9z`x zHxb0m7cQvqr(BA}f9}T3XKvhtk+bYW@Qq!W@s_Uh`*`FoJP7T-AaJj=Fygd!DB`v5 OP;{+!D7sj0Xv07B@;LAS literal 0 HcmV?d00001 diff --git a/Code/Chapter 12/VB.NET/Exercise 12-7/obj/Exercise 12-7.vbproj.FileList.txt b/Code/Chapter 12/VB.NET/Exercise 12-7/obj/Exercise 12-7.vbproj.FileList.txt new file mode 100644 index 0000000..be4603f --- /dev/null +++ b/Code/Chapter 12/VB.NET/Exercise 12-7/obj/Exercise 12-7.vbproj.FileList.txt @@ -0,0 +1,9 @@ +bin\Debug\Exercise 12-7.exe +bin\Debug\Exercise 12-7.pdb +bin\Debug\Exercise 12-7.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_12_7.Resources.resources +obj\Debug\Exercise 12-7.vbproj.GenerateResource.Cache +obj\Debug\Exercise 12-7.exe +obj\Debug\Exercise 12-7.xml +obj\Debug\Exercise 12-7.pdb diff --git a/Code/Chapter 13/C#/Chapter 13.sln b/Code/Chapter 13/C#/Chapter 13.sln new file mode 100644 index 0000000..f86df74 --- /dev/null +++ b/Code/Chapter 13/C#/Chapter 13.sln @@ -0,0 +1,74 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandWrittenUDF", "HandWrittenUDF\HandWrittenUDF.csproj", "{DD6C6255-AE74-4F27-ABDB-ABF2B0F888FB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlServerAggregate", "SqlServerAggregate\SqlServerAggregate.csproj", "{A159FB8C-8A16-4F9E-A7C1-F0496EC37EA6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlServerStoredProc", "SqlServerStoredProc\SqlServerStoredProc.csproj", "{2C1FCB3D-2089-4969-B2F5-033EBF3B1B18}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlServerTVF", "SqlServerTVF\SqlServerTVF.csproj", "{C820AC83-884A-404E-B312-E563779395FF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlServerUDF", "SqlServerUDF\SqlServerUDF.csproj", "{68F28AF0-0E08-4AC6-98D3-491E08B6E66E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlTVFExternalAccess", "SqlTVFExternalAccess\SqlTVFExternalAccess.csproj", "{B1E20ECD-9C2D-4400-BB00-5696B6E0D92B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandWrittenUDFTest", "HandWrittenUDFTest\HandWrittenUDFTest.csproj", "{F274AB97-7B7A-48BE-ACA1-295E0DF10AE4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlServerTrigger", "SqlServerTrigger\SqlServerTrigger.csproj", "{6B60F7D1-EFE6-4017-BF8C-57D7D2276E25}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DD6C6255-AE74-4F27-ABDB-ABF2B0F888FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD6C6255-AE74-4F27-ABDB-ABF2B0F888FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DD6C6255-AE74-4F27-ABDB-ABF2B0F888FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD6C6255-AE74-4F27-ABDB-ABF2B0F888FB}.Release|Any CPU.Build.0 = Release|Any CPU + {A159FB8C-8A16-4F9E-A7C1-F0496EC37EA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A159FB8C-8A16-4F9E-A7C1-F0496EC37EA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A159FB8C-8A16-4F9E-A7C1-F0496EC37EA6}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {A159FB8C-8A16-4F9E-A7C1-F0496EC37EA6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A159FB8C-8A16-4F9E-A7C1-F0496EC37EA6}.Release|Any CPU.Build.0 = Release|Any CPU + {A159FB8C-8A16-4F9E-A7C1-F0496EC37EA6}.Release|Any CPU.Deploy.0 = Release|Any CPU + {2C1FCB3D-2089-4969-B2F5-033EBF3B1B18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C1FCB3D-2089-4969-B2F5-033EBF3B1B18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C1FCB3D-2089-4969-B2F5-033EBF3B1B18}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {2C1FCB3D-2089-4969-B2F5-033EBF3B1B18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C1FCB3D-2089-4969-B2F5-033EBF3B1B18}.Release|Any CPU.Build.0 = Release|Any CPU + {2C1FCB3D-2089-4969-B2F5-033EBF3B1B18}.Release|Any CPU.Deploy.0 = Release|Any CPU + {C820AC83-884A-404E-B312-E563779395FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C820AC83-884A-404E-B312-E563779395FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C820AC83-884A-404E-B312-E563779395FF}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {C820AC83-884A-404E-B312-E563779395FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C820AC83-884A-404E-B312-E563779395FF}.Release|Any CPU.Build.0 = Release|Any CPU + {C820AC83-884A-404E-B312-E563779395FF}.Release|Any CPU.Deploy.0 = Release|Any CPU + {68F28AF0-0E08-4AC6-98D3-491E08B6E66E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68F28AF0-0E08-4AC6-98D3-491E08B6E66E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68F28AF0-0E08-4AC6-98D3-491E08B6E66E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {68F28AF0-0E08-4AC6-98D3-491E08B6E66E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68F28AF0-0E08-4AC6-98D3-491E08B6E66E}.Release|Any CPU.Build.0 = Release|Any CPU + {68F28AF0-0E08-4AC6-98D3-491E08B6E66E}.Release|Any CPU.Deploy.0 = Release|Any CPU + {B1E20ECD-9C2D-4400-BB00-5696B6E0D92B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1E20ECD-9C2D-4400-BB00-5696B6E0D92B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1E20ECD-9C2D-4400-BB00-5696B6E0D92B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {B1E20ECD-9C2D-4400-BB00-5696B6E0D92B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1E20ECD-9C2D-4400-BB00-5696B6E0D92B}.Release|Any CPU.Build.0 = Release|Any CPU + {B1E20ECD-9C2D-4400-BB00-5696B6E0D92B}.Release|Any CPU.Deploy.0 = Release|Any CPU + {F274AB97-7B7A-48BE-ACA1-295E0DF10AE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F274AB97-7B7A-48BE-ACA1-295E0DF10AE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F274AB97-7B7A-48BE-ACA1-295E0DF10AE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F274AB97-7B7A-48BE-ACA1-295E0DF10AE4}.Release|Any CPU.Build.0 = Release|Any CPU + {6B60F7D1-EFE6-4017-BF8C-57D7D2276E25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B60F7D1-EFE6-4017-BF8C-57D7D2276E25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B60F7D1-EFE6-4017-BF8C-57D7D2276E25}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {6B60F7D1-EFE6-4017-BF8C-57D7D2276E25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B60F7D1-EFE6-4017-BF8C-57D7D2276E25}.Release|Any CPU.Build.0 = Release|Any CPU + {6B60F7D1-EFE6-4017-BF8C-57D7D2276E25}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 13/C#/Chapter 13.suo b/Code/Chapter 13/C#/Chapter 13.suo new file mode 100644 index 0000000000000000000000000000000000000000..a91e63479ce5a6a6522b77394146d9308cb2c040 GIT binary patch literal 45576 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 Q$Soc_^w--};D2=g2S3YtZ2$lO literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/HandWrittenUDF/HandWrittenUDF.csproj b/Code/Chapter 13/C#/HandWrittenUDF/HandWrittenUDF.csproj new file mode 100644 index 0000000..720d35b --- /dev/null +++ b/Code/Chapter 13/C#/HandWrittenUDF/HandWrittenUDF.csproj @@ -0,0 +1,40 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {DD6C6255-AE74-4F27-ABDB-ABF2B0F888FB} + Library + Properties + HandWrittenUDF + HandWrittenUDF + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/HandWrittenUDF/HandWrittenUDF.csproj.user b/Code/Chapter 13/C#/HandWrittenUDF/HandWrittenUDF.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 13/C#/HandWrittenUDF/HandWrittenUDF.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/HandWrittenUDF/Properties/AssemblyInfo.cs b/Code/Chapter 13/C#/HandWrittenUDF/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8b254d3 --- /dev/null +++ b/Code/Chapter 13/C#/HandWrittenUDF/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HandWrittenUDF")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HandWrittenUDF")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3fb4997b-5ec2-41e5-8f48-46b88995f458")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 13/C#/HandWrittenUDF/UserDefinedFunctions.cs b/Code/Chapter 13/C#/HandWrittenUDF/UserDefinedFunctions.cs new file mode 100644 index 0000000..a22bad9 --- /dev/null +++ b/Code/Chapter 13/C#/HandWrittenUDF/UserDefinedFunctions.cs @@ -0,0 +1,32 @@ +using System; +using System.Data.SqlTypes; +using Microsoft.SqlServer.Server; + +namespace HandWrittenUDF +{ + public class UserDefinedFunctions + { + [Microsoft.SqlServer.Server.SqlFunction] + public static SqlInt32 GetRandomNumber() + { + Random rnd = new Random(); + return rnd.Next(); + } + } +} + +// SQL SCRIPT +//Create Assembly HandWrittenUDF +//from +//'C:\PlayArea\SqlServerProject\HandWrittenUDF\bin\Debug\HandWrittenUDF.dll' +//GO + +//Create Function GetRandomNumber () +//Returns Int +//As +//External Name +//HandWrittenUDF.[HandWrittenUDF.UserDefinedFunctions].GetRandomNumber +//Go + +//Select dbo.GetRandomNumber() +//Go \ No newline at end of file diff --git a/Code/Chapter 13/C#/HandWrittenUDF/bin/Debug/HandWrittenUDF.dll b/Code/Chapter 13/C#/HandWrittenUDF/bin/Debug/HandWrittenUDF.dll new file mode 100644 index 0000000000000000000000000000000000000000..fd1f0aa6c8216971d2c6749d8de6340fdbbc51d6 GIT binary patch literal 16384 zcmeHNOKcm*8UB}%WyuevvVuI2*9vl5CxKW!s8~vigc504vh}h^$!SZ#UM@$}M$6sJ z?lLi(AP^EDfpZ9w6zJnpG;M$)Ik`pA#s!K#fS{M;)@#2Pep+q;(q_XBt<=7 zv_&sLW{Caf|L33i=bvwu!<|_!e(O!TgNV9t-MU5e0dh`R!P~<&%zY34rjLHv`|;oh z#=^&g#Z4zNgV3*rR?W06&+}umtjw_PnT}`XmkVaiuc-9NlgCasU9X%YS}^XQzplBt zR&P7hH+bCWA^H+Z%%t>3Uv0`+)&V9m*g0-at(>-@a62T73&l`GZ{=;X)R}|d0!vw< zNhV@{x=M5cWjDS;^uT`G?R1j}BWR}{=yPq2C>^V7G4ywj0$`IEn{h*vWD;FXhf!!l zli0ElxQ>adBV`eNI#jNYiX1Cl#l`hTaCM|C(M*S`Ma_U_Kr^5j&Gy|Fe&46Y= zGoTsx0x_`7`)VZKo2KXpy=W3;x`_-f{2$W5h(Y(D9oqL()K7HmShs%)*_i>r@yF=s zqYtId+y(hjnkihEF`7N`zV*4W^hkPQr2K{0YG|!9ei3;7HW< zu-!**(*O+$J|Z{@yqBg#o)(-Jyd?NdK}*mPd{(dle2}gKhv+Tfo%BP&cbfS7)G(&| z!_+9aWvfZA&>2coj=l@LpDqH2s16(#{5rh=`8YiZyeK6F!EX!N(rSx-25Uq&fG^NZ zI!j&K$(&F-jX_FgC@C^%T7&s8ZDQfQFh$a(s?VkI^}fXS-02-R74Qwy?A_# z&Z~G8UHi4AdabNNO53p?w%V+!4HxdvF-=F2s+HZwtmCS66-FqVj&b9c>#=GZ4;YfD z(yMhZc4{h(E>-9U1re_p zZTz4SI@QhiplKxp?e-xC#1L3s<6w)N?`=5MdT22l2hDjE*`X60ZY(-+=a`zLI0EhOMJ=PtG>krm)Db}cG>bi5ysW_5gTeQwF-V+8L9mQgd578qAogUvPXQrmkmWL;lJvN*fRTIOL8=1-B%;V+B$*HM{ zjm*R(mTXz0?lI_8u5~wqb=`7I>Kae%kPAUUw z9q-n!0MF4Xq8v7eTI0~BGkP#VE*QH**%v?Sf=%EGCEm}1m&P+mR66Yt0kyhLw(GE|mV>T|NU zZuOi;?-AMJC)m@^ob+Fz%VLXRQ|M`p^5~1x2p)NjcE9VehVZl-=O}i*BkhaNXa-Q9 zN6MZ;Q_r{HG+ZK~oS2WA31Ni!2w+Jtw)&V7HGN$=sI z*2K93^MU7iT9J5`o9&oIj;F;7YyVwbS>bgB{(MAR2d8nz=x#qg9#=;A+}nOXtNS^f zls41gJpvy!%&-e4Ox#_2XJdam?oTJpfM!55pc&8%Xa+O`ngPv#WGy|Fe&A@-iz`p^ptYk<4 literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/HandWrittenUDF/bin/Debug/HandWrittenUDF.pdb b/Code/Chapter 13/C#/HandWrittenUDF/bin/Debug/HandWrittenUDF.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2604050316fe22086904e7ef2eacddb80b8e1267 GIT binary patch literal 11776 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/HandWrittenUDF/obj/Debug/HandWrittenUDF.pdb b/Code/Chapter 13/C#/HandWrittenUDF/obj/Debug/HandWrittenUDF.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2604050316fe22086904e7ef2eacddb80b8e1267 GIT binary patch literal 11776 zcmeHNT})g>6rKfImfv<`MT@4n3Qd)^`%|hCqM@)0mcT;nLQ2hjV1Mq04X}%M7ZIOU zV_Nm84?eVs8XJ?=Xk+3}YNIwGMo8?7hBn6dR!y4NMB5q@(HQXi?%jchHTwh$k-2e(`7H+3q(hP*w@90&f9VgDomN3#^s@3vZ-Wk8)Wc7yffw z%*KD_+4feMOP^Kt|Fi(_cO)sz+|qLo?ty!dXvvcP>mxNT{4>6;TjpWZ$(ZG)ThA{*Xj8!6ei7tHxV-LDK>OAjE;`W`UrG_Xa5 zVS)MU^VjK{*V!F!v)VeQYssYQKcXD&J=CRohk|1%O;_qXjjA^h(Nu4pdN3G|9M)s0 zlos#zb*TMGP4{WhSX_&AjK{;NSR$TuhLb{so7JGHZFEwZNa(|AI7?fY+QN0}5VTF0 z+QuVMbsX9vrnYFdHew3r5BthFL?ZTB^xrJNHF_2*ZiGHuxO`>Wmak2@_URk?h4@dJ z1K+y-Ilt&X)@85%e6YguKa97^B-ei*9azBYzgnO%5kd{X5}2`+~peJ{Fg+N-{~_E z*KV_DaIjBX*&$H&84yK0-Wls#JgKD)0j?9HJ>#PxO=o$HD0WcCcVO9$YRW~uqdzd2 zOlhN{b}8-j1yez1;F*!W$uSLkgxJA4zx)z{H33b3R@0rPK)vFiKCsb8qK!9D@2Pi# zP+o(2h^%@c^mqhklFeeDC@J}><=V_gN51X+d}mqFXYYMH$anq1hdOA2Qudu^SK=74 zkL`YiJP0P)@F&N`cON%Ojq`1q{X&c*O&=r9k-i(U+Q{2Ee(?RG6er@}P|kC)vBzf8 z5JKVOwn#=@ZmaRKMm)>cmbq?HVcs zxCu<3Lx?GG8ax2z`9{Y1vSWOqkwkb{xRQF<6^)H(N!P01_<8i?385KGA{4Q#94t@H zM6L(H?4?EdT7VY47cBjMEOQ{6LRlJ2|MM=NMtOD&nDaq;gBZejL9fsYoKv~tzbLk- zz%0P^K2hc|;y&=-%N1hROr>ZrFhN0I8S_7%)o1?pYrB#EWl9#Ch_QqnGH=$GiEWuV zHHZQx&(H4T6ftOdFwvPSm?)as8z1qwy^ULS zclRIY3!L*G+dqBv)bFo;a0O+q?pS=dGagL{S3Ee1E4u;rLs~GR>1&JsS^LUb257jA z5V&Z}_rW9yY)o@|c^-_5{o=N>j<%aE7#3q1tr&k3(Sfr + + Debug + AnyCPU + 8.0.50215 + 2.0 + {F274AB97-7B7A-48BE-ACA1-295E0DF10AE4} + Exe + Properties + HandWrittenUDFTest + HandWrittenUDFTest + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/HandWrittenUDFTest/HandWrittenUDFTest.csproj.user b/Code/Chapter 13/C#/HandWrittenUDFTest/HandWrittenUDFTest.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 13/C#/HandWrittenUDFTest/HandWrittenUDFTest.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/HandWrittenUDFTest/Program.cs b/Code/Chapter 13/C#/HandWrittenUDFTest/Program.cs new file mode 100644 index 0000000..a94da36 --- /dev/null +++ b/Code/Chapter 13/C#/HandWrittenUDFTest/Program.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; + +namespace HandWrittenUDFTest +{ + class Program + { + private static string connectionString = "Data Source=(local);Initial Catalog=test;Integrated Security=SSPI;"; + + static void Main(string[] args) + { + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = testConnection.CreateCommand(); + testCommand.CommandText = + "Select dbo.GetRandomNumber()"; + testConnection.Open() ; + int randomNum = (int)testCommand.ExecuteScalar(); + Console.WriteLine(randomNum); + testConnection.Close(); + } + } + } +} diff --git a/Code/Chapter 13/C#/HandWrittenUDFTest/Properties/AssemblyInfo.cs b/Code/Chapter 13/C#/HandWrittenUDFTest/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5f07227 --- /dev/null +++ b/Code/Chapter 13/C#/HandWrittenUDFTest/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HandWrittenUDFTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HandWrittenUDFTest")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("4f730194-a87e-4200-9a5c-7fa806e77d45")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 13/C#/HandWrittenUDFTest/bin/Debug/HandWrittenUDFTest.exe b/Code/Chapter 13/C#/HandWrittenUDFTest/bin/Debug/HandWrittenUDFTest.exe new file mode 100644 index 0000000000000000000000000000000000000000..428360681db5b145ac335433eb12e6c78f9df34e GIT binary patch literal 16384 zcmeHNU2Ggz6+ScG_%E>)+fALQp^R~=I#E4Z+nYLW5?FiJPF(zl*LG4^DW09ZUQaSR zvzeJ~Z4i+w1yBVK?E^m#2(?lxwGsk^f?9t1P!#b}D!~f^wS_+L&=&*}F9@WT@7&q- z-&zqMBr0*QHRqmt&bjBF`^}v@=gxZev(Hi!5hZYa_#x42sJWyiy*Jr{y7S{d>7+Yt zZ}q*V&AipOwC;pPCGbmuRW@wP^Zdvt2qUO^hT|F8`J7Sqi^A;aXg^hRy)a2Mqczd* zmfcK!wD+h}JFK-59fib*rMFJk_%ydc3{=o_++6B4ZK1*aP%tlu(U9$Wy{(our{MPr zb7`Wh48;DjN^}IW+XF-=_v`M}Hi$5T?b3?&hapb+>!LSU88)hK*6)#(uZ)*$+B3z3F4u4YvKR(T+)(+YZ^Zx`JHO@ug!wzpHW z--Y^cO8{BL?*CS^y539^pzZV({U+$wC4EEx9{9IGo9Q1qkFGT_ zJpsxkjx5IWDD}~4AjqvQ$|3FrgKeIpB6UFaE7|(;aff;^v%9hG_+V3}hQq4fMGp1S z2}%1TJq>!2h9o~G>A0lRl72?gCnU8bbtJtB+6SB*dYGO8?LiFe`8j%Ce}rD3H}zh6 zh2GbD!2d}fq90RR(^*J*ntJFBdI+>l_A==(T_Tenpe4|Lx&=BS>3O;hK11II{j`+i zB>kMEwv^wXJJ5#oI_MYZ7xWk7q$b`R1R%FaGe6>Hp57iX})k>*b&*j=b?6dFJ9v`YdId7 zcH{>&OLI}Ixv>e2hoLAJ+|4P+6)PeL(QQ1!vr(uC}UZ0wQoy)~y)4J-z%QJoc`9XOSPl}k>vdrmb_vW`{q{4jFtkg}psEtRZ2 zQ;%iXd~oN1)jlXWP~3`O8_QTA!&?-twIR81C(_zIkQ0oYg5x^Tu4!5U_PBarR%Gqw z&D>2l<2u5Nh`H@$6SvA`EJ(@(!iof(%hoPOCd+(}vW2=b6w$RBzr-IrSyNw$G+z-O zO>PJq%PMDEt`!g#&B!ppCiGoFy!6G4;|a>Rekf=<>x30QWaubn1=g@!#59&8fn8mY zO%WN`iwf8$O+42E?M1T4gUqKg%~2J!0C_+I*vV+?OIfHRTn4r?AL;;31YLyMMcanP zh2eRch7$*tj+7YK7~+0xRf2tlULj~~$*mH6v5mms?4847|LkQGJ#zS4fM2}8@EyA2 z*)O*k9&7IhAwU2c+8Kfl)P3vT$9|GyR$ZTuE zpzc{{PbLVh)|N!~boXqlj#rL$M5C4=y#4S;bXucRskPCOveW#)R+R$Y<~*2A@G?LHs z=Nkjg`-SUy`S2Z}G%LjdhN78Tj>Npjyun;!spnFAHCX=v7P;JThapb+@qA)v`~E?&D^dt-=Cen=l0^4z8v__<&n4O(}3INN=uz zP9g)#ASDU!*UheWN>(*gOrf2%DCoh{hV4{b(}cL|1>_vdjWoZq|sGi9qpR!zcycl zM=6Q(UO)TM-jDS;*=HR0BLqHtZg7E&fz`M7F75Bfhapb$_9Cy)5KsvG7ZLa;iA~1f literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/HandWrittenUDFTest/bin/Debug/HandWrittenUDFTest.pdb b/Code/Chapter 13/C#/HandWrittenUDFTest/bin/Debug/HandWrittenUDFTest.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2b0b7e1b40b6a228f87001e075cdf03ebe55eb26 GIT binary patch literal 13824 zcmeHNU2GIp6u#Tm{!o5gKtM3fSV};U-7P;Ai3)VL#X^@>7X-{EFx{QCo9@n(*{P+8 znuP~r)CXdC;XxDQ9|=T_5{*9?9)tvpAraz}#OQ-WA3zL=_|p1)GjrPofr4q1?RL)Q z%$d3Op8Ipox#!G1v(a?IG;&7DQo_OTvSms%)~Y-b2!*CinIDM>K$#FekOjaO_zalm z5bs(75~!}6H#p?Mq?JJEpNo@r?cTzNhHB3=`qt2o-RmOAbTKqk0a~8N#ePo480Un<14>bB#%-`CflP3~|1 z?9b-&`^*mx(QF9uSr^~?d;c3#KfiGFnv&H zasRG>?ddBRA1YnW3!qDY>^t@S)k`~Y|0=Kr$T|%up%phbwq;*z%eun0c=TY5B`|n- z@G|91{fO||_=a9n%jM$Hoyzu(r#HvL-D-R*lG+tUY-N?vbILl_eT6Vl(x64#oS2O4mZmNr2I<9G? z%Tc{lm8)ZVDf&;wHUdS-J#Y^niX7-^17azU=i*~`13yzRXB1WP(XNWBX&v`-M7f`Q zdr>IcvVMwa@NbI^K>PGGZVIz~#5?0#KbAgSTu9@kCm|0N2RoiQU{kpPV$I? zfkeVGOtim)aeU8LxNEHB7=MBN82bSD@RNFGKIgDqYUg$G90xg_Jb5wCJnOOW{A|#f zLhMsOai3oddLQUY&^e%MLFa;Q0LAyDd^6~!%Y*r?F5L!tKgz2_HTsLewrY_}Y5@j; z4ZtUWOYM8sNnm@+I>ku1@ojmX`s~UgDzd|(x^*8ZVTic4V2q7xD)={uoqX=1knHg6&UwB zzXNkW(cOj`xvv-5KJOTm=#$O|^>f5S1?8b8yFDF2@dMpKNkg5OZtDgrL!1wHM3?Pq z(JgaeSErF?jGgJ~l&0(x&I^Flr&H$Y)6;)R+sPzdT*>c$1u_3tVM@LmPzcp%$Jks_ z@p*KkE_wZPfpGKUG?4!Tkl%Pd#C;yf+%4^c=PVusYk+)j=GnI^V{_cZq^-8T+d}=Dr)k)0#G2p|%cMH~m zvpdh_fJ-NAf{XKYc*J+eXQ#eK%!ADkn9rbjb-%TOCSt>XKPCj+j|pPsnozhYwE9u8 z{L8=<*DQzg5R#vibv)~jWC2*}Kp8S7(`;tnuy0dQ#dt=L{*IJ+4)zwobu3b$I`UA!Q~lvl)%4nX1*E# literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/HandWrittenUDFTest/bin/Debug/HandWrittenUDFTest.vshost.exe b/Code/Chapter 13/C#/HandWrittenUDFTest/bin/Debug/HandWrittenUDFTest.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/HandWrittenUDFTest/obj/Debug/HandWrittenUDFTest.pdb b/Code/Chapter 13/C#/HandWrittenUDFTest/obj/Debug/HandWrittenUDFTest.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2b0b7e1b40b6a228f87001e075cdf03ebe55eb26 GIT binary patch literal 13824 zcmeHNU2GIp6u#Tm{!o5gKtM3fSV};U-7P;Ai3)VL#X^@>7X-{EFx{QCo9@n(*{P+8 znuP~r)CXdC;XxDQ9|=T_5{*9?9)tvpAraz}#OQ-WA3zL=_|p1)GjrPofr4q1?RL)Q z%$d3Op8Ipox#!G1v(a?IG;&7DQo_OTvSms%)~Y-b2!*CinIDM>K$#FekOjaO_zalm z5bs(75~!}6H#p?Mq?JJEpNo@r?cTzNhHB3=`qt2o-RmOAbTKqk0a~8N#ePo480Un<14>bB#%-`CflP3~|1 z?9b-&`^*mx(QF9uSr^~?d;c3#KfiGFnv&H zasRG>?ddBRA1YnW3!qDY>^t@S)k`~Y|0=Kr$T|%up%phbwq;*z%eun0c=TY5B`|n- z@G|91{fO||_=a9n%jM$Hoyzu(r#HvL-D-R*lG+tUY-N?vbILl_eT6Vl(x64#oS2O4mZmNr2I<9G? z%Tc{lm8)ZVDf&;wHUdS-J#Y^niX7-^17azU=i*~`13yzRXB1WP(XNWBX&v`-M7f`Q zdr>IcvVMwa@NbI^K>PGGZVIz~#5?0#KbAgSTu9@kCm|0N2RoiQU{kpPV$I? zfkeVGOtim)aeU8LxNEHB7=MBN82bSD@RNFGKIgDqYUg$G90xg_Jb5wCJnOOW{A|#f zLhMsOai3oddLQUY&^e%MLFa;Q0LAyDd^6~!%Y*r?F5L!tKgz2_HTsLewrY_}Y5@j; z4ZtUWOYM8sNnm@+I>ku1@ojmX`s~UgDzd|(x^*8ZVTic4V2q7xD)={uoqX=1knHg6&UwB zzXNkW(cOj`xvv-5KJOTm=#$O|^>f5S1?8b8yFDF2@dMpKNkg5OZtDgrL!1wHM3?Pq z(JgaeSErF?jGgJ~l&0(x&I^Flr&H$Y)6;)R+sPzdT*>c$1u_3tVM@LmPzcp%$Jks_ z@p*KkE_wZPfpGKUG?4!Tkl%Pd#C;yf+%4^c=PVusYk+)j=GnI^V{_cZq^-8T+d}=Dr)k)0#G2p|%cMH~m zvpdh_fJ-NAf{XKYc*J+eXQ#eK%!ADkn9rbjb-%TOCSt>XKPCj+j|pPsnozhYwE9u8 z{L8=<*DQzg5R#vibv)~jWC2*}Kp8S7(`;tnuy0dQ#dt=L{*IJ+4)zwobu3b$I`UA!Q~lvl)%4nX1*E# literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/HandWrittenUDFTest/obj/HandWrittenUDFTest.csproj.FileList.txt b/Code/Chapter 13/C#/HandWrittenUDFTest/obj/HandWrittenUDFTest.csproj.FileList.txt new file mode 100644 index 0000000..96a2456 --- /dev/null +++ b/Code/Chapter 13/C#/HandWrittenUDFTest/obj/HandWrittenUDFTest.csproj.FileList.txt @@ -0,0 +1,5 @@ +obj\Debug\ResolveAssemblyReference.cache +bin\Debug\HandWrittenUDFTest.exe +bin\Debug\HandWrittenUDFTest.pdb +obj\Debug\HandWrittenUDFTest.exe +obj\Debug\HandWrittenUDFTest.pdb diff --git a/Code/Chapter 13/C#/SqlServerAggregate/AssemblyInfo.cs b/Code/Chapter 13/C#/SqlServerAggregate/AssemblyInfo.cs new file mode 100644 index 0000000..c7550c4 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerAggregate/AssemblyInfo.cs @@ -0,0 +1,31 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Data.Sql; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SqlServerAggregate")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SqlServerAggregate")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] + diff --git a/Code/Chapter 13/C#/SqlServerAggregate/Concatenator.cs b/Code/Chapter 13/C#/SqlServerAggregate/Concatenator.cs new file mode 100644 index 0000000..5a9d203 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerAggregate/Concatenator.cs @@ -0,0 +1,87 @@ +using System; +using System.Data; +using System.Data.Sql; +using System.Data.SqlTypes; +using Microsoft.SqlServer.Server; + +using System.Text; + +namespace SqlServerAggregate +{ + [Serializable] + [Microsoft.SqlServer.Server.SqlUserDefinedAggregate(Format.UserDefined, + MaxByteSize=8000)] + public struct Concatenator : IBinarySerialize + { + private StringBuilder sb; + public void Init() + { + sb = new StringBuilder(); + } + + public void Accumulate(SqlString Value) + { + sb.Append(Value); + sb.Append(","); + } + + public void Merge(Concatenator Group) + { + Accumulate(Group.ToString()); + } + + public override string ToString() + { + return sb.ToString(); + } + + public SqlString Terminate() + { + sb.Remove(sb.Length - 1, 1); + return sb.ToString(); + } + + #region IBinarySerialize Members + + public void Read(System.IO.BinaryReader r) + { + sb = new StringBuilder(); + sb.Append(r.ReadString()); + } + + public void Write(System.IO.BinaryWriter w) + { + if (sb.Length > 0) + w.Write(sb.ToString()); + } + + #endregion + } +} + +//Create Table Person +//( +// PersonID int identity primary key, +// PersonName varchar(200), +// PersonRole varchar(200) +//) +//GO + +//Insert into Person (PersonName, PersonRole) Values ('Sahil Malik', 'Author') +//Insert into Person (PersonName, PersonRole) Values ('Erick Sgarbi', 'Reviewer') +//Insert into Person (PersonName, PersonRole) Values ('Frans Bouma', 'Reviewer') +//Insert into Person (PersonName, PersonRole) Values ('Jonathan Hassell', 'Lead Editor') +//GO + + +//Create Assembly SqlServerAggregate +//from +//'C:\PlayArea\SqlServerUDT\bin\Debug\SqlServerAggregate.dll' +//GO + +//CREATE AGGREGATE Concatenator( @instr nvarchar(400) ) +//RETURNS nvarchar(MAX) +//EXTERNAL NAME [SqlServerAggregate].[SqlServerAggregate.Concatenator] +//GO + +//Select PersonRole, dbo.Concatenator(PersonName) from Person where PersonRole = 'Reviewer' Group By PersonRole \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerAggregate/SqlServerAggregate.csproj b/Code/Chapter 13/C#/SqlServerAggregate/SqlServerAggregate.csproj new file mode 100644 index 0000000..545fcc5 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerAggregate/SqlServerAggregate.csproj @@ -0,0 +1,49 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.50215 + 2.0 + {A159FB8C-8A16-4F9E-A7C1-F0496EC37EA6} + Library + false + SqlServerAggregate + SqlServerAggregate + + + true + false + bin\Debug\ + false + DEBUG;TRACE + 4 + false + + + false + true + bin\Release\ + false + TRACE + 4 + false + + + + + + + + + + + + + + + Content + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerAggregate/SqlServerAggregate.csproj.user b/Code/Chapter 13/C#/SqlServerAggregate/SqlServerAggregate.csproj.user new file mode 100644 index 0000000..fc994a6 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerAggregate/SqlServerAggregate.csproj.user @@ -0,0 +1,12 @@ + + + 8.0.50215 + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerAggregate/Test Scripts/Test.sql b/Code/Chapter 13/C#/SqlServerAggregate/Test Scripts/Test.sql new file mode 100644 index 0000000..f1ca573 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerAggregate/Test Scripts/Test.sql @@ -0,0 +1,41 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +Select + dbo.Concatenator(PersonName) as Reviewers +from + Person +where + PersonRole = 'Reviewer' +Group By PersonRole diff --git a/Code/Chapter 13/C#/SqlServerAggregate/bin/Debug/SqlServerAggregate.dll b/Code/Chapter 13/C#/SqlServerAggregate/bin/Debug/SqlServerAggregate.dll new file mode 100644 index 0000000000000000000000000000000000000000..5f5faf943f38d56d353fc3b37d3583ae54447420 GIT binary patch literal 16384 zcmeHNU2Ggz6+W};Y&LGZt?kxsq9~okffk3XHg?j|QefA+`PtNe^=|BxIykfI>-99V zGn<*&#M?k|N~shYp-5G!Dk1TszElWQP^(4=#E%FXef>(_~{;4Vvs@z$`4>co9NO3)kI z-cDZ8#@|ksmQ7EuyH3?LYI?=6ZO7NkLU$XsZrXZ&s;JkTMUm?1>E08%o<2l0u0`pc z<5sRU+PjoU-l4^b?t(=RthR17Ev6a$I@#eiZ!F`yVw z3@8Q^1B!wFCkA9*jUsc?2yLNKlIYr2B8{#8IXp-aua~I%i*V32{B??)mqPRs5^>Gx zL&e7eiwkqz>6eCKn<95=YXcEP;M@(%1NTUP8l&O+C>Jk}-`HkBw;|gEAjKJCaJL4yGR(c?b$Pwt#OS;Gt)b%ES3La19lG*R-pi zZ1Lk*aCR_syhy)Q9_*KT2qmuuJX$JIXfuE!T z%a1cY!Duj=jAs~|j29R$0zXZ!0CV(hV1iy_`~mPN{Tygw<)nQForpS&4f-9&pCl`K z9+s8pSAbuRUc|n=6x~hxDT#Pe^eOmFQ9t7l<6f+6ibm-zV3F}O{TcFOT$^Kjl70(I zh5kr6I!}{yfiBZa)U_Jynz{H@K5W8S7T5{)5Cjwr49K$H_9WXF9-VL&8|-RBU>_sL`xpHAJad7oj1QH++L8 z%!=!H&XS*M50eT;qr#YJ8*UStX;|jd?S3VBC>K15V-3?<6fSvXD%d8hJQRDD{^V#L z$HvbsWh<3NtzjW*nhOjY1qD56RCm?Urt?4*{mSgoKu@MJ+o|y z8y#C7a}CRHxSLdzT*O#2+|!%%aq3OitSad1cA;JLl9|DbuLhj^~>dkMg42s8)@2Qx9zT%*AGuOSzsr8K`Lqx05{> zIJ_BQ87nM#HzEyL=Lz~|*|bc*W16jN$Qkqo3g0&b8i?J(-os7hgU3m+vh7{!0{p>*@K~9S7dM7>)JyM0L`(=$h8s z%NU2A=+Y@r`|gp(z8zgaST!xejS5nXvv_i+#vcwEmEw0y7%O8H;xRqa*AtI-ZG{oG$QDh;JE&1#uC*WaU%aO4BkAN2q8G8-!0!DrO3dXYt$zl`_M{7@OCRLyUsa}+qQnAke_Q8aOLskAdi>n zOfg^l+V{Wv{tL~^`5*4QbhY=&7x-BJ&?EENx+^?SA2TYa8+C8~aA7h#uJ6+)n);aI zoSx5N>&@qujXIuGegEiuZfJgEwDV5+sd?V5n^dOii)Bf``|^uQSQ7F}h~Cm}y34wC zWg+LddCQtGOgs2s6~TwFY;^sjq-WN(R*GUkF`yVw4E!%LpmDB=6nJ(0?Bu(Ve@@d?oGmr{2g)CwL_enYoS(cx4{e3OSCp5aceGc#9 z;Qm>z4RTibzU?eB57yw-!1tHKWFnsy@M+T$IoxayXK5wW8nAk(H^@gj2U<{G?|KeS zHN@njl?i)w6HlkOO&aG5!QTNY^I5|*GAXUyK9A8oWJ%Ibecd=kI)kx`sCVfsV;197 zp$VXjNpLuia<1B%$t<_@I^x}r3@eRm1o_-39fULr`9WlxMAI~gSmf-bHy3vUV@?8V z?ES;UkfKHOk*5-JEoG)Wj=nNNq+(#LPEDR&m6kCIZDP}rtLpe0VW#lCi%xJ{Q(-^J zu=LiNqtyP}_$2q!@arJz26*>7W-I@fDVb0h4xtaM}@t)`YS**MVu4>pB7Fg1; zE9ENOSiM{MkbJA67*Gr-1{4E|0mXn~Krx^gPz)#rZW{x7@LRC{$ZZ=@4Wt-Q3@8Q^ b1BwB~fMP%~pcqgLCmfbB-qoELD zj3Q}*F)f9 z=FGWg&N*}D%-mp8Bpyq|8j}91(yD3G{K2}1{PO~3W%;>9)pY_eOb83bMBtl1!gy79 z&znF4*?D8TdpsDj8W?@<_aQrXZ{j^YBfl%R<};3s)`()1=;_HqIlL1O4{mA=oL~Lu z!owqu6m->z154i?_SV5gi(mWW#E%7C3srsO&gY*fXgE@^|2`qkXV>mu^=|aR@7HWu z@X z3M8Kb;2pp*z!5+XuDu2_W&cg*HedL%dhh%Z_P?*@k!n;KtIxF)fZM)0Ga_12Vqz zj)40+VJC13aQts&*6tU--mwDj^+2Q$vd>0oU>aTw?T(r^R*;swNXtGqEvg=5SOc`t zaq#@%U{}x4Uk_QvhUtFBE;tQfU+_&3Dj&7p{kQG|>l#VJ|5^*=cKze*<<682wYJknnojx@KoB|;C?K3uWH zKf@pF@K?rS&DtxqchO7Ja!}hisDHKQ+t3sZw}3Akb~X7bCr$B9&tI8I6U=_)-mAE3 zxubGFqX7wK7gn`_o;>FT#C<%9i#*MO_c8|1#A_VIy*ApE#CxF_Uchljfrgetb45wP zvbv5$(r(2aj`JR<4kyFt#<<>X0mK-#7xmL#-_d3#&^Lj7LGzP}BUDrhsG`?*>g|mb z55KH@Vy4K-`gY-;hd*6;tajg|oMB&m_}MD<1w}Rbkh4Ny&Vlz2+`~9YHBRXw$q4}_ zsX{(M=i_{3S4AY!-rC-R%mVsL<6G7hH_ZWx~EEv&2Z<}Nf~cLNngJm1uDI4CnE0#RQq68l?4rK|-B8S&_@Ehmw<2bceEa$(pTc*1;zX>S8ga5I$ zOp|-@P=0P1r3p8Wdo+(?l)S5kJetQuhX?1S{Lpgr;hxuI%>(D6POf#>tTTWTQC;)8 z7xU`PPx+N4|Gk4$xcQZ09CZ!dOI??v#2l#$&99j8*paUueac5H$G5P)q&-lGIhx;G zl+^p_GZ#B~cRvqxp5^8{eD6YyHdMU-#(Or9I}rhN5@35V9Z0>b0w#gmfbRhJ0gnPt z0^tT?EO0s}(+^yxxgW}2OuLBFkB)P{i7qCRV zlOPm|sjl|2xlB>Y5a7mW`Vs_pOQ_A-(5f~~iy&xdxyM>UZMue5wP{)eNcUb1u_O#b zMwBm|*K+=w970dFjy3LoDclRyY8uQDObBy!*Pl@z=9A17jB&lE`dx2~)6``ym@sy8 z7`qEm{|My@-KO~sSdg9$1+~eXnx~gsAom)cOw=75DVT9na_(9Lnv8At07+>^;WZr> zC7B0<)&TeVvA{h*+W&j$OlqxlqE35G0Um(Kw!wF&!rnLIYtZG zoohNDI10$Ti54CW^x($PfQfTlk(N*gd=uwXn~rnk%)wQ>9St9`gzEr|v1W|w(_@f~ z8vYyQ7VX-X4?O0;|)3G7GpPJ_6vDp^5J}(N||qc17y7a7-)cJLY&C~rw_;i50x>batBja z{kdWa0|{V?%+v6)YbLh{3C@L{bMqf?-~5ZYGw05kHM1%ce3`U3lSt}pA`fjawmMt9!_88Y_m2Bw=E9s})_azmcW zGWIX!T3vxd#x!!$99K@7D9zY^9cGyHVrqUeAArY!%u;AsW-0_aqsc8zt|>c)0#q(PIilGY`7n?VLi+uoEM!6f@)p-7E1GZy2 z%>OqbMiY*qejFw9e{%-dhWYQ)XMk$-bMNR2q~(g^9zk{CK3ASEcoxV3a+PugQZ??g q0rL>9Ql2Ha$MBwsX9*9ktp<1}?t!NPPXnF?JPmjn@H8;AH1HogvGIif literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerAggregate/obj/Debug/SqlServerAggregate.dll b/Code/Chapter 13/C#/SqlServerAggregate/obj/Debug/SqlServerAggregate.dll new file mode 100644 index 0000000000000000000000000000000000000000..5f5faf943f38d56d353fc3b37d3583ae54447420 GIT binary patch literal 16384 zcmeHNU2Ggz6+W};Y&LGZt?kxsq9~okffk3XHg?j|QefA+`PtNe^=|BxIykfI>-99V zGn<*&#M?k|N~shYp-5G!Dk1TszElWQP^(4=#E%FXef>(_~{;4Vvs@z$`4>co9NO3)kI z-cDZ8#@|ksmQ7EuyH3?LYI?=6ZO7NkLU$XsZrXZ&s;JkTMUm?1>E08%o<2l0u0`pc z<5sRU+PjoU-l4^b?t(=RthR17Ev6a$I@#eiZ!F`yVw z3@8Q^1B!wFCkA9*jUsc?2yLNKlIYr2B8{#8IXp-aua~I%i*V32{B??)mqPRs5^>Gx zL&e7eiwkqz>6eCKn<95=YXcEP;M@(%1NTUP8l&O+C>Jk}-`HkBw;|gEAjKJCaJL4yGR(c?b$Pwt#OS;Gt)b%ES3La19lG*R-pi zZ1Lk*aCR_syhy)Q9_*KT2qmuuJX$JIXfuE!T z%a1cY!Duj=jAs~|j29R$0zXZ!0CV(hV1iy_`~mPN{Tygw<)nQForpS&4f-9&pCl`K z9+s8pSAbuRUc|n=6x~hxDT#Pe^eOmFQ9t7l<6f+6ibm-zV3F}O{TcFOT$^Kjl70(I zh5kr6I!}{yfiBZa)U_Jynz{H@K5W8S7T5{)5Cjwr49K$H_9WXF9-VL&8|-RBU>_sL`xpHAJad7oj1QH++L8 z%!=!H&XS*M50eT;qr#YJ8*UStX;|jd?S3VBC>K15V-3?<6fSvXD%d8hJQRDD{^V#L z$HvbsWh<3NtzjW*nhOjY1qD56RCm?Urt?4*{mSgoKu@MJ+o|y z8y#C7a}CRHxSLdzT*O#2+|!%%aq3OitSad1cA;JLl9|DbuLhj^~>dkMg42s8)@2Qx9zT%*AGuOSzsr8K`Lqx05{> zIJ_BQ87nM#HzEyL=Lz~|*|bc*W16jN$Qkqo3g0&b8i?J(-os7hgU3m+vh7{!0{p>*@K~9S7dM7>)JyM0L`(=$h8s z%NU2A=+Y@r`|gp(z8zgaST!xejS5nXvv_i+#vcwEmEw0y7%O8H;xRqa*AtI-ZG{oG$QDh;JE&1#uC*WaU%aO4BkAN2q8G8-!0!DrO3dXYt$zl`_M{7@OCRLyUsa}+qQnAke_Q8aOLskAdi>n zOfg^l+V{Wv{tL~^`5*4QbhY=&7x-BJ&?EENx+^?SA2TYa8+C8~aA7h#uJ6+)n);aI zoSx5N>&@qujXIuGegEiuZfJgEwDV5+sd?V5n^dOii)Bf``|^uQSQ7F}h~Cm}y34wC zWg+LddCQtGOgs2s6~TwFY;^sjq-WN(R*GUkF`yVw4E!%LpmDB=6nJ(0?Bu(Ve@@d?oGmr{2g)CwL_enYoS(cx4{e3OSCp5aceGc#9 z;Qm>z4RTibzU?eB57yw-!1tHKWFnsy@M+T$IoxayXK5wW8nAk(H^@gj2U<{G?|KeS zHN@njl?i)w6HlkOO&aG5!QTNY^I5|*GAXUyK9A8oWJ%Ibecd=kI)kx`sCVfsV;197 zp$VXjNpLuia<1B%$t<_@I^x}r3@eRm1o_-39fULr`9WlxMAI~gSmf-bHy3vUV@?8V z?ES;UkfKHOk*5-JEoG)Wj=nNNq+(#LPEDR&m6kCIZDP}rtLpe0VW#lCi%xJ{Q(-^J zu=LiNqtyP}_$2q!@arJz26*>7W-I@fDVb0h4xtaM}@t)`YS**MVu4>pB7Fg1; zE9ENOSiM{MkbJA67*Gr-1{4E|0mXn~Krx^gPz)#rZW{x7@LRC{$ZZ=@4Wt-Q3@8Q^ b1BwB~fMP%~pcqgLCmfbB-qoELD zj3Q}*F)f9 z=FGWg&N*}D%-mp8Bpyq|8j}91(yD3G{K2}1{PO~3W%;>9)pY_eOb83bMBtl1!gy79 z&znF4*?D8TdpsDj8W?@<_aQrXZ{j^YBfl%R<};3s)`()1=;_HqIlL1O4{mA=oL~Lu z!owqu6m->z154i?_SV5gi(mWW#E%7C3srsO&gY*fXgE@^|2`qkXV>mu^=|aR@7HWu z@X z3M8Kb;2pp*z!5+XuDu2_W&cg*HedL%dhh%Z_P?*@k!n;KtIxF)fZM)0Ga_12Vqz zj)40+VJC13aQts&*6tU--mwDj^+2Q$vd>0oU>aTw?T(r^R*;swNXtGqEvg=5SOc`t zaq#@%U{}x4Uk_QvhUtFBE;tQfU+_&3Dj&7p{kQG|>l#VJ|5^*=cKze*<<682wYJknnojx@KoB|;C?K3uWH zKf@pF@K?rS&DtxqchO7Ja!}hisDHKQ+t3sZw}3Akb~X7bCr$B9&tI8I6U=_)-mAE3 zxubGFqX7wK7gn`_o;>FT#C<%9i#*MO_c8|1#A_VIy*ApE#CxF_Uchljfrgetb45wP zvbv5$(r(2aj`JR<4kyFt#<<>X0mK-#7xmL#-_d3#&^Lj7LGzP}BUDrhsG`?*>g|mb z55KH@Vy4K-`gY-;hd*6;tajg|oMB&m_}MD<1w}Rbkh4Ny&Vlz2+`~9YHBRXw$q4}_ zsX{(M=i_{3S4AY!-rC-R%mVsL<6G7hH_ZWx~EEv&2Z<}Nf~cLNngJm1uDI4CnE0#RQq68l?4rK|-B8S&_@Ehmw<2bceEa$(pTc*1;zX>S8ga5I$ zOp|-@P=0P1r3p8Wdo+(?l)S5kJetQuhX?1S{Lpgr;hxuI%>(D6POf#>tTTWTQC;)8 z7xU`PPx+N4|Gk4$xcQZ09CZ!dOI??v#2l#$&99j8*paUueac5H$G5P)q&-lGIhx;G zl+^p_GZ#B~cRvqxp5^8{eD6YyHdMU-#(Or9I}rhN5@35V9Z0>b0w#gmfbRhJ0gnPt z0^tT?EO0s}(+^yxxgW}2OuLBFkB)P{i7qCRV zlOPm|sjl|2xlB>Y5a7mW`Vs_pOQ_A-(5f~~iy&xdxyM>UZMue5wP{)eNcUb1u_O#b zMwBm|*K+=w970dFjy3LoDclRyY8uQDObBy!*Pl@z=9A17jB&lE`dx2~)6``ym@sy8 z7`qEm{|My@-KO~sSdg9$1+~eXnx~gsAom)cOw=75DVT9na_(9Lnv8At07+>^;WZr> zC7B0<)&TeVvA{h*+W&j$OlqxlqE35G0Um(Kw!wF&!rnLIYtZG zoohNDI10$Ti54CW^x($PfQfTlk(N*gd=uwXn~rnk%)wQ>9St9`gzEr|v1W|w(_@f~ z8vYyQ7VX-X4?O0;|)3G7GpPJ_6vDp^5J}(N||qc17y7a7-)cJLY&C~rw_;i50x>batBja z{kdWa0|{V?%+v6)YbLh{3C@L{bMqf?-~5ZYGw05kHM1%ce3`U3lSt}pA`fjawmMt9!_88Y_m2Bw=E9s})_azmcW zGWIX!T3vxd#x!!$99K@7D9zY^9cGyHVrqUeAArY!%u;AsW-0_aqsc8zt|>c)0#q(PIilGY`7n?VLi+uoEM!6f@)p-7E1GZy2 z%>OqbMiY*qejFw9e{%-dhWYQ)XMk$-bMNR2q~(g^9zk{CK3ASEcoxV3a+PugQZ??g q0rL>9Ql2Ha$MBwsX9*9ktp<1}?t!NPPXnF?JPmjn@H8;AH1HogvGIif literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerAggregate/obj/SqlServerAggregate.csproj.FileList.txt b/Code/Chapter 13/C#/SqlServerAggregate/obj/SqlServerAggregate.csproj.FileList.txt new file mode 100644 index 0000000..a0d868f --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerAggregate/obj/SqlServerAggregate.csproj.FileList.txt @@ -0,0 +1,5 @@ +bin\Debug\SqlServerAggregate.dll +bin\Debug\SqlServerAggregate.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\SqlServerAggregate.dll +obj\Debug\SqlServerAggregate.pdb diff --git a/Code/Chapter 13/C#/SqlServerStoredProc/AssemblyInfo.cs b/Code/Chapter 13/C#/SqlServerStoredProc/AssemblyInfo.cs new file mode 100644 index 0000000..8cea3fe --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerStoredProc/AssemblyInfo.cs @@ -0,0 +1,31 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Data.Sql; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SqlServerStoredProc")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SqlServerStoredProc")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] + diff --git a/Code/Chapter 13/C#/SqlServerStoredProc/GetNames.cs b/Code/Chapter 13/C#/SqlServerStoredProc/GetNames.cs new file mode 100644 index 0000000..76e182c --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerStoredProc/GetNames.cs @@ -0,0 +1,107 @@ +using System; +using System.Data; +using System.Data.Sql; +using System.Data.SqlTypes; +using System.Data.SqlClient; +using Microsoft.SqlServer.Server; + +public partial class StoredProcedures +{ + [Microsoft.SqlServer.Server.SqlProcedure] + public static void GetConcatenatedNames(string role) + { + using (SqlConnection contextConnection = new SqlConnection("context connection = true")) + { + SqlCommand contextCommand = + new SqlCommand( + "Select dbo.Concatenator(PersonName) from Person " + + "where PersonRole = @Role Group By PersonRole", contextConnection); + + contextCommand.Parameters.AddWithValue("@Role", role); + contextConnection.Open(); + + SqlContext.Pipe.ExecuteAndSend(contextCommand); + } + } + + [Microsoft.SqlServer.Server.SqlProcedure] + public static void GetNames(string role) + { + using (SqlConnection contextConnection = new SqlConnection("context connection = true")) + { + SqlCommand contextCommand = + new SqlCommand( + "Select PersonName from Person " + + "where PersonRole = @Role", contextConnection); + + contextCommand.Parameters.AddWithValue("@Role", role); + + contextConnection.Open(); + + // first, create the record and specify the metadata for the results + SqlDataRecord rec = new SqlDataRecord( + new SqlMetaData("PersonName", SqlDbType.NVarChar, 200) + ); + + // start a new result-set + SqlContext.Pipe.SendResultsStart(rec); + + // send rows + SqlDataReader rdr = contextCommand.ExecuteReader(); + while (rdr.Read()) + { + rec.SetString(0, rdr.GetString(0)); + SqlContext.Pipe.SendResultsRow(rec); + } + + // complete the result-set + SqlContext.Pipe.SendResultsEnd(); + } + } + + [Microsoft.SqlServer.Server.SqlProcedure] + public static void InsertName(string personName, string personRole) + { + using (SqlConnection contextConnection = new SqlConnection("context connection = true")) + { + SqlCommand contextCommand = + new SqlCommand( + "Insert into Person(PersonName, PersonRole) Values (@PersonName, @PersonRole)", + contextConnection); + + contextCommand.Parameters.AddWithValue("@PersonName", personName); + contextCommand.Parameters.AddWithValue("@PersonRole", personRole); + + contextConnection.Open(); + contextCommand.ExecuteScalar(); + // System.Transactions.Transaction.Current.Rollback(); + contextConnection.Close(); + } + } +}; + +//Create Assembly SqlServerStoredProc +//from +//'C:\SqlServerStoredProc\SqlServerStoredProc.dll' +//GO + +//Create Procedure GetConcatenatedNames +//( +// @Role NVARCHAR(4000) +//) +//As +//External Name +//SqlServerStoredProc.[SqlServerStoredProc.StoredProcedures].GetConcatenatedNames +//Go + +//Create Procedure GetNames +//( +// @Role NVARCHAR(4000) +//) +//As +//External Name +//SqlServerStoredProc.[SqlServerStoredProc.StoredProcedures].GetNames +//Go + +//exec dbo.GetNames 'Reviewer' +//Go diff --git a/Code/Chapter 13/C#/SqlServerStoredProc/SqlServerStoredProc.csproj b/Code/Chapter 13/C#/SqlServerStoredProc/SqlServerStoredProc.csproj new file mode 100644 index 0000000..fce0d50 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerStoredProc/SqlServerStoredProc.csproj @@ -0,0 +1,50 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.50215 + 2.0 + {2C1FCB3D-2089-4969-B2F5-033EBF3B1B18} + Library + false + SqlServerStoredProc + SqlServerStoredProc + + + true + false + bin\Debug\ + false + DEBUG;TRACE + 4 + false + + + false + true + bin\Release\ + false + TRACE + 4 + false + + + + + + + + + + + + + + + + Content + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerStoredProc/SqlServerStoredProc.csproj.user b/Code/Chapter 13/C#/SqlServerStoredProc/SqlServerStoredProc.csproj.user new file mode 100644 index 0000000..823a428 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerStoredProc/SqlServerStoredProc.csproj.user @@ -0,0 +1,15 @@ + + + 8.0.50215 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerStoredProc/Test Scripts/Test.sql b/Code/Chapter 13/C#/SqlServerStoredProc/Test Scripts/Test.sql new file mode 100644 index 0000000..6ccdd2f --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerStoredProc/Test Scripts/Test.sql @@ -0,0 +1,39 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +BEGIN TRANSACTION +EXEC [dbo].[InsertName] + @personName = N'Emily', + @personRole = N'Project Manager' +COMMIT \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerStoredProc/bin/Debug/SqlServerStoredProc.dll b/Code/Chapter 13/C#/SqlServerStoredProc/bin/Debug/SqlServerStoredProc.dll new file mode 100644 index 0000000000000000000000000000000000000000..89e837c3cc92cf5e8f593c1ad5d605a7b0cec61c GIT binary patch literal 16384 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 Gfqwu;OVvUE literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerStoredProc/obj/Debug/SqlServerStoredProc.dll b/Code/Chapter 13/C#/SqlServerStoredProc/obj/Debug/SqlServerStoredProc.dll new file mode 100644 index 0000000000000000000000000000000000000000..89e837c3cc92cf5e8f593c1ad5d605a7b0cec61c GIT binary patch literal 16384 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 Gfqwu;OVvUE literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerStoredProc/obj/SqlServerStoredProc.csproj.FileList.txt b/Code/Chapter 13/C#/SqlServerStoredProc/obj/SqlServerStoredProc.csproj.FileList.txt new file mode 100644 index 0000000..9d680cd --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerStoredProc/obj/SqlServerStoredProc.csproj.FileList.txt @@ -0,0 +1,5 @@ +obj\Debug\ResolveAssemblyReference.cache +bin\Debug\SqlServerStoredProc.dll +bin\Debug\SqlServerStoredProc.pdb +obj\Debug\SqlServerStoredProc.dll +obj\Debug\SqlServerStoredProc.pdb diff --git a/Code/Chapter 13/C#/SqlServerTVF/AssemblyInfo.cs b/Code/Chapter 13/C#/SqlServerTVF/AssemblyInfo.cs new file mode 100644 index 0000000..f9cdf25 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTVF/AssemblyInfo.cs @@ -0,0 +1,31 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Data.Sql; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SqlServerTVF")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SqlServerTVF")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] + diff --git a/Code/Chapter 13/C#/SqlServerTVF/NameToAscii.cs b/Code/Chapter 13/C#/SqlServerTVF/NameToAscii.cs new file mode 100644 index 0000000..45f3d6d --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTVF/NameToAscii.cs @@ -0,0 +1,119 @@ +using System; +using System.Data; +using System.Data.Sql; +using System.Data.SqlTypes; +using Microsoft.SqlServer.Server; +using System.Collections; + +namespace SqlServerTVF +{ + public partial class UserDefinedFunctions + { + [Microsoft.SqlServer.Server.SqlFunction(FillRowMethodName = "FillRow", + TableDefinition = "charpart nchar(1), intpart int")] + public static IEnumerable NameToAscii(string InputName) + { + return new NameSplitter(InputName.ToCharArray()); + } + + //[Microsoft.SqlServer.Server.SqlFunction(FillRowMethodName = "FillRow", + // TableDefinition="charpart nchar(1), intpart int")] + //public static IEnumerable NameToAscii(string InputName) + //{ + // foreach (char c in InputName) + // { + // yield return new NameRow(c, (int)c); + // } + //} + + public static void FillRow(object row, out char charpart, out int intpart) + { + // break the row into its columnar parts. + charpart = ((NameRow)row).CharPart; + intpart = ((NameRow)row).IntPart; + } + }; + + public class NameRow + { + public Char CharPart; + public Int32 IntPart; + + public NameRow(Char c, Int32 i) + { + CharPart = c; + IntPart = i; + } + } + + public class NameSplitter : IEnumerable, IEnumerator + { + private Int32 idx = - 1; + private Char[] _inputName; + + public NameSplitter(Char[] InputName) + { + _inputName = InputName; + } + + public System.Collections.IEnumerator GetEnumerator() + { + return new NameSplitter(_inputName); + } + + public object Current + { + get + { + if(( idx > - 1 )) + { + Char c = _inputName[idx]; + return new NameRow(c, Convert.ToInt32(c)); + } + else + { + return - 1; + } + } + } + public bool MoveNext() + { + idx = idx + 1; + if(( idx < _inputName.Length )) + { + return true; + } + else + { + return false; + } + } + + public void Reset() + { + idx = - 1; + } + } +} + +//Create Assembly SqlServerTVF +//from +//'C:\PlayArea\SqlServerTVF\bin\Debug\SqlServerTVF.dll' +//GO + +//Create Function NameToAscii +//( +// @InputName NVARCHAR(4000) +//) +//Returns Table +//( +// charpart nchar, +// intpart Int +//) +//As +//External Name +//SqlServerTVF.[SqlServerTVF.UserDefinedFunctions].NameToAscii +//Go + +//Select * from dbo.NameToAscii ('Sahil Malik') order by intpart +//Go diff --git a/Code/Chapter 13/C#/SqlServerTVF/SqlServerTVF.csproj b/Code/Chapter 13/C#/SqlServerTVF/SqlServerTVF.csproj new file mode 100644 index 0000000..245e898 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTVF/SqlServerTVF.csproj @@ -0,0 +1,49 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.50215 + 2.0 + {C820AC83-884A-404E-B312-E563779395FF} + Library + false + SqlServerTVF + SqlServerTVF + + + true + false + bin\Debug\ + false + DEBUG;TRACE + 4 + false + + + false + true + bin\Release\ + false + TRACE + 4 + false + + + + + + + + + + + + + + + Content + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerTVF/SqlServerTVF.csproj.user b/Code/Chapter 13/C#/SqlServerTVF/SqlServerTVF.csproj.user new file mode 100644 index 0000000..62638e2 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTVF/SqlServerTVF.csproj.user @@ -0,0 +1,15 @@ + + + 8.0.50215 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerTVF/Test Scripts/Test.sql b/Code/Chapter 13/C#/SqlServerTVF/Test Scripts/Test.sql new file mode 100644 index 0000000..d6de459 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTVF/Test Scripts/Test.sql @@ -0,0 +1,35 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +Select * from dbo.NameToAscii ('Sahil Malik') order by intpart diff --git a/Code/Chapter 13/C#/SqlServerTVF/bin/Debug/SqlServerTVF.dll b/Code/Chapter 13/C#/SqlServerTVF/bin/Debug/SqlServerTVF.dll new file mode 100644 index 0000000000000000000000000000000000000000..260b4de28218a29e16afddaed1eb0cec60ed835e GIT binary patch literal 16384 zcmeHMU2Ggz6+Sbw-d+FJc1Y5I6UMlp#7D8go*&aAO!{Sh7jrlsw#m5NR^N(Nchg3+4VX$ z5r~&a+`F1{&$;K^bI#hEq z%FM0){F>$KRnIMZMnx|fj^hS;(bT<~qg#%iozLkNcg0L~cD6kdxn7tgno%_R-Dx{h zAMH)*>Tg$)MBQl7!`4p^MtquO5FHit95iNWs~=F&t9 z48*9zWd6F~do`eW;E0UfYLc+J`7HDEy4V z4|MPo_SkM6SoX*kD!1Gpr;MD2qEb7~kj{>%V z3EM5QF$!EMXZC+jX=UMEWsEo_u&6i}aj_25&b9;q#5n@%*sl3vJ@AR5k5iGJr8s?# zEYL3t+N0bBKdlTZar%_t*9Co1&>srADd-;r{imSsRk>GI9Z{d8vlt{!UsB6zoW2j* zMt@d+1HN73v4%AEoE3Z?lnY15lz-jyJ{)|sG^D2@DJFE2Leij*(~syN=xd}y^M;_m zpd+-Pv#)Q`H$;||Nct}Ps`P@8zWDHUIsgwZHKYMZuQa4%K=PMDdQ15=jo}>VkD=81 zdwLAg(SAaCOL?14LOLHwe}hjxF+vWQZ-owNDn|SOs78;8mNckJ6M|Q?7`0;NI;o$o zQx$2s%W!!H?0~pnF71M$k_PniK8M(!0=>NK;aDfjX2|=_f#Z6Y(p^ z`0tcPUJ2wGyTX~{L@v204zj`{tZ>bt8AYK*QEzYC+!9aDx+^u?{0QYP+Bwr(H@*DQ zRBFYx>9lWpS##BL%$2E{Qwl8C@wZvgoKZ0s-Oq?RSGBDmFg>dHCD*g9BIP#xz^u@G z@w{0IA}N(|Z5yKSH9hInDyC-?ZIkMJ;CjMc-W~T#mPJ#RZSxSR5^FMRhPPmN0ZluB zsI8Stv}`%mTEMZ;DKm(CvUS-EmNPZaGo65D-F0)0j}RA4-wdeU9LAVhG*_djXx#VB zO3~g}GCdzrjt6*-6l;N5Phhd;1XjgNAp+BLs|=Y{GJVRpl_kr!kjqw=y01*l4r<;m zio9p6m=(jjuuC7ey5U*nwP2@e!NZi5c2OXPs^M(x?2&PuRjXX{3+HFG;QOO z;QTFj5$Ynrz$#i;YfWj^V=@ARX04Lv`tE9wYAonfxUPBa))(@Y=jq1c3Evo$cX^eK zd!DgD9#&onQkB=-e60y`%Lznd3D0n#i`ynZPb`YDQC^&&D4H(ry_ZLCzwoU@eEJK& z9XqA`!2A;>U;Auf>A>+fui~lO+uD`Hecsotbthr3sBuk=CtGw?(UMyHpw^-*%0Vrr zQ*S5KeYjNZF!jaI+{Hv?gPy0DO+KyQxsdPbiEf%%Ggxz1_{K;?E%~m8@;p!Cwzhb_ z57pDt9p(;?965@=9z9UxlFWpiJ>r97Yi&W*`8Qr*2*XJ2{`+e|)D7_WM!@9Psr=|ZjQ7pA7? z#%J_n`s{{2;kp+J87#^Irn!oHSRWZHWCjY&ffn52`GQ!%+nQ6=l_K2J(dZkH`8now z=606)x8ioqa>n(twmoZDPWY@eP4T#8tGgd0J-yvrN)iEyfJ8td@BkvfyCRIf%l!kp4qx;y~u%GI-adLDKW9Ojv zXkE}eqQ++f%1P>K^06eeep8Gi*e?y^8pWP&j81?X1OH)qT#Vm?zMOF&`Z>tY2Brp8 zAQML1ecTkSz>ZHBc+Ps^V+QtR(K`cls)R2@#89R+cqZD}rqd049O#IIQNbq>Ja8=Y zQ9nkKW2w&yOaFOHCk3tx@Z}=X8ZZr-vikRVaXx8*=k~t$qI!Q!c|OK5lRhx1V5V)L zp<}*y_O@o`em*!3StJ4y0f~S_Kq4R!kO)WwBmxoviNFJkfFAzWd+vz`HbNPgL_i`S e5s(N-1SA3y0f~S_Kq4R!kO)WwBm(~<0{;SX|KKzL literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerTVF/bin/Debug/SqlServerTVF.pdb b/Code/Chapter 13/C#/SqlServerTVF/bin/Debug/SqlServerTVF.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6c73b455d5b9d3ace427d58ad3b4751fdb32f929 GIT binary patch literal 15872 zcmeHNdu*Fm6~9hg=hbXU+GVAs#ar5~YZm9R(C0?eIL?|iX<3|f*<@%P=L@mo+Ntd} z3qoK}H8BZ^g7(Lz6$YYW3CLB& zTW>}S75{%S=pDEadGXAy_dd6B)gw(8Z#_-km@{7Sw-(1S487y+&goO{o^as0KQCZ? z#tQBa-17-tz_mci{>{1PtA>y!-wPzq0vh-;5~l9IMwjhj-KT)8OP;+hvPD>64O}{V z=`3wSoeS^gz_y9Fl}H5o9(O;stA9tpI~JTsT5)$n>jMFAY{Uw98v_3Q5x*5bXvGJ1 zcL#O`_gMq6ZHZ7g>$uc3yJ*)+ehNHm< z1R_KYQ=ke<8G)CHP`uNcJ&J1MK4pMwf04=D0F=>oy;#R?VPRVltH|p! zA1l~G?Li(zvSfN=k%$#ahGWqL+PUS>GDCCJ|XxmSB2q!s-0o)_Emzr z{Ax`_$uEEK%3iQUA5JT6piVUAJo#S1SVx7Zc1myG;-mrg?;@z@V#kuz9gal$W0S1o znM+@eNhjY*(ALF%{*Cm5Yz%PV&*+-FBIiKBdrFFZVT>uht)Nb-3@{VKZ8)B&En2o# zo;(2=Tdzl3&S8U=iT7K`q6{UA<2wZG)iSmqO`tBGlqn$|(lTg&qq7msGxK2AlsOF zW}Ra><{c;b>?((!_5;p;J7m5Ignx=J0Fgwzb4z)db~t;Zob#Uh+;>gVcOXyBy-oYh z>w4~3t7(9rx?WOs5g20!t)14BoH)m~81%2LS9DaJS?zRFl?_f`7;CX^TQf3?o@$9lx;6m>@*W~~2& zlr_`;)f#l9*Rb9Hy;?>WD988y*-I%J3Uf-;fp&wsK_3Qf27LsS@n;7p#*V#Fq+IZb zG9CT6$CP8oD90*L=_Oc+Wpdv+g!*b-IOG~ZHY*l=60$g-M?pECe$WO`j_DpyKl1m2 zLg%SQ(8oX#U&Rn8$MgiKihoPd=Ngn?vC6TjF_ht}f<3mXHQ-3USHOqT`zZ7-$MR`V zta-5~ExSg_IFB-xn|*IB(j!2|)x*GJz}JAMffs;`2|Qar$O!^CCsHFv7t8%~0GSBz z5b$NgVCAa_PRKSs!+8*vDI))a?`lFy4(AHuzwsF*E5Fa+6H|&l0~<@-a}VWuKpVMd zdL;iISeECSJAw5wZFFgDLi^^S2cbKv&(iso zntn~wA8N`v#CJ6fBg6cZ&VO9f6PohSNB%>a-lyq@nor(>g5JxF%tG>0s5Fz`VVX)h zlb^-T)4njjBg4)aX@)VM)a8U+jz6EiX0Pj>$?BL{RH%gKlGQ-QcivC70}=nlUSI^s zczX!Qn0o~HJ>V7!j z%^@-uf{zMtu%R9_-YUG`flbX^1sGoCS7o_!fGZ4^(p!2!#(;a*!RvJd8_ zjpFGxIEfa=Q<=+>sjtele*Vw)r;R5oTIF{?#N01ei+fMrh85X@wRi^hy&w3pSpcBCyL?3E z-#;!1{;6LF*nb~jIHVQgC}a_i0+~#`&{oboA^nhtk4c_Ed=%=k@H%UabRUT77rYJa zzSa$`?a(Wsa9>q|v4OxnfPI}iI!j*+b$pZC)a7gGZrjw!Mu5WdD@A*$s>k?1`9t3< zAm2X`2`BOSO!zu|+gdlZ!S|Ye;rT$T!(5D&K>eRQ23@|Rl=>5LgS)25f3$wh9g#@d0{^OvKy**GmyY#%QAMm2uR?N z?gsL@ScEIk0AmT!*#8Y3-|Y5Z3qIc^BGCR3@J}Ou5f0D2;XKOOgfeI(?hkhY?dybV ztoZv+DB(JUXFRQrWc-~@m{WZ9kB-j|9C^w2Yfnwx(|uoG`UjLX_lBe6J<-vaXy)%U z63X4jtl)?hzY6|u3nmNx*_N?`F@&+@M?iv!Elk^EiitHblovW8v)v61Q~>YSjnK+Q z&^_A!hmb#p{1A}-AHV{k|DQ&h=Uw`K3U#>6u@3!zInW*h==1b_25BmPF|ZoQ_h!E9 pQL*g54!8t(2XHBnhA6_d(ZGsp(@n9Lq6Uf@C~Banf$K~I{{wzSPS*ec literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerTVF/obj/Debug/SqlServerTVF.dll b/Code/Chapter 13/C#/SqlServerTVF/obj/Debug/SqlServerTVF.dll new file mode 100644 index 0000000000000000000000000000000000000000..260b4de28218a29e16afddaed1eb0cec60ed835e GIT binary patch literal 16384 zcmeHMU2Ggz6+Sbw-d+FJc1Y5I6UMlp#7D8go*&aAO!{Sh7jrlsw#m5NR^N(Nchg3+4VX$ z5r~&a+`F1{&$;K^bI#hEq z%FM0){F>$KRnIMZMnx|fj^hS;(bT<~qg#%iozLkNcg0L~cD6kdxn7tgno%_R-Dx{h zAMH)*>Tg$)MBQl7!`4p^MtquO5FHit95iNWs~=F&t9 z48*9zWd6F~do`eW;E0UfYLc+J`7HDEy4V z4|MPo_SkM6SoX*kD!1Gpr;MD2qEb7~kj{>%V z3EM5QF$!EMXZC+jX=UMEWsEo_u&6i}aj_25&b9;q#5n@%*sl3vJ@AR5k5iGJr8s?# zEYL3t+N0bBKdlTZar%_t*9Co1&>srADd-;r{imSsRk>GI9Z{d8vlt{!UsB6zoW2j* zMt@d+1HN73v4%AEoE3Z?lnY15lz-jyJ{)|sG^D2@DJFE2Leij*(~syN=xd}y^M;_m zpd+-Pv#)Q`H$;||Nct}Ps`P@8zWDHUIsgwZHKYMZuQa4%K=PMDdQ15=jo}>VkD=81 zdwLAg(SAaCOL?14LOLHwe}hjxF+vWQZ-owNDn|SOs78;8mNckJ6M|Q?7`0;NI;o$o zQx$2s%W!!H?0~pnF71M$k_PniK8M(!0=>NK;aDfjX2|=_f#Z6Y(p^ z`0tcPUJ2wGyTX~{L@v204zj`{tZ>bt8AYK*QEzYC+!9aDx+^u?{0QYP+Bwr(H@*DQ zRBFYx>9lWpS##BL%$2E{Qwl8C@wZvgoKZ0s-Oq?RSGBDmFg>dHCD*g9BIP#xz^u@G z@w{0IA}N(|Z5yKSH9hInDyC-?ZIkMJ;CjMc-W~T#mPJ#RZSxSR5^FMRhPPmN0ZluB zsI8Stv}`%mTEMZ;DKm(CvUS-EmNPZaGo65D-F0)0j}RA4-wdeU9LAVhG*_djXx#VB zO3~g}GCdzrjt6*-6l;N5Phhd;1XjgNAp+BLs|=Y{GJVRpl_kr!kjqw=y01*l4r<;m zio9p6m=(jjuuC7ey5U*nwP2@e!NZi5c2OXPs^M(x?2&PuRjXX{3+HFG;QOO z;QTFj5$Ynrz$#i;YfWj^V=@ARX04Lv`tE9wYAonfxUPBa))(@Y=jq1c3Evo$cX^eK zd!DgD9#&onQkB=-e60y`%Lznd3D0n#i`ynZPb`YDQC^&&D4H(ry_ZLCzwoU@eEJK& z9XqA`!2A;>U;Auf>A>+fui~lO+uD`Hecsotbthr3sBuk=CtGw?(UMyHpw^-*%0Vrr zQ*S5KeYjNZF!jaI+{Hv?gPy0DO+KyQxsdPbiEf%%Ggxz1_{K;?E%~m8@;p!Cwzhb_ z57pDt9p(;?965@=9z9UxlFWpiJ>r97Yi&W*`8Qr*2*XJ2{`+e|)D7_WM!@9Psr=|ZjQ7pA7? z#%J_n`s{{2;kp+J87#^Irn!oHSRWZHWCjY&ffn52`GQ!%+nQ6=l_K2J(dZkH`8now z=606)x8ioqa>n(twmoZDPWY@eP4T#8tGgd0J-yvrN)iEyfJ8td@BkvfyCRIf%l!kp4qx;y~u%GI-adLDKW9Ojv zXkE}eqQ++f%1P>K^06eeep8Gi*e?y^8pWP&j81?X1OH)qT#Vm?zMOF&`Z>tY2Brp8 zAQML1ecTkSz>ZHBc+Ps^V+QtR(K`cls)R2@#89R+cqZD}rqd049O#IIQNbq>Ja8=Y zQ9nkKW2w&yOaFOHCk3tx@Z}=X8ZZr-vikRVaXx8*=k~t$qI!Q!c|OK5lRhx1V5V)L zp<}*y_O@o`em*!3StJ4y0f~S_Kq4R!kO)WwBmxoviNFJkfFAzWd+vz`HbNPgL_i`S e5s(N-1SA3y0f~S_Kq4R!kO)WwBm(~<0{;SX|KKzL literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerTVF/obj/Debug/SqlServerTVF.pdb b/Code/Chapter 13/C#/SqlServerTVF/obj/Debug/SqlServerTVF.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6c73b455d5b9d3ace427d58ad3b4751fdb32f929 GIT binary patch literal 15872 zcmeHNdu*Fm6~9hg=hbXU+GVAs#ar5~YZm9R(C0?eIL?|iX<3|f*<@%P=L@mo+Ntd} z3qoK}H8BZ^g7(Lz6$YYW3CLB& zTW>}S75{%S=pDEadGXAy_dd6B)gw(8Z#_-km@{7Sw-(1S487y+&goO{o^as0KQCZ? z#tQBa-17-tz_mci{>{1PtA>y!-wPzq0vh-;5~l9IMwjhj-KT)8OP;+hvPD>64O}{V z=`3wSoeS^gz_y9Fl}H5o9(O;stA9tpI~JTsT5)$n>jMFAY{Uw98v_3Q5x*5bXvGJ1 zcL#O`_gMq6ZHZ7g>$uc3yJ*)+ehNHm< z1R_KYQ=ke<8G)CHP`uNcJ&J1MK4pMwf04=D0F=>oy;#R?VPRVltH|p! zA1l~G?Li(zvSfN=k%$#ahGWqL+PUS>GDCCJ|XxmSB2q!s-0o)_Emzr z{Ax`_$uEEK%3iQUA5JT6piVUAJo#S1SVx7Zc1myG;-mrg?;@z@V#kuz9gal$W0S1o znM+@eNhjY*(ALF%{*Cm5Yz%PV&*+-FBIiKBdrFFZVT>uht)Nb-3@{VKZ8)B&En2o# zo;(2=Tdzl3&S8U=iT7K`q6{UA<2wZG)iSmqO`tBGlqn$|(lTg&qq7msGxK2AlsOF zW}Ra><{c;b>?((!_5;p;J7m5Ignx=J0Fgwzb4z)db~t;Zob#Uh+;>gVcOXyBy-oYh z>w4~3t7(9rx?WOs5g20!t)14BoH)m~81%2LS9DaJS?zRFl?_f`7;CX^TQf3?o@$9lx;6m>@*W~~2& zlr_`;)f#l9*Rb9Hy;?>WD988y*-I%J3Uf-;fp&wsK_3Qf27LsS@n;7p#*V#Fq+IZb zG9CT6$CP8oD90*L=_Oc+Wpdv+g!*b-IOG~ZHY*l=60$g-M?pECe$WO`j_DpyKl1m2 zLg%SQ(8oX#U&Rn8$MgiKihoPd=Ngn?vC6TjF_ht}f<3mXHQ-3USHOqT`zZ7-$MR`V zta-5~ExSg_IFB-xn|*IB(j!2|)x*GJz}JAMffs;`2|Qar$O!^CCsHFv7t8%~0GSBz z5b$NgVCAa_PRKSs!+8*vDI))a?`lFy4(AHuzwsF*E5Fa+6H|&l0~<@-a}VWuKpVMd zdL;iISeECSJAw5wZFFgDLi^^S2cbKv&(iso zntn~wA8N`v#CJ6fBg6cZ&VO9f6PohSNB%>a-lyq@nor(>g5JxF%tG>0s5Fz`VVX)h zlb^-T)4njjBg4)aX@)VM)a8U+jz6EiX0Pj>$?BL{RH%gKlGQ-QcivC70}=nlUSI^s zczX!Qn0o~HJ>V7!j z%^@-uf{zMtu%R9_-YUG`flbX^1sGoCS7o_!fGZ4^(p!2!#(;a*!RvJd8_ zjpFGxIEfa=Q<=+>sjtele*Vw)r;R5oTIF{?#N01ei+fMrh85X@wRi^hy&w3pSpcBCyL?3E z-#;!1{;6LF*nb~jIHVQgC}a_i0+~#`&{oboA^nhtk4c_Ed=%=k@H%UabRUT77rYJa zzSa$`?a(Wsa9>q|v4OxnfPI}iI!j*+b$pZC)a7gGZrjw!Mu5WdD@A*$s>k?1`9t3< zAm2X`2`BOSO!zu|+gdlZ!S|Ye;rT$T!(5D&K>eRQ23@|Rl=>5LgS)25f3$wh9g#@d0{^OvKy**GmyY#%QAMm2uR?N z?gsL@ScEIk0AmT!*#8Y3-|Y5Z3qIc^BGCR3@J}Ou5f0D2;XKOOgfeI(?hkhY?dybV ztoZv+DB(JUXFRQrWc-~@m{WZ9kB-j|9C^w2Yfnwx(|uoG`UjLX_lBe6J<-vaXy)%U z63X4jtl)?hzY6|u3nmNx*_N?`F@&+@M?iv!Elk^EiitHblovW8v)v61Q~>YSjnK+Q z&^_A!hmb#p{1A}-AHV{k|DQ&h=Uw`K3U#>6u@3!zInW*h==1b_25BmPF|ZoQ_h!E9 pQL*g54!8t(2XHBnhA6_d(ZGsp(@n9Lq6Uf@C~Banf$K~I{{wzSPS*ec literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerTVF/obj/SqlServerTVF.csproj.FileList.txt b/Code/Chapter 13/C#/SqlServerTVF/obj/SqlServerTVF.csproj.FileList.txt new file mode 100644 index 0000000..83b9744 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTVF/obj/SqlServerTVF.csproj.FileList.txt @@ -0,0 +1,5 @@ +obj\Debug\ResolveAssemblyReference.cache +bin\Debug\SqlServerTVF.dll +bin\Debug\SqlServerTVF.pdb +obj\Debug\SqlServerTVF.dll +obj\Debug\SqlServerTVF.pdb diff --git a/Code/Chapter 13/C#/SqlServerTrigger/AssemblyInfo.cs b/Code/Chapter 13/C#/SqlServerTrigger/AssemblyInfo.cs new file mode 100644 index 0000000..d2c7898 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTrigger/AssemblyInfo.cs @@ -0,0 +1,31 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Data.Sql; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SqlServerTrigger")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SqlServerTrigger")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] + diff --git a/Code/Chapter 13/C#/SqlServerTrigger/MonkeyTrigger.cs b/Code/Chapter 13/C#/SqlServerTrigger/MonkeyTrigger.cs new file mode 100644 index 0000000..76dc7eb --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTrigger/MonkeyTrigger.cs @@ -0,0 +1,47 @@ +using System; +using System.Data; +using System.Data.SqlClient; +using System.Data.Sql; +using Microsoft.SqlServer.Server; + + +public partial class Triggers +{ + [Microsoft.SqlServer.Server.SqlTrigger (Name="MonkeyTrigger", Target="dbo.Person", Event="FOR INSERT")] + public static void MonkeyTrigger() + { + SqlTriggerContext stContext = SqlContext.TriggerContext; + + if (stContext.TriggerAction == TriggerAction.Insert) + { + // Check the column + using (SqlConnection contextConn = new SqlConnection("context connection=true")) + { + SqlCommand cmd = contextConn.CreateCommand(); + contextConn.Open(); + cmd.CommandText = "Select PersonName from Inserted"; + + string personName = (string) cmd.ExecuteScalar(); + + if (personName.ToUpper() == "MONKEY") + { + System.Transactions.Transaction.Current.Rollback(); + SqlContext.Pipe.Send("Monkey not allowed in this table, eat bannana on tree"); + } + contextConn.Close(); + } + } + } +} +//Create Assembly SqlServerTrigger +//from +//'C:\SqlServerTrigger\SqlServerTrigger.dll' +//GO + +//Create Trigger MonkeyTrigger +// ON Person +// FOR INSERT +//As +//External Name +//SqlServerTrigger.[SqlServerTrigger.Triggers].MonkeyTrigger +//Go diff --git a/Code/Chapter 13/C#/SqlServerTrigger/SqlServerTrigger.csproj b/Code/Chapter 13/C#/SqlServerTrigger/SqlServerTrigger.csproj new file mode 100644 index 0000000..4ae9812 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTrigger/SqlServerTrigger.csproj @@ -0,0 +1,50 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.50215 + 2.0 + {6B60F7D1-EFE6-4017-BF8C-57D7D2276E25} + Library + false + SqlServerTrigger + SqlServerTrigger + + + true + false + bin\Debug\ + false + DEBUG;TRACE + 4 + false + + + false + true + bin\Release\ + false + TRACE + 4 + false + + + + + + + + + + + + + + + + Content + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerTrigger/SqlServerTrigger.csproj.user b/Code/Chapter 13/C#/SqlServerTrigger/SqlServerTrigger.csproj.user new file mode 100644 index 0000000..bc227ef --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTrigger/SqlServerTrigger.csproj.user @@ -0,0 +1,15 @@ + + + 8.0.50215 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerTrigger/Test Scripts/Test.sql b/Code/Chapter 13/C#/SqlServerTrigger/Test Scripts/Test.sql new file mode 100644 index 0000000..b87022c --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTrigger/Test Scripts/Test.sql @@ -0,0 +1,38 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +Insert into Person + (PersonName, PersonRole) +Values + ('Monkey','Bananna eater') diff --git a/Code/Chapter 13/C#/SqlServerTrigger/bin/Debug/SqlServerTrigger.dll b/Code/Chapter 13/C#/SqlServerTrigger/bin/Debug/SqlServerTrigger.dll new file mode 100644 index 0000000000000000000000000000000000000000..dda0b3641841004615887522a3e1527e1265ddef GIT binary patch literal 16384 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 Yfc{*Q)_~T4)_~T4)_~T)y`_PF056c??f?J) literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerTrigger/obj/Debug/SqlServerTrigger.dll b/Code/Chapter 13/C#/SqlServerTrigger/obj/Debug/SqlServerTrigger.dll new file mode 100644 index 0000000000000000000000000000000000000000..dda0b3641841004615887522a3e1527e1265ddef GIT binary patch literal 16384 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 Yfc{*Q)_~T4)_~T4)_~T)y`_PF056c??f?J) literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerTrigger/obj/SqlServerTrigger.csproj.FileList.txt b/Code/Chapter 13/C#/SqlServerTrigger/obj/SqlServerTrigger.csproj.FileList.txt new file mode 100644 index 0000000..2508f49 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerTrigger/obj/SqlServerTrigger.csproj.FileList.txt @@ -0,0 +1,5 @@ +obj\Debug\ResolveAssemblyReference.cache +bin\Debug\SqlServerTrigger.dll +bin\Debug\SqlServerTrigger.pdb +obj\Debug\SqlServerTrigger.dll +obj\Debug\SqlServerTrigger.pdb diff --git a/Code/Chapter 13/C#/SqlServerUDF/AssemblyInfo.cs b/Code/Chapter 13/C#/SqlServerUDF/AssemblyInfo.cs new file mode 100644 index 0000000..221b8ab --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerUDF/AssemblyInfo.cs @@ -0,0 +1,31 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Data.Sql; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SqlServerUDF")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SqlServerUDF")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] + diff --git a/Code/Chapter 13/C#/SqlServerUDF/GetRandomNumber.cs b/Code/Chapter 13/C#/SqlServerUDF/GetRandomNumber.cs new file mode 100644 index 0000000..931fd92 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerUDF/GetRandomNumber.cs @@ -0,0 +1,15 @@ +using System; +using System.Data; +using System.Data.Sql; +using System.Data.SqlTypes; +using Microsoft.SqlServer.Server; + +public partial class SqlServerUDF +{ + [Microsoft.SqlServer.Server.SqlFunction] + public static SqlInt32 GetRandomNumber2() + { + Random rnd = new Random(); + return rnd.Next(); + } +}; \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerUDF/SqlServerUDF.csproj b/Code/Chapter 13/C#/SqlServerUDF/SqlServerUDF.csproj new file mode 100644 index 0000000..42e7236 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerUDF/SqlServerUDF.csproj @@ -0,0 +1,49 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.50215 + 2.0 + {68F28AF0-0E08-4AC6-98D3-491E08B6E66E} + Library + false + SqlServerUDF + SqlServerUDF + + + true + false + bin\Debug\ + false + DEBUG;TRACE + 4 + false + + + false + true + bin\Release\ + false + TRACE + 4 + false + + + + + + + + + + + + + + + Content + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerUDF/SqlServerUDF.csproj.user b/Code/Chapter 13/C#/SqlServerUDF/SqlServerUDF.csproj.user new file mode 100644 index 0000000..363c346 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerUDF/SqlServerUDF.csproj.user @@ -0,0 +1,12 @@ + + + 8.0.50215 + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlServerUDF/Test Scripts/Test.sql b/Code/Chapter 13/C#/SqlServerUDF/Test Scripts/Test.sql new file mode 100644 index 0000000..242c0f3 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerUDF/Test Scripts/Test.sql @@ -0,0 +1,35 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +select 'put your test script here' diff --git a/Code/Chapter 13/C#/SqlServerUDF/bin/Debug/SqlServerUDF.dll b/Code/Chapter 13/C#/SqlServerUDF/bin/Debug/SqlServerUDF.dll new file mode 100644 index 0000000000000000000000000000000000000000..87f2a3b4e230e4021bb5541cea364f0ff0dbfbc1 GIT binary patch literal 16384 zcmeHNPiz!b82@IwZMTIMS`2@p;xt85p-i?dP*B8ecUxHLKfBvjaFcd+JKYYQompmP z3nfa>g9-71#(43fi5KF<7!uIn#b8WSZeEDS)P#d4y^xT20Ds@x-Lgw-WAsA8d(HdJ z_vgLueed^XX7|1A@X1S5LqtK;`}c{i;mRc`U$$(@)G9Vd{3`hnf1CjyBfMh^2@E9?$%=>B- z-kS!fmflc_KBy&9*!UmHmaszG&=37v$lFBJ*jVRaFWT7A0@$#J>UZx9bhJX=P5p^i z`jyg1yl-9X*23EUaBp`n4_r$Ya2bKx&*O|BKy(SUJ>k2io%OiIFWBAl9=m-aLAQ%L zeQG~C5s$%k2l~hC>$jXVu3XSvIr>C^8d&*D>7lK~c_JJ3iOMqP!t>|Kb|hQMvW^Z? z7ql5VPIdG?T>yShp8ObpRVl z4-5wCXfeHx=3=*>~vQMHY7>P@@?PXyD93FON z3zl(&5~r<%;Vv5PL~Kx-wX7-w<-CmJT4tIOOP+7!Xf%Dw$oM5qi|M{zDQgIpT*@0B z2Z`H$Pd6Pk{Bhl$b#fzxT-tEENz3?-TkbS&%vp$MIyUuro{>viOOuA{LGSZ%oQeye#Y{bGJDzW5 zJc=3VLN=>cO}%KtBaijvbr8#@jhD#dL`}B!v6chB#v}u`s z#WaV_jO%#LoX-niyoQhtf-RP|BAU1pXoS!5ocwe=m$%G}$>(}hqcYM<2j9Kg z*n8#JCwEVFHvP8kX9`_CmzvzMZ~0;nZ^#C;Qi7_YG&2Nh0WF7E37s57$TBGGvRlm8cs@>u6euPtK<4WGR`|);Es9tn|z;8;To%||E2DVPQ zdVa*Q2hL^;v0TY{*E!=A-#6v6Sbow9sGazX=)}8nJP}JA>ii))ef_}k>*HUZ`0mJ0 zw`<@Zcp=r7cMZ=|`}NF1A@8LI<0E}T>RxqtN$q!>g;W%4mx|8odEDx1S5GS1o~leV z<)lxg#6nk@wft-v;pxZHXB5kSu&lDQx|Bc5sy)+D$BkLmux{GLr{6HdYk^zcf0oop zb#tjn1|$QL0m*=5Kr$d1c&r%UT_$1Qh%H%FDeltobMh)XH{-K|*CN<+^B2Zaxf9q2 zX_68&4IH3xNO2ma5$JK?AY?9I2micR-1#YVW8)OQq!zE`eI33fSMB(?PYhK-RGnPJ zF>y{{Af`=o+`8=3Jt_pJU(aMB9yGEq2XcNZI=*7Q% zlomg!$EXQ?%Ol4yx`(|i$H`ZXlc3WWI|08-ivlN*JHD2q9H!=q7?Z;5Rpi)(opBho z8|Mu@v>#Fr(Pgm^uS3DD{X-d6?Yl0-h-7{F9zo!i)27DAQ_MhNCqSW zk^#wpWI!??8F*wFP)q+aE`D==WV4isNd_bXk^#wpWI!??8ITM}1|$QL0m*=5Kr-+@ G82B4}$2M#L literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerUDF/bin/Debug/SqlServerUDF.pdb b/Code/Chapter 13/C#/SqlServerUDF/bin/Debug/SqlServerUDF.pdb new file mode 100644 index 0000000000000000000000000000000000000000..87a9044709686d32a4768a75c53ddac86f8fc382 GIT binary patch literal 13824 zcmeHNU2IfE6rOD>{Rh^cA|D zYK;1b35iz2gE0a|UJOWLDX|YyBR*)P8eTER1Rq3b_Je#OXGW|889_XnDYV;2Pj+pn|2xfmF$V>FrdlC>aNm*?+pl zMElQYj-6g6n@`b}7Y7#W{C~77r@N%}?al6q?jQ6M$DUYTTv)lQ-SAVn>nygfecEP*=7JG_)(F4-)%nh8T)cB_GMdQ zUpy*E5eMX*jx49Y<_v^V24R<>f%yXE^awB=xC;0XkTG8tFcbIyP{x0Z{TL@Q4y3M_ z{br=w2*vcnM$8O`+arD9qkV0L=?O)xcFLYQK=~8+4h5;<0MF<(Og*-xXmaBEW!GGJ zE#*&n6*^0#+-7^G4GffhrL9;C8g+neiRXVVc0~{Nn?^LM_YG(mo;x`VkQf7iME7p_V=?WdZ3n$Tq`T?UGtg0v<1{&<*nJ={7>yZy z;=!r9r#2W1q8a1j?H0`g^Fn%I68iqZej|#uBDOWj4^|vuTPTlRpj~tG-9T$U+?_vA zTv1#O0KEY1C=%Kci-gVP{t9~6ncksuC(UR=6i=UitW#1-IE4WYYkNady zok<0iyJLm8MSQ)~pT7p(sYI^!qH z7CUtmLgP=0fH{3(w)Ym}vpmFi8&Pt-5>xcr__Tb_{GodOL)FMRalqF5@*O-%iZvWZpWsyg21Zw-gcS@3*t!} zZgPa*S6{coSIb;&+lc3uGc2B0IYX=>4H;Oz)xj0_SiJuu0 zc=vRLdm6$W5#bF7`;dlvqh`q4X$0F1v#mE0>ahtOUA;!syWrbDYx4M9i*SXPFkwnA zUKp6r?NMaMEV)g&MUarz&kS6?0FC+|2J*kh{I9@oGW79pV)69<7oAP~jq;k)mMjJ! zjr|z|@IHf#co@h$QN{s`(ij(TlZ-R@E`BE>Q~u5Gpjp9x!~xoK1&RZT1BwHR1BwHR J11pOI{{ZvdYJva& literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerUDF/obj/Debug/SqlServerUDF.dll b/Code/Chapter 13/C#/SqlServerUDF/obj/Debug/SqlServerUDF.dll new file mode 100644 index 0000000000000000000000000000000000000000..87f2a3b4e230e4021bb5541cea364f0ff0dbfbc1 GIT binary patch literal 16384 zcmeHNPiz!b82@IwZMTIMS`2@p;xt85p-i?dP*B8ecUxHLKfBvjaFcd+JKYYQompmP z3nfa>g9-71#(43fi5KF<7!uIn#b8WSZeEDS)P#d4y^xT20Ds@x-Lgw-WAsA8d(HdJ z_vgLueed^XX7|1A@X1S5LqtK;`}c{i;mRc`U$$(@)G9Vd{3`hnf1CjyBfMh^2@E9?$%=>B- z-kS!fmflc_KBy&9*!UmHmaszG&=37v$lFBJ*jVRaFWT7A0@$#J>UZx9bhJX=P5p^i z`jyg1yl-9X*23EUaBp`n4_r$Ya2bKx&*O|BKy(SUJ>k2io%OiIFWBAl9=m-aLAQ%L zeQG~C5s$%k2l~hC>$jXVu3XSvIr>C^8d&*D>7lK~c_JJ3iOMqP!t>|Kb|hQMvW^Z? z7ql5VPIdG?T>yShp8ObpRVl z4-5wCXfeHx=3=*>~vQMHY7>P@@?PXyD93FON z3zl(&5~r<%;Vv5PL~Kx-wX7-w<-CmJT4tIOOP+7!Xf%Dw$oM5qi|M{zDQgIpT*@0B z2Z`H$Pd6Pk{Bhl$b#fzxT-tEENz3?-TkbS&%vp$MIyUuro{>viOOuA{LGSZ%oQeye#Y{bGJDzW5 zJc=3VLN=>cO}%KtBaijvbr8#@jhD#dL`}B!v6chB#v}u`s z#WaV_jO%#LoX-niyoQhtf-RP|BAU1pXoS!5ocwe=m$%G}$>(}hqcYM<2j9Kg z*n8#JCwEVFHvP8kX9`_CmzvzMZ~0;nZ^#C;Qi7_YG&2Nh0WF7E37s57$TBGGvRlm8cs@>u6euPtK<4WGR`|);Es9tn|z;8;To%||E2DVPQ zdVa*Q2hL^;v0TY{*E!=A-#6v6Sbow9sGazX=)}8nJP}JA>ii))ef_}k>*HUZ`0mJ0 zw`<@Zcp=r7cMZ=|`}NF1A@8LI<0E}T>RxqtN$q!>g;W%4mx|8odEDx1S5GS1o~leV z<)lxg#6nk@wft-v;pxZHXB5kSu&lDQx|Bc5sy)+D$BkLmux{GLr{6HdYk^zcf0oop zb#tjn1|$QL0m*=5Kr$d1c&r%UT_$1Qh%H%FDeltobMh)XH{-K|*CN<+^B2Zaxf9q2 zX_68&4IH3xNO2ma5$JK?AY?9I2micR-1#YVW8)OQq!zE`eI33fSMB(?PYhK-RGnPJ zF>y{{Af`=o+`8=3Jt_pJU(aMB9yGEq2XcNZI=*7Q% zlomg!$EXQ?%Ol4yx`(|i$H`ZXlc3WWI|08-ivlN*JHD2q9H!=q7?Z;5Rpi)(opBho z8|Mu@v>#Fr(Pgm^uS3DD{X-d6?Yl0-h-7{F9zo!i)27DAQ_MhNCqSW zk^#wpWI!??8F*wFP)q+aE`D==WV4isNd_bXk^#wpWI!??8ITM}1|$QL0m*=5Kr-+@ G82B4}$2M#L literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerUDF/obj/Debug/SqlServerUDF.pdb b/Code/Chapter 13/C#/SqlServerUDF/obj/Debug/SqlServerUDF.pdb new file mode 100644 index 0000000000000000000000000000000000000000..87a9044709686d32a4768a75c53ddac86f8fc382 GIT binary patch literal 13824 zcmeHNU2IfE6rOD>{Rh^cA|D zYK;1b35iz2gE0a|UJOWLDX|YyBR*)P8eTER1Rq3b_Je#OXGW|889_XnDYV;2Pj+pn|2xfmF$V>FrdlC>aNm*?+pl zMElQYj-6g6n@`b}7Y7#W{C~77r@N%}?al6q?jQ6M$DUYTTv)lQ-SAVn>nygfecEP*=7JG_)(F4-)%nh8T)cB_GMdQ zUpy*E5eMX*jx49Y<_v^V24R<>f%yXE^awB=xC;0XkTG8tFcbIyP{x0Z{TL@Q4y3M_ z{br=w2*vcnM$8O`+arD9qkV0L=?O)xcFLYQK=~8+4h5;<0MF<(Og*-xXmaBEW!GGJ zE#*&n6*^0#+-7^G4GffhrL9;C8g+neiRXVVc0~{Nn?^LM_YG(mo;x`VkQf7iME7p_V=?WdZ3n$Tq`T?UGtg0v<1{&<*nJ={7>yZy z;=!r9r#2W1q8a1j?H0`g^Fn%I68iqZej|#uBDOWj4^|vuTPTlRpj~tG-9T$U+?_vA zTv1#O0KEY1C=%Kci-gVP{t9~6ncksuC(UR=6i=UitW#1-IE4WYYkNady zok<0iyJLm8MSQ)~pT7p(sYI^!qH z7CUtmLgP=0fH{3(w)Ym}vpmFi8&Pt-5>xcr__Tb_{GodOL)FMRalqF5@*O-%iZvWZpWsyg21Zw-gcS@3*t!} zZgPa*S6{coSIb;&+lc3uGc2B0IYX=>4H;Oz)xj0_SiJuu0 zc=vRLdm6$W5#bF7`;dlvqh`q4X$0F1v#mE0>ahtOUA;!syWrbDYx4M9i*SXPFkwnA zUKp6r?NMaMEV)g&MUarz&kS6?0FC+|2J*kh{I9@oGW79pV)69<7oAP~jq;k)mMjJ! zjr|z|@IHf#co@h$QN{s`(ij(TlZ-R@E`BE>Q~u5Gpjp9x!~xoK1&RZT1BwHR1BwHR J11pOI{{ZvdYJva& literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlServerUDF/obj/SqlServerProject.csproj.FileList.txt b/Code/Chapter 13/C#/SqlServerUDF/obj/SqlServerProject.csproj.FileList.txt new file mode 100644 index 0000000..4d5e924 --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerUDF/obj/SqlServerProject.csproj.FileList.txt @@ -0,0 +1,5 @@ +bin\Debug\SqlServerProject.dll +bin\Debug\SqlServerProject.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\SqlServerProject.dll +obj\Debug\SqlServerProject.pdb diff --git a/Code/Chapter 13/C#/SqlServerUDF/obj/SqlServerUDF.csproj.FileList.txt b/Code/Chapter 13/C#/SqlServerUDF/obj/SqlServerUDF.csproj.FileList.txt new file mode 100644 index 0000000..31dfbac --- /dev/null +++ b/Code/Chapter 13/C#/SqlServerUDF/obj/SqlServerUDF.csproj.FileList.txt @@ -0,0 +1,5 @@ +obj\Debug\ResolveAssemblyReference.cache +bin\Debug\SqlServerUDF.dll +bin\Debug\SqlServerUDF.pdb +obj\Debug\SqlServerUDF.dll +obj\Debug\SqlServerUDF.pdb diff --git a/Code/Chapter 13/C#/SqlTVFExternalAccess/AssemblyInfo.cs b/Code/Chapter 13/C#/SqlTVFExternalAccess/AssemblyInfo.cs new file mode 100644 index 0000000..dfaff69 --- /dev/null +++ b/Code/Chapter 13/C#/SqlTVFExternalAccess/AssemblyInfo.cs @@ -0,0 +1,31 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Data.Sql; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SqlTVFExternalAccess")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SqlTVFExternalAccess")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] + diff --git a/Code/Chapter 13/C#/SqlTVFExternalAccess/ListDirectory.cs b/Code/Chapter 13/C#/SqlTVFExternalAccess/ListDirectory.cs new file mode 100644 index 0000000..99963f2 --- /dev/null +++ b/Code/Chapter 13/C#/SqlTVFExternalAccess/ListDirectory.cs @@ -0,0 +1,56 @@ +using System; +using System.Data; +using System.Data.Sql; +using System.Data.SqlTypes; +using Microsoft.SqlServer.Server; +using System.IO; +using System.Collections; + +namespace SqlTVFExternalAccess +{ + public partial class UserDefinedFunctions + { + [Microsoft.SqlServer.Server.SqlFunction(FillRowMethodName = "FillRow", + TableDefinition="FileName nvarchar(4000), FileSize nvarchar(4000)")] + public static IEnumerable GetDircontents(string DirName) + { + DirectoryInfo startDir = new DirectoryInfo(DirName); + // This implements IEnumerable, so we are done :) + return startDir.GetFiles(); + } + + public static void FillRow(object row, out string FileName, out string FileSize) + { + FileInfo oneFile = (FileInfo)row; + FileName = oneFile.Name; + FileSize = oneFile.Length.ToString(); + } + }; +} + +//Drop Function GetDircontents +//Drop Assembly SqlTVFExternalAccess + + +//Create Assembly SqlTVFExternalAccess +//from +//'C:\PlayArea\SqlTVFExternalAccess\bin\Debug\SqlTVFExternalAccess.dll' +//WITH PERMISSION_SET = EXTERNAL_ACCESS +//GO + +//Create Function GetDircontents +//( +// @DirName NVARCHAR(4000) +//) +//Returns Table +//( +// FileDirName NVARCHAR(4000), +// FileSize NVARCHAR(4000) +//) +//As +//External Name +//SqlTVFExternalAccess.[SqlTVFExternalAccess.UserDefinedFunctions].GetDircontents +//Go + +//Select * from dbo.GetDircontents ('C:\WINDOWS\Tasks') +//Go diff --git a/Code/Chapter 13/C#/SqlTVFExternalAccess/SqlTVFExternalAccess.csproj b/Code/Chapter 13/C#/SqlTVFExternalAccess/SqlTVFExternalAccess.csproj new file mode 100644 index 0000000..d73e744 --- /dev/null +++ b/Code/Chapter 13/C#/SqlTVFExternalAccess/SqlTVFExternalAccess.csproj @@ -0,0 +1,50 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.50215 + 2.0 + {B1E20ECD-9C2D-4400-BB00-5696B6E0D92B} + Library + false + SqlTVFExternalAccess + SqlTVFExternalAccess + 2 + + + true + false + bin\Debug\ + false + DEBUG;TRACE + 4 + false + + + false + true + bin\Release\ + false + TRACE + 4 + false + + + + + + + + + + + + + + + Content + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlTVFExternalAccess/SqlTVFExternalAccess.csproj.user b/Code/Chapter 13/C#/SqlTVFExternalAccess/SqlTVFExternalAccess.csproj.user new file mode 100644 index 0000000..543d87f --- /dev/null +++ b/Code/Chapter 13/C#/SqlTVFExternalAccess/SqlTVFExternalAccess.csproj.user @@ -0,0 +1,15 @@ + + + 8.0.50215 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/C#/SqlTVFExternalAccess/Test Scripts/Test.sql b/Code/Chapter 13/C#/SqlTVFExternalAccess/Test Scripts/Test.sql new file mode 100644 index 0000000..f150364 --- /dev/null +++ b/Code/Chapter 13/C#/SqlTVFExternalAccess/Test Scripts/Test.sql @@ -0,0 +1,35 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +Select * from dbo.GetDircontents ('C:\WINDOWS\Tasks') diff --git a/Code/Chapter 13/C#/SqlTVFExternalAccess/bin/Debug/SqlTVFExternalAccess.dll b/Code/Chapter 13/C#/SqlTVFExternalAccess/bin/Debug/SqlTVFExternalAccess.dll new file mode 100644 index 0000000000000000000000000000000000000000..9c48ccb30ce31a8c2ec3e6900276e0e7335ed991 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlTVFExternalAccess/obj/Debug/SqlTVFExternalAccess.dll b/Code/Chapter 13/C#/SqlTVFExternalAccess/obj/Debug/SqlTVFExternalAccess.dll new file mode 100644 index 0000000000000000000000000000000000000000..9c48ccb30ce31a8c2ec3e6900276e0e7335ed991 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/C#/SqlTVFExternalAccess/obj/SqlTVFExternalAccess.csproj.FileList.txt b/Code/Chapter 13/C#/SqlTVFExternalAccess/obj/SqlTVFExternalAccess.csproj.FileList.txt new file mode 100644 index 0000000..cba2eef --- /dev/null +++ b/Code/Chapter 13/C#/SqlTVFExternalAccess/obj/SqlTVFExternalAccess.csproj.FileList.txt @@ -0,0 +1,5 @@ +obj\Debug\ResolveAssemblyReference.cache +bin\Debug\SqlTVFExternalAccess.dll +bin\Debug\SqlTVFExternalAccess.pdb +obj\Debug\SqlTVFExternalAccess.dll +obj\Debug\SqlTVFExternalAccess.pdb diff --git a/Code/Chapter 13/SQL/Readme.txt b/Code/Chapter 13/SQL/Readme.txt new file mode 100644 index 0000000..5f8f81c --- /dev/null +++ b/Code/Chapter 13/SQL/Readme.txt @@ -0,0 +1,2 @@ +Since the SQL for each project is specific to the objects in the project, +the SQL for each project is available as commented code under each relevant C# class library. \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/Chapter 13.sln b/Code/Chapter 13/VB.NET/Chapter 13.sln new file mode 100644 index 0000000..94d0aee --- /dev/null +++ b/Code/Chapter 13/VB.NET/Chapter 13.sln @@ -0,0 +1,68 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "HandWrittenUDF", "HandWrittenUDF\HandWrittenUDF.vbproj", "{78AD1545-91C9-42CD-B661-38A61973CE48}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SqlServerUDF", "SqlServerUDF\SqlServerUDF.vbproj", "{576AF630-8DF9-40B8-8276-9E7CE1D909CE}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SqlServerTVF", "SqlServerTVF\SqlServerTVF.vbproj", "{859F0341-898A-456E-BA00-E31241E3DF8E}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SqlTVFExternalAccess", "SqlTVFExternalAccess\SqlTVFExternalAccess.vbproj", "{DB5FB629-3054-4434-8686-D0A21D659579}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SqlServerAggregate", "SqlServerAggregate\SqlServerAggregate.vbproj", "{595C536A-7F7B-4CCD-BDCE-7C27491C1EBE}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SqlServerStoredProc", "SqlServerStoredProc\SqlServerStoredProc.vbproj", "{99E86288-079C-4ED4-8586-7E0CC93A7FDD}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SqlServerTrigger", "SqlServerTrigger\SqlServerTrigger.vbproj", "{27D40FF5-D848-44BD-BAE7-AC85233509E1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {78AD1545-91C9-42CD-B661-38A61973CE48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78AD1545-91C9-42CD-B661-38A61973CE48}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78AD1545-91C9-42CD-B661-38A61973CE48}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78AD1545-91C9-42CD-B661-38A61973CE48}.Release|Any CPU.Build.0 = Release|Any CPU + {576AF630-8DF9-40B8-8276-9E7CE1D909CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {576AF630-8DF9-40B8-8276-9E7CE1D909CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {576AF630-8DF9-40B8-8276-9E7CE1D909CE}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {576AF630-8DF9-40B8-8276-9E7CE1D909CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {576AF630-8DF9-40B8-8276-9E7CE1D909CE}.Release|Any CPU.Build.0 = Release|Any CPU + {576AF630-8DF9-40B8-8276-9E7CE1D909CE}.Release|Any CPU.Deploy.0 = Release|Any CPU + {859F0341-898A-456E-BA00-E31241E3DF8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {859F0341-898A-456E-BA00-E31241E3DF8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {859F0341-898A-456E-BA00-E31241E3DF8E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {859F0341-898A-456E-BA00-E31241E3DF8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {859F0341-898A-456E-BA00-E31241E3DF8E}.Release|Any CPU.Build.0 = Release|Any CPU + {859F0341-898A-456E-BA00-E31241E3DF8E}.Release|Any CPU.Deploy.0 = Release|Any CPU + {DB5FB629-3054-4434-8686-D0A21D659579}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DB5FB629-3054-4434-8686-D0A21D659579}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DB5FB629-3054-4434-8686-D0A21D659579}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {DB5FB629-3054-4434-8686-D0A21D659579}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DB5FB629-3054-4434-8686-D0A21D659579}.Release|Any CPU.Build.0 = Release|Any CPU + {DB5FB629-3054-4434-8686-D0A21D659579}.Release|Any CPU.Deploy.0 = Release|Any CPU + {595C536A-7F7B-4CCD-BDCE-7C27491C1EBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {595C536A-7F7B-4CCD-BDCE-7C27491C1EBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {595C536A-7F7B-4CCD-BDCE-7C27491C1EBE}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {595C536A-7F7B-4CCD-BDCE-7C27491C1EBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {595C536A-7F7B-4CCD-BDCE-7C27491C1EBE}.Release|Any CPU.Build.0 = Release|Any CPU + {595C536A-7F7B-4CCD-BDCE-7C27491C1EBE}.Release|Any CPU.Deploy.0 = Release|Any CPU + {99E86288-079C-4ED4-8586-7E0CC93A7FDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {99E86288-079C-4ED4-8586-7E0CC93A7FDD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {99E86288-079C-4ED4-8586-7E0CC93A7FDD}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {99E86288-079C-4ED4-8586-7E0CC93A7FDD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {99E86288-079C-4ED4-8586-7E0CC93A7FDD}.Release|Any CPU.Build.0 = Release|Any CPU + {99E86288-079C-4ED4-8586-7E0CC93A7FDD}.Release|Any CPU.Deploy.0 = Release|Any CPU + {27D40FF5-D848-44BD-BAE7-AC85233509E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27D40FF5-D848-44BD-BAE7-AC85233509E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27D40FF5-D848-44BD-BAE7-AC85233509E1}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {27D40FF5-D848-44BD-BAE7-AC85233509E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27D40FF5-D848-44BD-BAE7-AC85233509E1}.Release|Any CPU.Build.0 = Release|Any CPU + {27D40FF5-D848-44BD-BAE7-AC85233509E1}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 13/VB.NET/Chapter 13.suo b/Code/Chapter 13/VB.NET/Chapter 13.suo new file mode 100644 index 0000000000000000000000000000000000000000..1c87ae64162c5caeab54a212a9fb769e0dc21433 GIT binary patch literal 43008 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 Vne8$st} + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {78AD1545-91C9-42CD-B661-38A61973CE48} + Library + HandWrittenUDF + HandWrittenUDF + Windows + + + true + full + true + true + bin\Debug\ + HandWrittenUDF.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + HandWrittenUDF.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/HandWrittenUDF.vbproj.user b/Code/Chapter 13/VB.NET/HandWrittenUDF/HandWrittenUDF.vbproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 13/VB.NET/HandWrittenUDF/HandWrittenUDF.vbproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Application.Designer.vb b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Application.Designer.vb new file mode 100644 index 0000000..c5978d6 --- /dev/null +++ b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Application.myapp b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Application.myapp new file mode 100644 index 0000000..758895d --- /dev/null +++ b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/AssemblyInfo.vb b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..4f752cc --- /dev/null +++ b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Resources.Designer.vb b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Resources.Designer.vb new file mode 100644 index 0000000..ac2e25d --- /dev/null +++ b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("HandWrittenUDF.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Resources.resx b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Settings.Designer.vb b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Settings.Designer.vb new file mode 100644 index 0000000..8aa2cb7 --- /dev/null +++ b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.HandWrittenUDF.Settings + Get + Return Global.HandWrittenUDF.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Settings.settings b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 13/VB.NET/HandWrittenUDF/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/UserDefinedFunctions.vb b/Code/Chapter 13/VB.NET/HandWrittenUDF/UserDefinedFunctions.vb new file mode 100644 index 0000000..56f7f54 --- /dev/null +++ b/Code/Chapter 13/VB.NET/HandWrittenUDF/UserDefinedFunctions.vb @@ -0,0 +1,11 @@ +Imports System +Imports System.Data.SqlTypes +Imports Microsoft.SqlServer.Server + +Public Class UserDefinedFunctions + _ + Public Shared Function GetRandomNumber() As SqlInt32 + Dim rnd As Random = New Random + Return rnd.Next() + End Function +End Class diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/bin/Debug/HandWrittenUDF.dll b/Code/Chapter 13/VB.NET/HandWrittenUDF/bin/Debug/HandWrittenUDF.dll new file mode 100644 index 0000000000000000000000000000000000000000..cf32f35dd4b963251e0eec310ce0405bb8832bc3 GIT binary patch literal 24576 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 G1pXTevf#%6 literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/bin/Debug/HandWrittenUDF.pdb b/Code/Chapter 13/VB.NET/HandWrittenUDF/bin/Debug/HandWrittenUDF.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ceb560b2d6d2bed91740e89c485937dd944ed626 GIT binary patch literal 40448 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 ZP!p&bbUV$?+ZnhQwwD854&2rp_ + + + +HandWrittenUDF + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.Resources.resources b/Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 G1pXTevf#%6 literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.pdb b/Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ceb560b2d6d2bed91740e89c485937dd944ed626 GIT binary patch literal 40448 zcmeHQ3vg7|c|ME8@-T8F5FoIz7bD)V(n6E54l@q(;bTWNRZ9~#@>NYO)`_4K4 z-Mh=KfQe)*=^ps??>*=L&+DG=ywAC9u}HE%)!&m2G*vaNUL9y_Zw+h+R#%tIT-e;M zV5aE*YBzp9?xTfLZH9S&CqNFIzvh|AoCEbzhP{F?DT~1!e--lSGEjxe8cuCY1?H`S4+S8 zHw|Ao_u}2tzW0fhi-ra#b*7G^#E;hd-?vzOM~NS;_y6{s&BNdIU-)vxs$bsqhhOWvFpjcd zQb%>P-v1xG7x;MHzSC0=@BIAsGv%LuVNz%6I7<9zz5hRXsrirY`rhM@RlRx7!QVV{ zrFtA?ffrTez?bX*U$~bklOqSNUcP#nuYM&5{Gkoqp}L-Rk+tF4+6`;#Hg2e2TVGQj zTDz{cZX;~!BcbXIq2SRjrCK(1Gz=u8sZ^jb963BVkm_jNzN=wpU~Qo7M4++1|8PfB ze|NN_sW&{3jwS=4+K&B=!CftTJGO-r-5*QF(&=boUvp~*r1vEIe=ZtH!@q%eED}z~ z`V+zCXexFn5lu3z=%$Xa398Em)e}pE;|QwnM4*d7MHo~h6V%bJU?Q6C=tWS+Oi+W} zJspr9ut9}gL3O)=8jDn=QqjJy_=)X_p8l~)jSV7ZgBXKUJQPj!4<;kg)L6e66e%0f z7{8bHXgVEB92)Zkr6ioONYB1hG}#;l9HQN=gNX>ClN!xJHVFT_jsHDv|I6~!jhG)& zKGY=Lpwrki;Ik_WzYhCqJg)}-3%JE#&kE-+!DoSc=C%jZil3aB4()VBC z8@wgshxAMk^>*Vm)9{tA0MYN4p8JPS9>8zDeijkBML}YyC$j(fJ74%G%F<33Cvdkc zi;>9wq-NS0%CbmNmTqoY7B7)~^tZltjIu0xl%<vTABrYv zJx>*t(Vu^VK6OQYm8vXTlHK43+fD?!wGi%YvIi@; zKb9H{#~Z^bI;mxFTawoiVI)%Na3YNmZX|a!noJ=sBg-|1)6s@R_ug0^3i}A*w#MR7 zN%F{YiEttk3&$Bh{l4<2V{5#>D;!5EMhKH#r(~b*7~Vh*UCpr0_z}b0-`EyT_l_K| z_H>fHgRJ-3919;x^rzCX2<-37yjSF1Sik4&@|IQ9kp}^dv3r$rT2BFjK#4M}LIaLW zvD)8Q*|fDX-HDEFyt2JoW33r7KLFMsr$QE+3!zJlE_QU4Lctt>6}IsC9a?X(9-l@R zQ+JzR#EkO)jP*}ry=gF>9!%=$j~Ks#Fnggl6AB_%056g>591!jCk@7lL1O7X7X}4F zf+XNeo#Apu{h)DYWC^xKCB#dj`W9V!9GIAv%#_!{uF;Gm%(IA~}+coldFHcFPM z5cmA_e(MLq8e(()faAvs?Z=N{$24<{L{njyssv~JICfzN;c1X(CT9+C+$L?( z9u_Vb+cfFl^U)?fCT$YOe=;6}tBm`0LXSEkSD;Pu#&Y?`K;BqRA3$;seuLW+w{a}T zvHW#oIh5~vZ2u1Rr!$6g!6B>tVf||GkiY(CUCnBFGdS!22c5cmb5`BWxg{Fb<7YwV zL8EDi|4nvGc*^3x))l~qfd4n}teX(xe`_?oUC%v4oN*!jI0;?qiR{hH(cDTs;mzl8 zQi$_D-h56^I;*Z2llhz*)d6?A>Hs$+WFBUb%YA=1K1i_0{LVd&+x7E1GENLyOn#FS z>@ekq>A$7GWT~{t!AQCvv#@N7p8*D6fIMZz-NPZywz`W8@@9m&Mz1X%CvCCdgk!D8 zL8jgD={5+Dift;#fHXUNrmfux&M{saIQq4E%(oDH7oG#)yTLi;+XK!q-$%h~z#jrH z1F9CNbr|cdwd1~Jc&@?oU7*G25LD=K-!{k_?D-tbvVCNKfaYi67u(WKaJK0YaLoIt zgWx4<5&T(%eufzX%J@yUy^sO!)iCH?{)Q#Tw?D06+@!8qVcUO07Ze9Q0XhRZ4;ltt0ZqsH(h9rA1aZ$yvK(;F|6Q`> z;0{+F0E7NMloR~NL}B*)-$lq%R@}WcI&Y1xK>Ic(YjpX_o3u4DS9bvu2{i6KE%Q*O zk4u^6Tpi9(g|XF{a_qYeqg=lVJ?e;DzOY8SKR46aQ_gsJ=Ls^0A%d+q@;Rx_6XYvz zGHzMo>SsyOm2%I%NF~VB$v#~_<5Ab&75o8%wJ-FoHaq<%Q^xb}Q^8)yA=dp>;Ow`d zUj;r3{f#B)$CWDSbI3lGQpjupehz>JKu?1_^TEvlw*N8@+s%$M4C+V6EI?iPwA7W@ z=%n|D@ao-y=fb>mTv?kvg13B*D}Q+l=yB~*SG}7Hg?aY;)iRe%GSThKC$V1U*w^60 z=U~h|_QkxCu4}O`K=0>9eLFN4I_QTC6{~vG@z5K)w?{?N&_8r7Ip2*w^-l0 z`~S_>FJ};M{Picmb^pKR2u>%a5O;Ila|`4tEAFF>%lz-6z&TOZ+0R?qSLm*5ygrwE zqtxWLOEh-8*p?I zdejj)4@=%$ae=Y)xZX=6bH(T@I#_Z;LdG$&j`=zV9WXMt%im}Z{ZD}lp4f4uJ+br* za5M}Z%8QJLB@asz5lhl8VLb1~l7>Srj#k+H0Pc1Pzx}5LM|=BCU)kd5O<<@JI+Pa~ z4@Vx3CL)fcO~U+`gCiFloIak+lRVE!E|_}_(|>0HOK0&*w@FRODDG3~?39C2ot?UE zS_3?tg)a3(*29#CsfmcGW%jHj<_{fA<$;Ah6GhD69EO!Ed?rfnsVc^zB#q-Segj(m zZ-Hz4HOEo|{i$pK!j1jI-z9dTPhFAsFz8`$B4Uu|4N=T-LP?;av6b#TWNshheNxg- zlrunUcrXga4!iVk?3?jl!Y_?2*LlO~z|jiGQ&!wPEO}U(h*%Pw$X+iq=j{_y+`k5yTI zm^qI8`^BzVKLA|4_YIeOA|Bh|M=;9|Grr3ok0R(WEyduB$5idd{qTcl6ir%=!`}2~ zeNLa4>k)F-&UEX?3~-JodDjl=6g3miT$8>79Q_0}3moUBRS7uv{M`vY3%h5_a2pTr z+L?Fsr%gTW4`sH z0-R}Ep#4~cm6*E`k8)=nT-T9suLr%3wU{4+X2Bz#t>k*i0nh;G3D6nP%b?dm3JWn6 zpf#ZP(=a%x`{n$nyY5Hy^^A6I-A_H9{}fredv(88_fLkppZMf{V=4QDZ#6Ap4%<2x zb)T*$`oL$Po@8C=-Y+Bd1nZJ!fa$>djC&nf{NXqK7S5>p;Xy>`d4T<4#Dj5r5{V*z z7(~7gf5>04_Mf%(&)Vmu*1g5*FR+}Kl2Y$k%a4e^qG$d2p>;=FspUV5xKQtif%P1uS(egL`xLjO>qf2GPn0ni#yJ*XM92hZ? zZ-QP0T>`xcdJFU}sQ9`hA`s6^$Q-y&E!A@bgxb^s7rf6?D_t_x>#JcxAycF;8HOOhjE;y~T#)!D$i+A`@X);d^a zmic)2A! zV|BYT^&sbXi*o8gV`pWt^G51S=D#mT*4SBD)c>COVC4Yo_+v9dm>Og`QcuiR%m2Ir zbBxDEKf@)rj4pE~@C-@t6GHP@#( z-{(J?n;Ppj)Yi2arIFJ+TV0%Lb2n=ge=oETsS;-*3d9!ec4Ubx74l+RX3q0 ziF@h)ILIjzZDbzGK5FK}`7YY8w3Z^vNB(AEmpzraZVe;2?HR$Xa|Ac8m*_zRIAG%# zhRt;lt_#rQx^aC&;+gAq8g7O3&cf|p5KXS$w_sN&E|=gY`I)Q7J0^AJgWFe$UnW0G zkq|VM+T^-b!c7V#+e0x-JHHWNp@s2A#?Xy-|I6e;t{dm0B<&U|TA6ys@kjj3b>p4X z;%2K9N00LZtlw!cJafzx(Z1%KZ@U^xZ>Nga{(q0F29uIgw-C|~uVzuT(hd#`wXrr?s(@Z}j(;`(je zyuTAR2Tlb;zTtiGCYFbisz+Y?+_}Jxr@j*_Uj1JA44&Ps+8Ik6=7|GUl?eCYd}dWD z8L8?;pCX#l8`#WS+(w{Td-v@lJ)*BkrZuscKHMs3b-nf_n^d@+dceF>-%v=p=qv>e2A ztpu$Ctp=?Dtpx=^RiJ862*my~`+{{K4&l~=*vDfYZUk)t-4Eir&I6#$pa(%)K#iaV ZP!p&bbUV$?+ZnhQwwD854&2rp_S5Ke7V`=d|~qN0Z)9t2Bh712u(Y^jPC{6jo=*=8rWcAG6bi8MZePvi@D z@MS#s20Bwzqy}*UUy|9`Z@!t&$vBSlPQh=EnJI$nuJWxx6GYyAthDql1@^I4y#kBM zgw0K_&QGn{iggrQXoe6+R_I#wH128TA476!`VcmI^{rq#*a;d9xm_1q!sRyWsqEf4 z-~ohf7(yr^^c5gWDO$kmj?#b&J%Mnd!ahj;Zz~IaWNebltfmuAQjO`d#949~|8a}e z&d48%vMUz}MlkSNMr&$M%Rui?;B6#&8paKBbSKB~XX!K*lunG09l=9Pe{QzWGJ~P8 zU@J`8G7?U$xmOZwffE<%0dlll%wGu|13FGN>$q;Ykk;$yi)$@K^U*K<*R$O{p0`vg z6Bb>DJVAxO_#n@km%2%nB;C>MH)NQJtq literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.xml b/Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.xml new file mode 100644 index 0000000..b67dd99 --- /dev/null +++ b/Code/Chapter 13/VB.NET/HandWrittenUDF/obj/Debug/HandWrittenUDF.xml @@ -0,0 +1,24 @@ + + + + +HandWrittenUDF + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/HandWrittenUDF/obj/HandWrittenUDF.vbproj.FileList.txt b/Code/Chapter 13/VB.NET/HandWrittenUDF/obj/HandWrittenUDF.vbproj.FileList.txt new file mode 100644 index 0000000..44c1805 --- /dev/null +++ b/Code/Chapter 13/VB.NET/HandWrittenUDF/obj/HandWrittenUDF.vbproj.FileList.txt @@ -0,0 +1,9 @@ +bin\Debug\HandWrittenUDF.dll +bin\Debug\HandWrittenUDF.pdb +bin\Debug\HandWrittenUDF.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\HandWrittenUDF.Resources.resources +obj\Debug\HandWrittenUDF.vbproj.GenerateResource.Cache +obj\Debug\HandWrittenUDF.dll +obj\Debug\HandWrittenUDF.xml +obj\Debug\HandWrittenUDF.pdb diff --git a/Code/Chapter 13/VB.NET/SqlServerAggregate/AssemblyInfo.vb b/Code/Chapter 13/VB.NET/SqlServerAggregate/AssemblyInfo.vb new file mode 100644 index 0000000..c1742bc --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerAggregate/AssemblyInfo.vb @@ -0,0 +1,34 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices +Imports System.Data.Sql + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: + + diff --git a/Code/Chapter 13/VB.NET/SqlServerAggregate/Concatenator.vb b/Code/Chapter 13/VB.NET/SqlServerAggregate/Concatenator.vb new file mode 100644 index 0000000..fd422b6 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerAggregate/Concatenator.vb @@ -0,0 +1,53 @@ +Imports System +Imports System.Data +Imports System.Data.Sql +Imports System.Data.SqlTypes +Imports Microsoft.SqlServer.Server +Imports System.Text + + _ + _ +Public Structure Concatenator + Implements IBinarySerialize + + Private sb As StringBuilder + + Public Sub Init() + sb = New StringBuilder + End Sub + + Public Sub Accumulate(ByVal value As SqlString) + sb.Append(value) + sb.Append(",") + End Sub + + Public Sub Merge(ByVal value As Concatenator) + Accumulate(value.ToString()) + End Sub + + Public Overrides Function ToString() As String + Return sb.ToString() + End Function + + Public Function Terminate() As SqlString + sb.Remove(sb.Length - 1, 1) + Return sb.ToString() + End Function + +#Region "IBinarySerialize Members" + Public Sub Read(ByVal r As System.IO.BinaryReader) _ + Implements IBinarySerialize.Read + sb = New StringBuilder() + sb.Append(r.ReadString()) + End Sub + + Public Sub Write(ByVal w As System.IO.BinaryWriter) _ + Implements IBinarySerialize.Write + If (sb.Length > 0) Then + w.Write(sb.ToString()) + End If + End Sub +#End Region +End Structure + diff --git a/Code/Chapter 13/VB.NET/SqlServerAggregate/SqlServerAggregate.vbproj b/Code/Chapter 13/VB.NET/SqlServerAggregate/SqlServerAggregate.vbproj new file mode 100644 index 0000000..96f5714 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerAggregate/SqlServerAggregate.vbproj @@ -0,0 +1,65 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + 8.0.50215 + 2.0 + {595C536A-7F7B-4CCD-BDCE-7C27491C1EBE} + Library + Empty + SqlServerAggregate + SqlServerAggregate + + + true + true + true + true + bin\ + + + false + false + true + false + true + bin\ + + + + System + False + + + System.Data + False + + + System.XML + False + + + + + + + + + + + + + + + + Content + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerAggregate/SqlServerAggregate.vbproj.user b/Code/Chapter 13/VB.NET/SqlServerAggregate/SqlServerAggregate.vbproj.user new file mode 100644 index 0000000..e3ec1d8 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerAggregate/SqlServerAggregate.vbproj.user @@ -0,0 +1,12 @@ + + + 8.0.50215 + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerAggregate/Test Scripts/Test.sql b/Code/Chapter 13/VB.NET/SqlServerAggregate/Test Scripts/Test.sql new file mode 100644 index 0000000..f1ca573 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerAggregate/Test Scripts/Test.sql @@ -0,0 +1,41 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +Select + dbo.Concatenator(PersonName) as Reviewers +from + Person +where + PersonRole = 'Reviewer' +Group By PersonRole diff --git a/Code/Chapter 13/VB.NET/SqlServerAggregate/bin/SqlServerAggregate.dll b/Code/Chapter 13/VB.NET/SqlServerAggregate/bin/SqlServerAggregate.dll new file mode 100644 index 0000000000000000000000000000000000000000..1d24071c0a29ceababdc41f6752be9a8ed7e91ae GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/VB.NET/SqlServerAggregate/obj/Debug/SqlServerAggregate.dll b/Code/Chapter 13/VB.NET/SqlServerAggregate/obj/Debug/SqlServerAggregate.dll new file mode 100644 index 0000000000000000000000000000000000000000..1d24071c0a29ceababdc41f6752be9a8ed7e91ae GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/VB.NET/SqlServerAggregate/obj/SqlServerAggregate.vbproj.FileList.txt b/Code/Chapter 13/VB.NET/SqlServerAggregate/obj/SqlServerAggregate.vbproj.FileList.txt new file mode 100644 index 0000000..feccd1f --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerAggregate/obj/SqlServerAggregate.vbproj.FileList.txt @@ -0,0 +1,5 @@ +bin\SqlServerAggregate.dll +bin\SqlServerAggregate.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\SqlServerAggregate.dll +obj\Debug\SqlServerAggregate.pdb diff --git a/Code/Chapter 13/VB.NET/SqlServerStoredProc/AssemblyInfo.vb b/Code/Chapter 13/VB.NET/SqlServerStoredProc/AssemblyInfo.vb new file mode 100644 index 0000000..71f3332 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerStoredProc/AssemblyInfo.vb @@ -0,0 +1,34 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices +Imports System.Data.Sql + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: + + diff --git a/Code/Chapter 13/VB.NET/SqlServerStoredProc/GetNames.vb b/Code/Chapter 13/VB.NET/SqlServerStoredProc/GetNames.vb new file mode 100644 index 0000000..8b4ee25 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerStoredProc/GetNames.vb @@ -0,0 +1,79 @@ +Imports System +Imports System.Data +Imports System.Data.Sql +Imports System.Data.SqlClient +Imports System.Data.SqlTypes +Imports Microsoft.SqlServer.Server + + +Partial Public Class StoredProcedures + _ + Public Shared Sub GetConcatenatedNames(ByVal role As String) + Using contextConnection As SqlConnection = _ + New SqlConnection("context connection = true") + + Dim contextCommand As SqlCommand = _ + New SqlCommand( _ + "Select dbo.Concatenator(PersonName) from Person " & _ + "where PersonRole = @Role Group By PersonRole", contextConnection) + + contextCommand.Parameters.AddWithValue("@Role", role) + contextConnection.Open() + + SqlContext.Pipe.ExecuteAndSend(contextCommand) + End Using + End Sub + + _ + Public Shared Sub GetNames(ByVal role As String) + Using contextConnection As SqlConnection = _ + New SqlConnection("context connection = true") + + Dim contextCommand As SqlCommand = _ + New SqlCommand("Select PersonName from Person where PersonRole = @Role", _ + contextConnection) + + contextCommand.Parameters.AddWithValue("@Role", role) + + contextConnection.Open() + + ' first, create the record and specify the metadata for the results + Dim rec As SqlDataRecord = _ + New SqlDataRecord(New SqlMetaData("PersonName", _ + SqlDbType.NVarChar, 200)) + + ' start a new result-set + SqlContext.Pipe.SendResultsStart(rec) + + ' send rows + Dim rdr As SqlDataReader = contextCommand.ExecuteReader() + While rdr.Read() + rec.SetString(0, rdr.GetString(0)) + SqlContext.Pipe.SendResultsRow(rec) + End While + + ' complete the result-set + SqlContext.Pipe.SendResultsEnd() + End Using + End Sub + + _ + Public Shared Sub InsertName(ByVal personName As String, ByVal personRole As String) + Using contextConnection As SqlConnection = _ + New SqlConnection("context connection = true") + Dim contextCommand As SqlCommand = _ + New SqlCommand( _ + "Insert into Person(PersonName, PersonRole) " & _ + " Values (@PersonName, @PersonRole)", _ + contextConnection) + + contextCommand.Parameters.AddWithValue("@PersonName", personName) + contextCommand.Parameters.AddWithValue("@PersonRole", personRole) + + contextConnection.Open() + contextCommand.ExecuteScalar() + ' System.Transactions.Transaction.Current.Rollback(); + contextConnection.Close() + End Using + End Sub +End Class diff --git a/Code/Chapter 13/VB.NET/SqlServerStoredProc/My Project/Application.Designer.vb b/Code/Chapter 13/VB.NET/SqlServerStoredProc/My Project/Application.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerStoredProc/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 13/VB.NET/SqlServerStoredProc/My Project/Application.myapp b/Code/Chapter 13/VB.NET/SqlServerStoredProc/My Project/Application.myapp new file mode 100644 index 0000000..55209ca --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerStoredProc/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 0 + true + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerStoredProc/SqlServerStoredProc.vbproj b/Code/Chapter 13/VB.NET/SqlServerStoredProc/SqlServerStoredProc.vbproj new file mode 100644 index 0000000..a7f3646 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerStoredProc/SqlServerStoredProc.vbproj @@ -0,0 +1,70 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + 8.0.50215 + 2.0 + {99E86288-079C-4ED4-8586-7E0CC93A7FDD} + Library + Empty + SqlServerStoredProc + SqlServerStoredProc + + + true + true + true + true + bin\ + + + false + false + true + false + true + bin\ + + + + System + False + + + System.Data + False + + + System.XML + False + + + + + + + + + + + + + + True + Application.myapp + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + Content + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerStoredProc/SqlServerStoredProc.vbproj.user b/Code/Chapter 13/VB.NET/SqlServerStoredProc/SqlServerStoredProc.vbproj.user new file mode 100644 index 0000000..399176e --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerStoredProc/SqlServerStoredProc.vbproj.user @@ -0,0 +1,12 @@ + + + 8.0.50215 + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerStoredProc/Test Scripts/Test.sql b/Code/Chapter 13/VB.NET/SqlServerStoredProc/Test Scripts/Test.sql new file mode 100644 index 0000000..242c0f3 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerStoredProc/Test Scripts/Test.sql @@ -0,0 +1,35 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +select 'put your test script here' diff --git a/Code/Chapter 13/VB.NET/SqlServerStoredProc/bin/SqlServerStoredProc.dll b/Code/Chapter 13/VB.NET/SqlServerStoredProc/bin/SqlServerStoredProc.dll new file mode 100644 index 0000000000000000000000000000000000000000..d216fed1e0a64d53157688b04e2153da168189a0 GIT binary patch literal 20480 zcmeHOeQX>@6@PnoKA)ZVh|j5$DlXl8)+zPr;@Gq?ZDae+b&VX`_#B6VA=$fI+nem| zUUv5qyC8akR&6CfqLKM`h6$nZxqUA$1w1^^TQHA(YD^ygFkobd2twi|@zc+iI z_O(h%D?pm(%$qmwy?OKIx3jmmGr1%0xr>5C6hb+Fp6C(OOv8e|HY>p#z5LrzdbsVW zosTG!PwkvrHe9vf*h`LG6(^_C4j$Gh;-PN{D`S z)J#@Jd!C{@Hz^UKEzl%}TudmUh~i5$y$qa{d1R&h6{c^c7| zSTl^mJ}OEb4HK=!9oNZ1C+2Vh0{bOU>S!1d;*M_Ga1?VY!N`6v)DxPc^=&Cj1SA3y z0f~S_Kq4R!kO)WwBmxoviNOCq0yF$x4dQpx0JYH8U3hQZM5GAq#j|~ZUUY3Ix{_!| zB1kg`0YxW~gR0;LU~DI65OUZJqOqyf#=CpF^CC0>y9MIDupLH4y{+J_Hr}EU?zfx6 zSG9)iHqm&Fu2k>>8=xo+jEYxTWk;fgz9#0dVXS{#z*yTp#&hlpb%wf~lL{3s->g1~ zXeV6^-Tp=D47sqkcZihQY>eGbtu|iW+c&?hr>#5EZAT&7Z()7e2k+JB8?iC-_P*zY z(vAt;`l(Q5E}y!mGM6CbFgoB_k6Q`3HR5(zpo&`=$w6p>4M?`yT^Jd-Zf%-CW&9iG z{qaZB?;KUiD}eV2&h*C<@xjE^{a2%bHDZFlhzq&7e4E(Y!4R|y zg=29}2qE^Zi2fL4nJ7$0X$mXiNqPwUmxBLJ@K%L2Bg#G{im~@8VKNo=ED8O`h5l~A z?^o`Fz9+ywV}bram@?pp=?qc~)4hS)p!uQTf#3^}w+Ox`I0frua3~n2CBZ)|_&LEJ z7W^4-&eG47(Pe2r4FOMR^w=Yl^S_`7pO&QvT)|2Jd2hj@9r+2bvH{FK)C=RL6 z**bm~=Qd>35`eg*g|6sMiE6##eAPNjTpDM)2PVuF^N?cI5tZdJ6nm`V06A^iS|E zWrq@{$LU_kKcTOJzeGW3HYx1$C*k=Wx*PJ}i9LhR57UF;#qg<;n zA5q3c9V+?P>saJ5UUHxz6fA`*DSVHE@EKL5cFdot(eJ*B{n{gTu4wAlQ{K(mj%j4* zh>>+{*IxAE^M+g0%u&rXvXu60N6*bTc2>_79o?n$X)~=mXLP4#q4cWj>3N#YoYb=( z#k1%`t(k)`aEij*zLKJFac9x-8DJryn<-;;qLzIgT8X zrlDINXM<5J3~Shy-^%ATE63uDhV5V7)19Pknq`kA-8){@i^)`5G?L35GrZ+_%`ECP zUC^yMNUF1r`;#vZEOt+MD5Id0h|R*-ik>Zc`iPZF>quoHWw-^~)iRioFJfk=O`g@P zuH|&6*21L_sUOij&7U>=GIOg4%Asa;w`h89+S44bGDHYU1sgG#GdtG z#*kY%)pS-fHHVU>?TXy0*L%dn=V=C$sp4;FOP1|=M%Ja2o+&OZ>CTjG9mSPQVo$y1 z?;Cm2>vi~i#^U3pB$iElwrF`qUXLg3e8DiWu&}(0EbP8Q<4ZfMo7#$y+*-JDM|OiL zW0;1wTC=W;K4D=c*oA8F@uHEdIU@#Ez0r_uax%@KO+&N1nr9`fzF1jPBd)9GGv?}? zgNvEhoKrRDiYaLqRvlw$xh_t{1gLYxY!ic+mQ^>QN{^K8W*wuzuxuP@&hY9HuddtL z-5SrCcyb=hl1&zQq|*wxN`BiyJBzjdgACl_loZZc z(nL5*)HXWx;%k?V+7ras(``3sx%Ln zO>wgxJb3u{EuFt;9}23312#p8wopKcMnfvZunIBO7E&qJ2|0F2vtABK<-eYPaD+x`vwjTCi?N6^w47BAchig!BKBhC|14i)gL^ds{M%sUO2WZ z)Yas+#P`T>tPQ0j6z1&1vArn!k!Gs=Zp10SpJkP$jZ}Gu@-4@cwv#f=Bbs6P&v;$; z?|hig?cfjsGPkAki+dLJ;Nv}(QG=EzW&r_9=xLC>E!1xzw^1l>u-wk zeKt0j~7T>L?&iw^pF%6G)snmgHLNappOV6XxTnr|1U%R|E9D(4YV1=cCYLn~z0U=K63s4t7-=P6An-LQ%wiv4c2< z*kI>f=|ya|GwmVnHHQs$P3%>hs4FJ}!hs$P-HN#>$cfJgcn^E2Nu(3PCxM><_j{F#V zAG;h*3;4{ZHror0hxIKmZ;Z1Z`PafdCHjxx%JW%B9xKBXhd37#1JlPj2LU(Ehu0&o zTio1Ocg?Bf-}$8yK|;YFtH9RQ)}X-;knoRxh$Jd-{!P+(X8$RjZJ15D};VpPfy@Oubzf4`f4_$gT@+`Tj|X!LBwyZACuQP zKMPfq$~s?z+?-0hxOrjw6*$C;TIa3hk)pYQ{(AR7>;(jtE)oHWfJ8tdAQ6xVyeSB% s{{N>gT=%9#mq8^05&?;TL_i`S5s(N-1SA3y0f~S_Kq4R!_#Z&v-|Op;c>n+a literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/VB.NET/SqlServerStoredProc/bin/SqlServerStoredProc.pdb b/Code/Chapter 13/VB.NET/SqlServerStoredProc/bin/SqlServerStoredProc.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2884f9c201799f842938a360a8997e533f472fe7 GIT binary patch literal 15872 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/VB.NET/SqlServerStoredProc/obj/Debug/SqlServerStoredProc.pdb b/Code/Chapter 13/VB.NET/SqlServerStoredProc/obj/Debug/SqlServerStoredProc.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2884f9c201799f842938a360a8997e533f472fe7 GIT binary patch literal 15872 zcmeHNZ)_aJ6`xB?{yBEygu2Bfoj2is7cu>v~OtoPRO)q8tp zcM~v*&=Df!w0wvJs0HyS2t*4lC?6s~ML}*=5P|{`jYK672oO~L03mHZ^g~Jb{bqOV zHL=ei&XWJ^v){g*nfGSiym@bCcILX$s+qO2{dPEB6W_Wu+?8k#H%4k}OIB30CIn!S z{1+SW`V`ZED;yF$=Ya)AF9fiVEf5nTw~+h4(EDEeMl=K;5Ms59l3ch@1iCnfM*#EM z0*mK$?}E-vXMqPI(a?K0>G2R4n+6{|adpYt@y9kC{h*=g=2B0VWyApHp9LnH|G6gm z=YOWz^KaAnXN`r|qnA#v*`fdCblJ%kalC5J`gi}@cKt*D`uyFpV>`v@4Noq5qWIB! zZz=2ld)cWiLi}%8$Ekf!8@t{~9qxSLtCll&o4z2NM=jQdf z15R%6ob47U)cEiD;=OYn+dn#V=bIhJieCO_^K9>Tpr2!bLXCgs$jz@+o%qB&^y)j^ z2RHvQ64-ZcSfEhj-}=SJTi1*>{5ka5>%*Tu{MO;Q(fdG4&jS104ZcUc{D97H3!FcD z{w#<7cAWEzXk#i`-`}8CD|K~^)%DvOW7V;3v1oNeUHx|C#MEeQV>EKGPl&c1$>t$b zv#fB7q7EJyvXbo`-OZih>TuU^xFwq%OvbY*Eg2tBhHT9YN9&TkEs^fFo@C-SJ)xNg zH8WvnO)Yh!nN^d`mZfF-^x+PpKg-&+9ZAKhyw9z?KW!*FD$fju`&hZk%GL485B5b2 z%}!dk>6WbAl9dm!a>cDY?N(k;&39{dx02DUf@{5BvkkA}f@+N6fz5xZsWt|1NKdPZ zoz5DOR?SN9H#D>09l?lU7-V~juf3G7y<#`Q@P#3M17D;&E~PsHMu49In~=Gc8GvOD z37&=MXKJ)RbAsYYt0M7}Q04aC5E6Bmx#5C$|e`8h8Uc7S>*$jX&#zWz7q1JmrN#~$tXsOZ7rFA z+uS(ZyA*-1{N4M z#)?F5OO^c##Wa=Sszfcy7+<6C?;GLYe?a=@K!1E9d)oLsjs`lxcnq?)y7FFpE}Kl= zjn8uE$N6BnkH<`z&?#I7m9Tz{w{2?bgji;5d+~e*j0Dvo@`-*g`5JFBo;wVDw#bl{ z{Y^sG(~u#*#}mYJ5YMwco*Aph;Jbf=@9u-|^3u>BtN75HHdZ?!`#P`do5NEeA+VyTFU5?}~3LMd8aA$9^QfiaY=mia|!ojU#>=&aeH zvGsl}^1cER)}c=7xZc%~)URV$h{M#e3VhUYBPey;jQm?bBS`myMnN;6)HMqVp4?ra z^`O53Z2=r+*%L1Ungfo=zV9F%g;f$l)M2vQUKxM8f1rO;r7s6oHuvY#b*FA=rK zTMMiJZn?+?CsD66&xOY3NcQpfK*G<^CT-B<+JMw=gI)Oapbgr=M;q)01&`a8FOg%n33%lM-Tw<&tRM2*7KHvF0b?P43S=8P za0ED8fp_{9%WKYYtzCy8xC)fEzR9Jqy-XiN2^%AL7XzX{6`;cA+oe8v)NBKSB^rXNSq29Tkykf;~>fF0oS1mU00F`l| zSSsecd!^rt=KKBcqiDFMGi?m=gjdwa3rSI9nQF~|rld5pPtU4@PDVe@ovoVhe19w} zab#xnvUjH1@n6r*R2$#n<`nDb*n#sC_%b8B0>pt8K33%6GoC_lapww-b1;0$;Ia(Z z3*^U3B?j4zPox4^U>4x|&wYCd=D8T?n{u)d;zgu+FU&Q-kDHJlz(SEkIoF2cKy3fy z-7n56q>J%eoZkarlkQ1(qpNvt$upQ$K( + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: + + diff --git a/Code/Chapter 13/VB.NET/SqlServerTVF/NameToAscii.vb b/Code/Chapter 13/VB.NET/SqlServerTVF/NameToAscii.vb new file mode 100644 index 0000000..60359ef --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerTVF/NameToAscii.vb @@ -0,0 +1,78 @@ +Imports System +Imports System.Data +Imports System.Data.Sql +Imports System.Data.SqlTypes +Imports Microsoft.SqlServer.Server +Imports System.Collections +Imports System.Runtime.InteropServices + +Namespace SqlServerTVF + Partial Public Class UserDefinedFunctions + _ + Public Shared Function NameToAscii(ByVal InputName As String) As IEnumerable + Return New NameSplitter(InputName.ToCharArray()) + End Function + + Public Shared Sub FillRow(ByVal row As Object, _ + ByRef charpart As Char, ByRef intpart As Integer) + ' break the row into its columnar parts. + charpart = CType(row, NameRow).CharPart + intpart = CType(row, NameRow).IntPart + End Sub + End Class + + + Public Class NameSplitter + Implements IEnumerable, IEnumerator + + Private idx As Int32 = -1 + Private _inputName As Char() + Private _current As Char + + Public Sub New(ByVal InputName As Char()) + _inputName = InputName + End Sub + + Public Function GetEnumerator() As System.Collections.IEnumerator _ + Implements System.Collections.IEnumerable.GetEnumerator + Return New NameSplitter(_inputName) + End Function + + Public ReadOnly Property Current() As Object _ + Implements System.Collections.IEnumerator.Current + Get + If (idx > -1) Then + Dim c As Char = _inputName(idx) + Return New NameRow(c, Asc(c)) + Else + Return -1 + End If + End Get + End Property + + Public Function MoveNext() As Boolean _ + Implements System.Collections.IEnumerator.MoveNext + idx = idx + 1 + If (idx < _inputName.Length) Then + Return True + Else + Return False + End If + End Function + + Public Sub Reset() Implements System.Collections.IEnumerator.Reset + idx = -1 + End Sub + End Class + + Public Class NameRow + Public CharPart As Char + Public IntPart As Int32 + + Public Sub New(ByVal c As Char, ByVal i As Int32) + CharPart = c + IntPart = i + End Sub + End Class +End Namespace \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerTVF/SqlServerTVF.vbproj b/Code/Chapter 13/VB.NET/SqlServerTVF/SqlServerTVF.vbproj new file mode 100644 index 0000000..c1771be --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerTVF/SqlServerTVF.vbproj @@ -0,0 +1,65 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + 8.0.50215 + 2.0 + {859F0341-898A-456E-BA00-E31241E3DF8E} + Library + Empty + SqlServerTVF + SqlServerTVF + + + true + true + true + true + bin\ + + + false + false + true + false + true + bin\ + + + + System + False + + + System.Data + False + + + System.XML + False + + + + + + + + + + + + + + + + Content + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerTVF/SqlServerTVF.vbproj.user b/Code/Chapter 13/VB.NET/SqlServerTVF/SqlServerTVF.vbproj.user new file mode 100644 index 0000000..1a3baa2 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerTVF/SqlServerTVF.vbproj.user @@ -0,0 +1,15 @@ + + + 8.0.50215 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerTVF/Test Scripts/Test.sql b/Code/Chapter 13/VB.NET/SqlServerTVF/Test Scripts/Test.sql new file mode 100644 index 0000000..d6de459 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerTVF/Test Scripts/Test.sql @@ -0,0 +1,35 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +Select * from dbo.NameToAscii ('Sahil Malik') order by intpart diff --git a/Code/Chapter 13/VB.NET/SqlServerTVF/bin/SqlServerTVF.dll b/Code/Chapter 13/VB.NET/SqlServerTVF/bin/SqlServerTVF.dll new file mode 100644 index 0000000000000000000000000000000000000000..ba42fcd382725db1ba5eaab09cf59cf04be13109 GIT binary patch literal 20480 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 g>@DHGxDb9I_fTB8^B!op^Q>-8w+GxFSm! + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: + + diff --git a/Code/Chapter 13/VB.NET/SqlServerTrigger/MonkeyTrigger.vb b/Code/Chapter 13/VB.NET/SqlServerTrigger/MonkeyTrigger.vb new file mode 100644 index 0000000..f24088b --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerTrigger/MonkeyTrigger.vb @@ -0,0 +1,47 @@ +Imports System +Imports System.Data +Imports System.Data.Sql +Imports System.Data.SqlClient +Imports System.Data.SqlTypes +Imports Microsoft.SqlServer.Server + + +Partial Public Class Triggers + ' Enter existing table or view for the target and uncomment the attribute line + _ + Public Shared Sub MonkeyTrigger() + Dim stContext As SqlTriggerContext = SqlContext.TriggerContext + + If stContext.TriggerAction = TriggerAction.Insert Then + ' Check the column + Using contextConn As SqlConnection = _ + New SqlConnection("context connection=true") + Dim cmd As SqlCommand = contextConn.CreateCommand() + contextConn.Open() + cmd.CommandText = "Select PersonName from Inserted" + + Dim personName As String = CType(cmd.ExecuteScalar(), String) + + If personName.ToUpper() = "MONKEY" Then + System.Transactions.Transaction.Current.Rollback() + SqlContext.Pipe.Send("Monkey not allowed in this table, eat bannana on tree") + End If + contextConn.Close() + End Using + End If + End Sub +End Class + +'Create Assembly SqlServerTrigger +'from +''C:\Apress\MY WORK\Chapter #13\Code\VB.NET\SqlServerTrigger\bin\SqlServerTrigger.dll' +'GO + +'Create Trigger MonkeyTrigger +' ON Person +' FOR INSERT +'As +'External Name +'SqlServerTrigger.[SqlServerTrigger.Triggers].MonkeyTrigger +'Go diff --git a/Code/Chapter 13/VB.NET/SqlServerTrigger/SqlServerTrigger.vbproj b/Code/Chapter 13/VB.NET/SqlServerTrigger/SqlServerTrigger.vbproj new file mode 100644 index 0000000..a7ee006 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerTrigger/SqlServerTrigger.vbproj @@ -0,0 +1,66 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + 8.0.50215 + 2.0 + {27D40FF5-D848-44BD-BAE7-AC85233509E1} + Library + Empty + SqlServerTrigger + SqlServerTrigger + + + true + true + true + true + bin\ + + + false + false + true + false + true + bin\ + + + + System + False + + + System.Data + False + + + + System.XML + False + + + + + + + + + + + + + + + + Content + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerTrigger/SqlServerTrigger.vbproj.user b/Code/Chapter 13/VB.NET/SqlServerTrigger/SqlServerTrigger.vbproj.user new file mode 100644 index 0000000..53a23c6 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerTrigger/SqlServerTrigger.vbproj.user @@ -0,0 +1,12 @@ + + + 8.0.50215 + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerTrigger/Test Scripts/Test.sql b/Code/Chapter 13/VB.NET/SqlServerTrigger/Test Scripts/Test.sql new file mode 100644 index 0000000..242c0f3 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerTrigger/Test Scripts/Test.sql @@ -0,0 +1,35 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +select 'put your test script here' diff --git a/Code/Chapter 13/VB.NET/SqlServerTrigger/bin/SqlServerTrigger.dll b/Code/Chapter 13/VB.NET/SqlServerTrigger/bin/SqlServerTrigger.dll new file mode 100644 index 0000000000000000000000000000000000000000..22594763b842950e574be56cc44c83613aa92c5b GIT binary patch literal 20480 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

    ya>v30wC)cD&fYLoy<2|kdw|CH>HHwi z`?1EqP{i&%J`EXl0;UPT6+k+ZJAktxyOY11KjxHKUk5Y44>~nO3)vw$-~wjjKtX4U zp6((d90ulRKKoY1V71Y3v@#S7Fjn@F@1lo2!1nN=A%!kqF5rq;&!pa%K(_Dy3!%5aLDAYN(_?-O z35mh{MoRK;l*NRcimSTRZWXj5|1|tJe1FJ=SZzk{zHd}Ix#oV3Zbu4$G{)!cA*5Z? zxrd{TbrFyfG2%m_$6A1tw0sQA2aX|3N8iZv*e>WF2Hk1L>KV|pcwe7^OYqzSdsbjx z(YjCpq^XU(k(-M=60;q71dz-n6UjU>8#yVzAEf?h&mk94&Wc>rg)#I1t>-Sd9&kP2 QdcgI7>jBpT6Uzht0T!4%g#Z8m literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/VB.NET/SqlServerTrigger/obj/Debug/SqlServerTrigger.dll b/Code/Chapter 13/VB.NET/SqlServerTrigger/obj/Debug/SqlServerTrigger.dll new file mode 100644 index 0000000000000000000000000000000000000000..22594763b842950e574be56cc44c83613aa92c5b GIT binary patch literal 20480 zcmeHOeQX>@6@PnoIop@`h~0dWwB3*dIU&AYY=_oSAZOn>j)TAIyCecxO7`y7_Qrd= zm)&(@BSEf+k5&ZKs{fRhra|yWs|u;86)hkXQ!1pYBogAQh^Q)}ND-|>rJ|~QhTogr zv+o=e5-3GT^Um|;&6_uG-u!lU_jaFe=o9x-n1~`MSFaL1hnguR`1M%@-SOMM8>eTQ zE^c{F8N9e9H)XhL*|8@bt)vz-%d$N+udB|Cr5cu+8Of?8yQn9cn`7Go*Q0$zgGz*c zdDu)>XM2_6TUIKKM601m`r30lQL88^6lN+a^mE)y)tb(u!Q((7p+-ZrtMx*+u*tyh zQI?JqO<~Gws6w=gl_{dlT;C|EM78c3(LPu+HsR^B9@^iCfuT>t7{ra1AQe$1+@j`b zM31s2g~B!}N)4rm<`a(V6rdApI1YjBk|;Hlf`^2on>Gx^nkwjIJ9N|%n!UAcDN6(- z0uljdR2oRMMaIyZgklVLbmY`9cx2C zvF0WlZez|#bgpY#32|NLrZzms#_VP=YKwF486NsRZo?~{ZBf6ns$o|{gWVz;ml2tQ zK_R-8j(R zblKufg#8BUt%tL88DaAy_16Bw0~yqBpq;}~xAvNL9&IMLQu^0~2&*Fcv(icHe7raL zecVsCqhLXp-S6|?Z(It)6(~xFD2@KJbQ1g-ItTu|;1`AFb?_J!lzmE+W|cJLFFjH2@h{VAE!u&ETnW8pM zN<)HA34V{@4-5V*I7jKn%E+>`gF3JpmPb|Yjc&M`Zb55YwASG*%zCt%h_yTDW!i*I z^CwbiBQ)E=S1LQfH!8Q#7P?K@4xUi%pl-4OU=N*9?xF#DK-mZD3s~9R^b#z0&}HQy zeVl#=`;GK_Xf*mOxFKdaDfk@tqjVqm*XaSF`3m@U`WpD-^n~Ew5}NM_{sX~Z6#OTG z|4ML`9-)UQK|iEMB>`XGg#09Z8~kay0RBCC1^m~v2E8v)9Q>!k@^!)gLc5^(t>AA# zlcEQK$Po1^2b4p~uo9{Gcph!Mz*`j5fxKOWBiVR(DS6PN1Reoa^Z& z8p)r~3mzp3p6$?(ZB6TQ^%jW?zu8*!zTha~`(w|+h_r2q_hr6oF))GNv}x#;$96EV zFq>gpeydc{tYXk1Mo#M9u_exeW{*Ft#vst79bNPEwC(#EDeD%w@DeC;{QjHsHg+OAFm8N)5xu9i1- z@~^URS50g& z;1C?lu^G!VO8Rm*F>o3m)G^)EW`*P~x(fyhfIK5_n1(mE*t^9005*_gmlqB~|BO*w zG=>lCZKE#Q^k9}_u6CvE@*GZ=sTx1k zu2Bc4TVa_Fu`H`*LDdl%-7PpqnPIthrkvr`B90^JpG(2qi+t@7FryGh8axAr^Of*QCQG=GzG~Ol16zE#V)jT*z>47Y6~Cc z8rr-r9_7G-uX7K7>D+6d%XSW&U7PyNiRQO%rN(DJIeuhg*Q@t6KDGbYnUiLu|K$S$k7Mq_wHFxwR#pQjkT- z#UsO7NpG&Z*yZBUoaW%Xj1}{CViYI7ZRO%C`cB~#jU5;nQwN5#ePg+Zf?!u*-j*Jo zy^&d{5nfr3`$2G7zm4yoxzM_!j#kEb*Ed_x#ZJggIreE+*`d(3uI_?f=<3qiyOLUW zdzY5aw|DRE?rtyMmDDD>^BsF8iW;U8e!)?%SEzMii>l8*p{gCp z)+Ur@l$KDGzoVEtIYytp%(5CZmQ>a6n)Pa2P@Rlv4rzwv-*a?5*rv!xZ6`HVZ!TLB z0f~S_KqBz2AyCb|hv4xZl+7s=m1r!R$!5}D{ZZ5V-|l_n7gs*h*YdZ|^KGMV?|4ty z(Op;V#n;Q3vO9iYV7O;cZC8ip)Lz@39_R0ZBeo{GQm5mFuYc#C z=<&9kl0}T;7a9R=n8dpLVM3FdBKknJ6ZHm-XbmqWpf%wxNJl73$H4n&4AOweVjM#~ zOa~w{eLwPtzx(khbYa!eMwYqWFM9poCDeo=v>9*(UNvMX4j{Y1nHA2NOdxx~w2hEm zpd5NRtKp)ba~*zGMi|gj5f4rk#Kf5n&Xi0p<7rgbB=Iu<|I>wRNfHhQky%$3>@%3% zMc#+~lqaMF;$New>aB%bFpOv-lOnoBjOp6V_RJ1zxIXcC?#;N z_puc1>tUS{<9l$VIWt!hnKaJ6-HZ>8qYXtxNuelWpW5F`|QSOqpe zKM&1S@y9);}VGdFS7*5Bi6%f6zZH{V({A=MiNc@u^m+)7(Hq;d9h4j82GDb+tf=@3SQNoQxu&J-#B zSx`Y9Km4ITh?vx9@PQ^I5-}PQ;sX;BLxZ3s293rTO$-G!#uzDn=gv%7O1se5rqIr5 z&z_lk&pr2?bI*O8JB^Bz(ha@U6r%p<^5sHfQ=Jg<1p-9{C2N`(Acz06xp;hz-T`-5 z#Qhxy9yoT{g^BEeFk=(h{0VP+;fbIJF~Hai8$qTcBqo98rt#y#xb{HqxVFwU?s^`0 z$rto|^Ozd-fN@Q9|MC2izap=E{mb@R@1-41TdE^;Vf=Yuu=Srd#mx1e-pTTTbo_Z^ z;#u@z&&(?IlOFHk2nQd&378BB!^d-rPsW27(O5NX^-2)>v{`(Ie z*!q{(%k&crC4v>LtE4iqygXD^Q5g!Cg;$1yWvj|7Dp3-af`L%b zw>i#OZB?wMBPAP#5D}&J&JH71SHG^NK`0X%yM&0Yx5uJ-LXJf@iXEn$5`yKimWXd% zZF8(?liDPwHp{8zl+xBFr(!jRAt&Q%SH0G%lW4grCR&o?w&Yet6IDn~b_sEkERkgC zisa34pC+3zW0Pud$)+t?v?VLHMa41>?hBacCW`X zsZJ(PoeXq<+Bv*`ytDs1;-xa;C7Q`g<~qF3ezB#Pc*zaKOLdvND01NjJV1HgYPQTv ztnb>FL7961KL7BDqOo9C#XV!iEZ0lz-$Fa54e`xqi@lA`cO_r{jQ3d+pRp3uH+31N zob;^`O_4a7yET@oWyw@@ z4VsW1S8Qlej80LFh=wAe{XM9=YtTwx6pc+$Gr29<`LG5W=qtNC_(!hM63t2y!JS23 zoubN?OS8+X!&<6Iil~B(EgIU6hg3Z-s<0wUpR{79k|H_mI(*myMDEzEeYQjzMRQ|z zy_&ExYHiSqkF6a;irA*9~ciq#lUYK6ucZ#M^(-M|gtE4AAdqd)Y;Fkh~;OC~T^1TR?GWAEbi{g`&I3h`o~Ar~CS%*EbE5M=&-eDF zNx#{sUkrLXD6P}Qpp?MP0gZx|fIbe2Z@_8n{S0l>DNwXc!{xAnrMH4E0DT6OjB4n+09cLZwV)NKivTy^c@|Ir|18d%hqp

    ya>v30wC)cD&fYLoy<2|kdw|CH>HHwi z`?1EqP{i&%J`EXl0;UPT6+k+ZJAktxyOY11KjxHKUk5Y44>~nO3)vw$-~wjjKtX4U zp6((d90ulRKKoY1V71Y3v@#S7Fjn@F@1lo2!1nN=A%!kqF5rq;&!pa%K(_Dy3!%5aLDAYN(_?-O z35mh{MoRK;l*NRcimSTRZWXj5|1|tJe1FJ=SZzk{zHd}Ix#oV3Zbu4$G{)!cA*5Z? zxrd{TbrFyfG2%m_$6A1tw0sQA2aX|3N8iZv*e>WF2Hk1L>KV|pcwe7^OYqzSdsbjx z(YjCpq^XU(k(-M=60;q71dz-n6UjU>8#yVzAEf?h&mk94&Wc>rg)#I1t>-Sd9&kP2 QdcgI7>jBpT6Uzht0T!4%g#Z8m literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/VB.NET/SqlServerTrigger/obj/SqlServerTrigger.vbproj.FileList.txt b/Code/Chapter 13/VB.NET/SqlServerTrigger/obj/SqlServerTrigger.vbproj.FileList.txt new file mode 100644 index 0000000..96fb166 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerTrigger/obj/SqlServerTrigger.vbproj.FileList.txt @@ -0,0 +1,5 @@ +obj\Debug\ResolveAssemblyReference.cache +bin\SqlServerTrigger.dll +bin\SqlServerTrigger.pdb +obj\Debug\SqlServerTrigger.dll +obj\Debug\SqlServerTrigger.pdb diff --git a/Code/Chapter 13/VB.NET/SqlServerUDF/AssemblyInfo.vb b/Code/Chapter 13/VB.NET/SqlServerUDF/AssemblyInfo.vb new file mode 100644 index 0000000..cce14bf --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerUDF/AssemblyInfo.vb @@ -0,0 +1,34 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices +Imports System.Data.Sql + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: + + diff --git a/Code/Chapter 13/VB.NET/SqlServerUDF/GetRandomNumber.vb b/Code/Chapter 13/VB.NET/SqlServerUDF/GetRandomNumber.vb new file mode 100644 index 0000000..2128412 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerUDF/GetRandomNumber.vb @@ -0,0 +1,13 @@ +Imports System +Imports System.Data +Imports System.Data.Sql +Imports System.Data.SqlTypes +Imports Microsoft.SqlServer.Server + +Partial Public Class UserDefinedFunctions + _ + Public Shared Function GetRandomNumber2() As SqlInt32 + Dim rnd As Random = New Random + Return rnd.Next() + End Function +End Class diff --git a/Code/Chapter 13/VB.NET/SqlServerUDF/SqlServerUDF.vbproj b/Code/Chapter 13/VB.NET/SqlServerUDF/SqlServerUDF.vbproj new file mode 100644 index 0000000..4cd3a23 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerUDF/SqlServerUDF.vbproj @@ -0,0 +1,65 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + 8.0.50215 + 2.0 + {576AF630-8DF9-40B8-8276-9E7CE1D909CE} + Library + Empty + SqlServerUDF + SqlServerUDF + + + true + true + true + true + bin\ + + + false + false + true + false + true + bin\ + + + + System + False + + + System.Data + False + + + System.XML + False + + + + + + + + + + + + + + + + Content + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerUDF/SqlServerUDF.vbproj.user b/Code/Chapter 13/VB.NET/SqlServerUDF/SqlServerUDF.vbproj.user new file mode 100644 index 0000000..58b65e2 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerUDF/SqlServerUDF.vbproj.user @@ -0,0 +1,15 @@ + + + 8.0.50215 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlServerUDF/Test Scripts/Test.sql b/Code/Chapter 13/VB.NET/SqlServerUDF/Test Scripts/Test.sql new file mode 100644 index 0000000..7bed33a --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlServerUDF/Test Scripts/Test.sql @@ -0,0 +1,35 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +select dbo.GetRandomNumber2() diff --git a/Code/Chapter 13/VB.NET/SqlServerUDF/bin/SqlServerUDF.dll b/Code/Chapter 13/VB.NET/SqlServerUDF/bin/SqlServerUDF.dll new file mode 100644 index 0000000000000000000000000000000000000000..54e3e5645780866dffc125d159d4a33bb43586a2 GIT binary patch literal 20480 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 + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: + + diff --git a/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/ListDirectory.vb b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/ListDirectory.vb new file mode 100644 index 0000000..ac7054f --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/ListDirectory.vb @@ -0,0 +1,28 @@ +Imports System +Imports System.Data +Imports System.Data.Sql +Imports System.Data.SqlTypes +Imports Microsoft.SqlServer.Server +Imports System.Collections +Imports System.Runtime.InteropServices +Imports System.IO + +Namespace SqlTVFExternalAccess + Partial Public Class UserDefinedFunctions + _ + Public Shared Function GetDircontents(ByVal DirName As String) As IEnumerable + Dim startDir As DirectoryInfo = New DirectoryInfo(DirName) + ' This implements IEnumerable, so we are done :) + Return startDir.GetFiles() + End Function + + Public Shared Sub FillRow(ByVal row As Object, _ + ByRef FileName As String, ByRef FileSize As String) + ' break the row into its columnar parts. + Dim oneFile As FileInfo = CType(row, FileInfo) + FileName = oneFile.Name + FileSize = oneFile.Length.ToString() + End Sub + End Class +End Namespace \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/My Project/Application.Designer.vb b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/My Project/Application.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/My Project/Application.myapp b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/My Project/Application.myapp new file mode 100644 index 0000000..55209ca --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 0 + true + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/SqlTVFExternalAccess.vbproj b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/SqlTVFExternalAccess.vbproj new file mode 100644 index 0000000..b3239f4 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/SqlTVFExternalAccess.vbproj @@ -0,0 +1,71 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + 8.0.50215 + 2.0 + {DB5FB629-3054-4434-8686-D0A21D659579} + Library + Empty + SqlTVFExternalAccess + SqlTVFExternalAccess + 2 + + + true + true + true + true + bin\ + + + false + false + true + false + true + bin\ + + + + System + False + + + System.Data + False + + + System.XML + False + + + + + + + + + + + + + + True + Application.myapp + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + Content + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/SqlTVFExternalAccess.vbproj.user b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/SqlTVFExternalAccess.vbproj.user new file mode 100644 index 0000000..7dad8e1 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/SqlTVFExternalAccess.vbproj.user @@ -0,0 +1,12 @@ + + + 8.0.50215 + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/Test Scripts/Test.sql b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/Test Scripts/Test.sql new file mode 100644 index 0000000..f150364 --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/Test Scripts/Test.sql @@ -0,0 +1,35 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +Select * from dbo.GetDircontents ('C:\WINDOWS\Tasks') diff --git a/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/bin/SqlTVFExternalAccess.dll b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/bin/SqlTVFExternalAccess.dll new file mode 100644 index 0000000000000000000000000000000000000000..ac518a4232ec35e6cc06d119c5a9530d28b9a5c7 GIT binary patch literal 20480 zcmeHOZ)_Y#6@PnoKL2TR*lv?1D1i+L!D-0p?AWnWqV()L+cEebxr>v+iDYkYbKYie z_qw~6#%@C=ICu(mZ?K%zN|Z&70rM?CtH`&V1nlMTsbebmIomW#mk0!Eep#s7`$RN`ijU z`TF+D%Jl2o^NXgZR$Zs;Y86%2Y}@hGqM^DqTQzMpJC{={PRU4a*wD4J;d*|YXj+NU zUyfRtu(!7hDa`5H5V##EBGeFs9OgHxh0Q_u zo#WC;qUX@%I;s=h%gQv-R?csiRH9~g9gq(cD6^h%nq z5q*y}X(YB$k(ww?w48K3SBFlF;Uo%dmqKcyG(03-!*XCK##Bco+o7VFAdWT5vMdph z2uK7Z0uljchd;9(GOLk3++V89S&_*qz_HIh#n-m zFQw3Z@B>8;MZ5^~_q01vWL1K8>z+F!xMkq-f=WX zn^ESkzB?w5PGymEFN+9t$C%|5Av3{+GPyBAoh-bk?4wNqE*pcoo6k*HP9VXBhz{L? z`lA7cadK!8bzi4*;BV3I!QT-)p|C!sY*P~CD~~8~dRaLS{wg$|qTir-oUSWxLbEx- ze1C*%vw|OwaNBysj>PGr;I9e(JHg)(ye(>D2tiED1MGIwAz;Pjd6jG9o6lgD6e{q_n4Jmm>56n8?LQcqq=T*Ub2;v za!a0XRA{dFsG<9m)P2Wo=#m-7vY-?Wr^fAC#c;KvWzeMIXH8dkY~Qebk5Hb~Dh5rM zmUYB=oLnT7jZkUi%qNV{=hPhA!>i*iP1&a$VJQmm%B?&q8~zE=mJ8E{UG^7g%J%mU zQr-zRY3M9#YGvE;d{ajhMzK~d8}6)QGa?y0J{hN8N*Em z8KV|LxUTJyn(dnvBZ){1*Qs&~6R6T$&0nz%f?$x=>Tqene8N7!I~lsmIF%|!?cVek zC^Sa>h+%1GMaf%n*J#LQs4AM4=`XF+PS(uQiUcF96mwNLnduz2wM@-!3OtO;IMtYO z8udJ*QnZ%xu2wQCntOW1ZCI6Ys!Og}UTpFcR?WLuyn2fY5x3nGao8ejc)Dv=dED!J z%A0;Oq^%cnt0iBu_*zda!OVifwM0X;lDoUbFrER@E@%Bh>XYU3WC6Kz>Aog^{c*p7r z_Ip0j)7S(vhQH{PconxdH2K6w^1Lv_RyBE;sc@61_8HC97d5wUFqKN}{}k5-5gE_vq*=65P4uI1Q(W%@zpvX*>ud+s@MqQXLUm$nqS1G^pxES?HoE#93C1O zDD52@9_imZIDEj^JF-t7+FME$_Yd`_jDeBT06rsyUvT6PDAap%s?}dyQq_S}YKUly zLie|v35v#hJCQaZ^+e)bRO%D(3-%P3)fKt96y9S5x)T}4&05xsX4=6u&@hsX`J@}4 zBsJaKRF)+I5&?;TL_i`S5%`c02+!Ul@P8g@YZ^%J=uYW=E&hz3R-8I_5a13w)bi$Si7A+*GUm`w9zV z$=UIIq1A0g!6`mk5I5K@tCQ7I5nW1>2uK7Z0uljbh{=bQ34OVRr>d|?;WdEZZ;*=O zm4G~LMBA|EEPD5FV$Oc5tNO{|MBYLi3$Pu>Z2Pcu(U%78C|c;ErTA$D9i&8)&jn%W zHO1VIllTeM>Ng@O1ca&~0`)}#-RaA{-S5Y;F zPFCn&QeFWACE)Q~Gd;T=zv+->-*{unuf~4cOxK83!JYoVv$-l92+LS*^$#ya;lI7P zPhRKz*{C9g>wFpI)>P-k%?mroz)}1_>%6_OTpO@W&WT{I-*J98n7+yBU|J@x1&)^y zR$ryL4M7oGR_s+qCqk;)El}c5*YzpxH#Hvr{^DIlAqA_A1G4TfyLLj2?6$whP(L{{_i5NoUp^}&w!S9<#JK@nnQX1IKY44mn z_nv$1x#w|TvvsPRHB6(~iX@5?^X5hB>T4nu(UOwUBMX!D0x-n>7Y`!)I^O|P927ir zKm&)b1TdI25EtUYU>^TqAA7;qu@HPfh;eSR(UmL1fQNSC5kO9BU}#Q{E*M;28hAAt z3;nQGON2mp{NhU$Kb|?8+_yWvWck)DJG{26V+tVmG;qE7pKGFj{^vVKel^ZLZ4AB< z?LRhtk@o4a@ZKu%_RPnp9{;TRiJfOo9}mCsm^i%Z-68K3ytVb|aPxQJLvw}rC%^X4 zv%B=A-=?>$*mt3-YjgJfo!mAME|1%Nv~t(pLl5Nr^unB}o$XF(@VwJC&|mi7(eQKI z2d8%Z+m#tT?b6n#%J1}X2l6=@=r8++52m|9i}!ys{=nIfE}lAaI?(Ukp@IIgfAWu$ z^Tr=u@JZ;muR2b>adgYwG5SDCPXlFc#=~BDfOA^|m(O25&$Hc&xaSwKigav#^8&d@ zDl4lfn!m6jUKB5l$BGt|&0mO;xEw2~h($Lx2~oW$Rhh{urWvV{S-B!o z6shZoR2fEVDq*CRRH8-7SV}e$D@!$2MORigr0O?l4UIL`&!beAv`Se9k5r{;Ds4?# zN3Gs$kiD`fB{|%iT<*;(sKLFhBhp0fGP%n=+&4Bwb;U}V8#HTUv*L1>9PX0KU3Izl zuk0&S(@LsYMYfD=NB;}2fqmM~zJH~MwN_`1=O8`onbA~PvQ$HlCKXd%uPfR99}f(e zaXXZJ9j1L97QhqdA>qU!-h*$_J!|mz9e6U`)Cb#<&-c9t*;~}WlwV6i!=T&~ukHV@ z>*VJlD*IM|_XNX{*lw2FkVcw~Jb5pdKis|!c^Z-iWu4;E5wV>|``4Z~e<3Z)NK5Re zr4x9x-ybVkKw3HlX<6r|rDJ%sYme_gM_SLRSm&q3>!1bNuUyOxQvol#m%-zG+JL!e zUfUL8nZl_~HgrqTEmKSuL&I#p4eh)(wAmOjGhE+cT1s2Ab`{=d^t`WW*DbY8iPnNe z*2vT=*^Mfe0Qf}@O~TMLOh}lAP(BUib>27XC{_#R@Y<)^!mtdylk)<)HAm$WL$RAsb(1a%Kxw=$Z*KrM+1?UN28 zH=&o_=`b#(QcpKP&%O3rqiTv{rr!D0VC~gqRnjOQZFz%nEYpl8Ny8|587o)#Y@5Bv z^g##zkZdRDwa>~D3U9Ng7tLp0^m(OlVRa&nbrlra#_xY>s6H)rab^O3~uB$gM zcHa>@eh>yWrk<_}75H%^%-BG@bko4p`A#uyLx_+re^70z?r@rT9CjlW@{ zv1+FEj2fR=U(yqQf1>?zG696}$5C%ImT zJTXC#UxQO;^Yh{vGIsYfQHagtcdyIuK49Lf-wzxCF0}d9fo~jqrz1tddyM!Sb?l#e zAcA)nA3;8jv>K@|;5VJZ5yclHAe@NBp7K$aCtbYI#Vqp@vNr_M$hR5s=$&$xzU*$+ zP;SfK+jQft4Y{p>!96bHDQ_l6~+4CQL@cz65aY zu#NC=ejVcfeTY{>JW7mn&oT$`#(pxFhIelhZu*=RU27`Yq=JiJC0*05yY~Z$(uHM- z(s;QjIuN}W5=+=&_nysuaUblEd%5ZULN`AIC$G`AM4|5AxNyqK$9{-F9eJ30LT42H zeF=WeMY8bj=3UV!f&&!DfdX4NC-2qX67KEyU%ay`UZLu(JS~V~U24Oa ztz?@tLvD2nnz6?=i*Ne-fz8Beb9?XlZ(B##+{@p#o^ImCobiQ2iS3$ua9SXIj5Gpi z4vaVwn2CoD0vCI(>b%*TfyDNWNIXmgFsL-Z^`HCrNto++W;|j~HbQ)fcYYUGhcbVf zjrSAqmn7=BHnbpN3uyD;xd0yp#T5? literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/obj/Debug/SqlTVFExternalAccess.dll b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/obj/Debug/SqlTVFExternalAccess.dll new file mode 100644 index 0000000000000000000000000000000000000000..ac518a4232ec35e6cc06d119c5a9530d28b9a5c7 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/obj/SqlTVFExternalAccess.vbproj.FileList.txt b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/obj/SqlTVFExternalAccess.vbproj.FileList.txt new file mode 100644 index 0000000..6a7b27a --- /dev/null +++ b/Code/Chapter 13/VB.NET/SqlTVFExternalAccess/obj/SqlTVFExternalAccess.vbproj.FileList.txt @@ -0,0 +1,5 @@ +bin\SqlTVFExternalAccess.dll +bin\SqlTVFExternalAccess.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\SqlTVFExternalAccess.dll +obj\Debug\SqlTVFExternalAccess.pdb diff --git a/Code/Chapter 3/C#/Chapter3.sln b/Code/Chapter 3/C#/Chapter3.sln new file mode 100644 index 0000000..06b8c89 --- /dev/null +++ b/Code/Chapter 3/C#/Chapter3.sln @@ -0,0 +1,72 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "C:\...\DragDropWebsite\", "DragDropWebsite\", "{73E07C6E-DE0E-4C9E-8575-539AF78F3810}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.VirtualPath = "/DragDropWebsite" + Debug.AspNetCompiler.PhysicalPath = "DragDropWebsite\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\DragDropWebsite\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "true" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/DragDropWebsite" + Release.AspNetCompiler.PhysicalPath = "DragDropWebsite\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\DragDropWebsite\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "true" + Release.AspNetCompiler.Debug = "False" + VWDPort = "1831" + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DragDropWinApp", "DragDropWinApp\DragDropWinApp.csproj", "{6FDD10D5-3216-4218-BDA1-9F57E6EEF963}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp", "ConsoleApp\ConsoleApp.csproj", "{092764A5-16CC-467C-B471-381FEB73F54E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp2", "ConsoleApp2\ConsoleApp2.csproj", "{42B9CAF1-56A2-42E6-A53D-60E1B6C3F28B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Debug|Any CPU.ActiveCfg = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Debug|Any CPU.Build.0 = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Debug|Mixed Platforms.ActiveCfg = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Debug|Mixed Platforms.Build.0 = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Release|Any CPU.ActiveCfg = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Release|Mixed Platforms.ActiveCfg = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Release|Mixed Platforms.Build.0 = Debug|.NET + {6FDD10D5-3216-4218-BDA1-9F57E6EEF963}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6FDD10D5-3216-4218-BDA1-9F57E6EEF963}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FDD10D5-3216-4218-BDA1-9F57E6EEF963}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {6FDD10D5-3216-4218-BDA1-9F57E6EEF963}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {6FDD10D5-3216-4218-BDA1-9F57E6EEF963}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6FDD10D5-3216-4218-BDA1-9F57E6EEF963}.Release|Any CPU.Build.0 = Release|Any CPU + {6FDD10D5-3216-4218-BDA1-9F57E6EEF963}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {6FDD10D5-3216-4218-BDA1-9F57E6EEF963}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {092764A5-16CC-467C-B471-381FEB73F54E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {092764A5-16CC-467C-B471-381FEB73F54E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {092764A5-16CC-467C-B471-381FEB73F54E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {092764A5-16CC-467C-B471-381FEB73F54E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {092764A5-16CC-467C-B471-381FEB73F54E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {092764A5-16CC-467C-B471-381FEB73F54E}.Release|Any CPU.Build.0 = Release|Any CPU + {092764A5-16CC-467C-B471-381FEB73F54E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {092764A5-16CC-467C-B471-381FEB73F54E}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {42B9CAF1-56A2-42E6-A53D-60E1B6C3F28B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42B9CAF1-56A2-42E6-A53D-60E1B6C3F28B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42B9CAF1-56A2-42E6-A53D-60E1B6C3F28B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {42B9CAF1-56A2-42E6-A53D-60E1B6C3F28B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {42B9CAF1-56A2-42E6-A53D-60E1B6C3F28B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42B9CAF1-56A2-42E6-A53D-60E1B6C3F28B}.Release|Any CPU.Build.0 = Release|Any CPU + {42B9CAF1-56A2-42E6-A53D-60E1B6C3F28B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {42B9CAF1-56A2-42E6-A53D-60E1B6C3F28B}.Release|Mixed Platforms.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 3/C#/Chapter3.suo b/Code/Chapter 3/C#/Chapter3.suo new file mode 100644 index 0000000000000000000000000000000000000000..75a7cfc20d1f7b18560ed1bbf14bf24b1d8baeb4 GIT binary patch literal 29184 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 H=X>D4#)`gi literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/ConsoleApp/ConsoleApp.csproj b/Code/Chapter 3/C#/ConsoleApp/ConsoleApp.csproj new file mode 100644 index 0000000..6a7e38b --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/ConsoleApp.csproj @@ -0,0 +1,69 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {092764A5-16CC-467C-B471-381FEB73F54E} + Exe + Properties + ConsoleApp + ConsoleApp + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + True + True + Settings.settings + + + True + True + TestDataSet.xsd + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + TestDataSet.xsd + + + MSDataSetGenerator + TestDataSet.Designer.cs + Designer + + + TestDataSet.xsd + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp/ConsoleApp.csproj.user b/Code/Chapter 3/C#/ConsoleApp/ConsoleApp.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/ConsoleApp.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp/Program.cs b/Code/Chapter 3/C#/ConsoleApp/Program.cs new file mode 100644 index 0000000..f21d091 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ConsoleApp +{ + class Program + { + static void Main(string[] args) + { + TestDataSet testDS = new TestDataSet(); + TestDataSetTableAdapters.DemoTableAdapter tableAdapter = + new TestDataSetTableAdapters.DemoTableAdapter(); + tableAdapter.Fill(testDS.Demo); + + TestDataSet.DemoRow demoRow = + (TestDataSet.DemoRow)testDS.Demo.Rows[0]; + Console.WriteLine(demoRow.DemoValue); + } + } +} diff --git a/Code/Chapter 3/C#/ConsoleApp/Properties/AssemblyInfo.cs b/Code/Chapter 3/C#/ConsoleApp/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1f75283 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ConsoleApp")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ConsoleApp")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("1d8538d1-5f95-4d34-801a-a67c7cfe2b99")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 3/C#/ConsoleApp/Properties/Settings.Designer.cs b/Code/Chapter 3/C#/ConsoleApp/Properties/Settings.Designer.cs new file mode 100644 index 0000000..ee5f4d5 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/Properties/Settings.Designer.cs @@ -0,0 +1,37 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="ConsoleApp.Properties.Settings.get_Default():ConsoleApp.Properties.Settings")] + +namespace ConsoleApp.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = new Settings(); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] + [global::System.Configuration.DefaultSettingValueAttribute("Data Source=(local);Initial Catalog=Test;Integrated Security=True")] + public string TestConnectionString { + get { + return ((string)(this["TestConnectionString"])); + } + } + } +} diff --git a/Code/Chapter 3/C#/ConsoleApp/Properties/Settings.settings b/Code/Chapter 3/C#/ConsoleApp/Properties/Settings.settings new file mode 100644 index 0000000..4b97fcb --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/Properties/Settings.settings @@ -0,0 +1,16 @@ + + + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Data Source=(local);Initial Catalog=Test;Integrated Security=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=(local);Initial Catalog=Test;Integrated Security=True + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp/TestDataSet.Designer.cs b/Code/Chapter 3/C#/ConsoleApp/TestDataSet.Designer.cs new file mode 100644 index 0000000..cb05e0d --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/TestDataSet.Designer.cs @@ -0,0 +1,701 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ConsoleApp { + using System; + + + [Serializable()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [System.Xml.Serialization.XmlRootAttribute("TestDataSet")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] + public partial class TestDataSet : System.Data.DataSet { + + private DemoDataTable tableDemo; + + private System.Data.SchemaSerializationMode _schemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public TestDataSet() { + this.BeginInit(); + this.InitClass(); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + protected TestDataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == System.Data.SchemaSerializationMode.IncludeSchema)) { + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + if ((ds.Tables["Demo"] != null)) { + base.Tables.Add(new DemoDataTable(ds.Tables["Demo"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public DemoDataTable Demo { + get { + return this.tableDemo; + } + } + + public override System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [System.ComponentModel.DefaultValueAttribute(true)] + public new bool EnforceConstraints { + get { + return base.EnforceConstraints; + } + set { + base.EnforceConstraints = value; + } + } + + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + public override System.Data.DataSet Clone() { + TestDataSet cln = ((TestDataSet)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override bool ShouldSerializeTables() { + return false; + } + + protected override bool ShouldSerializeRelations() { + return false; + } + + protected override void ReadXmlSerializable(System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Demo"] != null)) { + base.Tables.Add(new DemoDataTable(ds.Tables["Demo"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + protected override System.Xml.Schema.XmlSchema GetSchemaSerializable() { + System.IO.MemoryStream stream = new System.IO.MemoryStream(); + this.WriteXmlSchema(new System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return System.Xml.Schema.XmlSchema.Read(new System.Xml.XmlTextReader(stream), null); + } + + internal void InitVars() { + this.InitVars(true); + } + + internal void InitVars(bool initTable) { + this.tableDemo = ((DemoDataTable)(base.Tables["Demo"])); + if ((initTable == true)) { + if ((this.tableDemo != null)) { + this.tableDemo.InitVars(); + } + } + } + + private void InitClass() { + this.DataSetName = "TestDataSet"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/TestDataSet.xsd"; + this.EnforceConstraints = true; + this.tableDemo = new DemoDataTable(); + base.Tables.Add(this.tableDemo); + } + + private bool ShouldSerializeDemo() { + return false; + } + + private void SchemaChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(System.Xml.Schema.XmlSchemaSet xs) { + TestDataSet ds = new TestDataSet(); + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any = new System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + return type; + } + + public delegate void DemoRowChangeEventHandler(object sender, DemoRowChangeEvent e); + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class DemoDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnDemoID; + + private System.Data.DataColumn columnDemoValue; + + public DemoDataTable() { + this.TableName = "Demo"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal DemoDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected DemoDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn DemoIDColumn { + get { + return this.columnDemoID; + } + } + + public System.Data.DataColumn DemoValueColumn { + get { + return this.columnDemoValue; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public DemoRow this[int index] { + get { + return ((DemoRow)(this.Rows[index])); + } + } + + public event DemoRowChangeEventHandler DemoRowChanged; + + public event DemoRowChangeEventHandler DemoRowChanging; + + public event DemoRowChangeEventHandler DemoRowDeleted; + + public event DemoRowChangeEventHandler DemoRowDeleting; + + public void AddDemoRow(DemoRow row) { + this.Rows.Add(row); + } + + public DemoRow AddDemoRow(string DemoValue) { + DemoRow rowDemoRow = ((DemoRow)(this.NewRow())); + rowDemoRow.ItemArray = new object[] { + null, + DemoValue}; + this.Rows.Add(rowDemoRow); + return rowDemoRow; + } + + public DemoRow FindByDemoID(int DemoID) { + return ((DemoRow)(this.Rows.Find(new object[] { + DemoID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + DemoDataTable cln = ((DemoDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new DemoDataTable(); + } + + internal void InitVars() { + this.columnDemoID = base.Columns["DemoID"]; + this.columnDemoValue = base.Columns["DemoValue"]; + } + + private void InitClass() { + this.columnDemoID = new System.Data.DataColumn("DemoID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnDemoID); + this.columnDemoValue = new System.Data.DataColumn("DemoValue", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnDemoValue); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnDemoID}, true)); + this.columnDemoID.AutoIncrement = true; + this.columnDemoID.AllowDBNull = false; + this.columnDemoID.ReadOnly = true; + this.columnDemoID.Unique = true; + this.columnDemoValue.MaxLength = 200; + } + + public DemoRow NewDemoRow() { + return ((DemoRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new DemoRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(DemoRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.DemoRowChanged != null)) { + this.DemoRowChanged(this, new DemoRowChangeEvent(((DemoRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.DemoRowChanging != null)) { + this.DemoRowChanging(this, new DemoRowChangeEvent(((DemoRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.DemoRowDeleted != null)) { + this.DemoRowDeleted(this, new DemoRowChangeEvent(((DemoRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.DemoRowDeleting != null)) { + this.DemoRowDeleting(this, new DemoRowChangeEvent(((DemoRow)(e.Row)), e.Action)); + } + } + + public void RemoveDemoRow(DemoRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + TestDataSet ds = new TestDataSet(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "DemoDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + public partial class DemoRow : System.Data.DataRow { + + private DemoDataTable tableDemo; + + internal DemoRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableDemo = ((DemoDataTable)(this.Table)); + } + + public int DemoID { + get { + return ((int)(this[this.tableDemo.DemoIDColumn])); + } + set { + this[this.tableDemo.DemoIDColumn] = value; + } + } + + public string DemoValue { + get { + try { + return ((string)(this[this.tableDemo.DemoValueColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'DemoValue\' in table \'Demo\' is DBNull.", e); + } + } + set { + this[this.tableDemo.DemoValueColumn] = value; + } + } + + public bool IsDemoValueNull() { + return this.IsNull(this.tableDemo.DemoValueColumn); + } + + public void SetDemoValueNull() { + this[this.tableDemo.DemoValueColumn] = System.Convert.DBNull; + } + } + + public class DemoRowChangeEvent : System.EventArgs { + + private DemoRow eventRow; + + private System.Data.DataRowAction eventAction; + + public DemoRowChangeEvent(DemoRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public DemoRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} +namespace ConsoleApp.TestDataSetTableAdapters { + + + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.ComponentModel.DataObjectAttribute(true)] + [System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class DemoTableAdapter : System.ComponentModel.Component { + + private System.Data.SqlClient.SqlDataAdapter m_adapter; + + private System.Data.SqlClient.SqlConnection m_connection; + + private System.Data.SqlClient.SqlCommand[] m_commandCollection; + + private bool m_clearBeforeFill; + + public DemoTableAdapter() { + this.m_clearBeforeFill = true; + } + + private System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this.m_adapter == null)) { + this.InitAdapter(); + } + return this.m_adapter; + } + } + + internal System.Data.SqlClient.SqlConnection Connection { + get { + if ((this.m_connection == null)) { + this.InitConnection(); + } + return this.m_connection; + } + set { + this.m_connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + protected System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this.m_commandCollection == null)) { + this.InitCommandCollection(); + } + return this.m_commandCollection; + } + } + + public bool ClearBeforeFill { + get { + return this.m_clearBeforeFill; + } + set { + this.m_clearBeforeFill = value; + } + } + + private void InitAdapter() { + this.m_adapter = new System.Data.SqlClient.SqlDataAdapter(); + System.Data.Common.DataTableMapping tableMapping = new System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Demo"; + tableMapping.ColumnMappings.Add("DemoID", "DemoID"); + tableMapping.ColumnMappings.Add("DemoValue", "DemoValue"); + this.m_adapter.TableMappings.Add(tableMapping); + this.m_adapter.DeleteCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.DeleteCommand.Connection = this.Connection; + this.m_adapter.DeleteCommand.CommandText = "DELETE FROM [dbo].[Demo] WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoV" + + "alue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue)))"; + this.m_adapter.DeleteCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DemoID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IsNull_DemoValue", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, true, null, "", "", "")); + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.InsertCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.InsertCommand.Connection = this.Connection; + this.m_adapter.InsertCommand.CommandText = "INSERT INTO [dbo].[Demo] ([DemoValue]) VALUES (@DemoValue);\r\nSELECT DemoID, DemoV" + + "alue FROM Demo WHERE (DemoID = @@IDENTITY)"; + this.m_adapter.InsertCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.InsertCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.UpdateCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.UpdateCommand.Connection = this.Connection; + this.m_adapter.UpdateCommand.CommandText = "UPDATE [dbo].[Demo] SET [DemoValue] = @DemoValue WHERE (([DemoID] = @Original_Dem" + + "oID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Ori" + + "ginal_DemoValue)));\r\nSELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @DemoID)" + + ""; + this.m_adapter.UpdateCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DemoID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IsNull_DemoValue", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, true, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DemoID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + private void InitConnection() { + this.m_connection = new System.Data.SqlClient.SqlConnection(); + this.m_connection.ConnectionString = ConsoleApp.Properties.Settings.Default.TestConnectionString; + } + + private void InitCommandCollection() { + this.m_commandCollection = new System.Data.SqlClient.SqlCommand[1]; + this.m_commandCollection[0] = new System.Data.SqlClient.SqlCommand(); + this.m_commandCollection[0].Connection = this.Connection; + this.m_commandCollection[0].CommandText = "SELECT DemoID, DemoValue FROM dbo.Demo"; + this.m_commandCollection[0].CommandType = System.Data.CommandType.Text; + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(TestDataSet.DemoDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.m_clearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual TestDataSet.DemoDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + TestDataSet.DemoDataTable dataTable = new TestDataSet.DemoDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + public virtual int Update(TestDataSet.DemoDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + public virtual int Update(TestDataSet dataSet) { + return this.Adapter.Update(dataSet, "Demo"); + } + + public virtual int Update(System.Data.DataRow dataRow) { + return this.Adapter.Update(new System.Data.DataRow[] { + dataRow}); + } + + public virtual int Update(System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_DemoID, string Original_DemoValue) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_DemoID)); + if ((Original_DemoValue == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((int)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((int)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_DemoValue)); + } + System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + this.Adapter.DeleteCommand.Connection.Open(); + try { + return this.Adapter.DeleteCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string DemoValue) { + if ((DemoValue == null)) { + this.Adapter.InsertCommand.Parameters[0].Value = System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(DemoValue)); + } + System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + this.Adapter.InsertCommand.Connection.Open(); + try { + return this.Adapter.InsertCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string DemoValue, int Original_DemoID, string Original_DemoValue, int DemoID) { + if ((DemoValue == null)) { + this.Adapter.UpdateCommand.Parameters[0].Value = System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(DemoValue)); + } + this.Adapter.UpdateCommand.Parameters[1].Value = ((int)(Original_DemoID)); + if ((Original_DemoValue == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = ((int)(1)); + this.Adapter.UpdateCommand.Parameters[3].Value = System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((int)(0)); + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(Original_DemoValue)); + } + this.Adapter.UpdateCommand.Parameters[4].Value = ((int)(DemoID)); + System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + this.Adapter.UpdateCommand.Connection.Open(); + try { + return this.Adapter.UpdateCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + } +} diff --git a/Code/Chapter 3/C#/ConsoleApp/TestDataSet.xsc b/Code/Chapter 3/C#/ConsoleApp/TestDataSet.xsc new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/TestDataSet.xsc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp/TestDataSet.xsd b/Code/Chapter 3/C#/ConsoleApp/TestDataSet.xsd new file mode 100644 index 0000000..f3ba586 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/TestDataSet.xsd @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + DELETE FROM [dbo].[Demo] WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue))) + + + + + + + + + + + + + INSERT INTO [dbo].[Demo] ([DemoValue]) VALUES (@DemoValue); +SELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @@IDENTITY) + + + + + + + + + SELECT DemoID, DemoValue FROM dbo.Demo + + + + + + + UPDATE [dbo].[Demo] SET [DemoValue] = @DemoValue WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue))); +SELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @DemoID) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp/TestDataSet.xss b/Code/Chapter 3/C#/ConsoleApp/TestDataSet.xss new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/TestDataSet.xss @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp/app.config b/Code/Chapter 3/C#/ConsoleApp/app.config new file mode 100644 index 0000000..865a811 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/app.config @@ -0,0 +1,22 @@ + + + + +

    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.exe b/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.exe new file mode 100644 index 0000000000000000000000000000000000000000..749467e1bbe8080328ebcbf99c0f8c1277063011 GIT binary patch literal 36864 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 IOM2k{06$HlRR910 literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.exe.config b/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.exe.config new file mode 100644 index 0000000..865a811 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.exe.config @@ -0,0 +1,22 @@ + + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.pdb b/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a20e266018afd915994cbef7b6e9142e76c4fce7 GIT binary patch literal 50688 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 rIvY9%(!P({=v-(4Bs+K^vRP)xiG)kn{2d literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.vshost.exe b/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.vshost.exe.config b/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.vshost.exe.config new file mode 100644 index 0000000..865a811 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/bin/Debug/ConsoleApp.vshost.exe.config @@ -0,0 +1,22 @@ + + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp/obj/ConsoleApp.csproj.FileList.txt b/Code/Chapter 3/C#/ConsoleApp/obj/ConsoleApp.csproj.FileList.txt new file mode 100644 index 0000000..d4d3030 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp/obj/ConsoleApp.csproj.FileList.txt @@ -0,0 +1,6 @@ +obj\Debug\ResolveAssemblyReference.cache +bin\Debug\ConsoleApp.exe.config +bin\Debug\ConsoleApp.exe +bin\Debug\ConsoleApp.pdb +obj\Debug\ConsoleApp.exe +obj\Debug\ConsoleApp.pdb diff --git a/Code/Chapter 3/C#/ConsoleApp/obj/Debug/ConsoleApp.exe b/Code/Chapter 3/C#/ConsoleApp/obj/Debug/ConsoleApp.exe new file mode 100644 index 0000000000000000000000000000000000000000..749467e1bbe8080328ebcbf99c0f8c1277063011 GIT binary patch literal 36864 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 IOM2k{06$HlRR910 literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/ConsoleApp/obj/Debug/ConsoleApp.pdb b/Code/Chapter 3/C#/ConsoleApp/obj/Debug/ConsoleApp.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a20e266018afd915994cbef7b6e9142e76c4fce7 GIT binary patch literal 50688 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 rIvY9%(!P({=v-(4Bs+K^vRP)xiG)kn{2d literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/ConsoleApp/obj/Debug/TempPE/TestDataSet.Designer.cs.dll b/Code/Chapter 3/C#/ConsoleApp/obj/Debug/TempPE/TestDataSet.Designer.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..15ef4007a97e773e8de34aa04dcb7aa5d1f35338 GIT binary patch literal 32768 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 Kf&V8h@P7c1h&==V literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/ConsoleApp2/ConsoleApp2.csproj b/Code/Chapter 3/C#/ConsoleApp2/ConsoleApp2.csproj new file mode 100644 index 0000000..b899b6c --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp2/ConsoleApp2.csproj @@ -0,0 +1,40 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {42B9CAF1-56A2-42E6-A53D-60E1B6C3F28B} + Exe + Properties + ConsoleApp2 + ConsoleApp2 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp2/ConsoleApp2.csproj.user b/Code/Chapter 3/C#/ConsoleApp2/ConsoleApp2.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp2/ConsoleApp2.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp2/Program.cs b/Code/Chapter 3/C#/ConsoleApp2/Program.cs new file mode 100644 index 0000000..aec8a7b --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp2/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Data.SqlClient ; + +namespace ConsoleApp2 +{ + class Program + { + private static string connectionString = "Data Source=(local);Initial Catalog=Test;Integrated Security=True"; + static void Main(string[] args) + { + SqlConnection testConnection = new SqlConnection(connectionString); + SqlCommand testCommand = testConnection.CreateCommand() ; + testCommand.CommandText = "Select DemoValue from Demo where DemoID = 1" ; + testConnection.Open() ; + string result = (string)testCommand.ExecuteScalar() ; + testConnection.Close(); + Console.WriteLine(result) ; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 3/C#/ConsoleApp2/Properties/AssemblyInfo.cs b/Code/Chapter 3/C#/ConsoleApp2/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8b8899a --- /dev/null +++ b/Code/Chapter 3/C#/ConsoleApp2/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ConsoleApp2")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ConsoleApp2")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7e0f0e80-ff40-4ce3-a521-60a2ee850997")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 3/C#/ConsoleApp2/bin/Debug/ConsoleApp2.exe b/Code/Chapter 3/C#/ConsoleApp2/bin/Debug/ConsoleApp2.exe new file mode 100644 index 0000000000000000000000000000000000000000..ab07b62563d21d467d1217fd0896fa2f432ae5bb GIT binary patch literal 16384 zcmeHNU2Ggz6+Saw|I~4;*iM@iLb$1eaH4v&c5D(iw5+}BBwOq_cwM_Cmg?Er>-E&L zGuxTj*5;=&ssw7ES_Dt1Qjw5QBpxa?6(v%u3h}^89{RwKcp*H11QJ3>eF}*3ojW`0 zwH+#W4fk5}-SczropZmLxqI%6=fC@qDMxgi ziP&G(i27i=f_5kN`#wn*M3_OV^gzGT(uk~BZpF|i9st0nVr<3@O%*}3W`$AcKvS{h zAaEOjqpjo+y%kC?Ktqm|)^KpUERMF4BbsSbwWt};3}^;41DXNNfM!55pc&8%Xa+O` z|3?fQ;e9m~1d)-6^bR1o%{--jOHE9|>(071d0%juYM0SCbQ?q&vU4qHg&!L48yD%17`%&)njaZmGy&|TZPPJ( z={pMFHs6GN8`wpEHTmp!fn1W95+;w(r|1!I$JzkRBI0X;+q_Q8bQrc9O8fTl>okNp zy^;8i_jSxP8CWz2=sFmASm7y!XMiVYOvzIUrxg|zensIk3T=h1!smgf=v%ZnH`h3Lfqb>Lv#uFX}sC7XqdhUJg4v? zy$m@|KLCDNSxO48D|D27lYRnkMDGB;a4?Z2_RrMwqJGQF>9C3Iss=lT*ith!@~R!StXQcH3uCP4*AH43oW z*swOB30kKRmRg%v(2KMIU#R?PpCWn-dK||X(ay^S3=!iHc>Dtl72*^U?hy+2KQ(FsSM8?`6L$40-9 zwa2BrFqxg2!dl;H@ZxmLpuv3lkcpq)5Mn%=oy5G zqLGD1Gu&tPvDN8%D5FTs*v@979<5#~UY(v3qhfwr%ml&aY97zhYJS76V<8gfR`bKK zv;tiX%FnH;$FALK)hlI;jVs(LCs`IPb&rtdKf6ZU?ICVywY;jeSW2tnaZZ6RB%dRZ zQ<4VFfM!55pc&8%+&>H$YA=kR?47-HO7@7zIS$yl9ltwxI!E*Y|L`}<2j&E%Wu#!w z0%vIvQjr$uD)b`o5@as#W&ZZBWOtQj5lQ_e*&g@cOfkebuF4`gnOjHV z#^p4B_DA~0$(oN8&QnR73$L&Icq@<*h}A$$u}a^3q;>~K`X^3o;3InaH$i3fNj-_)3SXQ2@iK~4kf7;pDHd3DAJ$a(HGymcB!1X*NNyZx8p3o*iOzcK74v#oySQyO|7kw>UkSzA-hTVp+t1wv z)n^*)M3{dKSJ1=E1@4}`tncrK>FS~x&Gy|Fe&46Y=GoTsJ3}^=KF9t;N4Lv(` me@#ozMl+xp&Gy|Fe&46Y=GoTsJ3}^;41Db(d2L27x7Nw{F literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/ConsoleApp2/bin/Debug/ConsoleApp2.pdb b/Code/Chapter 3/C#/ConsoleApp2/bin/Debug/ConsoleApp2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b559dd77b1f0e37853b82cffa37e6a8bd078e84a GIT binary patch literal 11776 zcmeHMTTC2f6#fS&cWSq`s2JDaz3dr&TJ^}d}fpTB>F6i7^2%HJGODB_=xP*d# z4u_Y-c4}W#llo0GpUc4#Ru)Mgu$g}-zsu}1` z#d3MgH03@;ojRQ}Q-ec~$A;x2a$;KUGmNQJ+?dc(@l#69((-a=Dt-_tx@lyzST5I* zI*~V?%`4fkY6_usrxZumxT|Y2tt%Pm%1+DU)TL6FTGXW;M2f9Tp|0EwT|A4tc}ZIn z;Nad05H^7B{y8cYpy#8itA+WWzLIYCp2zZV5!&}dN)pGX1x(!^zwzR^lL)gM$B=m% zIH1je0M}Mnw1#L+y*v1^64Q`W$*7%`P|`ZWjiNlndJAB$Ec0u{q0m#wY17iOqUlCB z+^<+lIQd*Ao=IyuoX7`+Y`2FxwnSB7X{Lp(MAuX+ZJ?2TC_|n9ER)SD`ULdLA$Q&t zbztW@oq_%`nA{;MD!%FYb?%d=e;m5dTvPVNho6qIorLH|o)8sK%s%k`LOl*w7O}{& zaZsHj>@W75${0d+R#;UnBaiayXh%A~qu!}kN!xxy_*GjYbxB1GYmoMWn_eqKf$gCE z0_%bcw?j5S-V3=C@;=DhAlV=Eqwp{!z$o-W?uM)q)fkfmI1WyN_k(*}*({h(TcTj6 zUsAEZ#N!Z{R1ICQM_gH4hEC^SfZv^T2MdIWqYQo!%ym8i4rucuz&Bk}O=L-ise3T! z+?zS?_Pg?^E4gnoeJxr~8F>{Y>#4s=_05&V4aTR$J?T!cw@3K2o4)VXKC#m~i*e4! zM-pwL1G<%;9z9{Cc~6i&zrw0f~BEc_-a1 z-?=5A#nBf~fPjAyka6b!*D>YY4Y&xZQI2P`ug>SSht>D%pJV)dO}qW>#~uImI&uG8 zy=WC>!msW4wU{s;N?)(2+N%`3y3jTICH6pYl-_P?7EM{ zU`N-n&Vi%-tbOG3@RB4RWw7{8vLo(?`eNYHcbb=9hF4vK-L_Qx?}Bd=&Set&?n%DG zyxF~xZZOZk=90bc`Fxic;t2QF@|N4^oLAHE9P(L)~r Y{1pLhA_VqqB3lAe0t5mCZY=_T0rskf?f?J) literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/ConsoleApp2/bin/Debug/ConsoleApp2.vshost.exe b/Code/Chapter 3/C#/ConsoleApp2/bin/Debug/ConsoleApp2.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74-E&L zGuxTj*5;=&ssw7ES_Dt1Qjw5QBpxa?6(v%u3h}^89{RwKcp*H11QJ3>eF}*3ojW`0 zwH+#W4fk5}-SczropZmLxqI%6=fC@qDMxgi ziP&G(i27i=f_5kN`#wn*M3_OV^gzGT(uk~BZpF|i9st0nVr<3@O%*}3W`$AcKvS{h zAaEOjqpjo+y%kC?Ktqm|)^KpUERMF4BbsSbwWt};3}^;41DXNNfM!55pc&8%Xa+O` z|3?fQ;e9m~1d)-6^bR1o%{--jOHE9|>(071d0%juYM0SCbQ?q&vU4qHg&!L48yD%17`%&)njaZmGy&|TZPPJ( z={pMFHs6GN8`wpEHTmp!fn1W95+;w(r|1!I$JzkRBI0X;+q_Q8bQrc9O8fTl>okNp zy^;8i_jSxP8CWz2=sFmASm7y!XMiVYOvzIUrxg|zensIk3T=h1!smgf=v%ZnH`h3Lfqb>Lv#uFX}sC7XqdhUJg4v? zy$m@|KLCDNSxO48D|D27lYRnkMDGB;a4?Z2_RrMwqJGQF>9C3Iss=lT*ith!@~R!StXQcH3uCP4*AH43oW z*swOB30kKRmRg%v(2KMIU#R?PpCWn-dK||X(ay^S3=!iHc>Dtl72*^U?hy+2KQ(FsSM8?`6L$40-9 zwa2BrFqxg2!dl;H@ZxmLpuv3lkcpq)5Mn%=oy5G zqLGD1Gu&tPvDN8%D5FTs*v@979<5#~UY(v3qhfwr%ml&aY97zhYJS76V<8gfR`bKK zv;tiX%FnH;$FALK)hlI;jVs(LCs`IPb&rtdKf6ZU?ICVywY;jeSW2tnaZZ6RB%dRZ zQ<4VFfM!55pc&8%+&>H$YA=kR?47-HO7@7zIS$yl9ltwxI!E*Y|L`}<2j&E%Wu#!w z0%vIvQjr$uD)b`o5@as#W&ZZBWOtQj5lQ_e*&g@cOfkebuF4`gnOjHV z#^p4B_DA~0$(oN8&QnR73$L&Icq@<*h}A$$u}a^3q;>~K`X^3o;3InaH$i3fNj-_)3SXQ2@iK~4kf7;pDHd3DAJ$a(HGymcB!1X*NNyZx8p3o*iOzcK74v#oySQyO|7kw>UkSzA-hTVp+t1wv z)n^*)M3{dKSJ1=E1@4}`tncrK>FS~x&Gy|Fe&46Y=GoTsJ3}^=KF9t;N4Lv(` me@#ozMl+xp&Gy|Fe&46Y=GoTsJ3}^;41Db(d2L27x7Nw{F literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/ConsoleApp2/obj/Debug/ConsoleApp2.pdb b/Code/Chapter 3/C#/ConsoleApp2/obj/Debug/ConsoleApp2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b559dd77b1f0e37853b82cffa37e6a8bd078e84a GIT binary patch literal 11776 zcmeHMTTC2f6#fS&cWSq`s2JDaz3dr&TJ^}d}fpTB>F6i7^2%HJGODB_=xP*d# z4u_Y-c4}W#llo0GpUc4#Ru)Mgu$g}-zsu}1` z#d3MgH03@;ojRQ}Q-ec~$A;x2a$;KUGmNQJ+?dc(@l#69((-a=Dt-_tx@lyzST5I* zI*~V?%`4fkY6_usrxZumxT|Y2tt%Pm%1+DU)TL6FTGXW;M2f9Tp|0EwT|A4tc}ZIn z;Nad05H^7B{y8cYpy#8itA+WWzLIYCp2zZV5!&}dN)pGX1x(!^zwzR^lL)gM$B=m% zIH1je0M}Mnw1#L+y*v1^64Q`W$*7%`P|`ZWjiNlndJAB$Ec0u{q0m#wY17iOqUlCB z+^<+lIQd*Ao=IyuoX7`+Y`2FxwnSB7X{Lp(MAuX+ZJ?2TC_|n9ER)SD`ULdLA$Q&t zbztW@oq_%`nA{;MD!%FYb?%d=e;m5dTvPVNho6qIorLH|o)8sK%s%k`LOl*w7O}{& zaZsHj>@W75${0d+R#;UnBaiayXh%A~qu!}kN!xxy_*GjYbxB1GYmoMWn_eqKf$gCE z0_%bcw?j5S-V3=C@;=DhAlV=Eqwp{!z$o-W?uM)q)fkfmI1WyN_k(*}*({h(TcTj6 zUsAEZ#N!Z{R1ICQM_gH4hEC^SfZv^T2MdIWqYQo!%ym8i4rucuz&Bk}O=L-ise3T! z+?zS?_Pg?^E4gnoeJxr~8F>{Y>#4s=_05&V4aTR$J?T!cw@3K2o4)VXKC#m~i*e4! zM-pwL1G<%;9z9{Cc~6i&zrw0f~BEc_-a1 z-?=5A#nBf~fPjAyka6b!*D>YY4Y&xZQI2P`ug>SSht>D%pJV)dO}qW>#~uImI&uG8 zy=WC>!msW4wU{s;N?)(2+N%`3y3jTICH6pYl-_P?7EM{ zU`N-n&Vi%-tbOG3@RB4RWw7{8vLo(?`eNYHcbb=9hF4vK-L_Qx?}Bd=&Set&?n%DG zyxF~xZZOZk=90bc`Fxic;t2QF@|N4^oLAHE9P(L)~r Y{1pLhA_VqqB3lAe0t5mCZY=_T0rskf?f?J) literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/DragDropWebsite/Default.aspx b/Code/Chapter 3/C#/DragDropWebsite/Default.aspx new file mode 100644 index 0000000..4055382 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWebsite/Default.aspx @@ -0,0 +1,45 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> + + + + Untitled Page + + +
    +
    +   + +   + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + diff --git a/Code/Chapter 3/C#/DragDropWebsite/Default.aspx.cs b/Code/Chapter 3/C#/DragDropWebsite/Default.aspx.cs new file mode 100644 index 0000000..b913225 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWebsite/Default.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Data; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class _Default : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWebsite/Web.Config b/Code/Chapter 3/C#/DragDropWebsite/Web.Config new file mode 100644 index 0000000..786e468 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWebsite/Web.Config @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + diff --git a/Code/Chapter 3/C#/DragDropWinApp/DragDropWinApp.csproj b/Code/Chapter 3/C#/DragDropWinApp/DragDropWinApp.csproj new file mode 100644 index 0000000..85827d4 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/DragDropWinApp.csproj @@ -0,0 +1,88 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {6FDD10D5-3216-4218-BDA1-9F57E6EEF963} + WinExe + Properties + DragDropWinApp + DragDropWinApp + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + TestDataSet.xsd + + + MSDataSetGenerator + TestDataSet.Designer.cs + Designer + + + TestDataSet.xsd + + + True + Settings.settings + True + + + True + True + TestDataSet.xsd + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/DragDropWinApp.csproj.user b/Code/Chapter 3/C#/DragDropWinApp/DragDropWinApp.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/DragDropWinApp.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/Form1.Designer.cs b/Code/Chapter 3/C#/DragDropWinApp/Form1.Designer.cs new file mode 100644 index 0000000..51a27e0 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/Form1.Designer.cs @@ -0,0 +1,248 @@ +namespace DragDropWinApp +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); + this.testDataSet = new DragDropWinApp.TestDataSet(); + this.demoBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.demoTableAdapter = new DragDropWinApp.TestDataSetTableAdapters.DemoTableAdapter(); + this.demoBindingNavigator = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); + this.demoDataGridView = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + ((System.ComponentModel.ISupportInitialize)(this.testDataSet)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.demoBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.demoBindingNavigator)).BeginInit(); + this.demoBindingNavigator.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.demoDataGridView)).BeginInit(); + this.SuspendLayout(); + // + // testDataSet + // + this.testDataSet.DataSetName = "TestDataSet"; + // + // demoBindingSource + // + this.demoBindingSource.DataMember = "Demo"; + this.demoBindingSource.DataSource = this.testDataSet; + // + // demoTableAdapter + // + this.demoTableAdapter.ClearBeforeFill = true; + // + // demoBindingNavigator + // + this.demoBindingNavigator.AddNewItem = this.bindingNavigatorAddNewItem; + this.demoBindingNavigator.BindingSource = this.demoBindingSource; + this.demoBindingNavigator.CountItem = this.bindingNavigatorCountItem; + this.demoBindingNavigator.CountItemFormat = "of {0}"; + this.demoBindingNavigator.DeleteItem = this.bindingNavigatorDeleteItem; + this.demoBindingNavigator.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.bindingNavigatorSaveItem}); + this.demoBindingNavigator.Location = new System.Drawing.Point(0, 0); + this.demoBindingNavigator.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.demoBindingNavigator.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.demoBindingNavigator.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.demoBindingNavigator.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.demoBindingNavigator.Name = "demoBindingNavigator"; + this.demoBindingNavigator.PositionItem = this.bindingNavigatorPositionItem; + this.demoBindingNavigator.Size = new System.Drawing.Size(298, 25); + this.demoBindingNavigator.TabIndex = 0; + this.demoBindingNavigator.Text = "bindingNavigator1"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.Text = "Move first"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.Text = "Move previous"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.ImageAndText; + this.bindingNavigatorPositionItem.Margin = new System.Windows.Forms.Padding(1, 0, 1, 0); + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 21); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "Current position"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Text = "of {0}"; + this.bindingNavigatorCountItem.ToolTipText = "Total number of items"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator"; + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.Text = "Move next"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.Text = "Move last"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.Text = "Add new"; + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.Text = "Delete"; + // + // bindingNavigatorSaveItem + // + this.bindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorSaveItem.Image"))); + this.bindingNavigatorSaveItem.Name = "bindingNavigatorSaveItem"; + this.bindingNavigatorSaveItem.Text = "Save Data"; + this.bindingNavigatorSaveItem.Click += new System.EventHandler(this.bindingNavigatorSaveItem_Click); + // + // demoDataGridView + // + this.demoDataGridView.AutoGenerateColumns = false; + this.demoDataGridView.Columns.Add(this.dataGridViewTextBoxColumn1); + this.demoDataGridView.Columns.Add(this.dataGridViewTextBoxColumn2); + this.demoDataGridView.DataSource = this.demoBindingSource; + this.demoDataGridView.Location = new System.Drawing.Point(0, 28); + this.demoDataGridView.Name = "demoDataGridView"; + this.demoDataGridView.Size = new System.Drawing.Size(300, 87); + this.demoDataGridView.TabIndex = 1; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.DataPropertyName = "DemoID"; + this.dataGridViewTextBoxColumn1.HeaderText = "DemoID"; + this.dataGridViewTextBoxColumn1.Name = "DemoID"; + this.dataGridViewTextBoxColumn1.ReadOnly = true; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.DataPropertyName = "DemoValue"; + this.dataGridViewTextBoxColumn2.HeaderText = "DemoValue"; + this.dataGridViewTextBoxColumn2.Name = "DemoValue"; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(298, 115); + this.Controls.Add(this.demoDataGridView); + this.Controls.Add(this.demoBindingNavigator); + this.Name = "Form1"; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.Form1_Load); + ((System.ComponentModel.ISupportInitialize)(this.testDataSet)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.demoBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.demoBindingNavigator)).EndInit(); + this.demoBindingNavigator.ResumeLayout(false); + this.demoBindingNavigator.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.demoDataGridView)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private TestDataSet testDataSet; + private System.Windows.Forms.BindingSource demoBindingSource; + private DragDropWinApp.TestDataSetTableAdapters.DemoTableAdapter demoTableAdapter; + private System.Windows.Forms.BindingNavigator demoBindingNavigator; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton bindingNavigatorSaveItem; + private System.Windows.Forms.DataGridView demoDataGridView; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + } +} + diff --git a/Code/Chapter 3/C#/DragDropWinApp/Form1.cs b/Code/Chapter 3/C#/DragDropWinApp/Form1.cs new file mode 100644 index 0000000..8ecb015 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/Form1.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace DragDropWinApp +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void bindingNavigatorSaveItem_Click(object sender, EventArgs e) + { + if (this.Validate()) + { + this.demoBindingSource.EndEdit(); + this.demoTableAdapter.Update(this.testDataSet.Demo); + } + else + { + System.Windows.Forms.MessageBox.Show(this, "Validation errors occurred.", "Save", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); + } + + } + + private void Form1_Load(object sender, EventArgs e) + { + // TODO: This line of code loads data into the 'testDataSet.Demo' table. You can move, or remove it, as needed. + this.demoTableAdapter.Fill(this.testDataSet.Demo); + + } + } +} \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/Form1.resx b/Code/Chapter 3/C#/DragDropWinApp/Form1.resx new file mode 100644 index 0000000..22fd8dd --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/Form1.resx @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 126, 17 + + + 276, 17 + + + 422, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAfNJREFUOE/Nk8lr + U1EUxvtnuHMnLQouFGpBRdwIorgQ7EYUobqpi0bEooID3XbRhQutOFDbOgUqDs2AbU2cWtoaJG0TxTSV + 5OXV5OXlzYOJ/rzGVSGBLL27C+f7ne8799y2tv/2uKUI7voILRt05Qm84jhWbqwuqixd5MfrfTj5B/W7 + LY3gK48FNNQYaqzeZD1+FC3ZR9WcxEqdR4luF6Jx3MIwyvtDaMsB3OKLJoDsCMWPJ5CfbcZJncVN9aLH + dvFTGkR/t59SdCdmdgi70ATw16ZfmcBKnkF5vgl99iBm8jT6QjfahwNU1TE8Pdq4e9WYQUtfw0j3Yy2d + QovvxskM4ZsLWNlBrHQAb/UK1pcLOLkbIuLcRpAjPyQ3uQf51TbK4S3Cehee9JTfv3Rs6Q564jharJNi + eCvqYg9+ZXojwFcXMbJ3cQr38Nauo0ba0ee6sb8OoM0fE656qOlPcKT7Ahikan1rHMXOD1Oa2ktZTN+c + P4z2pgvz80kB7MBMBfCNcPO9sPOjyLEjSKFO/PIj0b1fxGkXnYOYK+covOzAyAzgKU0gdm4U5VMf5vdb + +Po0+sol5NAOvFIQT42gJi+jp6/ilZu8hKfMik2cwi3F6zbNtduUE71C/E/gKW8FbAavkmhtvWtOhpqz + 3Fpxyx+mQeEfdtWWWgCbhLwAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAW9JREFUOE+tkk0o + w3EYx3dV3kq5uKBWDiPT8hISMiQsMiEyQ9qBg0hoFwcHUi7kgIvkQFJSTrQ4zdvmrTW1/kuT0i74x+X3 + MRal/fEnv8tz+H2fz/N8vz0azX88PG6wmcDp4E881hYR3VUIixF2Nr+FcO2DlbnPGjaWoM+M6DAiOitg + YUoR8rqhsJTBWG/kP6fOMKTegGjKh/7mTyIx0oUw58C0/XubLM8iKtPeQIx2gfcMJgbD0FBVlRE+D7QU + hS2ZshANuTDQqq75fQIHe6GVcxHV6VCr/2VzQIKmAshOQNbHc6+PhTqDOggBP5jzoDCJoLUaLo7fwr3V + hSCr8z8EeHcLbSU8FCfjLU0nuL/70cB4Py5tDLL7UBnC8xMMW6EkhRNdIsGt9QjhTXkGUnsN8rVf4Q72 + tpFzEnGlRiH1NIL8qDjJoY1DdjkVADNjSGnReI2ZIF196VW22+D8SAFw6YLJITjaV5e2qotSIXoBiiMD + HEVvQ/IAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAStJREFUOE9jYBg0 + oHDW8/9NC57/z5z4+D8uR4W3P8Apx5A789n/VUfe/8elKL77wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+ + ///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0v3f1BxRFoa33wJpb1wFt7/z73yX/AG4D + Apsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvgUXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF + 7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbAIu/O/9T+11gVGSSd+C+b9vW/bvA83AYY + Zt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPulf8gBXgVDZqMh+wQAPB2wKsSwCgmAAAA + AElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAL1JREFUOE9jYBgy + ILz9wX+yHRvf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3v + kn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ14A0ChbVd8+3/6nN///bu+/dcpfPffImE9aQaADNFP + Of/fpOjFf5WsT/+NI5eRbgDIEIOkE/9l077+1w2eR54BYJekXv6v4TuNfANAhqh4TKDMALKTMc01AgDQ + FGCYkuTLEQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKtJREFUOE9jYBh0 + oHDW8/8UOSp35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ + ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuIN8Sj6v7/krnv4JoVXXqI1wyKPvvSu/8D + W56BbSZZM8gAi7w7/20KrpCnGWSAYdZt8jWDDNBJu0GanylKtoNCMwCgfl+gC2KedgAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAATBJREFUOE9jYBhU + oHDW8/+4HASSa1rw/H/mxMc41TDkznz2P6H7HlYFILlVR97/D29/gNuAjClP/8/b//t/QtcdDEUguYX7 + PvwPbriG24CEnif/Z+/79b9z69//bqWXURSC5KZtef/fv/oCbgMiux79n7Lt1/+SpX//J0z/+98m9yxc + MUiud/WH/16lJ3AbENj88H/r2vdgzcYlX/5LR1/7bxy5DKwBJFc3/91/l/wDuA3wqLr/v2TuO7hmRZce + uGKQXP60N//tM7bjNsC+9O7/wJZnYJuRNYNcAJLLnvz6v0XCetwGWOTd+W9TcAVDM8gAkFxq/2u4l7Cm + F8Os21g1gxSD5MJaXv7XDZ6H2wU6aTdwSoLk/Kof/tfwnYbbAHz5yin3yn8VjwlgPKjyHwMAvtG/s0Vm + x8MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAilJREFUOE+tk91L + k3EUx/cvdN9N0EW3NTWGa7EaPOUcyqphWBG9PZEv5dJlmqhYmUYtXyBb4dJJy+kknFT4BqZIjaFMJUsz + V7TEoabYRDD49ju/6Pm1Mm/qB+fy8znPOef7qFT/4z17GgWVr30Zbd4lPHYvoLEhgvuOGdTWfIL9dgg3 + yqdQWjKBwoLXyMsdxYXzQSi9CeztAWqqV7HRW1ldgzGtF4fTnvBSBN7WRS6orPjyV57gyMIKdpufQ62W + YTnkEQL3o3kuKC35vK7gJ/w+vIg4kw8Fl6dxwNwkBM76WS64ZHv3h+BXeGQygm2SF9accaSmOIWg7m6Y + C7KzRmMEv8ODwTA2692Q5QBMJocQVFd95AL5TEARrAf3+D9gU2IDjhx9gaSkWiG4WTmN7i6wUwLHT76C + 5dgA3zYtjGamz6bOP+A+HLR0QpLsQnC1bBIdPrAMAE2ub+zuX1F+fY4vlRZGM2dmBBU4ObUdBkOFEFwp + HIenGXjoXGPBicKYnhNT5hM2pJ8r4p2TUxi83wO9vkwIbHljDAaq7kR5ZxJQSOK0EobezmJsag5y7jXs + NbZxWLvHBZ2uSAgolo57UD6bBASfzb+FN6F5hGaWcLHYjni9i8GNiN/1ANrEfCHIzBhmcy/zmbcaPNiy + Q0JLRz98XYPo7vNj4OUQ9pksUOvqkcDg7Zo6aDTWWMHpU/08npQwCgndmU5F26aF0czUlYrgnQnZQvAv + f/R3bGg6a0rM640AAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/Program.cs b/Code/Chapter 3/C#/DragDropWinApp/Program.cs new file mode 100644 index 0000000..610dfc2 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/Program.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace DragDropWinApp +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/Properties/AssemblyInfo.cs b/Code/Chapter 3/C#/DragDropWinApp/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5cd1f7f --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DragDropWinApp")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DragDropWinApp")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("573a1510-3c5a-4ef3-a3eb-e9d220b04c84")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 3/C#/DragDropWinApp/Properties/Resources.Designer.cs b/Code/Chapter 3/C#/DragDropWinApp/Properties/Resources.Designer.cs new file mode 100644 index 0000000..3bddc11 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/Properties/Resources.Designer.cs @@ -0,0 +1,74 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "DragDropWinApp.Properties.Resources.get_ResourceManager():System.Resources.ResourceManager")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "DragDropWinApp.Properties.Resources.get_Culture():System.Globalization.CultureInfo")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "DragDropWinApp.Properties.Resources.set_Culture(System.Globalization.CultureInfo):Void")] + +namespace DragDropWinApp.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DragDropWinApp.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Code/Chapter 3/C#/DragDropWinApp/Properties/Resources.resx b/Code/Chapter 3/C#/DragDropWinApp/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/Properties/Settings.Designer.cs b/Code/Chapter 3/C#/DragDropWinApp/Properties/Settings.Designer.cs new file mode 100644 index 0000000..dcc0a26 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/Properties/Settings.Designer.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="DragDropWinApp.Properties.Settings.get_Default():DragDropWinApp.Properties.Settin" + + "gs")] + +namespace DragDropWinApp.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = new Settings(); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] + [global::System.Configuration.DefaultSettingValueAttribute("Data Source=(local);Initial Catalog=Test;Integrated Security=True")] + public string TestConnectionString { + get { + return ((string)(this["TestConnectionString"])); + } + } + } +} diff --git a/Code/Chapter 3/C#/DragDropWinApp/Properties/Settings.settings b/Code/Chapter 3/C#/DragDropWinApp/Properties/Settings.settings new file mode 100644 index 0000000..eb714aa --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/Properties/Settings.settings @@ -0,0 +1,16 @@ + + + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Data Source=(local);Initial Catalog=Test;Integrated Security=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=(local);Initial Catalog=Test;Integrated Security=True + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.Designer.cs b/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.Designer.cs new file mode 100644 index 0000000..dab34c2 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.Designer.cs @@ -0,0 +1,701 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace DragDropWinApp { + using System; + + + [Serializable()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [System.Xml.Serialization.XmlRootAttribute("TestDataSet")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] + public partial class TestDataSet : System.Data.DataSet { + + private DemoDataTable tableDemo; + + private System.Data.SchemaSerializationMode _schemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public TestDataSet() { + this.BeginInit(); + this.InitClass(); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + protected TestDataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == System.Data.SchemaSerializationMode.IncludeSchema)) { + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + if ((ds.Tables["Demo"] != null)) { + base.Tables.Add(new DemoDataTable(ds.Tables["Demo"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public DemoDataTable Demo { + get { + return this.tableDemo; + } + } + + public override System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [System.ComponentModel.DefaultValueAttribute(true)] + public new bool EnforceConstraints { + get { + return base.EnforceConstraints; + } + set { + base.EnforceConstraints = value; + } + } + + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + public override System.Data.DataSet Clone() { + TestDataSet cln = ((TestDataSet)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override bool ShouldSerializeTables() { + return false; + } + + protected override bool ShouldSerializeRelations() { + return false; + } + + protected override void ReadXmlSerializable(System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Demo"] != null)) { + base.Tables.Add(new DemoDataTable(ds.Tables["Demo"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + protected override System.Xml.Schema.XmlSchema GetSchemaSerializable() { + System.IO.MemoryStream stream = new System.IO.MemoryStream(); + this.WriteXmlSchema(new System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return System.Xml.Schema.XmlSchema.Read(new System.Xml.XmlTextReader(stream), null); + } + + internal void InitVars() { + this.InitVars(true); + } + + internal void InitVars(bool initTable) { + this.tableDemo = ((DemoDataTable)(base.Tables["Demo"])); + if ((initTable == true)) { + if ((this.tableDemo != null)) { + this.tableDemo.InitVars(); + } + } + } + + private void InitClass() { + this.DataSetName = "TestDataSet"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/TestDataSet.xsd"; + this.EnforceConstraints = true; + this.tableDemo = new DemoDataTable(); + base.Tables.Add(this.tableDemo); + } + + private bool ShouldSerializeDemo() { + return false; + } + + private void SchemaChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(System.Xml.Schema.XmlSchemaSet xs) { + TestDataSet ds = new TestDataSet(); + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any = new System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + return type; + } + + public delegate void DemoRowChangeEventHandler(object sender, DemoRowChangeEvent e); + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class DemoDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnDemoID; + + private System.Data.DataColumn columnDemoValue; + + public DemoDataTable() { + this.TableName = "Demo"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal DemoDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected DemoDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn DemoIDColumn { + get { + return this.columnDemoID; + } + } + + public System.Data.DataColumn DemoValueColumn { + get { + return this.columnDemoValue; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public DemoRow this[int index] { + get { + return ((DemoRow)(this.Rows[index])); + } + } + + public event DemoRowChangeEventHandler DemoRowChanged; + + public event DemoRowChangeEventHandler DemoRowChanging; + + public event DemoRowChangeEventHandler DemoRowDeleted; + + public event DemoRowChangeEventHandler DemoRowDeleting; + + public void AddDemoRow(DemoRow row) { + this.Rows.Add(row); + } + + public DemoRow AddDemoRow(string DemoValue) { + DemoRow rowDemoRow = ((DemoRow)(this.NewRow())); + rowDemoRow.ItemArray = new object[] { + null, + DemoValue}; + this.Rows.Add(rowDemoRow); + return rowDemoRow; + } + + public DemoRow FindByDemoID(int DemoID) { + return ((DemoRow)(this.Rows.Find(new object[] { + DemoID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + DemoDataTable cln = ((DemoDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new DemoDataTable(); + } + + internal void InitVars() { + this.columnDemoID = base.Columns["DemoID"]; + this.columnDemoValue = base.Columns["DemoValue"]; + } + + private void InitClass() { + this.columnDemoID = new System.Data.DataColumn("DemoID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnDemoID); + this.columnDemoValue = new System.Data.DataColumn("DemoValue", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnDemoValue); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnDemoID}, true)); + this.columnDemoID.AutoIncrement = true; + this.columnDemoID.AllowDBNull = false; + this.columnDemoID.ReadOnly = true; + this.columnDemoID.Unique = true; + this.columnDemoValue.MaxLength = 200; + } + + public DemoRow NewDemoRow() { + return ((DemoRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new DemoRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(DemoRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.DemoRowChanged != null)) { + this.DemoRowChanged(this, new DemoRowChangeEvent(((DemoRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.DemoRowChanging != null)) { + this.DemoRowChanging(this, new DemoRowChangeEvent(((DemoRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.DemoRowDeleted != null)) { + this.DemoRowDeleted(this, new DemoRowChangeEvent(((DemoRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.DemoRowDeleting != null)) { + this.DemoRowDeleting(this, new DemoRowChangeEvent(((DemoRow)(e.Row)), e.Action)); + } + } + + public void RemoveDemoRow(DemoRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + TestDataSet ds = new TestDataSet(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "DemoDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + public partial class DemoRow : System.Data.DataRow { + + private DemoDataTable tableDemo; + + internal DemoRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableDemo = ((DemoDataTable)(this.Table)); + } + + public int DemoID { + get { + return ((int)(this[this.tableDemo.DemoIDColumn])); + } + set { + this[this.tableDemo.DemoIDColumn] = value; + } + } + + public string DemoValue { + get { + try { + return ((string)(this[this.tableDemo.DemoValueColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'DemoValue\' in table \'Demo\' is DBNull.", e); + } + } + set { + this[this.tableDemo.DemoValueColumn] = value; + } + } + + public bool IsDemoValueNull() { + return this.IsNull(this.tableDemo.DemoValueColumn); + } + + public void SetDemoValueNull() { + this[this.tableDemo.DemoValueColumn] = System.Convert.DBNull; + } + } + + public class DemoRowChangeEvent : System.EventArgs { + + private DemoRow eventRow; + + private System.Data.DataRowAction eventAction; + + public DemoRowChangeEvent(DemoRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public DemoRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} +namespace DragDropWinApp.TestDataSetTableAdapters { + + + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.ComponentModel.DataObjectAttribute(true)] + [System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class DemoTableAdapter : System.ComponentModel.Component { + + private System.Data.SqlClient.SqlDataAdapter m_adapter; + + private System.Data.SqlClient.SqlConnection m_connection; + + private System.Data.SqlClient.SqlCommand[] m_commandCollection; + + private bool m_clearBeforeFill; + + public DemoTableAdapter() { + this.m_clearBeforeFill = true; + } + + private System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this.m_adapter == null)) { + this.InitAdapter(); + } + return this.m_adapter; + } + } + + internal System.Data.SqlClient.SqlConnection Connection { + get { + if ((this.m_connection == null)) { + this.InitConnection(); + } + return this.m_connection; + } + set { + this.m_connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + protected System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this.m_commandCollection == null)) { + this.InitCommandCollection(); + } + return this.m_commandCollection; + } + } + + public bool ClearBeforeFill { + get { + return this.m_clearBeforeFill; + } + set { + this.m_clearBeforeFill = value; + } + } + + private void InitAdapter() { + this.m_adapter = new System.Data.SqlClient.SqlDataAdapter(); + System.Data.Common.DataTableMapping tableMapping = new System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Demo"; + tableMapping.ColumnMappings.Add("DemoID", "DemoID"); + tableMapping.ColumnMappings.Add("DemoValue", "DemoValue"); + this.m_adapter.TableMappings.Add(tableMapping); + this.m_adapter.DeleteCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.DeleteCommand.Connection = this.Connection; + this.m_adapter.DeleteCommand.CommandText = "DELETE FROM [dbo].[Demo] WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoV" + + "alue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue)))"; + this.m_adapter.DeleteCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DemoID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IsNull_DemoValue", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, true, null, "", "", "")); + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.InsertCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.InsertCommand.Connection = this.Connection; + this.m_adapter.InsertCommand.CommandText = "INSERT INTO [dbo].[Demo] ([DemoValue]) VALUES (@DemoValue);\r\nSELECT DemoID, DemoV" + + "alue FROM Demo WHERE (DemoID = @@IDENTITY)"; + this.m_adapter.InsertCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.InsertCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.UpdateCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.UpdateCommand.Connection = this.Connection; + this.m_adapter.UpdateCommand.CommandText = "UPDATE [dbo].[Demo] SET [DemoValue] = @DemoValue WHERE (([DemoID] = @Original_Dem" + + "oID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Ori" + + "ginal_DemoValue)));\r\nSELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @DemoID)" + + ""; + this.m_adapter.UpdateCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DemoID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IsNull_DemoValue", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, true, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DemoID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + private void InitConnection() { + this.m_connection = new System.Data.SqlClient.SqlConnection(); + this.m_connection.ConnectionString = DragDropWinApp.Properties.Settings.Default.TestConnectionString; + } + + private void InitCommandCollection() { + this.m_commandCollection = new System.Data.SqlClient.SqlCommand[1]; + this.m_commandCollection[0] = new System.Data.SqlClient.SqlCommand(); + this.m_commandCollection[0].Connection = this.Connection; + this.m_commandCollection[0].CommandText = "SELECT DemoID, DemoValue FROM dbo.Demo"; + this.m_commandCollection[0].CommandType = System.Data.CommandType.Text; + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(TestDataSet.DemoDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.m_clearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual TestDataSet.DemoDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + TestDataSet.DemoDataTable dataTable = new TestDataSet.DemoDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + public virtual int Update(TestDataSet.DemoDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + public virtual int Update(TestDataSet dataSet) { + return this.Adapter.Update(dataSet, "Demo"); + } + + public virtual int Update(System.Data.DataRow dataRow) { + return this.Adapter.Update(new System.Data.DataRow[] { + dataRow}); + } + + public virtual int Update(System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_DemoID, string Original_DemoValue) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_DemoID)); + if ((Original_DemoValue == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((int)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((int)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_DemoValue)); + } + System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + this.Adapter.DeleteCommand.Connection.Open(); + try { + return this.Adapter.DeleteCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string DemoValue) { + if ((DemoValue == null)) { + this.Adapter.InsertCommand.Parameters[0].Value = System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(DemoValue)); + } + System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + this.Adapter.InsertCommand.Connection.Open(); + try { + return this.Adapter.InsertCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string DemoValue, int Original_DemoID, string Original_DemoValue, int DemoID) { + if ((DemoValue == null)) { + this.Adapter.UpdateCommand.Parameters[0].Value = System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(DemoValue)); + } + this.Adapter.UpdateCommand.Parameters[1].Value = ((int)(Original_DemoID)); + if ((Original_DemoValue == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = ((int)(1)); + this.Adapter.UpdateCommand.Parameters[3].Value = System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((int)(0)); + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(Original_DemoValue)); + } + this.Adapter.UpdateCommand.Parameters[4].Value = ((int)(DemoID)); + System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + this.Adapter.UpdateCommand.Connection.Open(); + try { + return this.Adapter.UpdateCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + } +} diff --git a/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.cs b/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.cs new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.cs @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xsc b/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xsc new file mode 100644 index 0000000..53c9c28 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xsc @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xsd b/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xsd new file mode 100644 index 0000000..5a7a188 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xsd @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + DELETE FROM [dbo].[Demo] WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue))) + + + + + + + + + + + + + INSERT INTO [dbo].[Demo] ([DemoValue]) VALUES (@DemoValue); +SELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @@IDENTITY) + + + + + + + + + SELECT DemoID, DemoValue FROM dbo.Demo + + + + + + + UPDATE [dbo].[Demo] SET [DemoValue] = @DemoValue WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue))); +SELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @DemoID) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xss b/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xss new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/TestDataSet.xss @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/app.config b/Code/Chapter 3/C#/DragDropWinApp/app.config new file mode 100644 index 0000000..3c69391 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/app.config @@ -0,0 +1,22 @@ + + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/bin/Debug/DragDropWinApp.exe b/Code/Chapter 3/C#/DragDropWinApp/bin/Debug/DragDropWinApp.exe new file mode 100644 index 0000000000000000000000000000000000000000..400115092e4a5d99b34f13ed8485d4496678402c GIT binary patch literal 49152 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 + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/bin/Debug/DragDropWinApp.pdb b/Code/Chapter 3/C#/DragDropWinApp/bin/Debug/DragDropWinApp.pdb new file mode 100644 index 0000000000000000000000000000000000000000..206394151bd4b49d360c8d4467d875ab4c5b2e14 GIT binary patch literal 65024 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

    0KzU9;Sib-Y(f@#_{ch$Itt_ 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 + + + +

    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/C#/DragDropWinApp/obj/Debug/DragDropWinApp.Form1.resources b/Code/Chapter 3/C#/DragDropWinApp/obj/Debug/DragDropWinApp.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..09c395fe3c97fbe1b68b402346d8bc05d19bf832 GIT binary patch literal 5278 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/DragDropWinApp/obj/Debug/DragDropWinApp.Properties.Resources.resources b/Code/Chapter 3/C#/DragDropWinApp/obj/Debug/DragDropWinApp.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYSQmz8!z7q7KuXBFap zL9hL)Ui$_4g8oB0BbpE#Q96RB(a!GMH}mBAp6C6h;5Wzm3xb<-m05!(cgazyv`nr9 z&amIR28+rRqj$-GpMGy#YFAnq6;L`Wbia2|rdnmEu)H!eC`RdEH{Z+m^WjkL4aBYp z_?ox1?8zs<_fSk=0fmGjQ-Ca`Z2@nlN&{}C0^v**Gm!i}Q5G_1?6T=^*AuQ%RdfyF zi~`30IK^t$fyoDfUz|uaR2MYqOq1cCTi0kqbY_H{3T|TU z?_^tJGhYY`w#%erBjLiDTP4A^c;Qlgg(eLb!)u{SK+kJ5yda2Mb$6XSaJ{L~eDaL{ z*T;iHZXk+c!gjzA5_CD^Ldcq5lAZ-vNA7$k!%S&2z=S-y3tLo_FY432t?JcrSe9W~C-p;YXHIDcX#v$-n literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/DragDropWinApp/obj/Debug/DragDropWinApp.exe b/Code/Chapter 3/C#/DragDropWinApp/obj/Debug/DragDropWinApp.exe new file mode 100644 index 0000000000000000000000000000000000000000..400115092e4a5d99b34f13ed8485d4496678402c GIT binary patch literal 49152 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

    0KzU9;Sib-Y(f@#_{ch$Itt_ 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 HX@P$S66-(1 literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/C#/DragDropWinApp/obj/DragDropWinApp.csproj.FileList.txt b/Code/Chapter 3/C#/DragDropWinApp/obj/DragDropWinApp.csproj.FileList.txt new file mode 100644 index 0000000..9082517 --- /dev/null +++ b/Code/Chapter 3/C#/DragDropWinApp/obj/DragDropWinApp.csproj.FileList.txt @@ -0,0 +1,9 @@ +bin\Debug\DragDropWinApp.exe.config +bin\Debug\DragDropWinApp.exe +bin\Debug\DragDropWinApp.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\DragDropWinApp.Form1.resources +obj\Debug\DragDropWinApp.Properties.Resources.resources +obj\Debug\DragDropWinApp.csproj.GenerateResource.Cache +obj\Debug\DragDropWinApp.exe +obj\Debug\DragDropWinApp.pdb diff --git a/Code/Chapter 3/SQL/Create Database.sql b/Code/Chapter 3/SQL/Create Database.sql new file mode 100644 index 0000000..c80cb0c --- /dev/null +++ b/Code/Chapter 3/SQL/Create Database.sql @@ -0,0 +1,22 @@ +Use Master +Go + +Drop database test +Go + +Create DataBase Test +Go + +Use Test +Go + +-- Setup Tables +Create Table Demo +( +DemoID int identity primary key, +DemoValue varchar(200) +) +Go + +Insert Into Demo (DemoValue) Values ('Hello World') +GO diff --git a/Code/Chapter 3/VB.NET/Chapter3.sln b/Code/Chapter 3/VB.NET/Chapter3.sln new file mode 100644 index 0000000..8bc1ed7 --- /dev/null +++ b/Code/Chapter 3/VB.NET/Chapter3.sln @@ -0,0 +1,72 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "C:\...\DragDropWebsite\", "DragDropWebsite\", "{73E07C6E-DE0E-4C9E-8575-539AF78F3810}" + ProjectSection(WebsiteProperties) = preProject + Debug.AspNetCompiler.VirtualPath = "/DragDropWebsite" + Debug.AspNetCompiler.PhysicalPath = "DragDropWebsite\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\DragDropWebsite\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "true" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/DragDropWebsite" + Release.AspNetCompiler.PhysicalPath = "DragDropWebsite\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\DragDropWebsite\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "true" + Release.AspNetCompiler.Debug = "False" + VWDPort = "1688" + EndProjectSection +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DragDropWinApp", "DragDropWinApp\DragDropWinApp.vbproj", "{5693A916-9362-4223-BC4A-9519B8CC170A}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ConsoleApp", "ConsoleApp\ConsoleApp.vbproj", "{77CFCF7E-553E-47CC-9FDD-A934BFCD9493}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ConsoleApp2", "ConsoleApp2\ConsoleApp2.vbproj", "{12584805-CC23-4E55-A36B-50D584D65695}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Debug|Any CPU.ActiveCfg = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Debug|Any CPU.Build.0 = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Debug|Mixed Platforms.ActiveCfg = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Debug|Mixed Platforms.Build.0 = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Release|Any CPU.ActiveCfg = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Release|Mixed Platforms.ActiveCfg = Debug|.NET + {73E07C6E-DE0E-4C9E-8575-539AF78F3810}.Release|Mixed Platforms.Build.0 = Debug|.NET + {5693A916-9362-4223-BC4A-9519B8CC170A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5693A916-9362-4223-BC4A-9519B8CC170A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5693A916-9362-4223-BC4A-9519B8CC170A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {5693A916-9362-4223-BC4A-9519B8CC170A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {5693A916-9362-4223-BC4A-9519B8CC170A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5693A916-9362-4223-BC4A-9519B8CC170A}.Release|Any CPU.Build.0 = Release|Any CPU + {5693A916-9362-4223-BC4A-9519B8CC170A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {5693A916-9362-4223-BC4A-9519B8CC170A}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {77CFCF7E-553E-47CC-9FDD-A934BFCD9493}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77CFCF7E-553E-47CC-9FDD-A934BFCD9493}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77CFCF7E-553E-47CC-9FDD-A934BFCD9493}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {77CFCF7E-553E-47CC-9FDD-A934BFCD9493}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {77CFCF7E-553E-47CC-9FDD-A934BFCD9493}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77CFCF7E-553E-47CC-9FDD-A934BFCD9493}.Release|Any CPU.Build.0 = Release|Any CPU + {77CFCF7E-553E-47CC-9FDD-A934BFCD9493}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {77CFCF7E-553E-47CC-9FDD-A934BFCD9493}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {12584805-CC23-4E55-A36B-50D584D65695}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12584805-CC23-4E55-A36B-50D584D65695}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12584805-CC23-4E55-A36B-50D584D65695}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {12584805-CC23-4E55-A36B-50D584D65695}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {12584805-CC23-4E55-A36B-50D584D65695}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12584805-CC23-4E55-A36B-50D584D65695}.Release|Any CPU.Build.0 = Release|Any CPU + {12584805-CC23-4E55-A36B-50D584D65695}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {12584805-CC23-4E55-A36B-50D584D65695}.Release|Mixed Platforms.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 3/VB.NET/Chapter3.suo b/Code/Chapter 3/VB.NET/Chapter3.suo new file mode 100644 index 0000000000000000000000000000000000000000..f8ed8cc993a20f002f9c1cdd89ace16df4f72cc6 GIT binary patch literal 31744 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 U^9R4NYHMV86?b5+fQm-oe{{9u+W-In literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/ConsoleApp.vbproj b/Code/Chapter 3/VB.NET/ConsoleApp/ConsoleApp.vbproj new file mode 100644 index 0000000..ee22798 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/ConsoleApp.vbproj @@ -0,0 +1,102 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {77CFCF7E-553E-47CC-9FDD-A934BFCD9493} + Exe + ConsoleApp.Module1 + ConsoleApp + ConsoleApp + Console + + + true + full + true + true + bin\Debug\ + ConsoleApp.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + ConsoleApp.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + True + True + TestDataSet.xsd + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + TestDataSet.xsd + + + MSDataSetGenerator + TestDataSet.Designer.vb + Designer + + + TestDataSet.xsd + + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/ConsoleApp.vbproj.user b/Code/Chapter 3/VB.NET/ConsoleApp/ConsoleApp.vbproj.user new file mode 100644 index 0000000..33b0772 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/ConsoleApp.vbproj.user @@ -0,0 +1,6 @@ + + + 8.0.50215 + ShowAllFiles + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/Module1.vb b/Code/Chapter 3/VB.NET/ConsoleApp/Module1.vb new file mode 100644 index 0000000..b6d4dc1 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/Module1.vb @@ -0,0 +1,12 @@ +Module Module1 + Sub Main() + Dim testDS As TestDataSet = New TestDataSet() + Dim tableAdapter As TestDataSetTableAdapters.DemoTableAdapter = _ + New TestDataSetTableAdapters.DemoTableAdapter() + tableAdapter.Fill(testDS.Demo) + + Dim demoRow As TestDataSet.DemoRow = _ + CType(testDS.Demo.Rows(0), TestDataSet.DemoRow) + Console.WriteLine(demoRow.DemoValue) + End Sub +End Module diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Application.Designer.vb b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Application.Designer.vb new file mode 100644 index 0000000..c5978d6 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Application.myapp b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/My Project/AssemblyInfo.vb b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..5728de5 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Resources.Designer.vb b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Resources.Designer.vb new file mode 100644 index 0000000..2a01f81 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + '''

    + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ConsoleApp.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Resources.resx b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Settings.Designer.vb b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Settings.Designer.vb new file mode 100644 index 0000000..fcbdf65 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Settings.Designer.vb @@ -0,0 +1,76 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property + + _ + Public ReadOnly Property TestConnectionString() As String + Get + Return CType(Me("TestConnectionString"),String) + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.ConsoleApp.Settings + Get + Return Global.ConsoleApp.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Settings.settings b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Settings.settings new file mode 100644 index 0000000..eb7db38 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/My Project/Settings.settings @@ -0,0 +1,16 @@ + + + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Data Source=(local);Initial Catalog=Test;Integrated Security=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=(local);Initial Catalog=Test;Integrated Security=True + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.Designer.vb b/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.Designer.vb new file mode 100644 index 0000000..c36c8cf --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.Designer.vb @@ -0,0 +1,700 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System + + + _ +Partial Public Class TestDataSet + Inherits System.Data.DataSet + + Private tableDemo As DemoDataTable + + Private _schemaSerializationMode As System.Data.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema + + _ + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + _ + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Me.DetermineSchemaSerializationMode(info, context) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + If (Not (ds.Tables("Demo")) Is Nothing) Then + MyBase.Tables.Add(New DemoDataTable(ds.Tables("Demo"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public ReadOnly Property Demo() As DemoDataTable + Get + Return Me.tableDemo + End Get + End Property + + Public Overrides Property SchemaSerializationMode() As System.Data.SchemaSerializationMode + Get + Return Me._schemaSerializationMode + End Get + Set + Me._schemaSerializationMode = value + End Set + End Property + + _ + Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Public Shadows Property EnforceConstraints() As Boolean + Get + Return MyBase.EnforceConstraints + End Get + Set + MyBase.EnforceConstraints = value + End Set + End Property + + Protected Overrides Sub InitializeDerivedDataSet() + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Public Overrides Function Clone() As System.Data.DataSet + Dim cln As TestDataSet = CType(MyBase.Clone,TestDataSet) + cln.InitVars + Return cln + End Function + + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader) + If (Me.DetermineSchemaSerializationMode(reader) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Me.Reset + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXml(reader) + If (Not (ds.Tables("Demo")) Is Nothing) Then + MyBase.Tables.Add(New DemoDataTable(ds.Tables("Demo"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXml(reader) + Me.InitVars + End If + End Sub + + Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema + Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream + Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing) + End Function + + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + Me.tableDemo = CType(MyBase.Tables("Demo"),DemoDataTable) + If (initTable = true) Then + If (Not (Me.tableDemo) Is Nothing) Then + Me.tableDemo.InitVars + End If + End If + End Sub + + Private Sub InitClass() + Me.DataSetName = "TestDataSet" + Me.Prefix = "" + Me.Namespace = "http://tempuri.org/TestDataSet.xsd" + Me.EnforceConstraints = true + Me.tableDemo = New DemoDataTable + MyBase.Tables.Add(Me.tableDemo) + End Sub + + Private Function ShouldSerializeDemo() As Boolean + Return false + End Function + + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim ds As TestDataSet = New TestDataSet + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + xs.Add(ds.GetSchemaSerializable) + Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any.Namespace = ds.Namespace + sequence.Items.Add(any) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub DemoRowChangeEventHandler(ByVal sender As Object, ByVal e As DemoRowChangeEvent) + + _ + Partial Public Class DemoDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnDemoID As System.Data.DataColumn + + Private columnDemoValue As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Demo" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property DemoIDColumn() As System.Data.DataColumn + Get + Return Me.columnDemoID + End Get + End Property + + Public ReadOnly Property DemoValueColumn() As System.Data.DataColumn + Get + Return Me.columnDemoValue + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As DemoRow + Get + Return CType(Me.Rows(index),DemoRow) + End Get + End Property + + Public Event DemoRowChanged As DemoRowChangeEventHandler + + Public Event DemoRowChanging As DemoRowChangeEventHandler + + Public Event DemoRowDeleted As DemoRowChangeEventHandler + + Public Event DemoRowDeleting As DemoRowChangeEventHandler + + Public Overloads Sub AddDemoRow(ByVal row As DemoRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddDemoRow(ByVal DemoValue As String) As DemoRow + Dim rowDemoRow As DemoRow = CType(Me.NewRow,DemoRow) + rowDemoRow.ItemArray = New Object() {Nothing, DemoValue} + Me.Rows.Add(rowDemoRow) + Return rowDemoRow + End Function + + Public Function FindByDemoID(ByVal DemoID As Integer) As DemoRow + Return CType(Me.Rows.Find(New Object() {DemoID}),DemoRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As DemoDataTable = CType(MyBase.Clone,DemoDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New DemoDataTable + End Function + + Friend Sub InitVars() + Me.columnDemoID = MyBase.Columns("DemoID") + Me.columnDemoValue = MyBase.Columns("DemoValue") + End Sub + + Private Sub InitClass() + Me.columnDemoID = New System.Data.DataColumn("DemoID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnDemoID) + Me.columnDemoValue = New System.Data.DataColumn("DemoValue", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnDemoValue) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnDemoID}, true)) + Me.columnDemoID.AutoIncrement = true + Me.columnDemoID.AllowDBNull = false + Me.columnDemoID.ReadOnly = true + Me.columnDemoID.Unique = true + Me.columnDemoValue.MaxLength = 200 + End Sub + + Public Function NewDemoRow() As DemoRow + Return CType(Me.NewRow,DemoRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New DemoRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(DemoRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.DemoRowChangedEvent) Is Nothing) Then + RaiseEvent DemoRowChanged(Me, New DemoRowChangeEvent(CType(e.Row,DemoRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.DemoRowChangingEvent) Is Nothing) Then + RaiseEvent DemoRowChanging(Me, New DemoRowChangeEvent(CType(e.Row,DemoRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.DemoRowDeletedEvent) Is Nothing) Then + RaiseEvent DemoRowDeleted(Me, New DemoRowChangeEvent(CType(e.Row,DemoRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.DemoRowDeletingEvent) Is Nothing) Then + RaiseEvent DemoRowDeleting(Me, New DemoRowChangeEvent(CType(e.Row,DemoRow), e.Action)) + End If + End Sub + + Public Sub RemoveDemoRow(ByVal row As DemoRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As TestDataSet = New TestDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "DemoDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + Partial Public Class DemoRow + Inherits System.Data.DataRow + + Private tableDemo As DemoDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableDemo = CType(Me.Table,DemoDataTable) + End Sub + + Public Property DemoID() As Integer + Get + Return CType(Me(Me.tableDemo.DemoIDColumn),Integer) + End Get + Set + Me(Me.tableDemo.DemoIDColumn) = value + End Set + End Property + + Public Property DemoValue() As String + Get + Try + Return CType(Me(Me.tableDemo.DemoValueColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'DemoValue' in table 'Demo' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableDemo.DemoValueColumn) = value + End Set + End Property + + Public Function IsDemoValueNull() As Boolean + Return Me.IsNull(Me.tableDemo.DemoValueColumn) + End Function + + Public Sub SetDemoValueNull() + Me(Me.tableDemo.DemoValueColumn) = System.Convert.DBNull + End Sub + End Class + + Public Class DemoRowChangeEvent + Inherits System.EventArgs + + Private eventRow As DemoRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As DemoRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As DemoRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class +End Class + +Namespace TestDataSetTableAdapters + + _ + Partial Public Class DemoTableAdapter + Inherits System.ComponentModel.Component + + Private WithEvents m_adapter As System.Data.SqlClient.SqlDataAdapter + + Private m_connection As System.Data.SqlClient.SqlConnection + + Private m_commandCollection() As System.Data.SqlClient.SqlCommand + + Private m_clearBeforeFill As Boolean + + Public Sub New() + MyBase.New + Me.m_clearBeforeFill = true + End Sub + + Private ReadOnly Property Adapter() As System.Data.SqlClient.SqlDataAdapter + Get + If (Me.m_adapter Is Nothing) Then + Me.InitAdapter + End If + Return Me.m_adapter + End Get + End Property + + Friend Property Connection() As System.Data.SqlClient.SqlConnection + Get + If (Me.m_connection Is Nothing) Then + Me.InitConnection + End If + Return Me.m_connection + End Get + Set + Me.m_connection = value + If (Not (Me.Adapter.InsertCommand) Is Nothing) Then + Me.Adapter.InsertCommand.Connection = value + End If + If (Not (Me.Adapter.DeleteCommand) Is Nothing) Then + Me.Adapter.DeleteCommand.Connection = value + End If + If (Not (Me.Adapter.UpdateCommand) Is Nothing) Then + Me.Adapter.UpdateCommand.Connection = value + End If + Dim i As Integer = 0 + Do While (i < Me.CommandCollection.Length) + If (Not (Me.CommandCollection(i)) Is Nothing) Then + CType(Me.CommandCollection(i),System.Data.SqlClient.SqlCommand).Connection = value + End If + i = (i + 1) + Loop + End Set + End Property + + Protected ReadOnly Property CommandCollection() As System.Data.SqlClient.SqlCommand() + Get + If (Me.m_commandCollection Is Nothing) Then + Me.InitCommandCollection + End If + Return Me.m_commandCollection + End Get + End Property + + Public Property ClearBeforeFill() As Boolean + Get + Return Me.m_clearBeforeFill + End Get + Set + Me.m_clearBeforeFill = value + End Set + End Property + + Private Sub InitAdapter() + Me.m_adapter = New System.Data.SqlClient.SqlDataAdapter + Dim tableMapping As System.Data.Common.DataTableMapping = New System.Data.Common.DataTableMapping + tableMapping.SourceTable = "Table" + tableMapping.DataSetTable = "Demo" + tableMapping.ColumnMappings.Add("DemoID", "DemoID") + tableMapping.ColumnMappings.Add("DemoValue", "DemoValue") + Me.m_adapter.TableMappings.Add(tableMapping) + Me.m_adapter.DeleteCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.DeleteCommand.Connection = Me.Connection + Me.m_adapter.DeleteCommand.CommandText = "DELETE FROM [dbo].[Demo] WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoV"& _ + "alue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue)))" + Me.m_adapter.DeleteCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_DemoID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@IsNull_DemoValue", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, true, Nothing, "", "", "")) + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.InsertCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.InsertCommand.Connection = Me.Connection + Me.m_adapter.InsertCommand.CommandText = "INSERT INTO [dbo].[Demo] ([DemoValue]) VALUES (@DemoValue);"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"SELECT DemoID, DemoV"& _ + "alue FROM Demo WHERE (DemoID = @@IDENTITY)" + Me.m_adapter.InsertCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.UpdateCommand.Connection = Me.Connection + Me.m_adapter.UpdateCommand.CommandText = "UPDATE [dbo].[Demo] SET [DemoValue] = @DemoValue WHERE (([DemoID] = @Original_Dem"& _ + "oID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Ori"& _ + "ginal_DemoValue)));"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"SELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @DemoID)"& _ + "" + Me.m_adapter.UpdateCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_DemoID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@IsNull_DemoValue", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, true, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@DemoID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + End Sub + + Private Sub InitConnection() + Me.m_connection = New System.Data.SqlClient.SqlConnection + Me.m_connection.ConnectionString = ConsoleApp.Settings.Default.TestConnectionString + End Sub + + Private Sub InitCommandCollection() + Me.m_commandCollection = New System.Data.SqlClient.SqlCommand(0) {} + Me.m_commandCollection(0) = New System.Data.SqlClient.SqlCommand + Me.m_commandCollection(0).Connection = Me.Connection + Me.m_commandCollection(0).CommandText = "SELECT DemoID, DemoValue FROM dbo.Demo" + Me.m_commandCollection(0).CommandType = System.Data.CommandType.Text + End Sub + + _ + Public Overloads Overridable Function Fill(ByVal dataTable As TestDataSet.DemoDataTable) As Integer + Me.Adapter.SelectCommand = Me.CommandCollection(0) + If (Me.m_clearBeforeFill = true) Then + dataTable.Clear + End If + Dim returnValue As Integer = Me.Adapter.Fill(dataTable) + Return returnValue + End Function + + _ + Public Overloads Overridable Function GetData() As TestDataSet.DemoDataTable + Me.Adapter.SelectCommand = Me.CommandCollection(0) + Dim dataTable As TestDataSet.DemoDataTable = New TestDataSet.DemoDataTable + Me.Adapter.Fill(dataTable) + Return dataTable + End Function + + Public Overloads Overridable Function Update(ByVal dataTable As TestDataSet.DemoDataTable) As Integer + Return Me.Adapter.Update(dataTable) + End Function + + Public Overloads Overridable Function Update(ByVal dataSet As TestDataSet) As Integer + Return Me.Adapter.Update(dataSet, "Demo") + End Function + + Public Overloads Overridable Function Update(ByVal dataRow As System.Data.DataRow) As Integer + Return Me.Adapter.Update(New System.Data.DataRow() {dataRow}) + End Function + + Public Overloads Overridable Function Update(ByVal dataRows() As System.Data.DataRow) As Integer + Return Me.Adapter.Update(dataRows) + End Function + + _ + Public Overloads Overridable Function Delete(ByVal Original_DemoID As Integer, ByVal Original_DemoValue As String) As Integer + Me.Adapter.DeleteCommand.Parameters(0).Value = CType(Original_DemoID,Integer) + If (Original_DemoValue Is Nothing) Then + Me.Adapter.DeleteCommand.Parameters(1).Value = CType(1,Integer) + Me.Adapter.DeleteCommand.Parameters(2).Value = System.DBNull.Value + Else + Me.Adapter.DeleteCommand.Parameters(1).Value = CType(0,Integer) + Me.Adapter.DeleteCommand.Parameters(2).Value = CType(Original_DemoValue,String) + End If + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.DeleteCommand.Connection.State + Me.Adapter.DeleteCommand.Connection.Open + Try + Return Me.Adapter.DeleteCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.DeleteCommand.Connection.Close + End If + End Try + End Function + + _ + Public Overloads Overridable Function Insert(ByVal DemoValue As String) As Integer + If (DemoValue Is Nothing) Then + Me.Adapter.InsertCommand.Parameters(0).Value = System.DBNull.Value + Else + Me.Adapter.InsertCommand.Parameters(0).Value = CType(DemoValue,String) + End If + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.InsertCommand.Connection.State + Me.Adapter.InsertCommand.Connection.Open + Try + Return Me.Adapter.InsertCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.InsertCommand.Connection.Close + End If + End Try + End Function + + _ + Public Overloads Overridable Function Update(ByVal DemoValue As String, ByVal Original_DemoID As Integer, ByVal Original_DemoValue As String, ByVal DemoID As Integer) As Integer + If (DemoValue Is Nothing) Then + Me.Adapter.UpdateCommand.Parameters(0).Value = System.DBNull.Value + Else + Me.Adapter.UpdateCommand.Parameters(0).Value = CType(DemoValue,String) + End If + Me.Adapter.UpdateCommand.Parameters(1).Value = CType(Original_DemoID,Integer) + If (Original_DemoValue Is Nothing) Then + Me.Adapter.UpdateCommand.Parameters(2).Value = CType(1,Integer) + Me.Adapter.UpdateCommand.Parameters(3).Value = System.DBNull.Value + Else + Me.Adapter.UpdateCommand.Parameters(2).Value = CType(0,Integer) + Me.Adapter.UpdateCommand.Parameters(3).Value = CType(Original_DemoValue,String) + End If + Me.Adapter.UpdateCommand.Parameters(4).Value = CType(DemoID,Integer) + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.UpdateCommand.Connection.State + Me.Adapter.UpdateCommand.Connection.Open + Try + Return Me.Adapter.UpdateCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.UpdateCommand.Connection.Close + End If + End Try + End Function + End Class +End Namespace diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xsc b/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xsc new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xsc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xsd b/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xsd new file mode 100644 index 0000000..547384e --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xsd @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + DELETE FROM [dbo].[Demo] WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue))) + + + + + + + + + + + + + INSERT INTO [dbo].[Demo] ([DemoValue]) VALUES (@DemoValue); +SELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @@IDENTITY) + + + + + + + + + SELECT DemoID, DemoValue FROM dbo.Demo + + + + + + + UPDATE [dbo].[Demo] SET [DemoValue] = @DemoValue WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue))); +SELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @DemoID) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xss b/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xss new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/TestDataSet.xss @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/app.config b/Code/Chapter 3/VB.NET/ConsoleApp/app.config new file mode 100644 index 0000000..5881e75 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/app.config @@ -0,0 +1,43 @@ + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/bin/Debug/ConsoleApp.exe b/Code/Chapter 3/VB.NET/ConsoleApp/bin/Debug/ConsoleApp.exe new file mode 100644 index 0000000000000000000000000000000000000000..0adb5064c0775b25926171b980c6ed596584ed8c GIT binary patch literal 45056 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 F@Sj#W5@7%U literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/bin/Debug/ConsoleApp.exe.config b/Code/Chapter 3/VB.NET/ConsoleApp/bin/Debug/ConsoleApp.exe.config new file mode 100644 index 0000000..5881e75 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/bin/Debug/ConsoleApp.exe.config @@ -0,0 +1,43 @@ + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/bin/Debug/ConsoleApp.pdb b/Code/Chapter 3/VB.NET/ConsoleApp/bin/Debug/ConsoleApp.pdb new file mode 100644 index 0000000000000000000000000000000000000000..549090f4e97f69250c78ffddba2925f6d8853e35 GIT binary patch literal 124416 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 + + + +ConsoleApp + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/obj/ConsoleApp.vbproj.FileList.txt b/Code/Chapter 3/VB.NET/ConsoleApp/obj/ConsoleApp.vbproj.FileList.txt new file mode 100644 index 0000000..0cd946a --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/obj/ConsoleApp.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Debug\ConsoleApp.exe.config +bin\Debug\ConsoleApp.exe +bin\Debug\ConsoleApp.pdb +bin\Debug\ConsoleApp.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\ConsoleApp.Resources.resources +obj\Debug\ConsoleApp.vbproj.GenerateResource.Cache +obj\Debug\ConsoleApp.exe +obj\Debug\ConsoleApp.xml +obj\Debug\ConsoleApp.pdb diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.Resources.resources b/Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY`E}iY41}LLMmOft`o36X#jd+OeI)B~C)@gg^s9wv|{Q>pGGg zl7^%IKNKwARs7HH{0OBd1y8v_f=@+g$Dg|f>pX}A5sr|hq#UE1!Zo9y?T zxmUV!oYHnb`}<>8*U`Ci&YU@O=FFKhGxv^^&dY8ggNQu%oIXwTDDHeU3;g|H7}>#d zzZs;51J6%?R9pM}^zQydCOVk5cBEqi(cV}pWo4s1@o0J|6-}g~ZR@+D16E(WzP!9- zrY(9yJJDLrL(S`wtxj#nDX5idexgB88Wi=^b+||IxeFiGE{a=)(i5GA7lb4!S5MA3YyJ!j#nb%&JeCRC3B9GhvLX%Ar`i>g?SK&JQiz} zkIh3B$m5EvU_MW$FxmxOL!=wENSD-BI=LkJ@P65p{Msrf$I%5X3(<=xt=Cq&^SBJ! z3YoQ$JYAfE3$>s<{ z$G#IGm@Qq|pwn!~g`v>Cb3i=^1LS0*$lPJ3N|sns^^d#!2T&e5hbS`{jV;Uc0G9gv z)>PcBB*1JtJq>~)*13RL7*Q`Vtu4r{MZ0pkEQKr>AG*M59yGDcKQEd_69->}NtB_i z^H3l&1EAD5%xsD|*UxARK|W-_!XBmcY|@7rmvI{b(v}71vr|M%_+rS5Z;Xa0} z657wXdS)Kd)_j23dd)t_^5|AQXX_SnOwwna@&Pw97l2rz*EZm0T8+X{yFieIf>=#_ zlm7M4r(iy~CF(LfwTn38thE^)YcUuqJt5D$#d^eoZewaK)2%3oe!Es{x*$?3EuDv& z$VhME?t)in;@8#^NEADjLIDdsTvBsN<0_Ut0`?5IzdYc}EWeCghV-rCfnTy8vAKlDDGLu|I{QTd9b=d2+&rPzbMU%|^`<#JaJ2%D z%XyOWZ^Qzcq{^>Fi7XW3aV$nLOXrdgDXt%5jldhCh*XiIAwsxl9{K_J@O%{d7*;0) z!ZS*J%f1GxZmnaL#63z(!&(n)wmGg-APm|rF*d)zB}}(Vm~NLaEtgA}mdhnf%jFWL z<#GvgtV>jI8$?T8*+Y##gD_YLu@Lcb1KLok`>HY*BVldi_W2@LSzVIIbmLZ4i@{?D z6!c4t8i52qF$nHU2%)f*>g@d3$dT@ zbvfsUJOS$priMIabIH%`wPP@bl#0Q>!~odAEc=;M5O|eY`#Dp$5PtZE(SaynUB#Gf zKZCvpxtNN0ES*J^VO@<9mdG-ADl9Rq0j981Nj!rU%HcMgWu*WRJ}rxpK>(Xs+>!A} z?M{a7g2I~yl?$R5oigmtI>gv6#(-SI$ZpA+L-a|IJhgimJ<~$ACxK1I zH7rO7ld!{H_+erE!o6a_&6nTu>k5PC1pAFXzq+k15BvQ%>dO z%Q<-~ZNnJWKD5E{HxFTgr1O*z0apRsBO2Idm`6P@e36F6=`zT7KU*>T0F{JjfBRSL)IV!sm$3ibX4>|LsJ}LAf zYc8ves+!Ela{@%F@=EIlP_c4jVfnR*!_9(~4$4<;ZtF(Y>RlA6IfND>W<`{=yUDD{ z96+Y^XChV{zs9;Lk3_74d8EcV!}*4fYg}T(GC`NUU!VnMUm`s(KzWxjCXi4XF|{N10|KDBKEG@iW8v zB$64JS(Yw5kDwov+(ujOpDVdMY;sZ{m+?PI?gCrxr<7cnr9dv@f0EpVw%or^a(URf z^=15zlA9l|x3NUKAAN+)7&UQSY9{l^Ojc>iE~(O^hdgIaY3XteBS2;}GwhGlewqb_ z{MKjqZbnbzashM#MHyrcbG~)Ea80!CkW!|5N|Y(H)R$hLlkW@rYYOH23QPLbWSY4X z(#rhld${ChS+XCR%X;Z^QjgF2JnnuMcX=TFNRB&@ewov5-he$#`$DEYPx~spb1CGV zLut%AwMSU4u3LBGu9h~H=o8zny1Y+cBz>sw7SzozRZ_^e7N>rz&F4<2SJx@ zuhZnIG`(+Seo_$ql zv+mhfowteF2fz%7zk4}bggW~GRK;}W7rMO`inz;jTwV@7eJ?asY}gkY`xs-x{~7B4 z3fI4%ixsSwYW5*CG83=irb7;F%k#vQFcQWU7NA(?VI75-p@^!*YOZJg3zdEoAtlFu zmEzyaL^uDp!H=aTUM4#nXzYyJVlR#9($H~;TBZYn#yU$uLZyWLmY?Pg-W-Ku}F zKIeX9YfIJ~HbTz!LHfKw)GR!ihoGtzV_BK6Az5Okcjy>|Uq_luwZMH?($+U{lPOe9 zzJCoAyDXuez`Q5(r6p9=dDbJ~Fs(Qk+!}GVE3=Z2Gy-T?ijJYU6RS^4D0c& zG0Zg<`n90A^&MvZia~?ZA~lhSC>JG-C{iUGlsw2h22Sg50Bn7vdR6{~TzPJbl&|?? z%KsAO&y9!zIRWpjfHKH2SBuy^$1w<#)8}}`7=)>X24RY7P^EW_Li!(K5v9;5q&Pjq zt~`!HOitIKj)ERyYN0|*`L8HsSfKKdR#f;fr2 zRpxP6Pz5jvaq_g#LO?UECy?W;Aq?t5ypv0>IfT8GwvPjYzL#M{y7g{E1i@}E=uexL zo(Apg&a_E(PfENtIOg+n1&-GoAXTV}+-^O|TBulqC$K)l`dd*;aT(TAz)GD>1wWg> zdXx`;jW0*7^;KC@%FfR33DmRd)_hsRdK%L0;K#Bt2T_|VU&SvhoNXpvhfV`ed!DD} z&=eSp_cXknc_zmya}*YMv?|YQxbt~!P@@s8&gbXjNyPelNU|3b&mt)k7VOjRnqFjF z)CgydY^W^Z9Lq6LIQBmWDT-lkvwMmp1n97Ue5J&yppvMZJp_H!fS)6mM9%Y{r?D4W+V) zfw)t9S3HX;Aa`wOY2$ya^UAIduGDx9g9|Q4yI6@u4NDd*VTzZMfEOZ`&)83NFYXUw zZ8xJUn@*&5WSC=16WZznZBrLLiA8n=XfsxC>OgFy?*qR#0DNWA>S1PFP(!<<=C4Zw z6M+1?wvb<7aqWMG50`~_%Hq?E57STJlfvh58~5OjKq33Bc{a^&-@W!7i+VW+j=FG- zoTFM-Lf2_qv=aJ`_Ib^u=e4Jho~3U=`X2o$z(yl#nABr*8bNyAcogp_H+b4SCSC2> z;tA6MN&mp}O;Fwf4AUBK8{iJW2vwSXGeRFUmzqI($h-sTA0Zu~-vFAl%E$840zU#6 zrXTrO^4mU^{98$XBEab<0xa`cfu{jYnp4XBD@xluLAti|4l_)5mVUex5(NGSV31Pf zcc9)I1U_7TXSqplls^l260n4p2P=amv@uwT_m4LOuL_#1F9HdQJ5pE1eXcZ_CN`~30 zH-_1&pGP`EUlI72z#j?xrNB9rp~?uo4=_lZE7>Mj1Df=)%BQp--651G1^%^wg|WGW=a1v@^U0h6Kfc*7I>+^xWI>NxW*T2xMzPY(3r@Sa)D8S!xOpe%}ASc z8)U*uCvqGAkHB9EET6>fJ#P~CZ|kII%TH>TV9c7dT__(H_=QQV?dT-#>+eqDR{umO zbPm%e3v3eDDex*l9!F{vIkBP+PY%4GDQY{g0Mb0VD`*3-a$p8|k$oA;mV?(XSig-y zB=WAOn~-N>ie~IKx=S#ug&^fopzkAZ7HT|)bmSd}%uR@1 z4WuLQ-+{$|HL*72NB&N{Y2GAQ1+aa1uelW>D`7xRFD{ygu zDXLUc>0?M=RQkB)Nc(c>2~d7f`YS+x*>3@-l%3KxM9~Z~Cmz-+QPU?DoH?*?|KU>f~EA4boATQH@yhyG45!~Zk=COnn-T|u7zJgz-L zlZ_hWbqiMM-)|fN_8A-dr16))9<;H~8D9qWZNXIAz4V-5sy;8hDp;chHE^z(#pO)D&wB!IlCKnORY`^Sr@(gG z*gWsgfPK{F-0FP?{(Gm5?f3o~*uyq<(0dZtb2fI5_cX9q1#8p4>8*rs|EplD^q0LJ zEkILdbM0;VYbY0>1{?diU~M)w)eL~M_I$J#jGy2`A?yg8V|P6In8m`3}M zS4tCWxtvBfm?weFv$1E*Dy@_@2o@oaZ?aa-Z0KRO(sD#0g{?9U`I<3m9qc>4i?pg7 z_PXz4t(qPbDazJ0bWAX1YwV`#q$Ff+g)bi$Oj&-SdRYp~&-V9d=TLMGbDI7of-SYN zi~RkF23u@wlYa*|uLTwbXP^xx8soBOZ0(Ks41xEC7>Iqz<&7i>?wojW$j|yhe-oOrR7QHRlD&vm8 z_1bJI(+*fQYQgT>3pFH(ku1%i-td_RgSR=4Hdf3L^4{Q#VU7%`MTXKyym!g72 z=(3W@+C19QzD$15p~^vKB`u_?1+0tauP^&4mZEKf8UE#En!b>-Hr7$*19ss; z=Jfctlm+!BN(yHBQ)MSH&wSLzt}8nY>=wZ^x~;5|7SV;Wj@IaI!TN0MA;F#$>?z~v zvT8)-vZY+ZQ^r4(oxodwH8%DJ@)lEn4x6kmp@TVWy1tYi&0**3%ji`bJ5^SXS*&ci zl382cq+dw?Xk%}bEz|M5nl$$JmKx4sOpPj3ON#A=F zz5`0X=VCfoG2rQ-TPiB)El`$g9mKQePP)A!4LZ-Ad+hXs;Nh~b0X|ys5l@W1S8)S) zUaz>>qv>2%0PxeG%nJpyozUcSnD-A>Y=z9_p`9r8!O&5pFOzg!(u0!TFX@A!FQDwF zL-zsR9XbjAheM|UdB*ObABO%4^y49}ooDS1;`y0tKLPr?A=b?oe$!J29V)32@YkSk z2$Q!?-xl_HS+_Fp0lGe1>AjV`pz3ShQL)A-v6V)NwHg)cjS^dLlsc>WL622Ej5PPl5shc# z*Yy2WPk3L`KMr_AJ6Q2u$T?K?3RX{_s`?=)_g1~-eTH}jJfblig(YtUe7wqUzNK&S z2hEottqSRb73Z3x^z*7&re+-0=9>QoN)vJ?SD&VrXuiM|0zW8lQ#EVCbKN_1Md>T> zBc3HjiRZgf;(2bAcz!#geZ10%x(kPr4G|DfjI`dcZT?miEb-O5b$t3*elt9jiG9>Hk|Z-FGYGobNjT z&iDI5+65CU0b2kkNvTO%*F>~Y>j!0&K0Fb=gqf++_mJ_14X>2+`T7B4lRpJ%pPSh4 z88z-Vh9IBk%t_k46F&@TUqjjH+9MPDX_EFd($An?L;%3k^cvtQ|64+N2k;YEm9zZ= zfUq;*QEigI>42xHPSTA6mkDeU*dg#@fl-|Fx=yddp70U9o_=PY^4HVr<{jR8`jr_8 z)YD1x0i&J_A45ET2j#~?`MP-UD&19iQnUn%wW3Z++a6QKW{J}ms#3;lZ9i?Y{ar+b}#0J*Q|cS-IM`Y|X+ z=x2cUNZEVnSz2ZsliVky_9uk?4B(r_aiRZMq`f5+(pWdrST{ps`G&^Q46HpFa=lUE zi3-mQq~A1V2v41Mkp_!t@5AP=PWbDzR&AZ9SvZ@eRIA8rmE2Y-)haSOw43M>&y~V? zrEvCYhB55z)lTXbV5xBj;7xQHV5M=yo6u$$ZyE`0uJM2|ET!%ecn?b5XaaiooA-fd zo#&X)kBQ7@gmPRcZ)po5lduZAPA8pPZRlK!p|gBLzXN@3=r_?VK12U=^L}4cFGcG* zbguE3&ek}gf7wj>n+;A6n*x0d?-F=S;BkTEXL?j%v%o6_9xr7&l}WC^;qrUTb^f~m zxA>cb_n1BYD*^ZVhXFt4zem4Ue?b45t{bKiHfoI7#ysOo#*@bD#*dA6fWKqx@f`I$ z<$2cgqURNlZu}4*-S~xPs&|%`Qx^dq^&a(_#$(>&-d}is= zuhXvpoM3zku+ex3@IeEo5$GJxlYr-Wo&kK6I6c*O9#lBsIUn#mAAb{}&esUI(6<;c zRq}bjy#jA4`2y0nmfQpE;{#dJ@vp1V$0__#DYp!1Iu!Awr&u^it4toE4n` zxExRJ_^i|UfSa)r)#wsHJX^vUOpPuD)ai1ZHPq<}>=t#pk{Use0qWFC3z3dvU!_x@ z!0mW0sM8L})~Fw_oNgvV8=@h)k#4{ft-sLk)bB7n!@L%EUpE1P>2jBb{^tvuj@(s( zw(?cT_ml`Kq_ttEG?vegosqh@z%A$S+Y}G1?!mK3_Onv>S*ci?-+YwOa}ZepEApMc z6!n~b0Zlh9pu4dn!*yY&)i;!kzn`4km@`4Ag|RL7#zyR(@1VeTUW(F-`%r)ON}& ze7bjYEIB0A=3oYker0!7KViDw`p$b{uj? zDv=di!G7t)u6Ung`qreCic?p=HI(dg>=2jegs@pi&DU*PbIU-I@YyJ53E=CoK46Xz z36!uR!nV`r$gNi<;bL}bbv!%9OdMfZ-_0?6`znEis3WA-WGr)rUdkiXNe2#LXizH4 z?vO2aYqaI~Q(yg&%vM1JiHLZ;A zNTfPayKoo-bt_4^Oot#vx)8JC)Sl`a!|j&sWMNp^=59|74aC!Gz5^Ae92!Vr4DgNH ziqjQ&M8%t|a67}Jqs=bk5QND^Yqc;O#gRL3N(Eir7vD{>zCMH-*F4-uR?k&p-Q3jN zCv!6bjNM#q|eOkZ+#x<@=vRVLxnP8N7=E<^Q3M~0asy>2L(U|| zP?nd+c!J1dmn5?NqH9JqjOFF#b}V`@<=GQGR{$Lbupkz?q|iC`jLo!UJeFP=$CMOb zm4H#C9WEVQf>{X{%AB@rmqekCktqeo(0HzJn$2mKV11w}45UE^yRysdi?2TgSAky)S{0 zy)uouIj**3ap0{7`z9Kbp~8D^4b>NKvj*zfT@t)=SshOyiX)2g@;EQUaiThd~t}2E84o) zz?tf?ocwfN-xkj#cBE)cJUNJCh}T%@zPu#6K^yHA-WeL$8C(`89XVdA`BwFqoy##u zZTXyeo;Sc}Pfiqcr+Z_O7vwY`*MIq} zHsz7|>Sd^jkHW!tt4)`r6WRFM1TXEnTT})4@{XzE+nvGNlF7sedXjt8m~{{c+oev0 zvUA9;00V<}(qc51z`=MgR+o0>+34inar9#QjRmJj%NNKu$u-G1d+dmLU% zI#IV{y(hp4cr}c9N;go*9gx z#hC((^VV9uF?2R(*h!|g;)y_4Je9$Uf0xQEq;w`S8T6rQs6D%M#<2orpLa|on-A8Q z_ppeDXbQJTOkp>TIxz>rsIpgL25!AL9#;H{XnPuGpfh@{KAv&GX>-XfZzOKV28;E^ zLnCxcqEEDt`N?qtuKSE-z1@hMq?Xj4{7SwnzH>-CCYP-Se%@WAcX%n0$(OPhzVtY3*G|(D@gF{R4r;rcj3{xE?2PSR8&B=X_U9ci-{EZtt^={8Voapg_x29Km@EOs zY%J$q&@PMG@puytQhAsQqm9~`s&Fn2txD{U_o*nzeUhs<7xXdCd*bOFU51NVI(4JH z@J}o=SRL*L^uR72xd=Jg_T9blK^e@bpP%DOJjqkL;;biUw5QY9!@w~t=?|!#=aOYn z0bfT(42srZdcsp%Wnb1EJ04KrD6&jtidwX}DQcPLQ0x)Rn(>-x0Fj5&(mdNiq-|aD z1q#(_ZYwiEe??$Kd6iw{3@2hYwDVxrvFt)=v6sqYs~;oFt(oe`!X~nEcH<=MI%$3` z>ds>vOL~MdOfZ=H##ED|<57u=OSTz3GGuZbZHcscYA4OWGQ|EWiSmhp9$^Iv?XOgF zHW_wkU}6`BeQ&NS#R;gbhmGSH3jLpZ2+0d~E|qsNR}UpzOXk+KT`VM-h^1UJ zl_Q`#9qYqG*7Vi+;!akpHMj@6p#E`6p~Zbez2jtvx+&L0VRcs-CJeo2tT)4dk_rvQUE8M+Z^rVZg& z6?!F2b=`8$;w>bXNCE4`cYqRtbs?2TI)!(9RJnx)Agv4e{ooqFTR{r6Ny;Lsapbgt zj&&*c;<)3*Uwc39S=7HAZxk;;ipvg)4hiUl=lzg=0p3fnZis3HUk(!n-^I|*5FXyCM&b&iSFS-iKTmcsh4A^xk!XQ8Y11vv5A0PYL$CbSd3jZ)Cc zF1A++`e$5i&)_X7p51|xMjP0w+oAn@;1=l1p*LG=K6FnYXFJ-+S`C1*3-xG~DZ#kS zgGh02&}6n-kMvkKPTUQGw$A3F$xe$M`*i1c>6&ioktifP)`+4;wro`NVG9kQ1yQ{B zb>!qNcRuLc$5H6-)bHk0`5EN5;f?h=$V%d`9^a;Q=`gaS4PUoii%&N`QGA_tBdv!i zqx2z|pa;rajv^n*Rew2hF2NT>+rh{DwfM{Dawjv#3VfO&hn;YTD9H`nmXpGKb>L}% zT5YzJW*h>{!B}ed$tnqrEy+<9pu#! zO@FWU(Tw+Q5uN}0q~zy&ey)`rq!l%?FL4~OVB$8Mqs`-aW!+BXaF2Bwht5(QcVTm}Gjhv1@VS)D zTs@v_%YaS?%B7?~Xd|MijmL|F;7;y`Z84O~`jWQ>gR5;)p7i z)kBVQUwY}ay3#LBy|d%KSF5@QZo583{zpE%b@QaA;|Kf?eqh^2La&r8H=?BB90~q& zA_|xJ%h)?W*W5= z1f>q2Cc_NP$H_h|+!$KKl{Nu{=6j=>7MjoaG6pN4i4NT~01D6I+;9sg+f5Xm67Dcb z3wMSuhBgpT3jv&3#$W|1)4j|!u_WpVUpggxVfgYXBH>b1_(G_W5JHSaax%QsFN6kU zHArfyP=m}cz(81+nqb`-9ukf{Tw4OQ`MtF{0Yj`bjHzkd;H4fjG(6(x)-FZDi-2m+(%EM0kPUXM~rAo5ScU^uj-}=Lh)?@}%%2Ry#ZuouNx-Fg6oCI37XTd}0IV+EfW0TE9TXXuiV1G!o!O z#$U>~s506xPe7ep9B{VW0JRr5RrAL+l z@rOrNsB$eqXf)D@Iy=K7i^82%8co=hsqcdU>)FDv1rF`OZ(Zlha1KecpJRh!Fx zugYJ6hB*T`c8w>pj*UkyH_7k^gVN*#H*_hEV1`Eq)IYJ(P7Wp*tC}`-it>%6Q`zj{ zow%V%z_{Q5r<)LUkd8@%IOv2ELBupTP<1dgvPa}0dZD%Z{IGp+YB-^*_I?aK2#ibb zWUDp^Jv4I2AN6W}zhCzl^Z9IqiCW=m5v?c*-6d{a8=Yo z;yLKG#1zD3blwr=<|9YYiePx;Ff`R!w<%DI;~>;R#DiYL2Xwg|Qlaivbf#ZN&r1B0 zmOTVf;gN3ygMxiWnm2r_(tcEEe;bLGYp}=j{?N!vUN2Iwz+ZzwKkPN~4E}L-BM(3a zKTPQ}(0XOuCOEb~JSzx{<0oW-*^dZ3asq-wBRohU^PixQftw%Si=ZmUYs3!DV-y;` zU8CVoxnAUTIgdt^d&!fpdPS>u7j@X?MaL_g|49)$BL4wDDblcT`=aejwl_BREoz7@ zj1hvOj-Gx;M}P9A+?LZSc_*Cg8C#!W6 zGw?LdZN_IFPpt1EF$+~#&HcP4q ziWVqZplE@j1&S6ZTA*lwq6LZ;C|aOsf&UE_XkM3W<#zJk6VGO7%3b&j6K(8j>zXp~ zX#WSgHniSICo+dy4*nDGM%$NfZ5hOS>r8YdzS%J}nAy6jV_nPI==^Bsp6E);x_T=g z#@&iDk^Ggy=)$d=SJtm#a6fID+K+yt43luF-w7`F_1q^u;T}w2~zfrvg_X^yv#2q)+#lM$DI4e!V{O0!QD91|L*RiLFYE?0z zy!kYKUChbEec~wea`Wp=pl-(L*KL4&+_?*Nech;h;4C!Wq$bJU>6B^l^l% zJN}P1x$IZ|Hl}WExM`3Y!vX14I3CSs{X1}yo6mmpHIukhx12oZZv!O3>74Bs271sF zg{~TO%AfQF_!lJy$INqcp?oWCbP{gPyj6 zYtY00Rch|~*CL*?1t(yS8{OAO&$QoK=UVr|3mw@(&vWkUNumOCH~-PSS)dM(V{o_O z|Gtj_`961@?B_g3Me%X`{20>XU&HL&?AYoCh~yvT=RVtAZL_UjFUtJ(Prk2F-M4zJ z>Xy|{D#6E~Wx>TmZMcB)2Ot`cQT1W#=oF1sh?RI|#4le~D2(Stp2v$<(E>#a6fID+ zK+yt43;Zv!z_9v1Eb+DK;#IUj(E>#a6fID+K+yt43luF-v_R1UMGF)yP_#hN0{=rT F@Sj#W5@7%U literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.pdb b/Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.pdb new file mode 100644 index 0000000000000000000000000000000000000000..549090f4e97f69250c78ffddba2925f6d8853e35 GIT binary patch literal 124416 zcmeI54S@ zVQPzMt!`LYmRM?7SXkInSy|~WwdC5a?O%6o|GH~w>2CI4*8ZRGd3o+LckYb+_m8_? zcn<;A=n9*+;e(O+9nnU8*hy1uEVamWT3W5lCQt-z= zs;WP%TUW6=m{Z`egZbg&XM5WexU;GzQFn2sE`j8zmR;*EShl2YbMQj;?%G>_>6PUt zirvAN0>$coHGI+fU)Or_LVob2#-aB_yY?P^cILZ#D|gNgwvD@R^v|A{bJ5)||MSl( zw_FhHS^W6{_YS$|ruS8@`J2ke&j^Ay2QPSh)fZc5{dLm~3%~x_?0wgF+<&+0G6Zi8 zd*JEXFYbJN)Zu@B&FQ1NI}g2-EX^lAQ2Af==-)rO=`-IS_N~93_od`Nb0=AS)e`s`P(J@ittG@tlD<^Q*?{NaViee?b=?)%$+ z{NbqDt4EY(Y8-m8K2Z6;^rvl0tAEtc_V=s)u6FPP+patGQnIw4_=00?{5>!2r-@_# zr>4MLufFxF=JxK;gip=%rkbg1rZrAXO_?%%;?$YbXH1+ic}C5|X;Y@oPpUTYrC?cuB|EEP`57Co=bNm zr!=gXU3KxC<=kz}wq??_?d=VV+L}5uX=5&Zc0Ltru-4L*TrF#jvep<{ zTfe%hHJ#(Gv6jMGOWxXnh+9{3Nk`iU(~UVEvpv(?n94P`wN}-qv(0N;(;Z5J0}LXLI$bT#83H(3z0KbQ7kDdQ~*mCr~RbW(&&Kpu#1H zGx6(!ygQDytZUqQ)(^Qk(JB0rdo!rs?%?{j5Hp!Y-H}D_9^^OQ^N-bu%_Pc>Irnz$ zec}5Fmu7$RQy-3`5>9$w)CEqz$3wFH`j@u;!{zRt5?+33$U9|>mwoHG-5VvV43n(< zqOvLkUiRk3%YGtR6%NVDFDk3d_p*Qag`eLjSrrP&$}cLbLgQsy=Pgf4R)tBj@{7u< zzp6OWx!3o@3K!(1_YQ7X5t|9CCSb*K?lSq$^KzB#qFwJn=#ZsfkonagW6S-r~LfS`=6 zjb*`PSN2DiDJ6QA{S}n`*L~Svo6fDQPq(x!s5j+5pk5e`j>^B6iOatSM_m5xrrKzQ zQMI7;T~z*02$H7G-xdUhtL(etZE(>88|CsPVMQv_N&Bq+(J0D)27l>zxfla6 z21*43C%X3G-h%eQ6>(F>ms7^qQN{(2MGgzcqQ}rC_*_I!;~bAEagVFqQF!2@i$(7R zSF4?^z_%+AT;=dCt33u5WYsM*2)MX2 zlaZ9#mknTGE4tG2vM~-~9Fz(U#=7?9^O1I_)Pf2a2wy@^cgQ?{b2xcpU&?a;3LEEl@7K)nF#x%(P#Jyc9gC=;KSjMgm!24 zuwmQcMA)83ZR~V59)+ta`#QWln1=p27<@GMziDio zij6rYPv794(oJh9a!QLNG!yak^Eo(l0 z&YQXGaL&7l!PO;gSF;9Y=Pj7m3;lAb)ofL2GFzAg3F)itVU8j%qdgJJ^79*NQ`Kf! zOe73GxD2#3zDhrE*f4Dg@afilFnE0hoN05@R#SgpU&HkgT%QML395S_D_BFQ#fQ*h zA0C_np9w!R7|1VQ=W88WPWAt-0CwA-P=^cuek^*c!@t^5?-*v5=|xauO7ooa(zyj@ zZL?9+I$>R~8C~gl*#ot%8`mlEI&wi>@jtqbrac1r{R`|>pv?QZ(n}-tLKG&xZecyy z)f)qY6|=|H%^R0n$?nF?xMkJh{HSk>pLFZd>ce}-yOw1G0HVQSWG}`Ru=fP=lJ)*E z{XZG=5}yDA4sN z_+{{M@XO(qjBiIUHq)5#+~6{PPXfRr!*QC$TEgHCl^)}?51=ocu7s;SUIniRMx#I4 zj2C^IZLo~L-lJx07d#8S1`Sk4 z<2omUAOexFPwdC1gBcLZMKLxAjMZ{4#8~8g9m$&YA22o$UFmt* z7-uog4mF%z6v0^(Ccgjd_d+*mG71;P84xO4!o3h@muACuY$(`Tg^uLCOpLD>Uxy05 z{Jb*jYvH`GgGaA6>?sZOa8YbA2VAz2dm*+iORrv*?pWW<+m4b|8@3L7J&CULyljlI z7-NSD#(ZCKQ3PXAnD{pAci>|_WalIjW`2T8)=BbvB(7yWMP138;ltr~!nHSu^>5Z+ zCbP~n5vqcwhjTr4e3l4ttErM|NRBz+ZejNtxZZ{Q5ZvxLIN!|mC{Eg6VEdlMZQST= z+~jP0G_=uke}QdZi`&@ZY~1c_d?K`Qc8_@2`lGmwUppJWaW-BxypoEo&e$lNw;IoL zjbg59Dzp$<2X#Z+pk2^j=p|^d5-fJ_x)g}c|Gh>&$+6xTI`*lQeS*Sm+NOf}zgLi# ztoM)C>f*J!chg#3;l2~!M)*0qfedQo+_ZxEeH`We9$(%yXIGzIlj_XmB z((!U}xsS{JySd!^@yQ1weJ5Y6Jtk(m_YtP5AbkiOT6@e$+W-HeYj+`9<$i^K7IA4NPI&#O;A4zhipMA&CiKMA}TM_a=9 z;{0$7VcUyD*xp3P5T_w4-AQmkkg)}PD1Gje8O!ANYFkVd-=oZ4Ut@!P&t_c1yQj{^ zxyFX?yX$NdImI){Z>{4lfilo0=s_rUheirS`~QCZ-!%ay0qE|SUXsdY5ZQAiJ(U|T zEB|;tDxQxzROX|6zsb+-2p$Rkc|52J_47klx_X&?!DcT|i>a57r*1#KN4;z?hMx8d zJ%NE|{~PMzDE^1L@Wv3ncdNnwvqQu2e~ly#zJ#^lZ8)24^8Lh2I@K{d%~8Z@4nbzB#o}!% zSbGkA>3aDXZ!z9V9dBy4RK_0;aRlB9AmHaHeY-V~1t~eYc%fSdj!yD8GX22l zI}PYb$IHd|iSbkF`0?2A{jW_)i-}9}&PI~i@#{$EIy+kJM-tR$(<=&J4gLF`U-R#KFJ$wn+(gUF-xe^J^O&2*x!U@O7EZX^ z59a2hBY7_q<1WTsspHPC!G0~oP7vs$q-KW@WnH)w_I5`6Jv4k@&$nY6&p;4oCh6?Y zpcPEr>oIj{JEqeHPfNhk2IM8{{bM}Ecq(-~`F8Bl2n<}Y59bX$ULJIfPxLz|ZQ$jr zMex!MR<_ z{bNkUm^xT6^;n1-&P=vLm0o?e9n&pdj@6*ZxeoC1?;bDp=}g*_`3nSI%-2EMI}^eR_T8<9PV5xlZaD zUe5dX6>MtN_dP0t@#bB8+1BQ9``&IMkgVL{&?^1F{npw39bEg$Wt;7R!RuV>+@m+( znw$JL_(|}8huiZYC!4TFu+yoMa4UmxgloT{sW9#PjK#zJKiJUo{0BT5=6oF=9 zBZ7H`AJ0ym5qvv!1SO)9zm@L0Fwy+8@ADMTzhjAulJz)vH2+3&t^7M4uKYUzuKars z+{XP}7mtZ9-c@1#=}b}kPDB3up~JYRypTHy8wxWCKLS1`v^k-N4ZEMa_}LX>osE;> zDg)y}8xunt3dHVvO@#YqPej&#L-aIfW4zJjn=x>0CqDzOXFU^sCVT?C7CsTKa#ICo z?`<#%ehs`DemlHoKydy2@F`p~PSx3?-G6{jgU=)`XTh(5Plw+Ep8@|Id?tGO#?Coh z{}_HQoH7@j2iF;<=fklXTreQ`$O3pB*YAhd!?(icz@LN9g^wbk=fSUl&xhXwM~6CP zEa_5DUbVs}IhqBZ3+XJ^i=o-j70@Nn;fadi2&fYBe&v~~}LFM^MSUkop&yxTag3hk**vU|-EX5Sf?J?gY@^e&F7V z4L!sA;KB|0W4_xY%&ROlaD6KL3OLKE!3W?|;Va=Y;H%)})bJI7zJ+Y-)xD|MqaJv(W}uT-%L}4`Ac0 z9yaXyK*FpQC??T(bT}JX_$d5x#>N_KT-d{goewSkEbE<(tKoW<4aP<@HYSBOCh)L! zj)-T`gX4~alJ571oQ;j}lezz4xYAo?K=sJATrYxO2XBXW!>@v04_A9~1AGVkBk)Jy zo8Ui$-w6LD{3iH6z&{Fq6)wB4!#8vN2K;8Y>KonP5C0g~M-#VO;K#sqe>nVBu1COc zgO>+4@r>_-rUq(PD#1Wyu#9V+t*qax_^mRSh3lKp`o{JwBdaz><;J#0=kwe5S%!yc zHkfeixISUV_(TgW)_wE?w}m($65I~w2n7>I;p!7ytBl?OXPGFt6MiB5lkkh+pMt00 ze-6JIeivL=yc>QqT+ezN{4covIQ-M_Xq!#F+5I5*?}0z$4uKMOAp-p})% z>C(lgiE#2?PY*q;9cLxXn2Vsy_q2VR^f|&+dVC%pO^^GyR(gB^uJrgKTAMR4DAy_Y*Wqj2{bu+#xV{d)3$6!}{Ppn1xV{1YO?Y|m%|6rjPbrhC zpZ_c6Qdm)+!GDYVE`Gm8g))#vX%sXAS^~90o1yK{9_U4AKa`|HKLcuja?loNJM<*< zJf!n`M?uxld}tN40onp>hxS0vLa#xC>A)wU8PF1F9n=lo1?_+iRYx+1-~S%3${zOt z%gkTev$7vhj`-i}{J(L?OV<0x^BM7c#=CVsqww50KW~u==Np0`+qf>>lB!#mYF(Rd zn$O`48S{xFTI(`He%^hUt1s>_pfE5A=ns{RV{A}}lL=sCDDsl^{xMEsoRk_)R{se& z@q5!7qq4bHjWGw4pYHylC|K4+a+F#xPX7*Zst#8@d6toZX+uZ&=&NKx;F8Nbl)rn(G%P6ji- z_n6T*q=+H4FK>dE{Y-pI*UQJ4i7`_unDOHe|Lx0RNmKmIUK9JveB-Yy!KAgB@739L zW-2RP&z#o!bdyd+S(eTrEIbTka(E~zuP_2;^M1%KScswqc~l zLtUn=mDyaC{ozUW86q!P?;n@_xa^lo+1I+D3V0^ce`?IMhG+h?MDDv{->WaR;Z#`w zAeNcG+$yW_cv-fttuxc)*F(~NtS|i3gPoj&(em;!eq#KT3V!@r2xnY{>*{?J_YgO} z-?i&>3z#TwP6GK|z@-cQ|?34<2w5LpCbKdiC z*eSlJY(M3EIOSaLeJpmk@O{3kLS6Qzv3BC;1;jnZ+N)8-Ras{Ks>wNKkeeIeAjpE{ zdV?}yEJ?T-^rh?NV~oWZD;13Sz8&wogzZxw#XTG^0i#fsg_d-xC66n=-rqjOf+;%p zd)6&(3?#h3qGXW8;U%QEx#Ov?X7eU*R8 z{!Vlx?`7ihAD919DgWxLsgSc?;@XDZeKp^o~?T8 zm(Z84myfX!W1&>A;P<_(58DgQAL+TwVv4)RjNeZ=e3r$G*6O`ud|vikh?(fiptjw3 z4V(;{W!Lw;T#S_%E2V-J-~Zwqk3RZV)nVVtw=KKsEIO8WkiaK_lh-{?mdi4V+cFv+!eX6d1L>MGG~>A@_oRA zvuNyl$RCQxX46-7rdu1+f|}k9V46DE81c`6Gx_7*n$t5}F zMDycg;5v&%=ffNiXRBH_e!P=y&&gu@LAU0o$H8glI1Mc5UI1rlwR;7e_1Nw!;H)ck z58`~Ra?a+_c|;XKH@|f~g5Np#0%#$0OfV=I8YqtYh=4u&AYsly;FjzMPby+K<~&Rs z8MB#l>J&%L9WikvemZ;0oXMm6OaW>h-JIn`J=8syYwmR~gV(@U!6(Dlz?m-T=3Q1! zT(aj1PJ{m$*Rt~|_*q;l{ieeohI2kx_Ya)^kKuHUyZ;q_HvAR%Iq*NgNuTaA;(i`n z=RKVdPr@&NPlV5cpAD~t>x{+O@I`Q{!tRUV_3%~jIdGln!!vY$5IzsS0X`poBb@Z_ z{sjC&_@LlU(sXPj&ChqgPol7Ok@gotI#cZ!zv@xcK4g0Q5aT}CNlOB{yV`E)tV_Xj#_8o-cHke8`Hd>vHw$R4J9yaWr z>_nir${hv?KXUEP##Kf)2s%O=RiTaL$k~0YiEvNsAns8)?Yxpw1Aq_Eq0h zhULlbp-Px>E#f_%{d#m&CT}n{I0w$~dSfSQ!|o+1ZsSI0<0fb0qlVAxVMFKG*){cq zSzlK?j)Rg49Cx#`@iF*Nu2nA`4Znr!IA`O_@KM}*5Uw~XpU1!-;+nS1T-U&9gSu%`g0H}p z&pY53z{x9~<$S`P4V~=L-k&3QD$i)^e4mEk&&_Kl!Z}glGXu$e4SRaFo$w0yqi~hC zuftD)e*>;G+y$Qje++&h{G0GWCLK>B9>+oFLZ?8dL*v7AQGIUbl8R$zH+B^MR^JnN$4udC&$aBye&|o~1 z&Z_H~Y^+)phtf6t=qUt6T?t1~&0`;ztkaoLZ{ zeyNmwKM%|pq0$!j-s|v%_!y~v0`6qX%-`wYV=;Y@!nPp^HijcFS??d?BgRLm;KP^w zv)x&DzAsDnHgt@O$~t`6U+d0+Tu@)vmg#J1MM{07QD9&e{b1>N*%${g4oU?FzMZ%> zY$q7kaolO7n6m<4&qns^g}I|FM50)k306K_h?NzoOed$XIJg+R%m*v&=u6kj$9ReH zQfhc%Zrb&$EMB5T-Q&gYUEHDxU)(Uu%wN`<$~H&wQrFhmnzL=n2Jmq!I+FJ?F-BsH zlnO@tnRne0jJV<*wj~}L4{9P8r+HlOm~Sf6H#^LjL;bD=xpWJj>Tlf%F1Dj1c`p-V zBgRIlVdMG;HeB)Ujg65O5w5#sF6zO?!yX&8O-<^nUD9^7!Nv}7u^k=Bdzly;F*ZsC z8-@L*VOmhdX?@bWIh6m$`zrsG{h{bc-pj=0KQ8~JQvUr}s5eB~hDa4}_7kd4^pS{v zN88oD31F9({eH@((BI7Y=2oUUI#ONZmQ|zcG3NKkH)!(-?ljBH-??Dy-#o_VHn%p- z?y^$?_^J;!9E@F#o^-rijI$VLrGhg*=XGO<6ZU8JEanDF!rD!t%-dsW(^vza9^?FZ zU}+TlGt5|qjly$UJ6qBnsc?;b6*%ffPh)*A7h@^LQmJ9-qajY%s zge`iZTL50>gm~fXm0WrOr`@OYYKi)2yTHt|=t;-R#kh%aQ!2ReeYB57@zJxGhwX}= zOMdQ53y-Q0CFZ@Fvc(=J1!oOC4?dnnNAg}K#z>5jQo)EH%lq=Lmv-fzvdsLwh<4(` z(efWTBjtI@{(cI-{^RmrD&^m|5x0bGMBig{kCEhL3y$bo{6a9YfPGwMjDB%C zoKRCgY9N>zg^uLCOpK8jBc*~7Kc{?ah>;+O6!EYR<@Z4@;bjoHA(olHi@?WwBluvw zac)Oj%k0kPOjEkU&IykLBMZ@$o|lbr662&)aN^Gxx~(Tp3X6J(7vG+=yT!@q8vVuK zrOD%k$uNxQ_!KiPUk*kx=t$nn#5jp@QYtv{?a9X@IEfVT5FdW-YL|P_@S;e2vKV}1 zJw6t<0*|_Nsn)gWCS=s-%7Kra=t;-R#Tbb(Qfe6avk)V0T+)$Vqg8l~TQt_#($l|g z-niV#)opDV$@sCo$B_=6k&EJJ2{`(8ZyYtZuC+MY4Tkn}$bfXbT#Ta_N2P|N+k4_9 zx3U07pXlk|FOKHVHZbaeqov@eoP`oI{x|JWeL9oQh3(Nmuvd?saOCA;9K|>)H5_qP zQ1o5kUO2k5r+>dV+A^m%jxGU5%X{M}Y>yU#p70c8qfuIM|84biI6xg%}H^f(8GsB)noqS zcgSsk?D=B}a~2tw=DfU&e&GIrE!0Y<{{@#_ofD}2qR(@E3j7851o%I~r@;RS&imKF zi|}%GmR4}ip*`zT=j7_z-t%Y1?nl<10hI{Pjyi^WuR(JEj2(slzv0pFU*h^y?!OGz znU9LsEcm~0&6-;9uW;51f>+?{;qvc-|C(#|od>^xe-!>I{0q*1JDhO4ABF!G{&hHM z)crm9>+rpB&J*OhbZ)ADt~2?)z&v9mXSM1qNu49CXRhR2M|)lCt|z(cQ{Xz+)t;M6 zeeBNpNrdMEshrG*uUX2ruXC&2OFA24;1yhtg{!Qd3>QYm!8!XW zI0arFEF-OJv9B|u$3Z6&&WJGG?K?n;@ExLPTu(z^sjzg@LIUW-?QOY!0X_uYdFKa z`wsXV_%`@l_(Sk{aL$Ac=EHviUjQ!;lEmdYNavewf~G(>K{b%>>CAEAs^{6=cK=NA zJiZ9KO2dV4VT-fW3CG&_S$X#KctAfP^+ZL?t z6{ell@%7gMS46DflM1 z>V_NPJK#6LzYYH={0aDGxcUe;!|68#AA{5X2yTI^9laG!`x@K^r=1Hv4j&2sGx%8e z7C3cza67!5)6FY6ak?`2AT*Wqm^)FY?`#-gbZMBL^f3_C1u4(INNhy)vMlQ#ju_iP64RgipMXB7n z{^PZbkuU|$mNS>9_06fZt!>#{b0hav&iwsUE@kpIU+yT=*gt`Bs-FMi2wWUIdacjz zR_7Ww#4_`@99&(;FM}%v(eqQ;b#-k`VSkzT8_U%H@fb53ExA_vwFhkJn+G(@ftQK# zr8dyCKeXU+`*kR^UrT!8%Rr~ZMIG2TG$!|u5#!|-pj<; zim?@GZw~6dp>MmEMz9ruNZ3F0@6`--1Fn<6i+2oD%kJaC;H%EO+`Mw7e~W+RN`teF zU~DkD((|%0&SIP$Dmc@6r0{Y{1ZPE{67H#97Rs45#iDy}{Jw*YS^&T~Xqw-^t?YaJ zGMKDy&bGH@(>*|mpV~jo-)ul%x?VoUWsJ*11(#zTE|-V!aclT%?QB`}9R@%5xJwIL zIOat{cO-b*$CbfbFFx*q{d$&JA zdo5U6FncX3*kxU5zWIE7xK3~97>lo+{)e-%AI{J&&|V9z3s#!-nY;}q?&8!z5Z)}Wa^?#JH z@dkETw;`U^&47)kaLj@(hjP%Z(0$NuXdm3W^*JvSmw&&&9j{^cUiAN;U1KXO|NiVz`bxC? z)~R?G;-cCO$f9%q9{?9mM{!YW7v_ZveHV8EI+FJ?F)m_Ul-fHNUx?ts74HxmzoTp~ zhitzmVfsKq&>(2Oe&C*Pef00UKKc*fT5J9xTzmSSgqH`G(_h!vL3?<$hcv(E-L@&k z$3Z_qSN*Z4;2H-#4Y&K%dyXM2{)*f9sk8AjXX9@|8>bSN;l1|MX>6o#)!hf}hW0_P zK!cCLBX%X50_w;6Iq&_NIKWM}%={&b%N9`BO#k2XfzsKw&W^_PqEu^YtxkBe{UI|R zKwr9EzQ}&ROPqGLD*Sce_VM-A&J?zN2WqY`I<8UJz4r&k`vxO(a);c$LGAzSv2QR^ z==~h|`y%a(hlGcgWEf%x?+;~quUo0lRgcUYU@r+@;jpUxiNY-7_ppD*=AL$Lh3%O7 zdj1TdTlJCxPVI?zRPAMIXk;f4_Uk$`xz3Jok75Am^-h#@yj+a=81pgaqg&uTsc+B?3;})>EA23SC%f)z%@fhQ=I37Lbeg|H( zZe;tdiLn1G9AzN6)7|>j8F00CS~t?R$TPV<4L$)r5e{`%!6EaG)+D$co7I5Z0jyGe znKh%+r~rjzq z`uDXEP~TJftI(5KN3f6|+weP8{iuCDxQ3n#?SW9h; z_6Ast6tCmwx%!zoL{rBv2Z^~$|wC+YgrEh=3ii2 z?aa^Vp^D$=uICVju763xA>K?QWH=N3;>R<&DSo}XzK6z9*ER0`y=->SHSb3oK8Ub% zJ&16{mpZ%GJG-@xPopi8e_ttH#CadKV7oX&Ae|cIh(6#fx{L&HaCK;r+t#+nv3%6gj>CfgF#jBYHK>VjJ9=~w%qn-YDT)HfEa&z4CFLlp( zkGr1f>U?&9?;XaCpE z?xRlsJ5Fx2le^o+zufU(xcd({-sSjA=Rd~9Ym9rY(e8O4bLHgMEpE~^oF8+_Z@Y!o- z?A`9ddBO1;T{PnT{lJNu71KGW%scK)ZkcwOP+>HJ@Ic5Zj~7r6Z3 z>=6^6_d30aE`45h@n7oVF~;#rUAW(I`G1?!yV1!foc;sejteJ2{030=1}2CI|ASdU zknD!>+-yGUmj4k$gIf0F$+xFJa(J`<-g1~0hPzi;OF_4;5s)JK5**;|vlJ%(r0fqi z;Rgd@!LV7}ge!bGsgXt9h?y~uZjXazL2}Z!@#lhojDEM(@8*W{PYkTg+h67U(ZHxe zkQ>}>m;#dP9+osb`p5d|ad6${uP$VP;vdL62`P@<(70fLQq}nD*_{8;-ropvKk8;B zqgUp4cjW*d$I#EE&afca?V=MTWnNA}nJ~qpE*T8$?$!;Xf|yt3mf}ASs)p2$nGb0V zGy`euyb0O@ZH2Z&JE1+$Q_!=}i_mM(en?3=97;kHpczm-r1MZ3pmh-Esh9yTXO0AS zLH9vBAoZVEI}P?h&qJ?3?Zk5Cb++6Fxc?Sh_w_Cn7=FF|iW8WazOMndDDYUo@@ z=UHehlYurso1iVwR%ko46WRkk1w9MB2x-l1@IamiQVLIiWSR7+6O%ky#l=n4Fvzgpi$6xXeu-dS_oYZH9_srMrbp1C$tTE5ZVPj0qupJ zgI45%Jj z0yRMEpd8c7Bw#dHpy>6iztdZ-b}XOPgMvk==GJ@|O8-GFt!rxX zVd(xqlh*UnIsblWByQHxdBzNgOQ`DHB?OY zAibwYKd4=xQ0(dE9dlS+oJ6TCy1JC^0JC|!spTCp0b>$ z*GrZ&I!$|i7P7w0R6n`GJWFj;s@-H~m@n4P=}-oII_G#6tCN2Yq7v#^f2S8I2m5HZ zD@;G2xSsWQdZhPQmv$4#S07$WORBXge|lROrj>EJlnJl9by%pINvAqyr#X`>&1q=S zHr~oOUGmK9zR0-T#kWsgE8}z{eUZV(Nmn19@13sJ&*?<^BJ)r1I>pn+`a3=PB0io? zqw{)wrH_?yx{?0K=A?9Og7|V}?>Sj|5gsS|PnIlw5l)>W_%QA5eJ9_PmtS(4H$He0D_P&*$9TNSfE(A; z`%S25{Ox@w50rRL2;6{kGGX^y41TKhdIiJP2Ux%4oZ=ixA&bq6<#P$ z-V~KL_nkag^zyq&BP(B*NoDip&E9wN;L$(JZsOJ}4>Zn4+kA(h;ssnnKy~vYH<# zl(qM)-6^D#mra)SmbLesEak@cM>HRBL|A_ zpWDhf-AI|yynxlMYwKh(#iy~o@8lz8=FX$N`~r6tt*vwHeJ4+u@%gx8gyd_Rnw0P1 zyNOoE`dJ;dMWN2fesqkV(;-j1&hSyvVf%K|>@EeR86E#D*3apXH(qBIhf*D(@-nBj zvxTEuqvH(g=XA&;pP!q@N~dQXWbZjy^2O)pu2YPxIT$N4?GeVy`a8Wyo;*KZdg^oa z#Ie2a1U)~j?8C8sPAAfa>RYi<9euRV z>sUXlGcD4F>bsauC;VWh*Rg(1hc?v5P2T{F>O{k_eolw<@;dt7*%7n{(GQ{daIBxx zq2Bd%nZ65U(#_OmJwF`fb*+rk1wX!?9!ULqm_G|_8eBw4%mB6mU8N4m7YTjWbHjGJB>K`Ji#ckYneN? zm7tG@z3=3ShtCtOe^`0{W?%lft)J5&K0eJ9c9{*M*9%ZSJS$^$Ya(S-6Kq!3@Al4z zXZ@TGWz@$}d%4T(I5>Ri!iQu1oKB=}SNMZX9P>MnypHvAI+Qi=ADl=JJU5877RuEG?rZMPyJPuryt(+z9)ItT9PT0~Tb7$k_h)!8i~NyW4k?`1 zF6Z0Du zJbgy(Ot2!?|8pD@%%I;V_XMP{_7)E-1kB8tQzzHXol6aFUH|sq6RayJ+gti66F!h| z3+(J^)sv^x%%!R@uK%!(4R$*)yumZ+S>}JFXc^b!p&$26pFMfdL?ygr(;idFN0u<03dJ5{?}m%~_wO_kLFWl({uirr4x> zo3tDe>^$Gv-{tn-Ydo*`tS%Nou zb^mmC*URcszh#4=iE)K~wf*=l>BnznKYk3e!WW*%>d-0d>mXMhFfX5X^7|O%<5}o; zH-3HT-G|>vkX)hO_qazF#<)ViecbiwS?Kpm{7$iI>Q;nK@znMkuUF{Dd1B;-bpt~! zn-6;5#MZ|4>;UgAo89~YhQ`qphfaQa$HOm775aSwKc6mib3!M*d-&sR7W&`=1R3hO1ihYbB!0G^)ce_M@bhV0Xmff$e&^x$j7`p7;T=Ok zsOrP77Qeop;UfHI^`UnQei!xO_Y8i0J%jcf^_4EKw`f^riQ{N@@`CjO!?+yC$Qs}2W$4~VU7k#I% zuej*@dwr#+zN^<)y6Ag(zMSzhbjo*q*RC%=eSfYmKYb^zFF$?Ht*^M~JJDyjI;$`) z&khNK_qf<07CMQ)-jCmr%ptODXI!D)c>K=p!*4ZyzD_RGyBa@V1`GXe!|%jCZ0gJ! zk4>T+Iz5BVobmTOmw^0qmW;pWx%Yb(zcISN@iTPN`vW(U?oOfK@r)??@|%g@xBAd~ zqaVHDN9N;M7~V-sO#kl{eD1)!PhT^elO#9iB;>Rch1q~ea)gabNEf{ zL+@Vvd>^GSyszTt^S#jTN&Hv_DjMFe`my=%vZ>6%71|s+oV}aYtC!zy{P?z@aZ$Yi z^t$ZGI6*(z_RcRL(taMn-xIH3byFp50KKY#>~Je%2gG1<=?F^OQ118j?*X);^nR|V z5tpCAMaA5lvm0vLJJQ)~a(1fm%Fgy|!`uZI*Dg#>OfKq5&TebFvO!T|8$wcl{hiL(efnws|d|f2&%*IyeBPSrpY!TGnc&H`PpCGp%uAYRZ)96Q|Cc zK4apH$unvuPMb1yCU<5u)>Kb7f(IhluB4l*Xz=4x1|J9Z$?`$u2lUY}$gHf zB~zSSnKF5(LSo&KrZCyx#j-cP_g_eXJF99Ebr)yql;opYcCEW$*^;`=!3){DYj6GK zQ}o{_Eo^SRQeWu{Cbgzo*eW$C+tD~_9dk_Sj@6mA#w+cOHGDfTJLyj@x5kLoNuS-2 zvY=e;K)HtR3uXXiOILEWK-nlzHin>Fzq+b5o#UG48{5-l_Nwf^QnmgRa_27$mALL@* z|G12_q4QhM{TU?OllVQw?^&eho5yH9C(669>hW6<&*M^u3bP-ChygsR{u$TV4`luPU@ShU(fo7=|8FO ztaM32V<44@lc90YDbT6VX^@`(bm$D|OlSh6K3x?w395!_pvjP?tEWQKptGRq&y>!GWm4Nw5E;(C47f zL-#>nfW8Rb4{e7YfW8EM8F~P!HOSf!7s#vmu+@}Yq#05lc@3J(VIWZ zKjVMUnW7>!h!c28W@q2Lndf92$9bpVH^H5h$Aa>y>=4!wDON2xiEbQ+r36BSPwRWW>c;=L`%5bW;vDJI|JN@ za2JLUN(g-g$Wn?H@M=$Kz-mt*9ILPolK*#=1wS%2$z>MP3CF2MbXnpoxs3m~#cHSI z4@KF9^8_OpcpalPwWnpEcOdX45+p+fDMj<)FaEdF&265yR4Nk| zU4}eCg}?Y9&zk4DNsT1k((Kn{n2D_q=#fVc6)xtwVu8SAXr}w}+vpWajZEgfmG!sB zSpD`eVb50rf=~=#ek`vAMqMLSpg_)!oxy{`2=gRuIx}*p$Rc@|rnc);i F`2!5L=qvyL literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.xml b/Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.xml new file mode 100644 index 0000000..fba323e --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/ConsoleApp.xml @@ -0,0 +1,24 @@ + + + + +ConsoleApp + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/TempPE/TestDataSet.Designer.vb.dll b/Code/Chapter 3/VB.NET/ConsoleApp/obj/Debug/TempPE/TestDataSet.Designer.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..79aa59dd66d19383d0415d6fd9c052facb4a3697 GIT binary patch literal 36864 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/ConsoleApp2.vbproj b/Code/Chapter 3/VB.NET/ConsoleApp2/ConsoleApp2.vbproj new file mode 100644 index 0000000..2d2562a --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/ConsoleApp2.vbproj @@ -0,0 +1,84 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {12584805-CC23-4E55-A36B-50D584D65695} + Exe + ConsoleApp2.Module1 + ConsoleApp2 + ConsoleApp2 + Console + + + true + full + true + true + bin\Debug\ + ConsoleApp2.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + ConsoleApp2.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/ConsoleApp2.vbproj.user b/Code/Chapter 3/VB.NET/ConsoleApp2/ConsoleApp2.vbproj.user new file mode 100644 index 0000000..a871dca --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/ConsoleApp2.vbproj.user @@ -0,0 +1,6 @@ + + + ShowAllFiles + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/Module1.vb b/Code/Chapter 3/VB.NET/ConsoleApp2/Module1.vb new file mode 100644 index 0000000..26e0720 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/Module1.vb @@ -0,0 +1,17 @@ +Imports System.Data.SqlClient + +Module Module1 + + Private connectionString As String = _ + "Data Source=(local);Initial Catalog=Test;Integrated Security=True" + Sub Main() + Dim testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = testConnection.CreateCommand() + testCommand.CommandText = "Select DemoValue from Demo where DemoID = 1" + testConnection.Open() + Dim result As String = CType(testCommand.ExecuteScalar(), String) + testConnection.Close() + Console.WriteLine(result) + End Sub + +End Module diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Application.Designer.vb b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Application.Designer.vb new file mode 100644 index 0000000..c5978d6 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Application.myapp b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/AssemblyInfo.vb b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e11f6e4 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Resources.Designer.vb b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Resources.Designer.vb new file mode 100644 index 0000000..fb891a1 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + '''

    + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ConsoleApp2.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Resources.resx b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Settings.Designer.vb b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Settings.Designer.vb new file mode 100644 index 0000000..6cd3c11 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.ConsoleApp2.Settings + Get + Return Global.ConsoleApp2.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Settings.settings b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.exe b/Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.exe new file mode 100644 index 0000000000000000000000000000000000000000..6a25641f59578142556f196074cdce6807590a78 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.pdb b/Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..f1b1366d5ff853f7078bcb91c6a27df180fdd547 GIT binary patch literal 42496 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.vshost.exe b/Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.xml b/Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.xml new file mode 100644 index 0000000..1a70370 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/bin/Debug/ConsoleApp2.xml @@ -0,0 +1,24 @@ + + + + +ConsoleApp2 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/obj/ConsoleApp2.vbproj.FileList.txt b/Code/Chapter 3/VB.NET/ConsoleApp2/obj/ConsoleApp2.vbproj.FileList.txt new file mode 100644 index 0000000..78c8680 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/obj/ConsoleApp2.vbproj.FileList.txt @@ -0,0 +1,9 @@ +bin\Debug\ConsoleApp2.exe +bin\Debug\ConsoleApp2.pdb +bin\Debug\ConsoleApp2.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\ConsoleApp2.Resources.resources +obj\Debug\ConsoleApp2.vbproj.GenerateResource.Cache +obj\Debug\ConsoleApp2.exe +obj\Debug\ConsoleApp2.xml +obj\Debug\ConsoleApp2.pdb diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.Resources.resources b/Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.pdb b/Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..f1b1366d5ff853f7078bcb91c6a27df180fdd547 GIT binary patch literal 42496 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.vbproj.GenerateResource.Cache b/Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..52db17c48496f1c1fe70e8e6ab5d13f95b54b7b8 GIT binary patch literal 784 zcma)3+e*Vg5KV1Udr_zlQbZq$_@G!qYY~002v)qH1#gIgFWc+{*KV_AClTWp_&I)q zFaC`Gpfg29Y7i%IlFZJYIWxz}IF9p9!EcVK34*Jx@~uG=MBYxUwDc|n_OV{O1dGaq z?KQ8#PrcTObrf4@hY&|r=z8rW?rG&8L2_aG5Vm`bRTKsZ)mA0+?pDhqyOY?8|?rW1}+jp(w(S#lZwaf{VX z$sdZc3+D+&Fz`A?Yidu+K<_}{Z6tacMh$XwC&%z-=_D1Dj*XCef`^#=+-#v^218-N zR+zM7B%D}tuO!$4C(hL)8=zZ5zKbewF~aoutut=Hif*HVh+!(aSwr<>b6Z>dx! zEV>MNf(n1}L7p|wb(0!Nx}(`|$S@OIAJ8L@9x7bSb;SaK%g{{s<+stRlp2}Ldn@a2 zkFomgVZxrT1_YrP!2DQV3yiu(sz8C99Xo>ug%RdS+H_{*P?1IQFwZa7D|YMkDKo<< Gj`9Z*Lg;e< literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.xml b/Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.xml new file mode 100644 index 0000000..1a70370 --- /dev/null +++ b/Code/Chapter 3/VB.NET/ConsoleApp2/obj/Debug/ConsoleApp2.xml @@ -0,0 +1,24 @@ + + + + +ConsoleApp2 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWebsite/Default.aspx b/Code/Chapter 3/VB.NET/DragDropWebsite/Default.aspx new file mode 100644 index 0000000..abb8755 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWebsite/Default.aspx @@ -0,0 +1,45 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> + + + + + + Untitled Page + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + diff --git a/Code/Chapter 3/VB.NET/DragDropWebsite/Default.aspx.cs b/Code/Chapter 3/VB.NET/DragDropWebsite/Default.aspx.cs new file mode 100644 index 0000000..b913225 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWebsite/Default.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Data; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class _Default : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWebsite/Web.Config b/Code/Chapter 3/VB.NET/DragDropWebsite/Web.Config new file mode 100644 index 0000000..eae4fb8 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWebsite/Web.Config @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/DragDropWinApp.vbproj b/Code/Chapter 3/VB.NET/DragDropWinApp/DragDropWinApp.vbproj new file mode 100644 index 0000000..afe0932 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/DragDropWinApp.vbproj @@ -0,0 +1,115 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {5693A916-9362-4223-BC4A-9519B8CC170A} + WinExe + DragDropWinApp.My.MyApplication + DragDropWinApp + DragDropWinApp + WindowsForms + + + true + full + true + true + bin\Debug\ + DragDropWinApp.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + DragDropWinApp.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + True + True + TestDataSet.xsd + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + TestDataSet.xsd + + + MSDataSetGenerator + TestDataSet.Designer.vb + Designer + + + TestDataSet.xsd + + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/DragDropWinApp.vbproj.user b/Code/Chapter 3/VB.NET/DragDropWinApp/DragDropWinApp.vbproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/DragDropWinApp.vbproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/Form1.Designer.vb b/Code/Chapter 3/VB.NET/DragDropWinApp/Form1.Designer.vb new file mode 100644 index 0000000..51511ea --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/Form1.Designer.vb @@ -0,0 +1,221 @@ + _ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1)) + Me.TestDataSet = New DragDropWinApp.TestDataSet + Me.DemoBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.DemoTableAdapter = New DragDropWinApp.TestDataSetTableAdapters.DemoTableAdapter + Me.DemoBindingNavigator = New System.Windows.Forms.BindingNavigator(Me.components) + Me.bindingNavigatorMoveFirstItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorMovePreviousItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorSeparator = New System.Windows.Forms.ToolStripSeparator + Me.bindingNavigatorPositionItem = New System.Windows.Forms.ToolStripTextBox + Me.bindingNavigatorCountItem = New System.Windows.Forms.ToolStripLabel + Me.bindingNavigatorSeparator1 = New System.Windows.Forms.ToolStripSeparator + Me.bindingNavigatorMoveNextItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorMoveLastItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorSeparator2 = New System.Windows.Forms.ToolStripSeparator + Me.bindingNavigatorAddNewItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorDeleteItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorSaveItem = New System.Windows.Forms.ToolStripButton + Me.DemoDataGridView = New System.Windows.Forms.DataGridView + Me.DataGridViewTextBoxColumn1 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.DataGridViewTextBoxColumn2 = New System.Windows.Forms.DataGridViewTextBoxColumn + CType(Me.TestDataSet, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.DemoBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.DemoBindingNavigator, System.ComponentModel.ISupportInitialize).BeginInit() + Me.DemoBindingNavigator.SuspendLayout() + CType(Me.DemoDataGridView, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'TestDataSet + ' + Me.TestDataSet.DataSetName = "TestDataSet" + ' + 'DemoBindingSource + ' + Me.DemoBindingSource.DataMember = "Demo" + Me.DemoBindingSource.DataSource = Me.TestDataSet + ' + 'DemoTableAdapter + ' + Me.DemoTableAdapter.ClearBeforeFill = True + ' + 'DemoBindingNavigator + ' + Me.DemoBindingNavigator.AddNewItem = Me.bindingNavigatorAddNewItem + Me.DemoBindingNavigator.BindingSource = Me.DemoBindingSource + Me.DemoBindingNavigator.CountItem = Me.bindingNavigatorCountItem + Me.DemoBindingNavigator.CountItemFormat = "of {0}" + Me.DemoBindingNavigator.DeleteItem = Me.bindingNavigatorDeleteItem + Me.DemoBindingNavigator.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.bindingNavigatorMoveFirstItem, Me.bindingNavigatorMovePreviousItem, Me.bindingNavigatorSeparator, Me.bindingNavigatorPositionItem, Me.bindingNavigatorCountItem, Me.bindingNavigatorSeparator1, Me.bindingNavigatorMoveNextItem, Me.bindingNavigatorMoveLastItem, Me.bindingNavigatorSeparator2, Me.bindingNavigatorAddNewItem, Me.bindingNavigatorDeleteItem, Me.bindingNavigatorSaveItem}) + Me.DemoBindingNavigator.Location = New System.Drawing.Point(0, 0) + Me.DemoBindingNavigator.MoveFirstItem = Me.bindingNavigatorMoveFirstItem + Me.DemoBindingNavigator.MoveLastItem = Me.bindingNavigatorMoveLastItem + Me.DemoBindingNavigator.MoveNextItem = Me.bindingNavigatorMoveNextItem + Me.DemoBindingNavigator.MovePreviousItem = Me.bindingNavigatorMovePreviousItem + Me.DemoBindingNavigator.Name = "DemoBindingNavigator" + Me.DemoBindingNavigator.PositionItem = Me.bindingNavigatorPositionItem + Me.DemoBindingNavigator.Size = New System.Drawing.Size(329, 25) + Me.DemoBindingNavigator.TabIndex = 0 + Me.DemoBindingNavigator.Text = "BindingNavigator1" + ' + 'bindingNavigatorMoveFirstItem + ' + Me.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMoveFirstItem.Image = CType(resources.GetObject("bindingNavigatorMoveFirstItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem" + Me.bindingNavigatorMoveFirstItem.Text = "Move first" + ' + 'bindingNavigatorMovePreviousItem + ' + Me.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMovePreviousItem.Image = CType(resources.GetObject("bindingNavigatorMovePreviousItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem" + Me.bindingNavigatorMovePreviousItem.Text = "Move previous" + ' + 'bindingNavigatorSeparator + ' + Me.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator" + ' + 'bindingNavigatorPositionItem + ' + Me.bindingNavigatorPositionItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.ImageAndText + Me.bindingNavigatorPositionItem.Margin = New System.Windows.Forms.Padding(1, 0, 1, 0) + Me.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem" + Me.bindingNavigatorPositionItem.Size = New System.Drawing.Size(50, 21) + Me.bindingNavigatorPositionItem.Text = "0" + Me.bindingNavigatorPositionItem.ToolTipText = "Current position" + ' + 'bindingNavigatorCountItem + ' + Me.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem" + Me.bindingNavigatorCountItem.Text = "of {0}" + Me.bindingNavigatorCountItem.ToolTipText = "Total number of items" + ' + 'bindingNavigatorSeparator1 + ' + Me.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator" + ' + 'bindingNavigatorMoveNextItem + ' + Me.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMoveNextItem.Image = CType(resources.GetObject("bindingNavigatorMoveNextItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem" + Me.bindingNavigatorMoveNextItem.Text = "Move next" + ' + 'bindingNavigatorMoveLastItem + ' + Me.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMoveLastItem.Image = CType(resources.GetObject("bindingNavigatorMoveLastItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem" + Me.bindingNavigatorMoveLastItem.Text = "Move last" + ' + 'bindingNavigatorSeparator2 + ' + Me.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator" + ' + 'bindingNavigatorAddNewItem + ' + Me.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorAddNewItem.Image = CType(resources.GetObject("bindingNavigatorAddNewItem.Image"), System.Drawing.Image) + Me.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem" + Me.bindingNavigatorAddNewItem.Text = "Add new" + ' + 'bindingNavigatorDeleteItem + ' + Me.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorDeleteItem.Image = CType(resources.GetObject("bindingNavigatorDeleteItem.Image"), System.Drawing.Image) + Me.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem" + Me.bindingNavigatorDeleteItem.Text = "Delete" + ' + 'bindingNavigatorSaveItem + ' + Me.bindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorSaveItem.Image = CType(resources.GetObject("bindingNavigatorSaveItem.Image"), System.Drawing.Image) + Me.bindingNavigatorSaveItem.Name = "bindingNavigatorSaveItem" + Me.bindingNavigatorSaveItem.Text = "Save Data" + ' + 'DemoDataGridView + ' + Me.DemoDataGridView.AutoGenerateColumns = False + Me.DemoDataGridView.Columns.Add(Me.DataGridViewTextBoxColumn1) + Me.DemoDataGridView.Columns.Add(Me.DataGridViewTextBoxColumn2) + Me.DemoDataGridView.DataSource = Me.DemoBindingSource + Me.DemoDataGridView.Location = New System.Drawing.Point(0, 28) + Me.DemoDataGridView.Name = "DemoDataGridView" + Me.DemoDataGridView.Size = New System.Drawing.Size(328, 83) + Me.DemoDataGridView.TabIndex = 1 + ' + 'DataGridViewTextBoxColumn1 + ' + Me.DataGridViewTextBoxColumn1.DataPropertyName = "DemoID" + Me.DataGridViewTextBoxColumn1.HeaderText = "DemoID" + Me.DataGridViewTextBoxColumn1.Name = "DemoID" + Me.DataGridViewTextBoxColumn1.ReadOnly = True + ' + 'DataGridViewTextBoxColumn2 + ' + Me.DataGridViewTextBoxColumn2.DataPropertyName = "DemoValue" + Me.DataGridViewTextBoxColumn2.HeaderText = "DemoValue" + Me.DataGridViewTextBoxColumn2.Name = "DemoValue" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(329, 114) + Me.Controls.Add(Me.DemoDataGridView) + Me.Controls.Add(Me.DemoBindingNavigator) + Me.Name = "Form1" + Me.Text = "Form1" + CType(Me.TestDataSet, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.DemoBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.DemoBindingNavigator, System.ComponentModel.ISupportInitialize).EndInit() + Me.DemoBindingNavigator.ResumeLayout(False) + Me.DemoBindingNavigator.PerformLayout() + CType(Me.DemoDataGridView, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TestDataSet As DragDropWinApp.TestDataSet + Friend WithEvents DemoBindingSource As System.Windows.Forms.BindingSource + Friend WithEvents DemoTableAdapter As DragDropWinApp.TestDataSetTableAdapters.DemoTableAdapter + Friend WithEvents DemoBindingNavigator As System.Windows.Forms.BindingNavigator + Friend WithEvents bindingNavigatorAddNewItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorCountItem As System.Windows.Forms.ToolStripLabel + Friend WithEvents bindingNavigatorDeleteItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorMoveFirstItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorMovePreviousItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorSeparator As System.Windows.Forms.ToolStripSeparator + Friend WithEvents bindingNavigatorPositionItem As System.Windows.Forms.ToolStripTextBox + Friend WithEvents bindingNavigatorSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents bindingNavigatorMoveNextItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorMoveLastItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorSeparator2 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents bindingNavigatorSaveItem As System.Windows.Forms.ToolStripButton + Friend WithEvents DemoDataGridView As System.Windows.Forms.DataGridView + Friend WithEvents DataGridViewTextBoxColumn1 As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents DataGridViewTextBoxColumn2 As System.Windows.Forms.DataGridViewTextBoxColumn + +End Class diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/Form1.resx b/Code/Chapter 3/VB.NET/DragDropWinApp/Form1.resx new file mode 100644 index 0000000..714068a --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/Form1.resx @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 129, 17 + + + 281, 17 + + + 428, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAfNJREFUOE/Nk8lr + U1EUxvtnuHMnLQouFGpBRdwIorgQ7EYUobqpi0bEooID3XbRhQutOFDbOgUqDs2AbU2cWtoaJG0TxTSV + 5OXV5OXlzYOJ/rzGVSGBLL27C+f7ne8799y2tv/2uKUI7voILRt05Qm84jhWbqwuqixd5MfrfTj5B/W7 + LY3gK48FNNQYaqzeZD1+FC3ZR9WcxEqdR4luF6Jx3MIwyvtDaMsB3OKLJoDsCMWPJ5CfbcZJncVN9aLH + dvFTGkR/t59SdCdmdgi70ATw16ZfmcBKnkF5vgl99iBm8jT6QjfahwNU1TE8Pdq4e9WYQUtfw0j3Yy2d + QovvxskM4ZsLWNlBrHQAb/UK1pcLOLkbIuLcRpAjPyQ3uQf51TbK4S3Cehee9JTfv3Rs6Q564jharJNi + eCvqYg9+ZXojwFcXMbJ3cQr38Nauo0ba0ee6sb8OoM0fE656qOlPcKT7Ahikan1rHMXOD1Oa2ktZTN+c + P4z2pgvz80kB7MBMBfCNcPO9sPOjyLEjSKFO/PIj0b1fxGkXnYOYK+covOzAyAzgKU0gdm4U5VMf5vdb + +Po0+sol5NAOvFIQT42gJi+jp6/ilZu8hKfMik2cwi3F6zbNtduUE71C/E/gKW8FbAavkmhtvWtOhpqz + 3Fpxyx+mQeEfdtWWWgCbhLwAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAW9JREFUOE+tkk0o + w3EYx3dV3kq5uKBWDiPT8hISMiQsMiEyQ9qBg0hoFwcHUi7kgIvkQFJSTrQ4zdvmrTW1/kuT0i74x+X3 + MRal/fEnv8tz+H2fz/N8vz0azX88PG6wmcDp4E881hYR3VUIixF2Nr+FcO2DlbnPGjaWoM+M6DAiOitg + YUoR8rqhsJTBWG/kP6fOMKTegGjKh/7mTyIx0oUw58C0/XubLM8iKtPeQIx2gfcMJgbD0FBVlRE+D7QU + hS2ZshANuTDQqq75fQIHe6GVcxHV6VCr/2VzQIKmAshOQNbHc6+PhTqDOggBP5jzoDCJoLUaLo7fwr3V + hSCr8z8EeHcLbSU8FCfjLU0nuL/70cB4Py5tDLL7UBnC8xMMW6EkhRNdIsGt9QjhTXkGUnsN8rVf4Q72 + tpFzEnGlRiH1NIL8qDjJoY1DdjkVADNjSGnReI2ZIF196VW22+D8SAFw6YLJITjaV5e2qotSIXoBiiMD + HEVvQ/IAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAStJREFUOE9jYBg0 + oHDW8/9NC57/z5z4+D8uR4W3P8Apx5A789n/VUfe/8elKL77wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+ + ///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0v3f1BxRFoa33wJpb1wFt7/z73yX/AG4D + Apsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvgUXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF + 7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbAIu/O/9T+11gVGSSd+C+b9vW/bvA83AYY + Zt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPulf8gBXgVDZqMh+wQAPB2wKsSwCgmAAAA + AElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAL1JREFUOE9jYBgy + ILz9wX+yHRvf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3v + kn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ14A0ChbVd8+3/6nN///bu+/dcpfPffImE9aQaADNFP + Of/fpOjFf5WsT/+NI5eRbgDIEIOkE/9l077+1w2eR54BYJekXv6v4TuNfANAhqh4TKDMALKTMc01AgDQ + FGCYkuTLEQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKtJREFUOE9jYBh0 + oHDW8/8UOSp35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ + ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuIN8Sj6v7/krnv4JoVXXqI1wyKPvvSu/8D + W56BbSZZM8gAi7w7/20KrpCnGWSAYdZt8jWDDNBJu0GanylKtoNCMwCgfl+gC2KedgAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAATBJREFUOE9jYBhU + oHDW8/+4HASSa1rw/H/mxMc41TDkznz2P6H7HlYFILlVR97/D29/gNuAjClP/8/b//t/QtcdDEUguYX7 + PvwPbriG24CEnif/Z+/79b9z69//bqWXURSC5KZtef/fv/oCbgMiux79n7Lt1/+SpX//J0z/+98m9yxc + MUiud/WH/16lJ3AbENj88H/r2vdgzcYlX/5LR1/7bxy5DKwBJFc3/91/l/wDuA3wqLr/v2TuO7hmRZce + uGKQXP60N//tM7bjNsC+9O7/wJZnYJuRNYNcAJLLnvz6v0XCetwGWOTd+W9TcAVDM8gAkFxq/2u4l7Cm + F8Os21g1gxSD5MJaXv7XDZ6H2wU6aTdwSoLk/Kof/tfwnYbbAHz5yin3yn8VjwlgPKjyHwMAvtG/s0Vm + x8MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAilJREFUOE+tk91L + k3EUx/cvdN9N0EW3NTWGa7EaPOUcyqphWBG9PZEv5dJlmqhYmUYtXyBb4dJJy+kknFT4BqZIjaFMJUsz + V7TEoabYRDD49ju/6Pm1Mm/qB+fy8znPOef7qFT/4z17GgWVr30Zbd4lPHYvoLEhgvuOGdTWfIL9dgg3 + yqdQWjKBwoLXyMsdxYXzQSi9CeztAWqqV7HRW1ldgzGtF4fTnvBSBN7WRS6orPjyV57gyMIKdpufQ62W + YTnkEQL3o3kuKC35vK7gJ/w+vIg4kw8Fl6dxwNwkBM76WS64ZHv3h+BXeGQygm2SF9accaSmOIWg7m6Y + C7KzRmMEv8ODwTA2692Q5QBMJocQVFd95AL5TEARrAf3+D9gU2IDjhx9gaSkWiG4WTmN7i6wUwLHT76C + 5dgA3zYtjGamz6bOP+A+HLR0QpLsQnC1bBIdPrAMAE2ub+zuX1F+fY4vlRZGM2dmBBU4ObUdBkOFEFwp + HIenGXjoXGPBicKYnhNT5hM2pJ8r4p2TUxi83wO9vkwIbHljDAaq7kR5ZxJQSOK0EobezmJsag5y7jXs + NbZxWLvHBZ2uSAgolo57UD6bBASfzb+FN6F5hGaWcLHYjni9i8GNiN/1ANrEfCHIzBhmcy/zmbcaPNiy + Q0JLRz98XYPo7vNj4OUQ9pksUOvqkcDg7Zo6aDTWWMHpU/08npQwCgndmU5F26aF0czUlYrgnQnZQvAv + f/R3bGg6a0rM640AAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/Form1.vb b/Code/Chapter 3/VB.NET/DragDropWinApp/Form1.vb new file mode 100644 index 0000000..e1b688d --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/Form1.vb @@ -0,0 +1,18 @@ +Public Class Form1 + + Private Sub bindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindingNavigatorSaveItem.Click + If Me.Validate Then + Me.DemoBindingSource.EndEdit() + Me.DemoTableAdapter.Update(Me.TestDataSet.Demo) + Else + System.Windows.Forms.MessageBox.Show(Me, "Validation errors occurred.", "Save", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning) + End If + + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + 'TODO: This line of code loads data into the 'TestDataSet.Demo' table. You can move, or remove it, as needed. + Me.DemoTableAdapter.Fill(Me.TestDataSet.Demo) + + End Sub +End Class diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Application.Designer.vb b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Application.Designer.vb new file mode 100644 index 0000000..eb1facd --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Application.Designer.vb @@ -0,0 +1,37 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Namespace My + + 'NOTE: This file is auto-generated, do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to project properties or double-click on the My Project node in the + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Class MyApplication + + _ + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.DragDropWinApp.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Application.myapp b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Application.myapp new file mode 100644 index 0000000..1243847 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Application.myapp @@ -0,0 +1,11 @@ + + + true + Form1 + false + 0 + true + 0 + 0 + true + diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/ApplicationEvents.vb b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/ApplicationEvents.vb new file mode 100644 index 0000000..3b9cdcd --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/ApplicationEvents.vb @@ -0,0 +1,15 @@ +Namespace My + + 'The following events are available for MyApplication + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + Class MyApplication + + End Class + +End Namespace diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/AssemblyInfo.vb b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..dc9bc9e --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Resources.Designer.vb b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Resources.Designer.vb new file mode 100644 index 0000000..1b20bb4 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DragDropWinApp.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Resources.resx b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Settings.Designer.vb b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Settings.Designer.vb new file mode 100644 index 0000000..20fe224 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Settings.Designer.vb @@ -0,0 +1,76 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property + + _ + Public ReadOnly Property TestConnectionString() As String + Get + Return CType(Me("TestConnectionString"),String) + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.DragDropWinApp.Settings + Get + Return Global.DragDropWinApp.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Settings.settings b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Settings.settings new file mode 100644 index 0000000..eb7db38 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/My Project/Settings.settings @@ -0,0 +1,16 @@ + + + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Data Source=(local);Initial Catalog=Test;Integrated Security=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=(local);Initial Catalog=Test;Integrated Security=True + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.Designer.vb b/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.Designer.vb new file mode 100644 index 0000000..d159ad8 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.Designer.vb @@ -0,0 +1,700 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System + + + _ +Partial Public Class TestDataSet + Inherits System.Data.DataSet + + Private tableDemo As DemoDataTable + + Private _schemaSerializationMode As System.Data.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema + + _ + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + _ + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Me.DetermineSchemaSerializationMode(info, context) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + If (Not (ds.Tables("Demo")) Is Nothing) Then + MyBase.Tables.Add(New DemoDataTable(ds.Tables("Demo"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public ReadOnly Property Demo() As DemoDataTable + Get + Return Me.tableDemo + End Get + End Property + + Public Overrides Property SchemaSerializationMode() As System.Data.SchemaSerializationMode + Get + Return Me._schemaSerializationMode + End Get + Set + Me._schemaSerializationMode = value + End Set + End Property + + _ + Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Public Shadows Property EnforceConstraints() As Boolean + Get + Return MyBase.EnforceConstraints + End Get + Set + MyBase.EnforceConstraints = value + End Set + End Property + + Protected Overrides Sub InitializeDerivedDataSet() + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Public Overrides Function Clone() As System.Data.DataSet + Dim cln As TestDataSet = CType(MyBase.Clone,TestDataSet) + cln.InitVars + Return cln + End Function + + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader) + If (Me.DetermineSchemaSerializationMode(reader) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Me.Reset + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXml(reader) + If (Not (ds.Tables("Demo")) Is Nothing) Then + MyBase.Tables.Add(New DemoDataTable(ds.Tables("Demo"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXml(reader) + Me.InitVars + End If + End Sub + + Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema + Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream + Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing) + End Function + + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + Me.tableDemo = CType(MyBase.Tables("Demo"),DemoDataTable) + If (initTable = true) Then + If (Not (Me.tableDemo) Is Nothing) Then + Me.tableDemo.InitVars + End If + End If + End Sub + + Private Sub InitClass() + Me.DataSetName = "TestDataSet" + Me.Prefix = "" + Me.Namespace = "http://tempuri.org/TestDataSet.xsd" + Me.EnforceConstraints = true + Me.tableDemo = New DemoDataTable + MyBase.Tables.Add(Me.tableDemo) + End Sub + + Private Function ShouldSerializeDemo() As Boolean + Return false + End Function + + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim ds As TestDataSet = New TestDataSet + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + xs.Add(ds.GetSchemaSerializable) + Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any.Namespace = ds.Namespace + sequence.Items.Add(any) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub DemoRowChangeEventHandler(ByVal sender As Object, ByVal e As DemoRowChangeEvent) + + _ + Partial Public Class DemoDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnDemoID As System.Data.DataColumn + + Private columnDemoValue As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Demo" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property DemoIDColumn() As System.Data.DataColumn + Get + Return Me.columnDemoID + End Get + End Property + + Public ReadOnly Property DemoValueColumn() As System.Data.DataColumn + Get + Return Me.columnDemoValue + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As DemoRow + Get + Return CType(Me.Rows(index),DemoRow) + End Get + End Property + + Public Event DemoRowChanged As DemoRowChangeEventHandler + + Public Event DemoRowChanging As DemoRowChangeEventHandler + + Public Event DemoRowDeleted As DemoRowChangeEventHandler + + Public Event DemoRowDeleting As DemoRowChangeEventHandler + + Public Overloads Sub AddDemoRow(ByVal row As DemoRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddDemoRow(ByVal DemoValue As String) As DemoRow + Dim rowDemoRow As DemoRow = CType(Me.NewRow,DemoRow) + rowDemoRow.ItemArray = New Object() {Nothing, DemoValue} + Me.Rows.Add(rowDemoRow) + Return rowDemoRow + End Function + + Public Function FindByDemoID(ByVal DemoID As Integer) As DemoRow + Return CType(Me.Rows.Find(New Object() {DemoID}),DemoRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As DemoDataTable = CType(MyBase.Clone,DemoDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New DemoDataTable + End Function + + Friend Sub InitVars() + Me.columnDemoID = MyBase.Columns("DemoID") + Me.columnDemoValue = MyBase.Columns("DemoValue") + End Sub + + Private Sub InitClass() + Me.columnDemoID = New System.Data.DataColumn("DemoID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnDemoID) + Me.columnDemoValue = New System.Data.DataColumn("DemoValue", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnDemoValue) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnDemoID}, true)) + Me.columnDemoID.AutoIncrement = true + Me.columnDemoID.AllowDBNull = false + Me.columnDemoID.ReadOnly = true + Me.columnDemoID.Unique = true + Me.columnDemoValue.MaxLength = 200 + End Sub + + Public Function NewDemoRow() As DemoRow + Return CType(Me.NewRow,DemoRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New DemoRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(DemoRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.DemoRowChangedEvent) Is Nothing) Then + RaiseEvent DemoRowChanged(Me, New DemoRowChangeEvent(CType(e.Row,DemoRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.DemoRowChangingEvent) Is Nothing) Then + RaiseEvent DemoRowChanging(Me, New DemoRowChangeEvent(CType(e.Row,DemoRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.DemoRowDeletedEvent) Is Nothing) Then + RaiseEvent DemoRowDeleted(Me, New DemoRowChangeEvent(CType(e.Row,DemoRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.DemoRowDeletingEvent) Is Nothing) Then + RaiseEvent DemoRowDeleting(Me, New DemoRowChangeEvent(CType(e.Row,DemoRow), e.Action)) + End If + End Sub + + Public Sub RemoveDemoRow(ByVal row As DemoRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As TestDataSet = New TestDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "DemoDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + Partial Public Class DemoRow + Inherits System.Data.DataRow + + Private tableDemo As DemoDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableDemo = CType(Me.Table,DemoDataTable) + End Sub + + Public Property DemoID() As Integer + Get + Return CType(Me(Me.tableDemo.DemoIDColumn),Integer) + End Get + Set + Me(Me.tableDemo.DemoIDColumn) = value + End Set + End Property + + Public Property DemoValue() As String + Get + Try + Return CType(Me(Me.tableDemo.DemoValueColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'DemoValue' in table 'Demo' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableDemo.DemoValueColumn) = value + End Set + End Property + + Public Function IsDemoValueNull() As Boolean + Return Me.IsNull(Me.tableDemo.DemoValueColumn) + End Function + + Public Sub SetDemoValueNull() + Me(Me.tableDemo.DemoValueColumn) = System.Convert.DBNull + End Sub + End Class + + Public Class DemoRowChangeEvent + Inherits System.EventArgs + + Private eventRow As DemoRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As DemoRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As DemoRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class +End Class + +Namespace TestDataSetTableAdapters + + _ + Partial Public Class DemoTableAdapter + Inherits System.ComponentModel.Component + + Private WithEvents m_adapter As System.Data.SqlClient.SqlDataAdapter + + Private m_connection As System.Data.SqlClient.SqlConnection + + Private m_commandCollection() As System.Data.SqlClient.SqlCommand + + Private m_clearBeforeFill As Boolean + + Public Sub New() + MyBase.New + Me.m_clearBeforeFill = true + End Sub + + Private ReadOnly Property Adapter() As System.Data.SqlClient.SqlDataAdapter + Get + If (Me.m_adapter Is Nothing) Then + Me.InitAdapter + End If + Return Me.m_adapter + End Get + End Property + + Friend Property Connection() As System.Data.SqlClient.SqlConnection + Get + If (Me.m_connection Is Nothing) Then + Me.InitConnection + End If + Return Me.m_connection + End Get + Set + Me.m_connection = value + If (Not (Me.Adapter.InsertCommand) Is Nothing) Then + Me.Adapter.InsertCommand.Connection = value + End If + If (Not (Me.Adapter.DeleteCommand) Is Nothing) Then + Me.Adapter.DeleteCommand.Connection = value + End If + If (Not (Me.Adapter.UpdateCommand) Is Nothing) Then + Me.Adapter.UpdateCommand.Connection = value + End If + Dim i As Integer = 0 + Do While (i < Me.CommandCollection.Length) + If (Not (Me.CommandCollection(i)) Is Nothing) Then + CType(Me.CommandCollection(i),System.Data.SqlClient.SqlCommand).Connection = value + End If + i = (i + 1) + Loop + End Set + End Property + + Protected ReadOnly Property CommandCollection() As System.Data.SqlClient.SqlCommand() + Get + If (Me.m_commandCollection Is Nothing) Then + Me.InitCommandCollection + End If + Return Me.m_commandCollection + End Get + End Property + + Public Property ClearBeforeFill() As Boolean + Get + Return Me.m_clearBeforeFill + End Get + Set + Me.m_clearBeforeFill = value + End Set + End Property + + Private Sub InitAdapter() + Me.m_adapter = New System.Data.SqlClient.SqlDataAdapter + Dim tableMapping As System.Data.Common.DataTableMapping = New System.Data.Common.DataTableMapping + tableMapping.SourceTable = "Table" + tableMapping.DataSetTable = "Demo" + tableMapping.ColumnMappings.Add("DemoID", "DemoID") + tableMapping.ColumnMappings.Add("DemoValue", "DemoValue") + Me.m_adapter.TableMappings.Add(tableMapping) + Me.m_adapter.DeleteCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.DeleteCommand.Connection = Me.Connection + Me.m_adapter.DeleteCommand.CommandText = "DELETE FROM [dbo].[Demo] WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoV"& _ + "alue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue)))" + Me.m_adapter.DeleteCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_DemoID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@IsNull_DemoValue", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, true, Nothing, "", "", "")) + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.InsertCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.InsertCommand.Connection = Me.Connection + Me.m_adapter.InsertCommand.CommandText = "INSERT INTO [dbo].[Demo] ([DemoValue]) VALUES (@DemoValue);"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"SELECT DemoID, DemoV"& _ + "alue FROM Demo WHERE (DemoID = @@IDENTITY)" + Me.m_adapter.InsertCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.UpdateCommand.Connection = Me.Connection + Me.m_adapter.UpdateCommand.CommandText = "UPDATE [dbo].[Demo] SET [DemoValue] = @DemoValue WHERE (([DemoID] = @Original_Dem"& _ + "oID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Ori"& _ + "ginal_DemoValue)));"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"SELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @DemoID)"& _ + "" + Me.m_adapter.UpdateCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_DemoID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@IsNull_DemoValue", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, true, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_DemoValue", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "DemoValue", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@DemoID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, 0, 0, "DemoID", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + End Sub + + Private Sub InitConnection() + Me.m_connection = New System.Data.SqlClient.SqlConnection + Me.m_connection.ConnectionString = DragDropWinApp.Settings.Default.TestConnectionString + End Sub + + Private Sub InitCommandCollection() + Me.m_commandCollection = New System.Data.SqlClient.SqlCommand(0) {} + Me.m_commandCollection(0) = New System.Data.SqlClient.SqlCommand + Me.m_commandCollection(0).Connection = Me.Connection + Me.m_commandCollection(0).CommandText = "SELECT DemoID, DemoValue FROM dbo.Demo" + Me.m_commandCollection(0).CommandType = System.Data.CommandType.Text + End Sub + + _ + Public Overloads Overridable Function Fill(ByVal dataTable As TestDataSet.DemoDataTable) As Integer + Me.Adapter.SelectCommand = Me.CommandCollection(0) + If (Me.m_clearBeforeFill = true) Then + dataTable.Clear + End If + Dim returnValue As Integer = Me.Adapter.Fill(dataTable) + Return returnValue + End Function + + _ + Public Overloads Overridable Function GetData() As TestDataSet.DemoDataTable + Me.Adapter.SelectCommand = Me.CommandCollection(0) + Dim dataTable As TestDataSet.DemoDataTable = New TestDataSet.DemoDataTable + Me.Adapter.Fill(dataTable) + Return dataTable + End Function + + Public Overloads Overridable Function Update(ByVal dataTable As TestDataSet.DemoDataTable) As Integer + Return Me.Adapter.Update(dataTable) + End Function + + Public Overloads Overridable Function Update(ByVal dataSet As TestDataSet) As Integer + Return Me.Adapter.Update(dataSet, "Demo") + End Function + + Public Overloads Overridable Function Update(ByVal dataRow As System.Data.DataRow) As Integer + Return Me.Adapter.Update(New System.Data.DataRow() {dataRow}) + End Function + + Public Overloads Overridable Function Update(ByVal dataRows() As System.Data.DataRow) As Integer + Return Me.Adapter.Update(dataRows) + End Function + + _ + Public Overloads Overridable Function Delete(ByVal Original_DemoID As Integer, ByVal Original_DemoValue As String) As Integer + Me.Adapter.DeleteCommand.Parameters(0).Value = CType(Original_DemoID,Integer) + If (Original_DemoValue Is Nothing) Then + Me.Adapter.DeleteCommand.Parameters(1).Value = CType(1,Integer) + Me.Adapter.DeleteCommand.Parameters(2).Value = System.DBNull.Value + Else + Me.Adapter.DeleteCommand.Parameters(1).Value = CType(0,Integer) + Me.Adapter.DeleteCommand.Parameters(2).Value = CType(Original_DemoValue,String) + End If + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.DeleteCommand.Connection.State + Me.Adapter.DeleteCommand.Connection.Open + Try + Return Me.Adapter.DeleteCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.DeleteCommand.Connection.Close + End If + End Try + End Function + + _ + Public Overloads Overridable Function Insert(ByVal DemoValue As String) As Integer + If (DemoValue Is Nothing) Then + Me.Adapter.InsertCommand.Parameters(0).Value = System.DBNull.Value + Else + Me.Adapter.InsertCommand.Parameters(0).Value = CType(DemoValue,String) + End If + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.InsertCommand.Connection.State + Me.Adapter.InsertCommand.Connection.Open + Try + Return Me.Adapter.InsertCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.InsertCommand.Connection.Close + End If + End Try + End Function + + _ + Public Overloads Overridable Function Update(ByVal DemoValue As String, ByVal Original_DemoID As Integer, ByVal Original_DemoValue As String, ByVal DemoID As Integer) As Integer + If (DemoValue Is Nothing) Then + Me.Adapter.UpdateCommand.Parameters(0).Value = System.DBNull.Value + Else + Me.Adapter.UpdateCommand.Parameters(0).Value = CType(DemoValue,String) + End If + Me.Adapter.UpdateCommand.Parameters(1).Value = CType(Original_DemoID,Integer) + If (Original_DemoValue Is Nothing) Then + Me.Adapter.UpdateCommand.Parameters(2).Value = CType(1,Integer) + Me.Adapter.UpdateCommand.Parameters(3).Value = System.DBNull.Value + Else + Me.Adapter.UpdateCommand.Parameters(2).Value = CType(0,Integer) + Me.Adapter.UpdateCommand.Parameters(3).Value = CType(Original_DemoValue,String) + End If + Me.Adapter.UpdateCommand.Parameters(4).Value = CType(DemoID,Integer) + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.UpdateCommand.Connection.State + Me.Adapter.UpdateCommand.Connection.Open + Try + Return Me.Adapter.UpdateCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.UpdateCommand.Connection.Close + End If + End Try + End Function + End Class +End Namespace diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xsc b/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xsc new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xsc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xsd b/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xsd new file mode 100644 index 0000000..3ef1df2 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xsd @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + DELETE FROM [dbo].[Demo] WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue))) + + + + + + + + + + + + + INSERT INTO [dbo].[Demo] ([DemoValue]) VALUES (@DemoValue); +SELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @@IDENTITY) + + + + + + + + + SELECT DemoID, DemoValue FROM dbo.Demo + + + + + + + UPDATE [dbo].[Demo] SET [DemoValue] = @DemoValue WHERE (([DemoID] = @Original_DemoID) AND ((@IsNull_DemoValue = 1 AND [DemoValue] IS NULL) OR ([DemoValue] = @Original_DemoValue))); +SELECT DemoID, DemoValue FROM Demo WHERE (DemoID = @DemoID) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xss b/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xss new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/TestDataSet.xss @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/app.config b/Code/Chapter 3/VB.NET/DragDropWinApp/app.config new file mode 100644 index 0000000..9d5a049 --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/app.config @@ -0,0 +1,43 @@ + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.exe b/Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.exe new file mode 100644 index 0000000000000000000000000000000000000000..5e9f41ae2f7150d95cb61fe774bc3ceb1cb85065 GIT binary patch literal 61440 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 doj=gYO7h*`P@>NQ~it4dtWp(f)X(;h6 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 + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.pdb b/Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fd29ae127ab6f82cc6251baf9e40683fc2e37e6f GIT binary patch literal 146944 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 + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.xml b/Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.xml new file mode 100644 index 0000000..b9cee6e --- /dev/null +++ b/Code/Chapter 3/VB.NET/DragDropWinApp/bin/Debug/DragDropWinApp.xml @@ -0,0 +1,24 @@ + + + + +DragDropWinApp + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/DragDropWinApp.Form1.resources b/Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/DragDropWinApp.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..09c395fe3c97fbe1b68b402346d8bc05d19bf832 GIT binary patch literal 5278 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/DragDropWinApp.Resources.resources b/Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/DragDropWinApp.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 doj=gYO7h*`P@>NQ~it4dtWp(f)X(;h6 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 + + + +DragDropWinApp + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll b/Code/Chapter 3/VB.NET/DragDropWinApp/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..76b97e7987a9ed5497950e37cc90f7df2576b36e GIT binary patch literal 7168 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 Cotj<% literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.1/Exercise 4.1.csproj b/Code/Chapter 4/C#/Example 4.1/Exercise 4.1.csproj new file mode 100644 index 0000000..8fc9520 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.1/Exercise 4.1.csproj @@ -0,0 +1,75 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {A7CA8AC5-9659-44C2-9137-34B1387CC2E9} + Exe + Exercise_4_1 + Exercise 4.1 + 4 + http://localhost/Exercise 4.1/ + true + Web + true + Foreground + 7 + Days + false + false + true + 1.0.0.* + true + true + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + True + True + Resources.resx + + + True + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + False + .NET Framework 2.0 Beta + true + + + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.1/Exercise 4.1.csproj.user b/Code/Chapter 4/C#/Example 4.1/Exercise 4.1.csproj.user new file mode 100644 index 0000000..b9dbf75 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.1/Exercise 4.1.csproj.user @@ -0,0 +1,19 @@ + + + 8.0.50215 + ProjectFiles + 0 + http://localhost/Exercise 4.1/ + + + + + + + + + 0 + en-US + true + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.1/Program.cs b/Code/Chapter 4/C#/Example 4.1/Program.cs new file mode 100644 index 0000000..a9faa7a --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.1/Program.cs @@ -0,0 +1,47 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; + +using System.Data ; +using System.Data.SqlClient ; + +#endregion + +namespace Exercise_4_1 +{ + class Program + { + static void Main(string[] args) + { + SqlConnection testConnection = + new SqlConnection( + "Server=(local);Database=Test;Integrated Security=SSPI"); + try + { + testConnection.Open(); + if (testConnection.State == ConnectionState.Open) + { + Console.WriteLine("Successfully opened a connection"); + } + } + catch (Exception) + { + if (testConnection.State != ConnectionState.Open) + { + Console.WriteLine("Failed to open a connection"); + } + } + finally + { + // Closing a connection ensures connection pooling. + if (testConnection.State == ConnectionState.Open) + { + testConnection.Close(); + } + testConnection.Dispose(); + } + } + } +} diff --git a/Code/Chapter 4/C#/Example 4.1/Properties/AssemblyInfo.cs b/Code/Chapter 4/C#/Example 4.1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..651feee --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.1/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_4_1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_4_1")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 4/C#/Example 4.1/Properties/Resources.Designer.cs b/Code/Chapter 4/C#/Example 4.1/Properties/Resources.Designer.cs new file mode 100644 index 0000000..67e154e --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.1/Properties/Resources.Designer.cs @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_1.Properties.Resources.get_ResourceManager():System.Resources.Resource" + + "Manager")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_1.Properties.Resources.get_Culture():System.Globalization.CultureInfo")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_1.Properties.Resources.set_Culture(System.Globalization.CultureInfo):V" + + "oid")] + +namespace Exercise_4_1.Properties { + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if ((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Exercise_4_1.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Code/Chapter 4/C#/Example 4.1/Properties/Resources.resx b/Code/Chapter 4/C#/Example 4.1/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.1/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.1/Properties/Settings.Designer.cs b/Code/Chapter 4/C#/Example 4.1/Properties/Settings.Designer.cs new file mode 100644 index 0000000..d25683b --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.1/Properties/Settings.Designer.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_1.Properties.Settings.get_Default():Exercise_4_1.Properties.Settings")] + +namespace Exercise_4_1.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = new Settings(); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Code/Chapter 4/C#/Example 4.1/Properties/Settings.settings b/Code/Chapter 4/C#/Example 4.1/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.1/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.1/bin/Debug/Example 4.1.vshost.exe b/Code/Chapter 4/C#/Example 4.1/bin/Debug/Example 4.1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 G4Ezf{YR>ck literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.1/bin/Debug/Exercise 4.1.pdb b/Code/Chapter 4/C#/Example 4.1/bin/Debug/Exercise 4.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..197a2b1077244c8fd7d779f2814518e5aca00af9 GIT binary patch literal 19968 zcmeHPeQZ?65#O_ogF}oz_^b)!VVhzgoNaKx5DLa;)6j4=!~{rn5*){~xnkeBcV}Ue zsyz@vDC7?lMNQK*QY)&oYE(5+(kN|7b3aQePRx0lAw{Q3E z`FO_m-4VXtpz*xjot>SX-8VZs_k=$jibdnmu7u&M_bpjs_&YZkE4>X3rFT}fbqYX% z5FU_)z_(ZieB2`L-&?=}lN-eB{@|lXR(-p5T z7UILn8(-h`LZs!*J%={Eda?Dl2V>uSmfMDK=J9i#$F@JY>$5LC@$HNM>woHFsH+0r z1uO;L0h|mh0p1Cm0-Opg15!o>uo5^8I2||xI2$+%I1}i?wXs0H)_>u5`!AKI+jx39-En!JsH&9P{o8B2uCc;F#39_^2X%(%DBjEB1;X3QIk3lUl!2wEb0 z4;cHSv3-G1T4abKLp1@@CbBOr5}GKHdu$?eQL@uaB*KyIkvit0Vq6Q%Rm1LBu$KnQ zMj73gIh6;nj+a3B+szBW!zgoUw*oVP@A#Z^4W2WggB^pFkw@R~kar?LpFw}Ye$3qv zI945yvMYY^jDH87*-o9P=p@*?Bn^%{%wMi~det&X>Gwv-6_L zg$Y>TyyDd~vn$t6_=DjH$V^dK!E=I(`WQ&mdPH8Yw&LN=1M!5}E9Rx2y}oEqj~PmY zqmj7xlO{YvID}kZir2f<97s@{y{;{o2(qrq#>YBu=jVESJz+C~9`l4zLA{_0(}(iO z*IC*@jzEN66`US8gS#gqfxkV z>ARILZ*uVBT2#9}RE$<7YQx4)uipew{sTrUMOi0HO4R6QjHCO`gR1%rbM)qU)Zh7x z%;N-{PfX_FM+1HSpP?hq*=eu0(lPeeBF;d!n1iBoFLEKS3!qRKLvCq+ISYzpLxgfr{F8{Tw2N2n3vAY&Hz#w34Bf^STg!28XE$16b(`ryMr_N5FhkH0w$015Y^4~7>@ zL8&W!B>g(eJS@DROF-*E>1#2z^tE_Su0|Pt7kriQ<>aEgrTDGtWndlZSYHbpOqIHD z{0%_r!q|*ppU?e}MP0y$c?j`|l&hg)}@%SrDl752k$0SM9F&~Ps&&?C_(Vx)o zanF+S9VFcbx&Z!TJLp2tJ*vJN6nj3o7jzLQW8B4{eW37y$^D@8tMn(7b3oBYLFrfN zn@hzu>5t0s^q>5GQE}8B}U((B0K;9vF z2OMAA)3Kj+pk3K#g|b7fS|}YSP%h5%;@^Qv6VVR7{+>jC%w!wy;7K%G1hS9j3I7(jb0_*Il&0lo$N8?Z<&C>~t6Wi3GeuYC~x9>MN|uvLl~56Z1T zAJk@c1>uIsr}Ka;u#e``J_xR2R39{voSWLNI72Mo30z2y~K7 z-jF=FCgO`YZ=KhpFS6$5{O&T3$8l!KSjWoaS$DzoJ+1-mmOg12bfvXG!Zh^dxy$&e zM6}Af5Ac_MmUkRNIgoQ@oW2>jmxJaA{HCj_r2c&#WNR?aD#)bR`9M;?qRcO{{Jf%b zQDFJksvK05u^;QVsP;*Uh86vuYJX2rkgEb^jRl6CLD@=Ijn&`Q&R5|Iu(e;&Hl7Mw ze@FS_k&)tYkdQIm6svw1t6lSDOAUD=%C>j9A7i4~K)w%rSNP670Ne`P1?&Mb-a8B& z1oEuXd9Q5pZ90LcL(7pr3FacvF~=x$o>lG#+oq5oRq`dor}((0SWnjHmYCtS2l||E z0iS?Q&7f33j*5+Q1`j)I$n8g8%!B~fi}^F=oam#NzpBqBd8rq|IoVqukA>>H!aZg@ zC*h81+8kx;-A8NCid@t$00}(ySWlqU&H`znY9K8}enh+Ci$GfM`oSCwJsYUk{~3MQ zI;?*k_=x4;nT}}qZ3Nf%aQ+Ak z%{AU%(&)kRGHN+GO)NY$9oc=}F@K7>dx2bg4Y=#dvmH0pAzi1#Rmx(WE?ezW#TvC~ zPJ;4r$J|db_>s^)V8%k>xVf`wXQLON6Edn2_ibouTiLowyGJe0S$?@Nl>8?lk&l0> z9$mf)H@!Ma7b}-HHLqCK$~y<)>SL9OrW(3re2uN^+m_?}Tlxd< z`%3N9w?a|@^@nZDIp~~*=4CUVk6fkgINBIt5^PH+`#py`-mM6kZOl*V@iN=ap-sOG z_O=2@DV553Qg?^*~$^E?kNWCbtd&yTpZSWr3%?@cn0h)XLYj?D&`7 ziJkhr|HK~-w*Kl+>(@F^S-&Y9*|#y$6&3Z7V6Pb$^47f94DK;wyL+OceO5*8SM;0q z{%=bonECr^GQU#w3y*t`_5Hj3bMfij66JS6c?_}H zo-7$ay*}0$vhohfRKr;y<+_lC1!kbnCg7WR*Ky?)C)8zND`)@)-+{VJtV12K2ninp zd_&-49*BG`ph=XO2dV+q0=Y;Aa6XWWS`I7&asj#E_8cMuLoPBm05=ML7fJnp5R5(X h8;i_W>HHGay$6VIpZOiM3lp@!f(i1w?6;N${ts40?LYtk literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.1/bin/Debug/Exercise 4.1.vshost.exe b/Code/Chapter 4/C#/Example 4.1/bin/Debug/Exercise 4.1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise 4.1.csproj.GenerateResource.Cache b/Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise 4.1.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..93b40cd992d3d83120d156e1e5a99164a66c7d53 GIT binary patch literal 784 zcma)3%}T>S5Ke7V`=d|~BBF;P9t2Bl712u(tW=8%{vjT`Y_k(wy3LlIjaZ++qYvW2 zr|{~F_zpT#RHO!R0$-BZ*>Ap?&&zn8_fElYj;RTPt78>fgC=spZlbgdE(G?lR=os^ z%EZm}pw3UN+Df!bEHq*&@%mj zuwW}p+AK<~mT+Ckzod9}XHtYF*xscYY^ToBCqPg>n|Lt^phvzMo z%7jIqAx}`@FFwe#=6TXH0PDz|Yck9vHUtdFqq_{ HQyk?Fd?x9d literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise 4.1.exe b/Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise 4.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..81a33f16ac4a9de43f398f35cbd9469c7f5f4370 GIT binary patch literal 16384 zcmeHNU2GKB6+W}OUK@iQuOS3V0s~G7F=n&CQc5t%+PelE3>dHZNn+K^?p`kgvop)g zEcK=la)L@5HI+)EMr~TD`9bQBBDGbi5=9AZ9~!BZh={5_BuX1pRjT?@9^k1zq~EzS zvtDdMTlFPU=dS0w_ndp~z2|;&=iK@6-p9U1Q6h@r_~;{|*O7C|NW4AFpt^I_8=Z7v z!KKx&D#!0_t9^j zOBte3CSqNWw5(@Zr$xXCGAOW(ilZrI;C<2-h6O|Rm5$e+V!Z1?Zdid2NY03)~;TL>F+p^P8&|;SHU`VdU$MD=Nt`;aD}h zD4a%VOlT!x_o)@9XxWBd=u-~~+tDp^$EIY8e|>7UX1Fz5>@Y>mwKbzp9jz4%y|_oz z$E_2>+)>!NRohbB@|lg>Hm61Ev)g*+4^}f>y&{6q^TNe!8fkPO$A9eeVE&OoMXn<6 zox~}2VoPf4rmbw89loW z4(Cw!Cgd2`4H{N~jgjDna`?`dl?6=H-;~X?RIWi<2@zfMxgs=UJNgt3tU{@0nd{hw zn{t_RoG?F+(+Mg;`V!d`rw{2JV3+cDpsgHL;`9}X=OzAJ;`Nn8|RoAnZROSB`C zk?nLA1IOuSk#9ue^gCcD-4{(nJ85@x3-GaMOEgYyl*fHJ`Yg&9P>$2ZDBE9&P6Gca zHIW$W*T#-2?KBvBHrh^)1KEFX7T!7Nq7_*BEzm)$bm7I&Hn5?{*>=$ZNG)I{j%D~m zS^~UEYk+qvYiU&FzRuBiB_G$NbavT!yk3gXKcw`0+Z(hD(yG;L8PqM7(z#{tMNQP* zC#5rfyR?*^YwJ^bQTL=TWt0aXJ?Bd!N*a=!1!kjAf9!rbPdVBsaht>eiNg{PNPJYH zCQ+Ao5;#mx0r%50z%I;%`}r0fjCKK!N5|<0^kno=l+Qx*6M7Z6KwAD%VnX7tCB92b zVm7@?55(%U9GcVg7vR?^N$cq%utB)_RXyMB1J1}Q$5~fvQySi{F2rCW+L5#czMEeWJMbY)8WY#jL z^m5JCT!c3os8$igWH}gNP;&(B)pV1RMc1;aB&IaPzG2gGHM1zFEZoVQr=uXB8|xb0 z?A1)IENrsV~lM!ak*AyChE`PuQ3+v}sv#W=9?K8p;W}dOkdu`n<#eaYc0cxX1rb%OQ7jc8I3Y#zwC?Miw+lX&f7|=Zr$@ zjc&_v*taB&!N!4}=i&KF^j812RQ9!B?fLeX%d1|xaqUfNd+mvdL(9`wp1~c1a!+Se zB_$f~UWBj@Xahj%z>#202Sb7_A)~T`ArVs*rLzT)*ullNm`aHQF&K5Wv_`szBYgix zu~r3rVN;2d(yb>dFzP-TS0hSi_sQ1QXm>|vZH#N;%`+g+?bXslxV~*HKVGV zQmHMtl~!m`^Gd;YIE7ke3lzL>ax3{pXgsp?u&q_Gx*He8_%U9J(iQ^*-z0f||G<9x{k^aJ{;9!BPY=GxHbW0i3{fX9KXjvyF_!64P9@DC>u+{WLwr65!TB}qIxp7Wdh2sNGz>$3 z<+949`6+mwo2{A5S~mKVyP@1xg-DhRzW>G--%pd8k);qq2KerdKO5tbb>?O^yr&3! zPM)V{JAQX?BtvwaF9JVZkEBsLga|na975d5BU0|CeUOKNJ5lEJR_y8x@2*mz7Zx7I z<>}=Q%i7uJGGCNg4yd444KZw|A2m5xx)*oKgm});+r*V?Aa6ukY4PLOIDA#$ zlM5>yR^?mtgjX4`Ni}|H>=yh!6J`Twk?!Xh? z8#r+UPvO{v(q`HsOWSCxKYjvjgI&r-3*OcC0W0VSacIt-pkhx*${vNR;r@41H~JWX zeOb27%Dtj4XHlkOmEExe0XaHhTe`@iXf{RmUYK*&JIK*&JIK*&JI zK*&JIK*&JIz$cag)&HOIhd!|$hK_{{gbaiXgbaiXgbaiXgbaiXgbaiXgbaiXgbe(T G4Ezf{YR>ck literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise 4.1.pdb b/Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise 4.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..197a2b1077244c8fd7d779f2814518e5aca00af9 GIT binary patch literal 19968 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise_4_1.Properties.Resources.resources b/Code/Chapter 4/C#/Example 4.1/obj/Debug/Exercise_4_1.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYBRgSXaJC9zjFt;!ckg5)4wNcG`BzcaXUU}x!HNeIC-;k=ByK%%Yk1B?5bI| zJIVr@}wg~Lls=FWAjNzxQ z&6H210!J%SD-p*T$Mjliv`-WB^dMi+_Pe+Y)kw%Ht z&c2})fWZx-X7f^4Ho=y`He54-XSM-`DE~q0%^V;?0oaRO`34*#$5K$?B%wz2!R zv7`CWegu@4zaYxY0WR0-vkt9c6G?01nz+UjwjV@O@2F@ zDKE7WUN*XodD2y!C4Cofk(x}a5s_h&zNz`khWNa%={LrgMl1Ga8ZxaoOe#_0SaCIW z;z=B3{vvhYB3J6bhujoXrg*-(=LT}LoYvB%=Fgdifp-$=7WPs4B$0lANlBvrVRYgK z@_3vyhdxbPG(C#XjAyytPsRY(xq(rVy{BB z;;%SJIl~%B7wlQm>>5p*T7gq^!im=4YSK3A<`XN2V-x;T%~i)S75K|4h#VDK(<=09 zL7CjJ3Z06l0;?QaORkG`3r1E{P{^s*{PiBylg z9%;h%?1~ByBx_PmoyWMfY}Yw&M~?4dsOCnsK#hB6{B`F<2dfg!*9 z_sjR!6`DUfe|m0j|E-G+jky-~wgw(KUOu@NA#FSfMy@T}EHX)3)-;Uftel%h7`aC} zIqm(^@B|SV>;A*~e3x~c$=4^>JsnHGEr=;UcGKoLw>jFIRng6?&T_ + + Debug + AnyCPU + 8.0.50215 + 2.0 + {5E2DCF9B-E52B-4BE3-8814-2F7A14327041} + Exe + Exercise_4_2 + Exercise 4.2 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + True + True + Resources.resx + + + True + True + Settings.settings + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.2/Exercise 4.2.csproj.user b/Code/Chapter 4/C#/Example 4.2/Exercise 4.2.csproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.2/Exercise 4.2.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.2/Program.cs b/Code/Chapter 4/C#/Example 4.2/Program.cs new file mode 100644 index 0000000..f7a91e2 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.2/Program.cs @@ -0,0 +1,49 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; + +using System.Data ; +using System.Data.SqlClient ; +#endregion + +namespace Exercise_4_2 +{ + class Program + { + static void Main(string[] args) + { + SqlConnectionStringBuilder connstrBuilder = new SqlConnectionStringBuilder(); + connstrBuilder.DataSource = "(local)"; + connstrBuilder.InitialCatalog = "Test"; + connstrBuilder.IntegratedSecurity = true; + + using (SqlConnection testConnection = new SqlConnection(connstrBuilder.ToString())) + { + try + { + testConnection.Open(); + if (testConnection.State == ConnectionState.Open) + { + Console.WriteLine("Connection successfully opened"); + Console.WriteLine("Connection string used: " + + testConnection.ConnectionString); + } + } + catch (Exception) + { + if (testConnection.State != ConnectionState.Open) + { + Console.WriteLine("Connection open failed"); + Console.WriteLine("Connection string used: " + + testConnection.ConnectionString); + } + } + } + // Automatic dispose call on conn ensures connection is closed. + Console.WriteLine("Press any key to continue .."); + Console.Read(); + } + } +} diff --git a/Code/Chapter 4/C#/Example 4.2/Properties/AssemblyInfo.cs b/Code/Chapter 4/C#/Example 4.2/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8b91953 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.2/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_4_2")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_4_2")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 4/C#/Example 4.2/Properties/Resources.Designer.cs b/Code/Chapter 4/C#/Example 4.2/Properties/Resources.Designer.cs new file mode 100644 index 0000000..1fafd85 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.2/Properties/Resources.Designer.cs @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_2.Properties.Resources.get_ResourceManager():System.Resources.Resource" + + "Manager")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_2.Properties.Resources.get_Culture():System.Globalization.CultureInfo")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_2.Properties.Resources.set_Culture(System.Globalization.CultureInfo):V" + + "oid")] + +namespace Exercise_4_2.Properties { + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if ((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Exercise_4_2.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Code/Chapter 4/C#/Example 4.2/Properties/Resources.resx b/Code/Chapter 4/C#/Example 4.2/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.2/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.2/Properties/Settings.Designer.cs b/Code/Chapter 4/C#/Example 4.2/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c70799b --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.2/Properties/Settings.Designer.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_2.Properties.Settings.get_Default():Exercise_4_2.Properties.Settings")] + +namespace Exercise_4_2.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = new Settings(); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Code/Chapter 4/C#/Example 4.2/Properties/Settings.settings b/Code/Chapter 4/C#/Example 4.2/Properties/Settings.settings new file mode 100644 index 0000000..b5b6fcf --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.2/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.2/app.config b/Code/Chapter 4/C#/Example 4.2/app.config new file mode 100644 index 0000000..c55cdbd --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.2/app.config @@ -0,0 +1,25 @@ + + + + +
    +
    +
    + + +
    +
    +
    + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.2/bin/Debug/Exercise 4.2.exe b/Code/Chapter 4/C#/Example 4.2/bin/Debug/Exercise 4.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..cbaac059b0c4f36c57b6f018d32c597d15ef945b GIT binary patch literal 16384 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 DEbbX~ literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.2/bin/Debug/Exercise 4.2.exe.config b/Code/Chapter 4/C#/Example 4.2/bin/Debug/Exercise 4.2.exe.config new file mode 100644 index 0000000..c55cdbd --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.2/bin/Debug/Exercise 4.2.exe.config @@ -0,0 +1,25 @@ + + + + +
    +
    +
    + + +
    +
    +
    + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.2/bin/Debug/Exercise 4.2.pdb b/Code/Chapter 4/C#/Example 4.2/bin/Debug/Exercise 4.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..26e142107a0b1105d87930a15b8fe66c02d49fe1 GIT binary patch literal 19968 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 DEbbX~ literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.2/obj/Debug/Exercise 4.2.pdb b/Code/Chapter 4/C#/Example 4.2/obj/Debug/Exercise 4.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..26e142107a0b1105d87930a15b8fe66c02d49fe1 GIT binary patch literal 19968 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.3/Exercise 4.3.csproj b/Code/Chapter 4/C#/Example 4.3/Exercise 4.3.csproj new file mode 100644 index 0000000..a06a47c --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.3/Exercise 4.3.csproj @@ -0,0 +1,55 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {EF9F9D14-78F0-45CD-9F16-8B1A4FFA59EE} + Exe + Exercise_4_3 + Exercise 4.3 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + True + True + Resources.resx + + + True + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.3/Exercise 4.3.csproj.user b/Code/Chapter 4/C#/Example 4.3/Exercise 4.3.csproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.3/Exercise 4.3.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.3/Program.cs b/Code/Chapter 4/C#/Example 4.3/Program.cs new file mode 100644 index 0000000..8095df2 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.3/Program.cs @@ -0,0 +1,34 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; + +using System.Data; +using System.Data.SqlClient ; +#endregion + +namespace Exercise_4_3 +{ + class Program + { + static void Main(string[] args) + { + SqlConnection testConnection = + new SqlConnection + ("Server=(local);Database=Test;Integrated Security=SSPI;"); + long starticks = DateTime.Now.Ticks; + for (int i = 0; i <= 1000; i++) + { + testConnection = + new SqlConnection + ("Server=(local);Database=Test;Integrated Security=SSPI;Pooling=false;"); + testConnection.Open(); + testConnection.Close(); + } + long endticks = DateTime.Now.Ticks; + Console.WriteLine("Time taken : " + (endticks - starticks) + " ticks."); + testConnection.Dispose(); + } + } +} diff --git a/Code/Chapter 4/C#/Example 4.3/Properties/AssemblyInfo.cs b/Code/Chapter 4/C#/Example 4.3/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c4df6cd --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.3/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_4_3")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_4_3")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 4/C#/Example 4.3/Properties/Resources.Designer.cs b/Code/Chapter 4/C#/Example 4.3/Properties/Resources.Designer.cs new file mode 100644 index 0000000..922c1fd --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.3/Properties/Resources.Designer.cs @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_3.Properties.Resources.get_ResourceManager():System.Resources.Resource" + + "Manager")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_3.Properties.Resources.get_Culture():System.Globalization.CultureInfo")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_3.Properties.Resources.set_Culture(System.Globalization.CultureInfo):V" + + "oid")] + +namespace Exercise_4_3.Properties { + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if ((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Exercise_4_3.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Code/Chapter 4/C#/Example 4.3/Properties/Resources.resx b/Code/Chapter 4/C#/Example 4.3/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.3/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.3/Properties/Settings.Designer.cs b/Code/Chapter 4/C#/Example 4.3/Properties/Settings.Designer.cs new file mode 100644 index 0000000..85baa62 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.3/Properties/Settings.Designer.cs @@ -0,0 +1,27 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_4_3.Properties.Settings.get_Default():Exercise_4_3.Properties.Settings")] + +namespace Exercise_4_3.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = new Settings(); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Code/Chapter 4/C#/Example 4.3/Properties/Settings.settings b/Code/Chapter 4/C#/Example 4.3/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 4/C#/Example 4.3/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 4/C#/Example 4.3/bin/Debug/Exercise 4.3.exe b/Code/Chapter 4/C#/Example 4.3/bin/Debug/Exercise 4.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..f97aab3ea75af06e51ecc9977e5b5f78c5159c65 GIT binary patch literal 16384 zcmeHMU2Ggz6+W}OS#LJ6$=Yq2khGb^p>>^Pabl+-P13Ht>n5gl>}0q3A*S~1`g%R} z?9BGgY+{#E3=vf#5YScuB3clIhr$c3RMbBKs`3Izt;z!rfd?Y>0V*CMXrBs7`Ocjg z|HLIAA)zAX+H>wb_ndp~Ip4i=?##~6XTCvkB1+);-~*zUQFF;DdSfyNam%JxTj<4= zZ)|>98+>DPY07la8a*06C&H(oZcFk9_c3<)Z%ou zXywD%u274%N=p%~L67eD9?k~s9P=PLD#+PyE@4e`V0at~;zBnV#fSC0Sn2$I2hlLM zazrBx#PwyIXf^sQ=xw}Sb|YRVLIm?A1^&=HN0jx%j0e8d0s@)xG4LClDmu}4R=TnR zPWhHYgLQOVi%JgOXQi+lD6+3Kj*IoWa4jl1qP|6J)Qk{_5Qq?n5Qq?n5Qq?n5Qq?n z5Qq?n5coerpo`zDQTW|7Mk^?{g=qUKA`LuVo|ES`FZ?FJdjG1lb!mj*JU&B@fhN-1 zDA}2HV=y+yeCKVk4!rcHJE^S;@BPq)C_@smy8AH*(j9nrO}8al6CD{eR;^vVZ4*gn zUYvAV(M?IGjVnssa$K!*> zaL3KQA@rt+{kjE>&Q8CEW1XaY+>a*ABOZ8~xapdPX;!CpY$16&EWHJoVjb%-()l=u zy8$GfoMTmgz^ZN3)EVLeW!Ql=AD1l@n`5T)Ma=Q$udn_bD9{tQtm3TeiCXrkaGi#% z2zS19R2UONZr5vW#gUd--mV`L(ls6Xz^-f;|83Xv4a;jtaljT0Pa4*CeWX#g%*y>@ zw&Y9;`#^cm9%FZ9_gy>pcK3*`Pwj1AK3T)|%$f*iFA5Lw%$Jeg0{^qmeZ^1rX==Cl zzdf90Cw6!3*|mqYSC9pI4iUCLM)V%)=Kw%^(UYcKby?$S{77OU==KMSl)`HA&lc?m z9~da0UI+drmi1XqnUzuChIahsXSJ0K)caaD@rt6k2^UQBI?+m8>@NRagAJwnnP(a6 zus*lB#$p9^lFm>W+_&iz=pX1!&^6lMK&3XWrRgh*{!r0hDEd1^-&J&VjCHmtdPq?j z8;k9u$1!o5ej2+FOVe)^rTB$d3k}4(<7qk`KSeF{<+w!q8MM>%14Ul|P15D~CG`I} zK8CTW1WTJ0-I*BIk~EaK6i?D5C`aMPqEv6Sp(Btnm&8W= z9&BdlDs2JXsNGH@I@|hY>L>6@BUf>cuX~N!z*QCZ#JUaf2f;n+bMz~qj5~fahLNus zqc+8zRpVl$EAFY(cC8b$P6b>}`y{w81l*w31CFEEf@m~4n7ET(gV#G1-K%J?q63N^ zQS_vuhN7mT4}%WS7eR;VJZKy4C8jGCy$D*M@6&j^3_2CB(vRrLcpK=qKwqIB$EWFa zdL=Fq)!XRFs8PRB^fGNqe2Fg8-HG$G9z9>9zkohVS=xr3lBEj$6?6l=0NPG3fp)9* zK1K72-mf%^bOq8=^bX}|no98ZZF-JOMbE09vvdjlC$S$d&@;eA!^$x_uM_eUcIMrn zC$xK&Bo5kywT|J}#wKX41WnBO`{8)%BBx@McQKqTghj*rT$c8I{X_chP`ir-8m`ar z?L)MG$eCzZ;vVXs5wc>sLhs3TXT^*lBnnU6+M#5uXRJFrBAvRBo+(^HlYbnZAIWkG z(~L`gA_}T(-mxdmYC{?x(i`>G>qug%9Zu6{xPrn&NW`7-{Ip|Z9 zUvH2d3gzyicGx$cjVCR{qe6FGQ7c=sL8kBZkU+}~Pf%|l2!<{flq61znjxo`i}Fr= zR+`l*Z@CDoG|{Mhh#>FO>V`eLe8iHaS}raKw<66t2eVvQGCfNybO+%VOrvT$u4h(U zELgcwts3RUYJML!8#W_0RtTDZaAE7z>ZT=RQOMIKj!*JC)PfxqmNBDR?!v4`{edb# z&n%mk=`9K~+|Inw15-jC6t=+L6cY2OtDlj-8x(IK^F3`V?W>unTOg!u%+3$pa3^+A2RF- z%yLk8%-tuQTF?{jQWeoWbK0;Pg8C;++>(9LIpZ!}-|GZL5AZBW8;jD){KJup?;ybg z6Y^B8NP;AtR`dXM;AzA`rZ!ODN&9dX806t9<8q;M09jX{IfCJm-=9AQZ22yCX46mQwMabp6bThdL*)}eGN zojDRqlGa+wJe<&}wUN|gT1#uAsVUyt+}a#t8yRKz^C>Mj1Xr+e!mB}MJ}>GyUEkH! zwHp&@v^q=y>ck?9Yf>Z7@W1oj#*bU2*xKXLsN;6&pQ#9y?@Cj=x0Nm?2)}dk$;%JG z=kQ(e+^s}Mi-qE|Pe1?EFCV;P@cgdtJlQ+``gd8U|L)P=I`*`y_ZgMxM%^8~Z{Tq6 zpuR&Nn$`OpXL^+H$l0)cvi!goYpGM0BFY^k$T9lb(iCoF!>#~0*Jke*Ymi2N@ipsDw-b;xB)z4zZF z@Hu%|KkM;t2PblPzvB%Xl=osiXdOd#90Tn~(kLQJ4%1=q1EBZ$U)||viL2NAXG@JP zt~!oe$*=DX?BFg}Po4p*s)Fh}hQuae$3)u0v4;dViDboPE1s9}WgSujy)NXO!A(eQ zB`115QG%};eDa{>r_kk=x|B{AKBN18Jvb@&lX`)gF*ejMs1#UHcIr#!`Dclho!GD5 zutFQhU_-*w1s``J(RSh5g?FHC+O1l9=`Px<=FedM@Pv|xic|k#P)_;C8P_Fr9SNP^ zN3xJ|s^@ZuT47@lTvd(Et3*GmqNvgo;=swUtWT#Ll7tSg7!f2!SYTg-``x3^* z+`sSBeub-l=uF^vslbbcsFueS9#kApPT{$9?DeSL7*l@Z?Zq1KlRynCZQ*>^v3HlQ z%#CcYA5n=Ah!BVnh!BVnh!BVnh!BVnh!BVn_{bul``>Lx?)k`i7&#Up5FrpD5FrpD a5FrpD5FrpD5FrpD5FrpD5Fzj%BJdB6wA;r3 literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.3/bin/Debug/Exercise 4.3.pdb b/Code/Chapter 4/C#/Example 4.3/bin/Debug/Exercise 4.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3748ed05bcc9f5eef4873498f3289c66364a1add GIT binary patch literal 19968 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 X2;UX(8v_T%I0FmD$nUUEtQq(pFYC=0 literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.3/obj/Debug/Exercise 4.3.csproj.GenerateResource.Cache b/Code/Chapter 4/C#/Example 4.3/obj/Debug/Exercise 4.3.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..13dd5c35ba8c7ad07b5eb0f9916083c8a2bb3fa6 GIT binary patch literal 784 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 a5FrpD5FrpD5FrpD5FrpD5Fzj%BJdB6wA;r3 literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.3/obj/Debug/Exercise 4.3.pdb b/Code/Chapter 4/C#/Example 4.3/obj/Debug/Exercise 4.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3748ed05bcc9f5eef4873498f3289c66364a1add GIT binary patch literal 19968 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 X2;UX(8v_T%I0FmD$nUUEtQq(pFYC=0 literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/C#/Example 4.3/obj/Debug/Exercise_4_3.Properties.Resources.resources b/Code/Chapter 4/C#/Example 4.3/obj/Debug/Exercise_4_3.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY}V3BcwV#E;KcDF4xl-6!rO+(Vo?mm_=voo7F zv)FPVO}vOFjq%`>crra`LX>DYNjOR3#XC2QG0~$j3jV$~Gu^flA;ycr*L~mn{=M)0 zzHi=pGo4y|pOQqBLVxgp=mth^MNR*ntijy#>{mT>J$t9`hB$ktZ|jyN2x=<>`vi^y<>=?#>NFp=ZX3&Wa>8>fUI)+Fk1D+bJ?c_)$94o_h|X zfnG#sVqi#wxWQ@sJklCE^xTja(%P+moiP$a7y5mWXqx#Vmg7QfZ_7lxw(A~8HbVHZ zYXJwMpf{CtJUD8s%P?}R z9`sGENHn@h)NFz4ipJOyw1aLLL@)0k60H0OZ76XF2pQlI?I|Sb6gb4{r7NJRr|yfr z_r z3qzxo*G5HznDf7M%q*BE3dfF~fPkDF&>M)^e}!lOGtQv*R{~|b4WB(6Am;r0=PPtQ z+%eQYF+W*`?iOTzPW_{fSH;K;)5RN4UlUmteiO%OZ&IWFkk$KsibnE3C$D zdXY{df0labDpu;HFR&?Q4EB6y-)+jna$ZXxX1+xlf}-J3uEu_kd1n{S?ikCLDW} zcq{%&hao3WBkqhn1)5reX-g|&icUDv3arL$t8Ou}VmLMB)!U9dO*6`CNfp@AH)o~q zwN(vVS^9RvmCCI7X5DdU!$M;#Qq^o8w>DN5v*j1{m`hjfHboDJ+3nHl# zc_Y%4TPFuzZd123$Zh#FT9U80KsOhNk-uA7kvkBlfLnQ!6 z?4!~ct&k)|HSA{}+!76=AIA=#f!3pzwg#|D*iD+%qepE$hjrXO9(cF4es837b4gvx zI6uBenJ+J&U)Vo<_i8eo&!TrHapZ9Mq&sB@kxB8nNt4Jw)7zIa zC_k7s5~3$R*wvNHXY<)asta>=z_a&AMnp#g48Ll)4McZ8^QW0NnEPvs-w~l@spP4$ z<4jq$8y*5F^^sxggF!Niq1*rTKUe|5UrV%)Xl*O_@O@Hvh@SoU-T7vbXnoV=yPg<^ zc7ZB58w)gsQ&7Q;KTYQ#PlAqzUtM%F_4EDst%V62?bV3G=HGIsv$~8f5Y@to8pkP#B=3gPb_13l1~rXxL9 zi!sHOXX)R^HmvIw-l%oloi(7?UcFA;xQ6&{)pJIWCEv?UJS_)b6~-gyVd|6HjPQSk NnU|j25G7m0|+D<^L^*c@yyQ7 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/Exercise 4.1.vbproj b/Code/Chapter 4/VB.NET/Exercise 4.1/Exercise 4.1.vbproj new file mode 100644 index 0000000..b6e4a19 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/Exercise 4.1.vbproj @@ -0,0 +1,84 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {AF3D0D9E-0FE2-4357-BD51-723FC7929220} + Exe + Sub Main + Exercise_4_1 + Exercise 4.1 + Console + + + true + full + true + true + bin\Debug\ + Exercise_4.1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise_4.1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/Exercise 4.1.vbproj.user b/Code/Chapter 4/VB.NET/Exercise 4.1/Exercise 4.1.vbproj.user new file mode 100644 index 0000000..33b0772 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/Exercise 4.1.vbproj.user @@ -0,0 +1,6 @@ + + + 8.0.50215 + ShowAllFiles + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/Module1.vb b/Code/Chapter 4/VB.NET/Exercise 4.1/Module1.vb new file mode 100644 index 0000000..b49b105 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/Module1.vb @@ -0,0 +1,28 @@ +Imports System.Data +Imports System.Data.SqlClient + +Module Module1 + + Sub Main() + Dim testConnection As SqlConnection = _ + New SqlConnection( _ + "Server=(local);Database=Test;Integrated Security=SSPI") + Try + testConnection.Open() + If testConnection.State = ConnectionState.Open Then + Console.WriteLine("Successfully opened a connection") + End If + Catch + If testConnection.State <> ConnectionState.Open Then + Console.WriteLine("Failed to open a connection") + End If + Finally + ' Closing a connection ensures connection pooling. + If testConnection.State = ConnectionState.Open Then + testConnection.Close() + End If + testConnection.Dispose() + End Try + End Sub + +End Module diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Application.Designer.vb b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Application.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Application.myapp b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/AssemblyInfo.vb b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..8d30189 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Resources.Designer.vb b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Resources.Designer.vb new file mode 100644 index 0000000..5c47035 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_4_1.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Resources.resx b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Settings.Designer.vb b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Settings.Designer.vb new file mode 100644 index 0000000..a88f0df --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_4_1.Settings + Get + Return Global.Exercise_4_1.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Settings.settings b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise 4.1.exe b/Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise 4.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..9d0ea5228f736003ee1904873435f5eb950bf574 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise 4.1.pdb b/Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise 4.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e8211ee7e9c2d109d456fe1e2e37708c7c5c7e83 GIT binary patch literal 42496 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise 4.1.vshost.exe b/Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise 4.1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise_4.1.xml b/Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise_4.1.xml new file mode 100644 index 0000000..fc50c73 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/bin/Debug/Exercise_4.1.xml @@ -0,0 +1,24 @@ + + + + +Exercise4.1 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise 4.1.exe b/Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise 4.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..9d0ea5228f736003ee1904873435f5eb950bf574 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise 4.1.pdb b/Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise 4.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e8211ee7e9c2d109d456fe1e2e37708c7c5c7e83 GIT binary patch literal 42496 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise 4.1.vbproj.GenerateResource.Cache b/Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise 4.1.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..06d2ab69fde0ed0d894ef6bff215668f4b5c6009 GIT binary patch literal 784 zcma)3+e*Vg5KV2v2f-3rMf9ZzR=i*fYD@9Kmu+@}Yqwe1Nu==${4;;U z5AYv!rl?2_;sj2T+1WE^<~SM0ao#ET&9S&ZaMM%1HE4p!JBpQ--az0O8}%VrR3>ci zcujs9^-ip#*g`vmII==F>X-3IEB^wLff+;C9yND^yW8K5<*`AvXqhqyg5-CaCIaQx+)xlyNZ>NG(tY`D^fsktCiC7Z`rBh% z{q`_n&$k1DP)uNLF0TbfJtI}1K(5T4!Bk;{d6Kr2nK@Kqkvz;R+^rRAFVC4}PH|K| E00%hdxc~qF literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise_4.1.xml b/Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise_4.1.xml new file mode 100644 index 0000000..fc50c73 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise_4.1.xml @@ -0,0 +1,24 @@ + + + + +Exercise4.1 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise_4_1.Resources.resources b/Code/Chapter 4/VB.NET/Exercise 4.1/obj/Debug/Exercise_4_1.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY?D*%wbyrRd(*w! zV|Opu&>EvO5-5=hDj(>FwxOt%fU1Rxsua{h3za|>DpFPWP%6>-3rKDG&{A58NPqKo z_wMYN(yIN&JMX;t&CHuOZ{F-5)IWs$)4xDqH$~r#p#~QiC)hT2`T;WNr%#n zq3Is<$Y#2yxlhm~a06j>8ANrkfOL8nC3+~*A=KkndqG|hBW>pK7^8-Y z4rPT=kM3dJi4~+k<$CCZ8(9xL1|^nVW=%L|X!6D(5mp`7@TsfxKK<&xtNO17z|Pp9 z-$jmhETgOuNgu8qlfG+}<~_C;!=OI&JC07$B6!ZOL0IyFNZxLjqwm7SrYIe$!~XFe%7~F=_9xF#?x9H_k7#Ln zi=G8-7Z*@Hz2Zudre*Og_?W`{8Rc_If}T+x1^uJ)nv$X8v7uOo9*KPw^yi>y`XKfi z=oYmZ^B+)kH9?*_1NxYH7W5_cN|B&Hfu<=DZ-(co_|@?Q-4R~^y)Vu-kHy*kMerO` z5LuM#opdd-8=?I`4M3b7q9Z_?!Ne#IbOK{H!!{++$q?b*hVBe~1-b;^MWTrwp&!r{ zuxp`y+AFq$o)kMl&xvb5pAf^;Ne?LZ!TOiV*FpcTJOt{*o~6SY+)`reKd2dQZ&`z8 zBx+6#h)+QG#Sq;px_}-G(P_~S^kj%064wL0B2jkhufzeM_a%yEP&)~2pYmsshpsC` z?}`OvV2?znDW%vzw}iST9?u{3Fqj3dRJW%UxVenVnputK{@Imb;i%qLE05hVAm0qvXf57JCx6W-=RDq zZGJ52xTHS=9f6HUTZB%{Vq6)J(T^64O{e$>C=r@!HL7!262zp)YY0$H=7g3in{1ntu9F+Yi@YDd> zgeL_*@iv3z@N^bf(IxjLX>X$FP-@jC_(_Gv=VsK> z@X2kh-Ib_QKFw7`!iP~4o;|x^(nQ;2Pt=aSm+lh1B!Z!PCY(aWHm|3mmv>y-nxzRV z?>e3{=j+ETuVUCkhG*qzVrg%=Y+HH5x1173)4;3EE+&Sg!b{3-++< zoHX-3xZ~#Rr0Jfr@}@^q3$AGtCXG4s&@8KAb;>H3?o2-&F+Hc^ve7!fdQCHF`o4S^ z)thV_t6mprb^1CP7G#p1_ZImsLM+{ov8tu%8||wBPi{3~yl=Ukfy~ zR5n>4`za@Q=+iKE%QvT|$4j1Xl=9$cimVXOh~s z%e6Zw+&I(KPvO-62m`%f+x&3p9i>Gw$;I=V-v~^arU6|2q~m?ogv7xUj_WR#a>PL5+IMz1s#=WV>ZID#xY4T$uenCHKA;W)0C=Ft`$s1>7Znj5FLcRPYBV}K}s`0 z-AwGP4et|bH$W_rYsb~e)3h_`#H+gihTC=~ozQBm&=_fPO^9r7Dtfz*!cSri0iROA zrvg69d^X@)m~T<}X^m(_rb*DIi6vR`@)?R(7fM1P9}9RZqYOa(K_1EK&Kdr865F@O zl0w0iN|4C4W=DCVR^Ut=b9CTy5Lti>iO^J$K{EsmgvE&o^r(n+REzKA9oy3<9iu$v z`{iNV!f6!Aa~D4#nm2kX;B$j_6<pT zZUP<$-3OlAPt>M`w@APBm^x<5pU4&S#fIY9qm$oIuZX;g?6@iH+XbI(W7+xGY2}vGy z8=Y)AvcxBxg_V`0C!J0qew_;NCr?W1mg_hO?Yx|27(UDJ&l#Dg1$ZV|s=kcrP$=hY zaZFL>8U6ob8<2Sm)>*)b&FfsBy;|NlheV&2WA + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {6FA08203-A106-472C-956F-AD9717F62CA9} + Exe + Sub Main + Exercise_4_2 + Exercise 4.2 + Console + + + true + full + true + true + bin\Debug\ + Exercise_4.2.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise_4.2.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/Exercise 4.2.vbproj.user b/Code/Chapter 4/VB.NET/Exercise 4.2/Exercise 4.2.vbproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.2/Exercise 4.2.vbproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/Module1.vb b/Code/Chapter 4/VB.NET/Exercise 4.2/Module1.vb new file mode 100644 index 0000000..568b3d8 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.2/Module1.vb @@ -0,0 +1,35 @@ +Imports System.Data +Imports System.Data.SqlClient + +Module Module1 + + Sub Main() + Dim connstrBuilder As SqlConnectionStringBuilder = _ + New SqlConnectionStringBuilder() + connstrBuilder.DataSource = "(local)" + connstrBuilder.InitialCatalog = "Test" + connstrBuilder.IntegratedSecurity = True + + Using testConnection As SqlConnection = _ + New SqlConnection(connstrBuilder.ToString()) + Try + testConnection.Open() + If testConnection.State = ConnectionState.Open Then + Console.WriteLine("Connection successfully opened") + Console.WriteLine("Connection string used: " & _ + testConnection.ConnectionString) + End If + Catch ex As Exception + If testConnection.State <> ConnectionState.Open Then + Console.WriteLine("Connection successfully failed") + Console.WriteLine("Connection string used: " & _ + testConnection.ConnectionString) + End If + End Try + End Using + ' Automatic Dispose Call on conn ensures connection is closed. + Console.WriteLine("Press any key to continue ..") + Console.Read() + End Sub + +End Module diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Application.Designer.vb b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Application.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Application.myapp b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/AssemblyInfo.vb b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..10d6a1b --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Resources.Designer.vb b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Resources.Designer.vb new file mode 100644 index 0000000..7399844 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_4_2.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Resources.resx b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Settings.Designer.vb b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Settings.Designer.vb new file mode 100644 index 0000000..e01235c --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_4_2.Settings + Get + Return Global.Exercise_4_2.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Settings.settings b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.2/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/bin/Debug/Exercise 4.2.exe b/Code/Chapter 4/VB.NET/Exercise 4.2/bin/Debug/Exercise 4.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..c560c9159f6150c9c12497da99a79a7329249a11 GIT binary patch literal 24576 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 R$pI$^oE&g+;A72!{{#OH>)HSS literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/bin/Debug/Exercise_4.2.xml b/Code/Chapter 4/VB.NET/Exercise 4.2/bin/Debug/Exercise_4.2.xml new file mode 100644 index 0000000..cdd0642 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.2/bin/Debug/Exercise_4.2.xml @@ -0,0 +1,24 @@ + + + + +Exercise4.2 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/Exercise 4.2.exe b/Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/Exercise 4.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..c560c9159f6150c9c12497da99a79a7329249a11 GIT binary patch literal 24576 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 R$pI$^oE&g+;A72!{{#OH>)HSS literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/Exercise 4.2.vbproj.GenerateResource.Cache b/Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/Exercise 4.2.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..9ab3e949f1463c4a5cc76b79391d5c2488f73c5e GIT binary patch literal 784 zcma)3+e*Vg5KV2&0L z*n=ksC4{~LWGN*Jcz2{UU~M1}&Q&-B$^SiN!HbU6we@F5^FLvD!uX zOHp?1I>87=Ue{<%?P(e4od|r0#6ZKOL5}X^82&6RP(k_J2zexUh{E?~i(NB%5*BQg zNxMeEg*DGgf-Q35TD?GymW%mYp<_VD$z~nbtrXLGo&Iobq-Z{!HzL6?WAXjG2V5~60JV{&1OdKk)NFJuO|F%)6zrSXdImJ== E0{a!`8vp + + + +Exercise4.2 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/Exercise_4_2.Resources.resources b/Code/Chapter 4/VB.NET/Exercise 4.2/obj/Debug/Exercise_4_2.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYvQq;sioo$tVv{&YV<(|Bsy*Hv+mp`j zEHksg3#~Cqk%AJbpi+rS{Ru^_1XL|lRHdMnwD16`P?4&Zhw^~x7m!MMXe(NZNWXJu zW_RtF(yD#quIJ48&N=tobI(2Z&WtB-yPsl2q~f}KndoWUxeZDB@5u_(O`mwCiJoeB zx$9|h=;f~IMa$DluCw481ubV3i;l0&nVMTJYF1GjJu;;goV=-T-kk0ZT^}7IIwWHB zP16~UMthx_x;BXvQ5KR!ApOMv?i#KkTue0FlptYQ}xBox;8{KTn8n4k@Jeiu_+X%b5|3+)SE+Rhz5Py*2sBT5L-sMfH1f9r8#4}(z_D7R7EC+ z7i4SS52QSM@y^Kp<($qShBw!Ul+ zdhXg3Xp+u0sFKxjc==H?nPp5)?bBR@QhEgw3g+T;z}V}Q&Q{n$ngy#D=gF^U77Lf_4>O-Xb*MA+NV-AiAEF2TD zW4Z=*tu#RU#CFirVkhVYaXsjhVuZTrLFIl}|62JL=--uxL7muhbX0>|N^JcHwZQGI zYtXDjEvZ5AG3dS&qT56_&_f|QD+Yj`3em&jCZJa&%543OI0*EfM9~Op7oqJ}{w#9P zb%*F3v4{-pmFO&`6dUN)P}i*74pfpTL+#2E(1Q{QxO2xhhw3iEuT2k9%j{!}Gs3-O#pi>eBQO9XfqQGaIN)l~J-5qY@)__u zlqaRl&m^6Y^p~Kcu<>Y%(5XdCC?lB3Z)pOOaWPAGQ6t7@i3Q0g#fp@ir5xmE>5HKE zK|UxhO8F!7EIl9|k@lCQyKjC3j`dOuzXcTWso0wp^ zCU{&;a128sWy!3R&q~QkNLhYS@|Pqfg?p{i+ZZ7!3}K3rD2uP)*QoR=1Io>ciWN;@ zeUqRmdFFJ8BUtU-37H^!a;Js*1!bs57?K`q5W*^dHG z4WP|5r$8+X={eEpmjFKJtU0XNv0rg>r7Z%pT@$>nzXL7)^l=N_2bre9=jdu>5)SROn=<)7Dw>4 zK+~0y$pU$wc7lgKjbOEWb7p3u==nx52acx63IUB;Udh4o*Q+^FxQRM^KyD{1(URyB zMbt~tuxZ2rx8$EN?6Qe+;FL-MM^$wftU+BxM71$#6paPs(G9Bzm_p+Ncp))t>&~EP zN6NNecFl?6yi+v}WpWYLJLCyPdasU`aZ;oSheF8n)w0L`B=6O$UPUWWt(oa z0tDk?-f;858Bp^%j*S_}4jYBKu{I11+r_gMiZpK8rGsYW4#&;cJcT_*En}hRc)peM zFweR20u~H|#P%u8pAhgXIXdT*Tv;lwB?9{jO68CHr!| zb;jU*A5?dB873=gO9;JsT5Gw3Ia@0e*DOOo?y`pJqG z9?P{I6fT_U>Su83e~5vew{3p7^o`LHndIX6&2I!I&CnpOJ*4A()`Y~t6OOgaUj4M8hD3xt|NKPD+A878f&CY0@Pno>2&wt;CJ@K_1EK&Kdr865F@O zl0w0iN|4C5WyW}*HsGc>#^}W7AhG}%5}~Q03C$2R7#1f6(4!*OQ7yicb8Jtaa*Wcr z@0Uhw3#U;e&tCa}XxZqgfX@wHReU*xiB5y(#6gn8D)2f8q3{}nc3Y}`@Xo;0jt@D5~}QLWSE zYe*Zanf}k5kl)St23}d~DySfQUtb|-yK!8%4q-0^Ibad^LC_O4g}rxz#<2IM@XmgO z4g*hs?g!89=jz+6@I-NoMI_2R{o|M!h=Wz(y1v$zHe3sy!GqOO7@JzB)eHqh{P|n%n zn4-)x`v1o^DDxJ~GmjIS=ea(6wY+f-i9Rj+?8B`2+%I6Zw#?Rt^+VT>ZbRbm?=iZx O;o0-iP0L4R=Klin;ztqy literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.2/obj/Exercise 4.2.vbproj.FileList.txt b/Code/Chapter 4/VB.NET/Exercise 4.2/obj/Exercise 4.2.vbproj.FileList.txt new file mode 100644 index 0000000..7305b55 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.2/obj/Exercise 4.2.vbproj.FileList.txt @@ -0,0 +1,9 @@ +bin\Debug\Exercise 4.2.exe +bin\Debug\Exercise 4.2.pdb +bin\Debug\Exercise_4.2.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_4_2.Resources.resources +obj\Debug\Exercise 4.2.vbproj.GenerateResource.Cache +obj\Debug\Exercise 4.2.exe +obj\Debug\Exercise_4.2.xml +obj\Debug\Exercise 4.2.pdb diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/Exercise 4.3.vbproj b/Code/Chapter 4/VB.NET/Exercise 4.3/Exercise 4.3.vbproj new file mode 100644 index 0000000..b95c0df --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/Exercise 4.3.vbproj @@ -0,0 +1,84 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {ECAF71A9-523D-400F-84D3-F5F1D0C0F9F8} + Exe + Sub Main + Exercise_4_3 + Exercise 4.3 + Console + + + true + full + true + true + bin\Debug\ + Exercise_4.3.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise_4.3.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/Exercise 4.3.vbproj.user b/Code/Chapter 4/VB.NET/Exercise 4.3/Exercise 4.3.vbproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/Exercise 4.3.vbproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/Module1.vb b/Code/Chapter 4/VB.NET/Exercise 4.3/Module1.vb new file mode 100644 index 0000000..c612116 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/Module1.vb @@ -0,0 +1,21 @@ +Imports System.Data +Imports System.Data.SqlClient + +Module Module1 + + Sub Main() + Dim testConnection As SqlConnection = New SqlConnection("") + Dim startTicks As Long = DateTime.Now.Ticks + + For i As Integer = 0 To 1000 + testConnection = New SqlConnection("") + testConnection.Open() + testConnection.Close() + Next + + Dim endTicks As Long = DateTime.Now.Ticks + Console.WriteLine("Time taken : " & (endTicks - startTicks) & " ticks.") + testConnection.Dispose() + End Sub + +End Module diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Application.Designer.vb b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Application.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Application.myapp b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/AssemblyInfo.vb b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..a98d839 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Resources.Designer.vb b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Resources.Designer.vb new file mode 100644 index 0000000..01e214e --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_4_3.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Resources.resx b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Settings.Designer.vb b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Settings.Designer.vb new file mode 100644 index 0000000..c185230 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_4_3.Settings + Get + Return Global.Exercise_4_3.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Settings.settings b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/bin/Debug/Exercise 4.3.exe b/Code/Chapter 4/VB.NET/Exercise 4.3/bin/Debug/Exercise 4.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..3306dac1b92cd2b602e3f0fe37754214b0039266 GIT binary patch literal 24576 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 M67WjkLoI>-1HW3^Pyhe` literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/bin/Debug/Exercise_4.3.xml b/Code/Chapter 4/VB.NET/Exercise 4.3/bin/Debug/Exercise_4.3.xml new file mode 100644 index 0000000..e85b65a --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/bin/Debug/Exercise_4.3.xml @@ -0,0 +1,24 @@ + + + + +Exercise4.3 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise 4.3.exe b/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise 4.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..3306dac1b92cd2b602e3f0fe37754214b0039266 GIT binary patch literal 24576 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 M67WjkLoI>-1HW3^Pyhe` literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise 4.3.vbproj.GenerateResource.Cache b/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise 4.3.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..f16a59ae5db1563cd716761a6109326c6bc5614a GIT binary patch literal 784 zcma)3%}T>S5Ke8=Uxj)Q5j_;~AX-9e5xo?_O0{UgpCTT-Y_k(wyUof@BE~212|W8Y zzKrjnGet#e5GU{@nVtRSoB5oK<2dgW{N|XQA-L)*-x@SQg!S4bSX3r# zZ+Q)V>a|X+qu4?_ggCN7*K4QoP%Hl!l7SgP*d8`o!FI3{G@Ej}AzH%aHtVVE-Z|hQ zga>d3p@h&^fGnkC0k67B11=5)!ifq;Ao>45S@0uclU!ysop73JLYF1Zvdj37Tda0g z{!o-%xkxaAvDYzLQ+rwldPf3pA~Do3X^^8kIfg$=3sg`(F+z3)4^jBsY_Vg;cfx|L zGHJ(1IJM?pNw7suT&PFL(Q+|=DRd0zIN7Y@x|L#Duih8eT8if0FaEc)-94VST&@t7 zT!uVBmB08P&zhI|NsT1k((Kn{n2D_q=#fVcRW9bbQjx%AXr}w}+vrV7O-$y!RrI&V zxcKd1!k%vi1fdwi@>E_6jQU2ZK!IGCI)ev=5#~wSTxQ}>iAC}-FVBOG!qV$gW}Z_V Fl@A4m=cNDu literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise_4.3.xml b/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise_4.3.xml new file mode 100644 index 0000000..e85b65a --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise_4.3.xml @@ -0,0 +1,24 @@ + + + + +Exercise4.3 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise_4_3.Resources.resources b/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Debug/Exercise_4_3.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 NJ$pXAY5BCQ{9h5iMdAPe literal 0 HcmV?d00001 diff --git a/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Exercise 4.3.vbproj.FileList.txt b/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Exercise 4.3.vbproj.FileList.txt new file mode 100644 index 0000000..14c1416 --- /dev/null +++ b/Code/Chapter 4/VB.NET/Exercise 4.3/obj/Exercise 4.3.vbproj.FileList.txt @@ -0,0 +1,9 @@ +bin\Debug\Exercise 4.3.exe +bin\Debug\Exercise 4.3.pdb +bin\Debug\Exercise_4.3.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_4_3.Resources.resources +obj\Debug\Exercise 4.3.vbproj.GenerateResource.Cache +obj\Debug\Exercise 4.3.exe +obj\Debug\Exercise_4.3.xml +obj\Debug\Exercise 4.3.pdb diff --git a/Code/Chapter 5/C#/Chapter 5.sln b/Code/Chapter 5/C#/Chapter 5.sln new file mode 100644 index 0000000..5e90394 --- /dev/null +++ b/Code/Chapter 5/C#/Chapter 5.sln @@ -0,0 +1,52 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example 5.1", "Example 5.1\Example 5.1.csproj", "{2032B2F7-FB32-4F0A-85B2-F244A00D7C7A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example 5.2", "Example 5.2\Example 5.2.csproj", "{9BADFDE1-E7A7-4A83-BD6D-66C63EC0C3B4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example 5.3", "Example 5.3\Example 5.3.csproj", "{A9BF919B-C474-4FE2-8DFA-3941867260CD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example 5.4", "Example 5.4\Example 5.4.csproj", "{5A7097A3-6668-4BCD-B51B-F075120AC2D2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example 5.5", "Example 5.5\Example 5.5.csproj", "{860D16E0-FE95-4595-B610-01D914CF0114}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UDT", "UDT\UDT.csproj", "{32559532-9827-4355-9CBA-D41ED185F3D8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2032B2F7-FB32-4F0A-85B2-F244A00D7C7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2032B2F7-FB32-4F0A-85B2-F244A00D7C7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2032B2F7-FB32-4F0A-85B2-F244A00D7C7A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2032B2F7-FB32-4F0A-85B2-F244A00D7C7A}.Release|Any CPU.Build.0 = Release|Any CPU + {9BADFDE1-E7A7-4A83-BD6D-66C63EC0C3B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9BADFDE1-E7A7-4A83-BD6D-66C63EC0C3B4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9BADFDE1-E7A7-4A83-BD6D-66C63EC0C3B4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9BADFDE1-E7A7-4A83-BD6D-66C63EC0C3B4}.Release|Any CPU.Build.0 = Release|Any CPU + {A9BF919B-C474-4FE2-8DFA-3941867260CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9BF919B-C474-4FE2-8DFA-3941867260CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9BF919B-C474-4FE2-8DFA-3941867260CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9BF919B-C474-4FE2-8DFA-3941867260CD}.Release|Any CPU.Build.0 = Release|Any CPU + {5A7097A3-6668-4BCD-B51B-F075120AC2D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A7097A3-6668-4BCD-B51B-F075120AC2D2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A7097A3-6668-4BCD-B51B-F075120AC2D2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A7097A3-6668-4BCD-B51B-F075120AC2D2}.Release|Any CPU.Build.0 = Release|Any CPU + {860D16E0-FE95-4595-B610-01D914CF0114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {860D16E0-FE95-4595-B610-01D914CF0114}.Debug|Any CPU.Build.0 = Debug|Any CPU + {860D16E0-FE95-4595-B610-01D914CF0114}.Release|Any CPU.ActiveCfg = Release|Any CPU + {860D16E0-FE95-4595-B610-01D914CF0114}.Release|Any CPU.Build.0 = Release|Any CPU + {32559532-9827-4355-9CBA-D41ED185F3D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32559532-9827-4355-9CBA-D41ED185F3D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32559532-9827-4355-9CBA-D41ED185F3D8}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {32559532-9827-4355-9CBA-D41ED185F3D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32559532-9827-4355-9CBA-D41ED185F3D8}.Release|Any CPU.Build.0 = Release|Any CPU + {32559532-9827-4355-9CBA-D41ED185F3D8}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 5/C#/Chapter 5.suo b/Code/Chapter 5/C#/Chapter 5.suo new file mode 100644 index 0000000000000000000000000000000000000000..e833d8d3f9ce69ebc016ac878728c672702f5e4e GIT binary patch literal 33410 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.1/Example 5.1.csproj b/Code/Chapter 5/C#/Example 5.1/Example 5.1.csproj new file mode 100644 index 0000000..f179fb8 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.1/Example 5.1.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {2032B2F7-FB32-4F0A-85B2-F244A00D7C7A} + Exe + Example_5_1 + Example 5.1 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.1/Example 5.1.csproj.user b/Code/Chapter 5/C#/Example 5.1/Example 5.1.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.1/Example 5.1.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.1/Example 5.suo b/Code/Chapter 5/C#/Example 5.1/Example 5.suo new file mode 100644 index 0000000000000000000000000000000000000000..803181771b5cf06b84cd5a0a0b6eaa3936bf4139 GIT binary patch literal 2560 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4%9zsqZbt)A?Ac!F!2um0g7+e|hfOHWmL6*zQb7Zzh+Vgv;Ps4N1}*i~VQ0*fy&@MkCm z`Z|Xp6KFpOr!xct`H4WB%3z484MRi$SPFvdg#io&SOh>`@4_NZt`N*_5KXEXpnMMs zJ5Zc}*rQ-%g}{@j!goHB?M_od?&}NwxyVgw`YB>?X0T$2VQ^$90OsUWhGHO$Ven;$ z1ePe_4E_v34BkM#GeZV2PZfZ3RS{4|nZXn+n$M5|)Dr{F^@$9*KovPaz5-BI519L6 n7$BuXI?!a0tR6!$&~yfdc+WNsRv-<^N3hr;)!n1&At3+&n!F5m literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.1/Program.cs b/Code/Chapter 5/C#/Example 5.1/Program.cs new file mode 100644 index 0000000..82dd8b6 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.1/Program.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; + +using System.Data; +using System.Data.SqlClient ; +#endregion + +namespace Example_5_1 +{ + class Program + { + static void Main(string[] args) + { + string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI" ; + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = new SqlCommand("Select count(*) from TestDemo",testConnection); + testConnection.Open(); + int numResults = (int) testCommand.ExecuteScalar(); + Console.WriteLine("Total number of rows in TestDemo: " + numResults); + testConnection.Close(); + } // testConnection.Dispose is called automatically + Console.Read() ; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.1/Properties/AssemblyInfo.cs b/Code/Chapter 5/C#/Example 5.1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a582013 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.1/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Example_5_1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Example_5_1")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 5/C#/Example 5.1/Properties/Resources.cs b/Code/Chapter 5/C#/Example 5.1/Properties/Resources.cs new file mode 100644 index 0000000..6a4febe --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.1/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_5_1.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 5/C#/Example 5.1/Properties/Resources.resx b/Code/Chapter 5/C#/Example 5.1/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.1/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.1/Properties/Settings.cs b/Code/Chapter 5/C#/Example 5.1/Properties/Settings.cs new file mode 100644 index 0000000..528d471 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.1/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_5_1.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 5/C#/Example 5.1/Properties/Settings.settings b/Code/Chapter 5/C#/Example 5.1/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.1/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.1/bin/Debug/Example 5.1.exe b/Code/Chapter 5/C#/Example 5.1/bin/Debug/Example 5.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..ceae59b3dfe1773eb907c6855645dfdc61a9a8a3 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.1/bin/Debug/Example 5.1.pdb b/Code/Chapter 5/C#/Example 5.1/bin/Debug/Example 5.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..78a5c93ee95c362471337fd7ae919ee2a373e665 GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.1/bin/Debug/Example 5.1.vshost.exe b/Code/Chapter 5/C#/Example 5.1/bin/Debug/Example 5.1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.1/obj/Debug/Example 5.1.pdb b/Code/Chapter 5/C#/Example 5.1/obj/Debug/Example 5.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..78a5c93ee95c362471337fd7ae919ee2a373e665 GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.1/obj/Debug/Example_5_1.Properties.Resources.resources b/Code/Chapter 5/C#/Example 5.1/obj/Debug/Example_5_1.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY + + Debug + AnyCPU + 8.0.40607 + 2.0 + {9BADFDE1-E7A7-4A83-BD6D-66C63EC0C3B4} + Exe + Example_5_2 + Example 5.2 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + True + + + True + Settings.settings + + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.2/Example 5.2.csproj.user b/Code/Chapter 5/C#/Example 5.2/Example 5.2.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.2/Example 5.2.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.2/Example 5.suo b/Code/Chapter 5/C#/Example 5.2/Example 5.suo new file mode 100644 index 0000000000000000000000000000000000000000..a81e6948a223a86505ea94fe8e178a5c0f5376b8 GIT binary patch literal 2560 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4%9zsqZbt)A?Ac!F!2um0g7+e|hfOHWmL6*zQb7Zzh+Vgv;Ps4N1}*i~VQ0*fy&@MkCm z`Z|Xp6KFpOr!xct`H4WB%3z484MRi$SPFvdg#io&SOh>`@4_NZt`N*_5KXEXpnMMs zJ5Zc}*rQ-%g}{@j!goHB?M_od?&}NwxyVgw`YB>?X0T$2VQ^$90OsUWhGHO$Ven;$ z1ePe_4E_v34BkM#GeZV2PZfZ3RS{4|nZXn+n$M5|)Dr{F^@$9*KovPaz5-BIkHH8i m4k;bdfhL1w^%# +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_5_2.Properties { + using System; + using System.IO; + using System.Resources; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager { + get { + if ((_resMgr == null)) { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Example_5_2.Properties.Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture { + get { + return _resCulture; + } + set { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 5/C#/Example 5.2/Properties/Resources.resx b/Code/Chapter 5/C#/Example 5.2/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.2/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.2/Properties/Settings.cs b/Code/Chapter 5/C#/Example 5.2/Properties/Settings.cs new file mode 100644 index 0000000..c0bd148 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.2/Properties/Settings.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_5_2.Properties { + + + sealed partial class Settings : System.Configuration.ApplicationSettingsBase { + + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + [System.Diagnostics.DebuggerNonUserCode()] + public static Settings Value { + get { + if ((Settings.m_Value == null)) { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) { + try { + Settings.m_Value = new Settings(); + } + finally { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 5/C#/Example 5.2/Properties/Settings.settings b/Code/Chapter 5/C#/Example 5.2/Properties/Settings.settings new file mode 100644 index 0000000..fc73030 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.2/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.2/app.config b/Code/Chapter 5/C#/Example 5.2/app.config new file mode 100644 index 0000000..1b99773 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.2/app.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.exe b/Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..52ee082fffd0426bb4f5494d07e54b9e7a491cd1 GIT binary patch literal 16384 zcmeHMZ)_aJ6@PoTzB@biHFtrK|7_v_#&NC}$8P>p+jmZ4uoK7U*w9)vdv}xblDpl@ z?w+v`4MtQ*h*l+)S|n6dmG(m;l9sAzp|n(@DwSG9Mf;^tQN#yS389LXs!~NI=6tuk`};lJ0#2tVla}gmy2p?^ID21$F)BE zGY~7&-9)XB9f#ePmAY&38WCo&m}20MFLFdFSIoKKdp-pMo%GT78=OoU(cLNAu?yg& zZ+)n+jfUKi`k+qPqHMvCeWkmR*)EOTkot%Q8rYy3AP^uBAP^uBAP^uBAP^uBAP^uB zAP^w%e}uqVzE>mh-84i^^x6)h>KY;iJnpX%4SfBZ0Neey)EVk%BWi(JC#_3|=`d>O zD?#T$)$2Y~)_)492V;cxjvjxKz+2u1tZziL_UUJc>rLn~u z)Uh4q&7J<-;`Go30!~Dj4^OU>>sOF}_uKb=0e|QMayd8exT2C86OL803&L5fjS0Od z>@Kb16fC=J;*!3iC*Q z-#)#!(EFJ^2ln=e^!@|ws|Tx@u2B*7(R0GZ4p>a1{aOBJp9gZc4=8dMd*4K6*@@ot zzV3Z&-9%;3D_HsV^F$gJ>~F~JIoCGKlEW5joAJE|lWsqqqb|US<)`*zr-!mA4}~2QG_njH$neIFM-Y|6H0_0l=KNne=O;%lD;EpD8x3~CB043nb7IbA-W#}N9gI$ zqoD}BEa^W(IwT)Rx-C4Rw9shyV7P@0&-^-_;e^ve+~aJ9H)Ovx>1d&aoVM_ zz7hKuz*p$IKG&*j2KO_c+n{LRe&uuh z%08?}b~_#d2xtNty-qi)Nz{kbZ`0qYsD2N$s$K$pK>Z;p%46zJs9E`z`g2GwLYq*Y zhkdhhQGJnarAO(Dl%l=#2hc;37AUEtsGVMeWEZ^$nvwF&lHMUD_<{o9}_A5Ut z^`y|9vbtQRUq$vZ4=j@c`b&NoIUOFcinX%1jRxoRO0_Js-c)x=%n7Q;7N@S6?w#&V zjoMaK*sdWQLeOz#n1GBwbT`^jJ^GOsy69y79#L?8E|sy&Ge)Uq>n`FV^;fHiezIQg zb3k`Q-FV57dTm5E^^&k@+7`}8$*vn7Lm1M_#(iF|evln9&sfsX=P6ZiEt^WhonF}; z%j#B6L%lAmOi$?LnxM*bZr&{TGvY>`*rOx5Vb&cQ6KBepwVb2lh)TXZ@1F(zE<$X+ z<_hZf75*Tr72`I}lZtMiU9HMk)p^?}&A6*oSd(I{a1}+ys#JAzeszmwYqDCM6;8o6 zsyvz1%5lRjizTstTxAWtWLl1E6dcNme63W{^NnVn3|k0WkoS{+qIyRg_DH2_l!cuW z_N;*emOO!6+%Zws=VZ-U8gnxw_3PsM{q#AJ+Op*!ZJ@g!p>l{rK#&SPU|}Ax~n(VQ@L~HOxb{k#5Kz_ z{VgfEN(FOYW{wF}@K9#+4W=in0-O3=Ig7r%_ZwafZaN@l^jU*Fo)ZP^XJ4DmH<zIRIg#1@D8SnZBX%6oZ6{_OhN6<9&B6lO2k0MH2kP4J887Lh{$7E?y4bpXSV{=Pe^k4rCm(OGyxrpCPi@1%9<+8bV�$jv-b}@ zJ21NG@f|;!Wt+i+Q~g!!Qb!xm3ukLpXX@zCiT+`2w>C1b4OrIMDSq0gGBbJ=Q9nU_;%_O#)SAJG%m+nPAD~l|sf?jp(vZHvGIZkkdIm594 zX{WqRjYG@NzXLtT9PgQz2K0=Yg|7;Ha%D^~5t&x^q)D4Jen$8HdJx-y0rlZmc4g82 z>am5#xmv`<dKr=XjY`s4DZG>m#lw#)#tDq=53#u9FtF8Ww4(=e`vzix>HVg}Zn{W$5j zGkibl7_wI%&!7DgOYaOS;w<2Jzcibb^YKnC#;{LfxV+s;B(H^IR<`d4?tE5Nu(D;K zpkY@nUyW<^0XKpaAP^uBAP^uBAP^uBAP^uBAP^uBAn?gSK=XbdP1i5npB&EvPXh!3 h1OfyC1OfyC1OfyC1OfyC1OfyC1OfyC1U@DL{{eFJ0-XQ= literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.exe.config b/Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.exe.config new file mode 100644 index 0000000..1b99773 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.exe.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.pdb b/Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3a31f46a6412dc4da655eb68f18a30b58380de8e GIT binary patch literal 19968 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 KbF4R?2L1==33zP) literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.vshost.exe b/Code/Chapter 5/C#/Example 5.2/bin/Debug/Example 5.2.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.2/obj/Debug/Example 5.2.csproj.GenerateResource.Cache b/Code/Chapter 5/C#/Example 5.2/obj/Debug/Example 5.2.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..a95155b30e11b6ad09fe95f539de1827df275fc6 GIT binary patch literal 784 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�$jv-b}@ zJ21NG@f|;!Wt+i+Q~g!!Qb!xm3ukLpXX@zCiT+`2w>C1b4OrIMDSq0gGBbJ=Q9nU_;%_O#)SAJG%m+nPAD~l|sf?jp(vZHvGIZkkdIm594 zX{WqRjYG@NzXLtT9PgQz2K0=Yg|7;Ha%D^~5t&x^q)D4Jen$8HdJx-y0rlZmc4g82 z>am5#xmv`<dKr=XjY`s4DZG>m#lw#)#tDq=53#u9FtF8Ww4(=e`vzix>HVg}Zn{W$5j zGkibl7_wI%&!7DgOYaOS;w<2Jzcibb^YKnC#;{LfxV+s;B(H^IR<`d4?tE5Nu(D;K zpkY@nUyW<^0XKpaAP^uBAP^uBAP^uBAP^uBAP^uBAn?gSK=XbdP1i5npB&EvPXh!3 h1OfyC1OfyC1OfyC1OfyC1OfyC1OfyC1U@DL{{eFJ0-XQ= literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.2/obj/Debug/Example 5.2.pdb b/Code/Chapter 5/C#/Example 5.2/obj/Debug/Example 5.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3a31f46a6412dc4da655eb68f18a30b58380de8e GIT binary patch literal 19968 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 KbF4R?2L1==33zP) literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.2/obj/Debug/Example_5_2.Properties.Resources.resources b/Code/Chapter 5/C#/Example 5.2/obj/Debug/Example_5_2.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY + + Debug + AnyCPU + 8.0.50215 + 2.0 + {A9BF919B-C474-4FE2-8DFA-3941867260CD} + WinExe + Exampple_5_4 + Exampple 5.4 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.3/Example 5.3.csproj.user b/Code/Chapter 5/C#/Example 5.3/Example 5.3.csproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.3/Example 5.3.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.3/Example 5.suo b/Code/Chapter 5/C#/Example 5.3/Example 5.suo new file mode 100644 index 0000000000000000000000000000000000000000..6fbc48499b6b0165976b1a8025c9f85736d187b8 GIT binary patch literal 2560 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4%9zsqZbt)A?Ac!F!2um0g7+e|hfOHW*up+L+If#o!6FJq^fmWvIYs1csa#uoOZL1`Gu_1c1dC82B@k0)3ss zkO{OOgwq*4p0Z8IN`$_gc z3s8R>)C^F*2gMu6{UA0gkOr0cAoeI2{vq%rs_>nUWV_Rpko)?Ae=c$Zqn;#C#Nfx$*By*Kp4Z|%Mb}HQNkJg8G;zRfqZ9%3}Bur0OzVApo}tuDOfb0AqA)> z2At~?8FGOta)5jVpsXH)F;E;*I-~ + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + this.btnPopulate = new System.Windows.Forms.Button(); + this.myDataGrid = new System.Windows.Forms.DataGridView(); + this.btnDataBind = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.myDataGrid)).BeginInit(); + this.SuspendLayout(); + // + // btnPopulate + // + this.btnPopulate.Location = new System.Drawing.Point(98, 160); + this.btnPopulate.Name = "btnPopulate"; + this.btnPopulate.Size = new System.Drawing.Size(98, 23); + this.btnPopulate.TabIndex = 0; + this.btnPopulate.Text = "Populate Arraylist"; + this.btnPopulate.Click += new System.EventHandler(this.btnPopulate_Click); + // + // myDataGrid + // + dataGridViewCellStyle1.BackColor = System.Drawing.Color.Silver; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + this.myDataGrid.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.myDataGrid.DefaultCellStyle = dataGridViewCellStyle2; + this.myDataGrid.Font = new System.Drawing.Font("Tahoma", 8F); + this.myDataGrid.GridColor = System.Drawing.Color.Silver; + this.myDataGrid.Location = new System.Drawing.Point(5, 3); + this.myDataGrid.Name = "myDataGrid"; + this.myDataGrid.RowHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.myDataGrid.Size = new System.Drawing.Size(279, 150); + this.myDataGrid.TabIndex = 1; + // + // btnDataBind + // + this.btnDataBind.Location = new System.Drawing.Point(209, 160); + this.btnDataBind.Name = "btnDataBind"; + this.btnDataBind.Size = new System.Drawing.Size(75, 23); + this.btnDataBind.TabIndex = 2; + this.btnDataBind.Text = "DataBind"; + this.btnDataBind.Click += new System.EventHandler(this.btnDataBind_Click); + // + // Form1 + // + this.ClientSize = new System.Drawing.Size(290, 185); + this.Controls.Add(this.btnDataBind); + this.Controls.Add(this.myDataGrid); + this.Controls.Add(this.btnPopulate); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.Name = "Form1"; + this.Text = "Example 5.3"; + ((System.ComponentModel.ISupportInitialize)(this.myDataGrid)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnPopulate; + private System.Windows.Forms.DataGridView myDataGrid; + private System.Windows.Forms.Button btnDataBind; + } +} + diff --git a/Code/Chapter 5/C#/Example 5.3/Form1.cs b/Code/Chapter 5/C#/Example 5.3/Form1.cs new file mode 100644 index 0000000..395ce6f --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.3/Form1.cs @@ -0,0 +1,52 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +using System.Data.SqlClient ; +using System.Data.Common; +using System.Collections; + +#endregion + +namespace Example_5_3 +{ + partial class Form1 : Form + { + private ArrayList dbRecordsHolder; + public Form1() + { + InitializeComponent(); + dbRecordsHolder = new ArrayList(); + } + + private void btnPopulate_Click(object sender, EventArgs e) + { + string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI"; + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = + new SqlCommand("Select * from TestDemo", testConnection); + testConnection.Open(); + SqlDataReader sqlDr = testCommand.ExecuteReader(CommandBehavior.CloseConnection); + + if (sqlDr.HasRows) + { + foreach (DbDataRecord rec in sqlDr) + { + dbRecordsHolder.Add(rec); + } + } + } // testConnection.Dispose is called automatically + } + + private void btnDataBind_Click(object sender, EventArgs e) + { + myDataGrid.DataSource = dbRecordsHolder; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.3/Form1.resx b/Code/Chapter 5/C#/Example 5.3/Form1.resx new file mode 100644 index 0000000..02bbfa2 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.3/Form1.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.3/Program.cs b/Code/Chapter 5/C#/Example 5.3/Program.cs new file mode 100644 index 0000000..91d93fd --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.3/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Example_5_3 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.3/Properties/AssemblyInfo.cs b/Code/Chapter 5/C#/Example 5.3/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ac9baac --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.3/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exampple_5_4")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exampple_5_4")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 5/C#/Example 5.3/Properties/Resources.cs b/Code/Chapter 5/C#/Example 5.3/Properties/Resources.cs new file mode 100644 index 0000000..e9886cc --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.3/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_5_3.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 5/C#/Example 5.3/Properties/Resources.resx b/Code/Chapter 5/C#/Example 5.3/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.3/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.3/Properties/Settings.cs b/Code/Chapter 5/C#/Example 5.3/Properties/Settings.cs new file mode 100644 index 0000000..986b91a --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.3/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_5_3.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 5/C#/Example 5.3/Properties/Settings.settings b/Code/Chapter 5/C#/Example 5.3/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.3/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.3/bin/Debug/Exampple 5.4.exe b/Code/Chapter 5/C#/Example 5.3/bin/Debug/Exampple 5.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..bdcd25d8669f0712a6070e05299f854fc4138310 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.3/bin/Debug/Exampple 5.4.pdb b/Code/Chapter 5/C#/Example 5.3/bin/Debug/Exampple 5.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0c352c48f89304ea9d20aaab18473bcc52217806 GIT binary patch literal 32256 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 Nf%Ed=a2j*q{{UT7`>_B3 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.3/bin/Debug/Exampple 5.4.vshost.exe b/Code/Chapter 5/C#/Example 5.3/bin/Debug/Exampple 5.4.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.3/obj/Debug/Example_5_3.Form1.resources b/Code/Chapter 5/C#/Example 5.3/obj/Debug/Example_5_3.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.3/obj/Debug/Exampple 5.4.pdb b/Code/Chapter 5/C#/Example 5.3/obj/Debug/Exampple 5.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..0c352c48f89304ea9d20aaab18473bcc52217806 GIT binary patch literal 32256 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 Nf%Ed=a2j*q{{UT7`>_B3 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.3/obj/Debug/Exampple_5_4.Properties.Resources.resources b/Code/Chapter 5/C#/Example 5.3/obj/Debug/Exampple_5_4.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY + + Debug + AnyCPU + 8.0.50215 + 2.0 + {5A7097A3-6668-4BCD-B51B-F075120AC2D2} + WinExe + Exampple_5_4 + Exampple 5.4 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.4/Example 5.4.csproj.user b/Code/Chapter 5/C#/Example 5.4/Example 5.4.csproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.4/Example 5.4.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.4/Example 5.suo b/Code/Chapter 5/C#/Example 5.4/Example 5.suo new file mode 100644 index 0000000000000000000000000000000000000000..eeca0c83bb47bfd812bbaa8e147997fb8df7a872 GIT binary patch literal 2560 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4%9zsqZbt)A?Ac!F!2um0g7+e|hfOHW*up+L+If#o!6FJq^fmWvIYs1csa#uoOZL1`Gu_1c1dC82B@k0)3ss zkO{OOgwq*4p0Z8IN`$_gc z3s8R>)C^F*2gMu6{UA0gkOr0cAoeI2{vq%rs_>nUWV_Rpko)?Ae=c$Zqn;#C#Nfx$*By*Kp4Z|%Mb}HQNkJg8G;zRfqZ9%3}Bur0OzVApo}tuDOfb0AqA)> z2At~?8FGOta)5jVpsXH)2~ZqTI-~ + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + this.btnPopulate = new System.Windows.Forms.Button(); + this.myDataGrid = new System.Windows.Forms.DataGridView(); + this.btnDataBind = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.myDataGrid)).BeginInit(); + this.SuspendLayout(); + // + // btnPopulate + // + this.btnPopulate.Location = new System.Drawing.Point(98, 160); + this.btnPopulate.Name = "btnPopulate"; + this.btnPopulate.Size = new System.Drawing.Size(98, 23); + this.btnPopulate.TabIndex = 0; + this.btnPopulate.Text = "Populate Arraylist"; + this.btnPopulate.Click += new System.EventHandler(this.btnPopulate_Click); + // + // myDataGrid + // + dataGridViewCellStyle1.BackColor = System.Drawing.Color.Silver; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + this.myDataGrid.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.myDataGrid.DefaultCellStyle = dataGridViewCellStyle2; + this.myDataGrid.Font = new System.Drawing.Font("Tahoma", 8F); + this.myDataGrid.GridColor = System.Drawing.Color.Silver; + this.myDataGrid.Location = new System.Drawing.Point(5, 3); + this.myDataGrid.Name = "myDataGrid"; + this.myDataGrid.RowHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.myDataGrid.Size = new System.Drawing.Size(279, 150); + this.myDataGrid.TabIndex = 1; + // + // btnDataBind + // + this.btnDataBind.Location = new System.Drawing.Point(209, 160); + this.btnDataBind.Name = "btnDataBind"; + this.btnDataBind.Size = new System.Drawing.Size(75, 23); + this.btnDataBind.TabIndex = 2; + this.btnDataBind.Text = "DataBind"; + this.btnDataBind.Click += new System.EventHandler(this.btnDataBind_Click); + // + // Form1 + // + this.ClientSize = new System.Drawing.Size(290, 185); + this.Controls.Add(this.btnDataBind); + this.Controls.Add(this.myDataGrid); + this.Controls.Add(this.btnPopulate); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.Name = "Form1"; + this.Text = "Example 5.4"; + ((System.ComponentModel.ISupportInitialize)(this.myDataGrid)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button btnPopulate; + private System.Windows.Forms.DataGridView myDataGrid; + private System.Windows.Forms.Button btnDataBind; + } +} + diff --git a/Code/Chapter 5/C#/Example 5.4/Form1.cs b/Code/Chapter 5/C#/Example 5.4/Form1.cs new file mode 100644 index 0000000..7421fdd --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.4/Form1.cs @@ -0,0 +1,62 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +using System.Data.SqlClient ; +using System.Data.Common; +using System.Collections; + +#endregion + +namespace Example_5_4 +{ + partial class Form1 : Form + { + private ArrayList dbRecordsHolder; + public Form1() + { + InitializeComponent(); + dbRecordsHolder = new ArrayList(); + } + + private void btnPopulate_Click(object sender, EventArgs e) + { + string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI;Asynchronous Processing=true"; + SqlConnection testConnection = new SqlConnection(connectionString); + + SqlCommand testCommand = + new SqlCommand("Select * from TestDemo", testConnection); + testConnection.Open(); + + AsyncCallback callback = new AsyncCallback(DataReaderIsReady); + IAsyncResult asyncresult = testCommand.BeginExecuteReader(callback, testCommand); + } + + private void DataReaderIsReady(IAsyncResult result) + { + MessageBox.Show("Results Load Complete","I'm Done"); + SqlCommand testCommand = (SqlCommand)result.AsyncState; + + SqlDataReader sqlDr = testCommand.EndExecuteReader(result); + if (sqlDr.HasRows) + { + foreach (DbDataRecord rec in sqlDr) + { + dbRecordsHolder.Add(rec); + } + } + sqlDr.Close(); + testCommand.Connection.Dispose(); + } + + private void btnDataBind_Click(object sender, EventArgs e) + { + myDataGrid.DataSource = dbRecordsHolder; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.4/Form1.resx b/Code/Chapter 5/C#/Example 5.4/Form1.resx new file mode 100644 index 0000000..02bbfa2 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.4/Form1.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.4/Program.cs b/Code/Chapter 5/C#/Example 5.4/Program.cs new file mode 100644 index 0000000..8c484d3 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.4/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Example_5_4 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.4/Properties/AssemblyInfo.cs b/Code/Chapter 5/C#/Example 5.4/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ac9baac --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.4/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exampple_5_4")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exampple_5_4")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 5/C#/Example 5.4/Properties/Resources.cs b/Code/Chapter 5/C#/Example 5.4/Properties/Resources.cs new file mode 100644 index 0000000..efefe37 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.4/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_5_4.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 5/C#/Example 5.4/Properties/Resources.resx b/Code/Chapter 5/C#/Example 5.4/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.4/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.4/Properties/Settings.cs b/Code/Chapter 5/C#/Example 5.4/Properties/Settings.cs new file mode 100644 index 0000000..a4bcae2 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.4/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_5_4.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 5/C#/Example 5.4/Properties/Settings.settings b/Code/Chapter 5/C#/Example 5.4/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.4/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.4/bin/Debug/Exampple 5.4.exe b/Code/Chapter 5/C#/Example 5.4/bin/Debug/Exampple 5.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..25ae526671e32b16b413a095838f4949155b7069 GIT binary patch literal 20480 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 Q2LcZS9tb?}Kk>kS0eBMy9RL6T literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.4/bin/Debug/Exampple 5.4.pdb b/Code/Chapter 5/C#/Example 5.4/bin/Debug/Exampple 5.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..73e46f35a29e226c6bd918657f43f121cfb53037 GIT binary patch literal 32256 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.4/bin/Debug/Exampple 5.4.vshost.exe b/Code/Chapter 5/C#/Example 5.4/bin/Debug/Exampple 5.4.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.4/obj/Debug/Example 5.4.csproj.GenerateResource.Cache b/Code/Chapter 5/C#/Example 5.4/obj/Debug/Example 5.4.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..b59e1e463223b035db960fb205ee3db330c98ed3 GIT binary patch literal 842 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 Q2LcZS9tb?}Kk>kS0eBMy9RL6T literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.4/obj/Debug/Exampple 5.4.pdb b/Code/Chapter 5/C#/Example 5.4/obj/Debug/Exampple 5.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..73e46f35a29e226c6bd918657f43f121cfb53037 GIT binary patch literal 32256 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.4/obj/Debug/Exampple_5_4.Properties.Resources.resources b/Code/Chapter 5/C#/Example 5.4/obj/Debug/Exampple_5_4.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY + + Debug + AnyCPU + 8.0.40607 + 2.0 + {860D16E0-FE95-4595-B610-01D914CF0114} + Exe + Example_5_2 + Example 5.2 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + True + + + True + Settings.settings + + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.5/Example 5.5.csproj.user b/Code/Chapter 5/C#/Example 5.5/Example 5.5.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.5/Example 5.5.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.5/Example 5.suo b/Code/Chapter 5/C#/Example 5.5/Example 5.suo new file mode 100644 index 0000000000000000000000000000000000000000..9049061cf1e438e7cd4c73318b2327e596bcf6f9 GIT binary patch literal 2560 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4%9zsqZbt)A?Ac!F!2um0g7+e|hfOHWECL{}cVQ7HR|sY|h$htxP`(F+ z9Vkvf>`^eXLf}bM;X5D6cBd&J_w@z;T;wJ-{S+}cGgvXiFgP+40CRFGLopD>F!(Y= z0!x%|27iVi25%tWnIQw1rwYKist72f%wP%@&1Xmf>WKm8`b36Ypo$zIUjZnq2UYl7Xf(Fq|*2yvGWpLHP(4Tco;sR6QgF0D9UDX8-^I literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.5/Program.cs b/Code/Chapter 5/C#/Example 5.5/Program.cs new file mode 100644 index 0000000..e296a53 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.5/Program.cs @@ -0,0 +1,42 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; + +using System.Data; +using System.Data.SqlClient ; +#endregion + +namespace Example_5_5 +{ + class Program + { + static void Main(string[] args) + { + string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI" ; + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = + new SqlCommand("Select * from UserBasicInformation" + ";" + + "Select * from PermissionsTable", testConnection); + testConnection.Open(); + SqlDataReader sqlDr = testCommand.ExecuteReader(CommandBehavior.CloseConnection); + + if (sqlDr.HasRows) + { + do + { + Console.WriteLine("_____________________"); + while (sqlDr.Read()) + { + Console.WriteLine(sqlDr.GetInt32(0) + + " : " + sqlDr.GetString(1)); + } + } while (sqlDr.NextResult()); + } + } // testConnection.Dispose is called automatically + Console.Read() ; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.5/Properties/AssemblyInfo.cs b/Code/Chapter 5/C#/Example 5.5/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a582013 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.5/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Example_5_1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Example_5_1")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 5/C#/Example 5.5/Properties/Resources.cs b/Code/Chapter 5/C#/Example 5.5/Properties/Resources.cs new file mode 100644 index 0000000..df02ad5 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.5/Properties/Resources.cs @@ -0,0 +1,61 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_5_5.Properties { + using System; + using System.IO; + using System.Resources; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager { + get { + if ((_resMgr == null)) { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Example_5_2.Properties.Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture { + get { + return _resCulture; + } + set { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 5/C#/Example 5.5/Properties/Resources.resx b/Code/Chapter 5/C#/Example 5.5/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.5/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.5/Properties/Settings.cs b/Code/Chapter 5/C#/Example 5.5/Properties/Settings.cs new file mode 100644 index 0000000..816b3ce --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.5/Properties/Settings.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_5_5.Properties { + + + sealed partial class Settings : System.Configuration.ApplicationSettingsBase { + + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + [System.Diagnostics.DebuggerNonUserCode()] + public static Settings Value { + get { + if ((Settings.m_Value == null)) { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) { + try { + Settings.m_Value = new Settings(); + } + finally { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 5/C#/Example 5.5/Properties/Settings.settings b/Code/Chapter 5/C#/Example 5.5/Properties/Settings.settings new file mode 100644 index 0000000..fc73030 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.5/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.5/app.config b/Code/Chapter 5/C#/Example 5.5/app.config new file mode 100644 index 0000000..1b99773 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.5/app.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.5/bin/Debug/Example 5.2.exe b/Code/Chapter 5/C#/Example 5.5/bin/Debug/Example 5.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..7657396d1bcbff9d29cd7cc75f1fdd823c3b8c32 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.5/bin/Debug/Example 5.2.exe.config b/Code/Chapter 5/C#/Example 5.5/bin/Debug/Example 5.2.exe.config new file mode 100644 index 0000000..1b99773 --- /dev/null +++ b/Code/Chapter 5/C#/Example 5.5/bin/Debug/Example 5.2.exe.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/Example 5.5/bin/Debug/Example 5.2.pdb b/Code/Chapter 5/C#/Example 5.5/bin/Debug/Example 5.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1dc04bafaa011987eec631bc2a667d5a49076e70 GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/C#/Example 5.5/obj/Debug/Example 5.2.pdb b/Code/Chapter 5/C#/Example 5.5/obj/Debug/Example 5.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1dc04bafaa011987eec631bc2a667d5a49076e70 GIT binary patch literal 24064 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 + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 8.0.50215 + 2.0 + {32559532-9827-4355-9CBA-D41ED185F3D8} + Library + false + UDT + UDT + + + true + false + bin\Debug\ + false + DEBUG;TRACE + 4 + false + + + false + true + bin\Release\ + false + TRACE + 4 + false + + + + + + + + + + + + + + + Content + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/UDT/UDT.csproj.user b/Code/Chapter 5/C#/UDT/UDT.csproj.user new file mode 100644 index 0000000..a009cc1 --- /dev/null +++ b/Code/Chapter 5/C#/UDT/UDT.csproj.user @@ -0,0 +1,12 @@ + + + 8.0.50215 + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/C#/UDT/XYCoOrdinate.cs b/Code/Chapter 5/C#/UDT/XYCoOrdinate.cs new file mode 100644 index 0000000..5fa549c --- /dev/null +++ b/Code/Chapter 5/C#/UDT/XYCoOrdinate.cs @@ -0,0 +1,73 @@ +using System; +using System.Data; +using System.Data.Sql; +using System.Data.SqlTypes; +using Microsoft.SqlServer.Server; +using System.Runtime.InteropServices; + +[Serializable] +[StructLayout(LayoutKind.Sequential)] +[SqlUserDefinedType(Format.Native)] +public struct XYCoOrdinate : INullable +{ + private int x; + private int y; + + public int X + { + get { return x; } + set { x = value; } + } + public int Y + { + get { return y; } + set { y = value; } + } + + public override string ToString() + { + return x.ToString() + "," + y.ToString(); + } + + public bool IsNull + { + get + { + return false; + } + } + + public static XYCoOrdinate Null + { + get + { + XYCoOrdinate h = new XYCoOrdinate(); + return h; + } + } + + public static XYCoOrdinate Parse(SqlString s) + { + if (s.IsNull || s.Value.ToLower().Equals("null")) + { + return Null; + } + XYCoOrdinate u = new XYCoOrdinate(); + + string str = s.ToString().Trim(); + int commaLocation = str.IndexOf(","); + try + { + u.X = Convert.ToInt32(str.Substring(0, commaLocation)); + u.Y = + Convert.ToInt32( + str.Substring(commaLocation + 1, str.Length - commaLocation - 1)); + } + catch (Exception ex) + { + throw new ApplicationException( + "Error converting " + str + " to a co-ordinate.", ex); + } + return u; + } +} \ No newline at end of file diff --git a/Code/Chapter 5/C#/UDT/bin/Debug/UDT.dll b/Code/Chapter 5/C#/UDT/bin/Debug/UDT.dll new file mode 100644 index 0000000000000000000000000000000000000000..87df496fd4c6b5d0bf5ecf7f42a07cd9ab02dcfc GIT binary patch literal 16384 zcmeHMZ)_Y#6@R;TzFXV%C1(?-`9r#v+sfGFxH^eKni6c^ImN_@lbrv=#Z|I*w?1#Z zcYE30OX5&y5NV~LA_9V_NK{0jQmHBgNJwpwDiMT`kf`|c34|#5g!-v`Dj!0X@O$s> z;&U8D;v>q8wZD09-kX^>zZvh$>>YmQGDV0eis$xiqPLNA8WFrdT!1<8$S)K0i}v^W z-qt4H>ziJ30<-FSCEqHW1*=l=LNjlheyw6U6*D`PGs|AlPIYy4Jlbgb=s3}&7NOU3 zZl>AW4NCNNY6j6pl$iC>149jYgmr+440ev2Q!}RvP`Dlv#)V=iqBrw9X7Tx8kSNE} z2p%Tl?sSUiA(Sn_Z~NW0`{^bTMsOz?(7$j;BT9w#xe$7`69AjU*oYgNB$Mb=$`AYk zYaH7M9`-Tuw4@POQoikaaO7C&6dv|V<7r7FL}M+g5)}iA0mXn~Krx^gPz)#r6a$I@ z#eibq0b;=9do>c@O?7IcKlTy5f{UvrrT;thq&2yNqJEO}FC&X~3{hZV(pP*aa}4pDrNwx!$Tdq*4FHqby1n%cPy!Y3ejo47Zas$MUo-doy`*4xvTY}?sE z1L!5z6CHY?+297c)r(#=Z!_0?7|KECze;o!`DK=Kq3={m0ehq|v<2k-GdX%0GB@A<^vpyS z`46Cf%=(z?<&ks3NVK`l*R*z4Zfd&-WMPWrTM2Azm+v6xM#>SrtPchvzT~)Ug8Mz&QAeUZ~IZ zobe`qxkI{y6;)rkbzP%JL|9w4uWlrI>abU=x%L5?$xf$=u1hE8Gv1V6bShS8Q#mMj zzU$;Ew-SVQnPx4wW>2qF?M6W=YlT*;oXVYc*&fiuk(%pTdDo_Mv_d62Jb8iwL6+x5 zo~LQA{?9HB69Lx|Q3SNrupYJiz@`&4PYs{CU4lv-w-;Tz5ISCkMuWgE=iQZA+Yg|R zhIo_YYZyqX5PE(y(BrjA=#=f$L?yI+ubQ*{Gfn{^XT0*P6F7)@wPLfyOwA2z{yhxS zzE!l#mcM+DI$m|fcS=j)dec!Kv={DSKnzu@va-HL#;YtkrJ8T?K-ZhIc2Mx0>b;HA zPS`r8`edfEj#a97LFg0$%G&u_sl?N@+H}1PZ(=MFu+ym3B##4iT-$GD4+Rq5aoe@d zi4?3h*Qh8144u5=I$_H&vHS>4IhO03UmFIN0GOJzR=ipZUv>SEQz_D6r{H^mw;1x` z<8W+0RnG_oGlA`A?M0_z7kOc>#&gi~%T`Edcu5nM!meRztTs?xfF+QXC`%sebkaL( z`!s&KX1M`P<)6cfqiNqMqiWGUH?>H)T0W4C3+t$Y7-075&GLeuv@4}>iAJkc*Foc$ z!|`(kTjq;aB^(w$P1IhY8g@qPjs4@~M- z#E6lWG?HD|R(RvlqXx>@E5V?*0g|7CvnJ9p!Fi*(-$&va8i*v2Ao8Qf;yT*nCUkDX zNVJ)H!Z4x)F=pyoqWg4bJeD*PM)&EYp|@%Ln%b;Ucc%HTWd8aM(;QBx_h28_D8kEz zg}8V^z*!M#2gfk2_s;oN^+*fV(@Va0HV|LB^Ba$j3VA#i@e;m>L(%bEHaB|tJ3qYn z(ciPL{(H9a(!;ZV;r(m;$%WCXZwG-nW)+re)nMV^#F5cSbEkQD#T@gz<%JCXQ5G^w zRu%6RbI(Gie*y6=c=_iRABJHEk;-1ER8K}#n<8y_N+`@Q{0L##c>V2ee&y@2E=As+^ldzS@#+;5X3*6!W^fN*mZ^*qE>1217qw9R;l zMud~Kes?o-KVGs@e-z9I7;70b<6@L1Rt2-P%I^Kzz%W%(3@8Q^1BwB~fMP%~pcqgL yC8t9M>yt+TPW>tI&V+ z1SI}p3{ezGG-5PrB1Vm9P|#o^ME%D^h*1+0HE7TnL8C?ug1_I}-Mh!-pa)Wl@TQ&4 z+u7OK+1c6I-S^tu6^uq=k&d{_TkV}T&DGp;vun27<0&pI_q7N>j`=Gl;PGLW0plgH z|6Twd*mku3xD6Mt2l8|G9JzQ$Z;!m_;~Jxmd2EzIkYaKCcphkO0)K3{pgr*CswMUN zM(lTPY7u)DJ(u(B2lH>+`os61IycqJa?#TpS2#QNJKvou#Gm<1@2-3yJnxhCbqn4) z(suD{k-t?w-JT>AF*eDI2ZBZ0-hOM#aGDenZ129^MA7+w#Y zt@&@88h(H8-$yH6S%2-8@4j5oGrXg+d(YMbnesn(MQi?NnflUcwtd)g=f4Lk3~8gL z=@uWrJ#adheUM`uRN;9XFc;_mjscDZ766(189&+N|4Sfe!|-`v{I?z>f$ra!v253z z`}Z1{=FNAJpA+@KCH3&#a#VWL*eo!};NXV~39&=G??-j(3i~p)VSW z#r(}}uH}nvzs>LM4D`iAQP<>Ies82bT|8}l`LxvIb`p@Gc9ESBjU#A>bV<6bw z-xu@W+_bP^foq1VdBD{eiFB*Hqp}IoQ05F2(h115O6lo9cIts1B&1c;BePIa&q?yp z2sIasRl0=n$=GGw5-zm!3fHb%Oy!ka)N#N7-q|&P#p9jn3$Z#BzZ;9WROC9@jxnQU z*|bnpI+wK!#Nwe|-0hRkZeJiCppMcsp1b9q9`egG@Rttsg|M%P3f492j}&at5{lj% zin=8clPqm-?+?ejdPDA}Ft)5nA0@hi&{82>=J;TvNtv;{EtNHu9sv5t!4TadFYlxJ zANRe{_F2>JDFr#ZUf!`1Riat=#7t0*m1E|34amzj(r-_3@Bp3v_>8>hkg_Pmq~EgY z!?-U`wR2een5zzEtkZy8?ckZ)?4EPeCg)}w82ON=tgb(6J}^p@55x)fZBzDHeE@$s zCTjcW1K4*aKA5TE)2BA4tF!|^u^t_GH6?wpG}01}c7<1?%ou$hHjP3X%4-?z2UPvH zSV;4Ow(*d%QRfkK%?0FG44Ry$rr5&%o*vW2TOq##NO>)zZ3KHrY=+c1urlSJ| z)Aq%IXbcAo&i_m3d?(~7tLteu*o>QucC(&cq}A6lSJZ&7$CauVqF?dZzm*@0N0Fag zPA&~AKN#ul4J?QR1M#j%*le5Y{2WH@fKVCA{{X3reZlo7v<ai`H24$*<5i z7f3Mhqw@*-VJ;-#y=;R0lNKsk1j%ApbU7^4I;37BnfI(Z@P60SL5lg|``(1qK@H=Q zI%IyzY{%tF2Py3!&1AK<%Yh|Nqt9AC*$5Q*8qy=FxQ+8@LgVcLG>>Q zH1eTw11QJPtLW>B%5|E`O=BTMIgQxb&1c39c@OHclH01vA1V5cqHU^vzM>$fgu&`h z(m3gs!P*n>ecOAf8zNT@FZRsuah=0M~Ju@txx z$Thnb$aT93_!RIZ;0~Z6JlFAP??D197gNlAp64vXyuhf#7vxICHI_Qn1_`fJwc)u( zwvmS+Eid^>9?7vp$@9En2zda}vXZA{>(J?W2HJK;r5tN((l3&yY_Ca;b1oKvp)NIg zoRX(xv9V~q+e}$`InlC`r)07DXxVuPUa7Y&X@le`+1k|H@N930)PY~?mV6~|&;Ov& zHtG}-dT-DodYiM6bV$VANRj9AT#9RLdfbqb#oS`v5t~bU8XN$AL7|G`QKg4VpMh~3P#}?SD zzZ_ht+xt<#~J^IYwzklU>`j0!p z8_Vwa{B7{67j%WYo5CFtQ5_ES;$w=L?mI()_E7Zf<$uc_a<)F?am!#bVu11`D?x85 z9eCzHq!PHL=q=_V+*){M;oW*1{8R_JTIK&*l((bI{h#^Yla~LvtXZeegIvAb1ImER z`*bN?%e{c-Futdx%h@0A9Gr?0Aoq^ZK)u7`(S~#Af%0?Mm)(`^0owz%2W$`69 z;&U8D;v>q8wZD09-kX^>zZvh$>>YmQGDV0eis$xiqPLNA8WFrdT!1<8$S)K0i}v^W z-qt4H>ziJ30<-FSCEqHW1*=l=LNjlheyw6U6*D`PGs|AlPIYy4Jlbgb=s3}&7NOU3 zZl>AW4NCNNY6j6pl$iC>149jYgmr+440ev2Q!}RvP`Dlv#)V=iqBrw9X7Tx8kSNE} z2p%Tl?sSUiA(Sn_Z~NW0`{^bTMsOz?(7$j;BT9w#xe$7`69AjU*oYgNB$Mb=$`AYk zYaH7M9`-Tuw4@POQoikaaO7C&6dv|V<7r7FL}M+g5)}iA0mXn~Krx^gPz)#r6a$I@ z#eibq0b;=9do>c@O?7IcKlTy5f{UvrrT;thq&2yNqJEO}FC&X~3{hZV(pP*aa}4pDrNwx!$Tdq*4FHqby1n%cPy!Y3ejo47Zas$MUo-doy`*4xvTY}?sE z1L!5z6CHY?+297c)r(#=Z!_0?7|KECze;o!`DK=Kq3={m0ehq|v<2k-GdX%0GB@A<^vpyS z`46Cf%=(z?<&ks3NVK`l*R*z4Zfd&-WMPWrTM2Azm+v6xM#>SrtPchvzT~)Ug8Mz&QAeUZ~IZ zobe`qxkI{y6;)rkbzP%JL|9w4uWlrI>abU=x%L5?$xf$=u1hE8Gv1V6bShS8Q#mMj zzU$;Ew-SVQnPx4wW>2qF?M6W=YlT*;oXVYc*&fiuk(%pTdDo_Mv_d62Jb8iwL6+x5 zo~LQA{?9HB69Lx|Q3SNrupYJiz@`&4PYs{CU4lv-w-;Tz5ISCkMuWgE=iQZA+Yg|R zhIo_YYZyqX5PE(y(BrjA=#=f$L?yI+ubQ*{Gfn{^XT0*P6F7)@wPLfyOwA2z{yhxS zzE!l#mcM+DI$m|fcS=j)dec!Kv={DSKnzu@va-HL#;YtkrJ8T?K-ZhIc2Mx0>b;HA zPS`r8`edfEj#a97LFg0$%G&u_sl?N@+H}1PZ(=MFu+ym3B##4iT-$GD4+Rq5aoe@d zi4?3h*Qh8144u5=I$_H&vHS>4IhO03UmFIN0GOJzR=ipZUv>SEQz_D6r{H^mw;1x` z<8W+0RnG_oGlA`A?M0_z7kOc>#&gi~%T`Edcu5nM!meRztTs?xfF+QXC`%sebkaL( z`!s&KX1M`P<)6cfqiNqMqiWGUH?>H)T0W4C3+t$Y7-075&GLeuv@4}>iAJkc*Foc$ z!|`(kTjq;aB^(w$P1IhY8g@qPjs4@~M- z#E6lWG?HD|R(RvlqXx>@E5V?*0g|7CvnJ9p!Fi*(-$&va8i*v2Ao8Qf;yT*nCUkDX zNVJ)H!Z4x)F=pyoqWg4bJeD*PM)&EYp|@%Ln%b;Ucc%HTWd8aM(;QBx_h28_D8kEz zg}8V^z*!M#2gfk2_s;oN^+*fV(@Va0HV|LB^Ba$j3VA#i@e;m>L(%bEHaB|tJ3qYn z(ciPL{(H9a(!;ZV;r(m;$%WCXZwG-nW)+re)nMV^#F5cSbEkQD#T@gz<%JCXQ5G^w zRu%6RbI(Gie*y6=c=_iRABJHEk;-1ER8K}#n<8y_N+`@Q{0L##c>V2ee&y@2E=As+^ldzS@#+;5X3*6!W^fN*mZ^*qE>1217qw9R;l zMud~Kes?o-KVGs@e-z9I7;70b<6@L1Rt2-P%I^Kzz%W%(3@8Q^1BwB~fMP%~pcqgL yC8t9M>yt+TPW>tI&V+ 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/Exercise 5.1.vbproj b/Code/Chapter 5/VB.NET/Exercise 5.1/Exercise 5.1.vbproj new file mode 100644 index 0000000..38e95b9 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.1/Exercise 5.1.vbproj @@ -0,0 +1,84 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {D35DEDDC-25A8-4782-A330-AD5A7B1F2376} + Exe + Sub Main + Exercise_5_1 + Exercise 5.1 + Console + + + true + full + true + true + bin\Debug\ + Exercise_5.1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise_5.1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/Exercise 5.1.vbproj.user b/Code/Chapter 5/VB.NET/Exercise 5.1/Exercise 5.1.vbproj.user new file mode 100644 index 0000000..ca07fd0 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.1/Exercise 5.1.vbproj.user @@ -0,0 +1,6 @@ + + + ProjectFiles + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/Module1.vb b/Code/Chapter 5/VB.NET/Exercise 5.1/Module1.vb new file mode 100644 index 0000000..cc337eb --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.1/Module1.vb @@ -0,0 +1,17 @@ +Imports System.Data +Imports System.Data.SqlClient +Module Module1 + + Sub Main() + Dim connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = New SqlCommand("Select count(*) from TestDemo", testConnection) + testConnection.Open() + Dim numResults As Integer = CType(testCommand.ExecuteScalar(), Integer) + Console.WriteLine("Total number of rows in TestDemo: " + numResults) + testConnection.Close() + End Using + ' testConnection.Dispose is called automatically + Console.Read() + End Sub +End Module diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Application.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Application.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Application.myapp b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/AssemblyInfo.vb b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..afce98e --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Resources.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Resources.Designer.vb new file mode 100644 index 0000000..492ad66 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_5_1.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Resources.resx b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Settings.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Settings.Designer.vb new file mode 100644 index 0000000..865f1f0 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_5_1.Settings + Get + Return Global.Exercise_5_1.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Settings.settings b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.1/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise 5.1.exe b/Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise 5.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..bdb34a8b7ac0ef0a118550a5ddc849e3f9930178 GIT binary patch literal 24576 zcmeHPeQX@Zb$_#aw|Ar{mUpB+Xvy-*qEu3(E~G?S-!UnYB5CtO(ovGt(v_BXOX{S% z+tcn*5^cmfLkSXBDI(Vf5~XorTS-$TMe4w5>(s5w)CL@Ez&=nozuLX_ukB#H^2GV*`1}ve&aH!L=-@L_g$jraOKb|>3>fO zP}kq_=k@fpnpf99Cq`dgKY23c=sDY(wT+CPFtS-IuTPu0J(tx}S$$w4u4k;I8C$-* zwxwwLz#!462+-Ady5FnqI@OD1B21)1(&-!BlQKh*s_~DAOvAlUc5B{UgAkca3 zL8=sVcolP!M&2NLoTa^p+?GzniqK265VIXS0hw&W2_!gQFJeXLg(PO1X$u);n+i~J zz5|FAp_gc11?wk$1bhU11bhU11bhU11bhU11bhU11bhTO00^Am=V}CgHdQD{?`$Ay zT|p$kM~Jk3@ZLKC&i6lsO-d_@))H;ze@bhx$b88OAyt4b;NZEqwxDpThEpo1P@=Yg zr}Y3zHFgU5Sc=RMdWefy%b>1pCvCH*LviTXh=oVlY8?zh$7ZeNi*=|1I@LdhVjC5nCLYrV0 zK%srNLHbDmP_m68?FE)fl|<6*AFuoxls|>?@Hs*@T*=jv=Bz`BWn^c-hMYUVEDu@m zzLsjN^|-X&2~uZYgSvGClHv4ytu3q$SsVF6KU^6?>sHcSnm{WfZO9dNoJTWzr5z(DP?P=T|#nM-2? zI1oA*Hqbi(x51l8DKN+NZgo(dR)9Up62@)2^bI=hS1$i+vOH&T%X@OXGKo;@DwLP< zuOaJe-+KE6fJToZrsMNY-ps@fnT|DQCrqc5I%FD2)9%nSPQtR&sp$^=h-o`1E4z1V ztdoBodjDKHKWCeJv*ujhHqssXfw}2)DsitlKWUvdvwNqvZ#Q}pJ$H5O+}3S&?%28E z*2?Cx`BcXAYLA@)3)-?LB1neM(1I?G=4bZ+0eowY$q^99Y{@DLh> zYX_&}c{`Pzby)Qo0HLGR8xF_mIV=|ZDrv*e;gJDczX|>XM&O2hX=|D@Bft-Fbj8y( zH2{`=F1B%xGiU&wM+H|!7?0=?B6eXAu@w^~Z`gBpE7%AXIu8Hm!2;E#e) z(zG81YpF$xqg21frG8V=yrfsOk82wJv9>I5fnLOD*68mvw*T*vHiTHaCB&9@hq&xP zDM?HEaY>()^y`v-50p`GvG97h4VVTYbEQMzYLMnWX`n;kmV;9%2=x@oE=S(5c zZPXFG2nl0)g@%KVAk$Wd_(>5a-)rTpuXegm`}o~{v{$~P#YHPS1zQroWl zEp=+UL3e4r$`9yXZ4lbS(EcOMg8qOk?H=VP(n1?Ot=*?|A$`BnCnf&@dReIvYs9CO z2xucUgSKPUVA=+{QR$NDos#xRIwI*oNsmdY(+2t(+I5LKMU1YBJJlE^#OIV4{hp{r z`paT7($7lzywsi+Ux36BUjcnkyb5|zyaDY|ifq>Hd{ksbtn1lnowq|`n|{|w1f^kdMg(!y2x z8~UnPklGieJD{}+N%zzL+U;1xOxz&gX(1( zKzcwu4CyiT3b-ru1U-*m05eIG>!XG>G>rQU-<|Fj6QDQ5B3q=!*Cd-R7FvGiD{{(&mTB+x*a2Dq&lWHIt7WNjY;y zdY|E>5;Qj7m&;+tW8|?fqQUc~ok%(6@t)&dv9Wn*`>jlFE^pdM91z7 zob1QBFipn?Q;tDOF@>Am!vN43J7Sy9hI00kpI@ zDDoIpi6cgOPF7RWj~S^fE#63%2F93?HD&>eUEI%u_c9M*b8Dni54eN1xOX4P&RC_) zMVZ9Z8)=?FcGJ^46=~N&PgC>@gJ&i+J7>F9Rlw>ENI900=8Sh(?5+_w^$Jepk~=d(j2fdF}9UT1F#`8 zYruaQEbpa%9zbs4m!kvYtwVHzi9em6t z4Lj*h{&I1cGhNxZk-62qYD8iKrjwe@(y*D%;aTjQWhcv)ypiKRc$L~;^5BrG;Ieq! z;{onY61Sg=S|0Pm@HAbT0sCz$Q^b$s(QC_mXr;7h?csutn#{&KT)Vi$Kq$w{pl2j6LHGQW?ko8E|Wns zX(DIJ@fd^wM2VA94r zg^XdJzE#z4<>u|w?8zlc;qH~3ODv&~?q-*86cZp}r*hR}tmH&0U$sgU@7j7#tbDU& zCT5<;8d7;r_tr!QAEp#vmk^zflSww6m2@xO0ilV(w#bD5MRo!DLi`z4!Fkj+s$X_yj|MN`VGI=>asTzTObjU0g0ZM%^$cHU(qyYMU`2Mxwbw6yB!e|=5Yw{~{+;B~E_I&ayLixS3Yv<@+h z7(r}OG)2*vTcK$6sFi39xa}cu=iO`>zukZcxNfq8f?dH)Ghaz^4Z5UW6899 zw@UABB)zvfyU+Ou_z3t2_z3t2{68V!eS6RM^z(>odl5T{4#fxJk=d2kH{Wpjp1r^2 z-dEl!%<=|eaMx5{4%>A{-)AIF&*hw{{UhUjqxu$oY+m1IS*NG?0e-6gq>;ljr`|Jl zWM6E2aB`~h4m@Q|pPG_SR8`_wE;)@F{NN+tBj6+8Bj6+8Bj6+8Bj6+8Bj6+8Bj6+8 zBk;>ZK*iTc@|)WNzMba32`KP4y(e(Rr6MTu{XgCn6gdCoTl9EKaDnI#myq-OgM}sJ zZ2bF7ssiUGdaFvtj4QwK9&#Kt&|3*a_mD#7dVL1%a*Ij+#w^jD73EhOM6XxoSGu7+ zf>Xldpo2Jxi{rF#g2us*fbK_{!(Rs8zUlho8F#ODOKtf(!j$C)3W zKJvNc3{Ltuv=ENOa8}4Cm|2|prR7Ox3fipH6Fn2aXY#NS$LS-VX=ZWWd8?&5nWq!~ zU4Z-R#_1$p>)`y9zbfoJ+=VF3F)2r#WRCM_|K-m2z1= zz3ePSt}}xC-s!9jkNMPe95jQn{H=HO8K_rR3|iK37{>Q-f=0p3%F_KnB!|;n_I#F3 z!gs>gk&9(IT_YX8tr7(s2EhXRGEpqY=&>&z9?ZRepY}*B55Sg%ljb?#n6GHnd$)_* z(=9QqF1r}X#W?PeW%__MpA_?Xa~cTf7){kZu((_+>eCT>5%K*qC?;XWc$b0_DY!GV zP#~lb@naFl!omV1@5+DtABG@>h#!lX{9nVls*no|RE1msm6XFzeZC9^Qo!RAmEohe z;y3Dr@z-7($>##!t_&|>qE?39U${4`+yS$I;a2$NMHTi#m38ts=X;ip=#BFQq?Zl_ z9^5>z-3us^ztA`j6^CmPwV?^=%#Hu`b=d8`p;5P6hF)?FFTl&Hz*DVIC3zo=;5q6> zMhAb1rZ-5G_)dwx!fJ3izEARf-48wjJ_0@hJ_0@hJ^~+51n@wJKf$I##W!vr(3bkm j@)7V6@DcD4@DcD4@DcD4@DcD4@DcD4@DccxMc}^xdI1$< literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise 5.1.pdb b/Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise 5.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..32110242ed2033448ed088b006073114b0b29dc0 GIT binary patch literal 42496 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 C8{Iwt literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise 5.1.vshost.exe b/Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise 5.1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise_5.1.xml b/Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise_5.1.xml new file mode 100644 index 0000000..3413736 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.1/bin/Debug/Exercise_5.1.xml @@ -0,0 +1,24 @@ + + + + +Exercise5.1 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise 5.1.exe b/Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise 5.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..bdb34a8b7ac0ef0a118550a5ddc849e3f9930178 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise 5.1.pdb b/Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise 5.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..32110242ed2033448ed088b006073114b0b29dc0 GIT binary patch literal 42496 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 C8{Iwt literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise 5.1.vbproj.GenerateResource.Cache b/Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise 5.1.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..b4648b239fc714949bddfb8fd6f79d016a770660 GIT binary patch literal 784 zcma)3+e*Vg5KT=}dr_zlB2piU_#jw9YY}}Zf-PRqf;YqmU$)r^uH9y3ClTWp_(lGL zU*KPezo0WkMQRWyaFWc~@C=tPjjR_I3kI2mXa971|-h7ffI&33pEZicOv+-Qon@VL!tCcA$M zxCc=WZXuEo1qzU*lq}%ouF`-D1A%a)q9I8B?QjO_c;w*cN|G33! zXXFn>?$TL`F^v4K(VE)RGSJ@_cpZy@hH-;D-N`fjSvpMx~pH4=`kxl + + + +Exercise5.1 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise_5_1.Resources.resources b/Code/Chapter 5/VB.NET/Exercise 5.1/obj/Debug/Exercise_5_1.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYN0abx2RVk>27Ak=%R3y~$p?pA%RDskMRc%E}5$SK< z?%tgpQ(Cp(c;}rrznOXS=FOXZyX(nY?xPqHskkm)BzhV>w;@UYJz0gi>66bi(fNi~ zx}Fw?Ug?@%vOKNiI*YDR&~iqx==j>ask!B%W)-#3!&6$p$(#D-&FSvY^^q~6Ln20R z|K1ypW_y#Gx;BXvQ5KR!ApPk8dJWeQE+!f}C5RiGjGud2#RWOHK;2A)KS^XCLKdOr z;rBQ*LqsV~#QHWz)VN;upI{CC>g-a$<8@f~&1E0>#S92^a;;(9K(c8>bGqxfIUpI^ z5E$O5R$O&$2+`}VX*)2KvCcuszP943YePiCbx^YBIIn0Nn?iBA`wF5rnuvsy{`aI) z>A}!+FM4D%-P_VH=rXv0FtY-pI#@tDy^9jP6zLFZW(7ob;+N>)B(nmdIw*v7&y0F z zL30wdqz1(&p!;%&ZV}x;4~6Ko7yvpSqKC!xK(9)a+4?JS5a@l0q8ZdKLffzWN#vmG z4$-?}2^rWc(P>I4HqgzXu35Pis3cK_+LdLX2PG18t+I+-Jtap~d5;*CyM0KGIz(OZGjxb{#S_?dM5XMc)A3H_v*33q zPf42}OFALx&p=0EEQzX6CN%|KNlz_8pYevCMH;} z37%II9K%pZSu!W(b5gPzQkI{S{PU8M!lN$GJD4FU3}K3rD2uP**QoR=1Ii7GiXBa0 zf0LjodFFJ8!`SWLh-uIj@p;hSi7$eFOL++NS>=bI*TtRzJrjEgbs57?K`q5W*^dHG z4WP|OdMbE1$F;3_ znzVAR<2ehyK4W=h!yYy~D@T)+eWj9Z-_39&6Mf; z@?lhOvT>|>U8L3N>ttAvNqWwA5bQ>4)kn=B5m)U(g?m5 zXu47|Ss?pqCwS=72zJXiXJ;pho^KR$;Aonx5YVXQl^kq;y_zG1n`pp?dv&~wlOjzx6+&LH7RzohRow!qPi%a zVl0%%`nW+&o5u1M3U=6aZu5+J+uY~l-E1B=+{2wu zTnJ~NeV%6)=Iu&wP(&bF^#QYJqL$3MR7QEb$tm)2!S`-0%wU`>zN4mXEKAO-=_e~% zcr4fMpm5_%S3iYQ|04|aylwNtrEiRu$s`xgZ+;^%X_ofj8Xz6-vnC`Co^Y&Xp6Io2 zTpmA9_f9_Wizm((XU_eZQa`%=#7z6(oA;!iykYjv%&*he#WWIlSY;cNiMH%kk!@s< z3PFlNCIlGt7{?^VB*Uat)r7JgPE)Ez*)}juN+%_oh3F*o{X&T5PEuM3 z>K0;W?RcM1djMjIYzM9`o~DCI7hc^3Fx+-9>4H{cg~mvWYeHoDQqkLe6n+wG2>6r= zJ{9m8<}(4`%6zNJPisUgnwkY|nyko@m(NhVx=<1V`B=bP88rdaALNm&?wsLoC$W8d zEGZORsRW5^TV{+WY6EVHV~$RI4k8PXArYD?n$QeEgJE%E0zE2X9o6DHImh<&DaR;{ z`+jM}ws0Cn^6aG#h?b3>3i#aMUB#DEnCLWkP8=jj>;mtD5DI?*aWW`-ETJi)30+dj zb|CFoKo?RRysa?Oct8rG=zZuce`JU4`^;+*THBwiv#V+FuyIFid(yCq!8?#?Mzu~C zuOw}#X8J#KLVh>n8+diCtDu7LeSL|X?Z$E4JcRG_AO|c0KL|QQQ@HnLXbkt>6yDhn z(@nq=p!>md`-%F_2e?lpUr%lb0g8FeJ0y!oaS3=ea3Al-U2fxEo}eNv;NIrejY`88 zKePs<9`pwJuycTd_N3Z~SOsG8VP!$SxPhm)5SGAy6{6oD&CCBW>_$YQYCkGZlAQEY zS~HJ^$@)^AacPyv`|k}4>lBk + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {7820E60F-EFB1-40F1-A6B2-C63011919BE7} + Exe + Sub Main + Exercise_5_2 + Exercise 5.2 + Console + + + true + full + true + true + bin\Debug\ + Exercise_5.2.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise_5.2.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/Exercise 5.2.vbproj.user b/Code/Chapter 5/VB.NET/Exercise 5.2/Exercise 5.2.vbproj.user new file mode 100644 index 0000000..ca07fd0 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.2/Exercise 5.2.vbproj.user @@ -0,0 +1,6 @@ + + + ProjectFiles + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/Module1.vb b/Code/Chapter 5/VB.NET/Exercise 5.2/Module1.vb new file mode 100644 index 0000000..4d5b229 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.2/Module1.vb @@ -0,0 +1,23 @@ +Imports System.Data +Imports System.Data.SqlClient +Module Module1 + + Sub Main() + Dim connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = _ + New SqlCommand("Select * from TestDemo", testConnection) + testConnection.Open() + Dim sqlDr As SqlDataReader = testCommand.ExecuteReader(CommandBehavior.CloseConnection) + + If sqlDr.HasRows Then + While sqlDr.Read() + Console.WriteLine("TestDemo: " & sqlDr.GetInt32(0) _ + & " and Description : " & sqlDr.GetString(1)) + End While + End If + End Using + ' testConnection.Dispose is called automatically + Console.Read() + End Sub +End Module diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Application.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Application.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Application.myapp b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/AssemblyInfo.vb b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..23d34a2 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Resources.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Resources.Designer.vb new file mode 100644 index 0000000..4bf7fd6 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_5_2.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Resources.resx b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Settings.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Settings.Designer.vb new file mode 100644 index 0000000..fb772cc --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_5_2.Settings + Get + Return Global.Exercise_5_2.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Settings.settings b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.2/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/bin/Debug/Exercise 5.2.exe b/Code/Chapter 5/VB.NET/Exercise 5.2/bin/Debug/Exercise 5.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..5bb6d9da26288f578c9f1a74f0538d3d1d74765a GIT binary patch literal 24576 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 ML?A@q*BycX0a@uk0ssI2 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/bin/Debug/Exercise 5.2.pdb b/Code/Chapter 5/VB.NET/Exercise 5.2/bin/Debug/Exercise 5.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7e4a57e660ce1bdf4518867fa6ea4631b6d9c602 GIT binary patch literal 42496 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/bin/Debug/Exercise 5.2.vshost.exe b/Code/Chapter 5/VB.NET/Exercise 5.2/bin/Debug/Exercise 5.2.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + +Exercise5.2 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise 5.2.exe b/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise 5.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..5bb6d9da26288f578c9f1a74f0538d3d1d74765a GIT binary patch literal 24576 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 ML?A@q*BycX0a@uk0ssI2 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise 5.2.pdb b/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise 5.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7e4a57e660ce1bdf4518867fa6ea4631b6d9c602 GIT binary patch literal 42496 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise 5.2.vbproj.GenerateResource.Cache b/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise 5.2.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..10b53e2bd7f65c4df40f31621ad759d89ed16815 GIT binary patch literal 784 zcma)3%}T>S5Ke7V`=d|~QbZ3$JP4N1Dx#Mn*y0bi;2+|_%Qic~wcD)hB+_{D=mYpH zzJf2~JLpVNkv51E_>#=de)G+IPR4PZ4+?&B%*_y7_mpo9njrG_W2L2cDR6-G+7(z- zCTwkb4SwpicC4e=LMwzgvO?Eur*U5^{{)gtGk~zwZ)^qI!A{U@%I${O5-zt{Pi6Pc z0S_VUz&(T#LSF&0l%fT^K2RF4+7}326%Ii1e@9vHBV&_XW;LB~l4?wsCC-w|_>Wtx zc253MlwG+A zACIy6<6**{Zv+IP7{c;IUJHzRMyf!8T%0(Ak-`Y`ByB!3cBsfAd6@I3m+I^C+jC}t HQyk?_3!Ug6 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise_5.2.xml b/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise_5.2.xml new file mode 100644 index 0000000..722580b --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise_5.2.xml @@ -0,0 +1,24 @@ + + + + +Exercise5.2 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise_5_2.Resources.resources b/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Debug/Exercise_5_2.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Exercise 5.2.vbproj.FileList.txt b/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Exercise 5.2.vbproj.FileList.txt new file mode 100644 index 0000000..93102ea --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.2/obj/Exercise 5.2.vbproj.FileList.txt @@ -0,0 +1,9 @@ +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise 5.2.vbproj.GenerateResource.Cache +bin\Debug\Exercise 5.2.exe +bin\Debug\Exercise 5.2.pdb +bin\Debug\Exercise_5.2.xml +obj\Debug\Exercise 5.2.exe +obj\Debug\Exercise_5.2.xml +obj\Debug\Exercise 5.2.pdb +obj\Debug\Exercise_5_2.Resources.resources diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/Exercise 5.3.vbproj b/Code/Chapter 5/VB.NET/Exercise 5.3/Exercise 5.3.vbproj new file mode 100644 index 0000000..51324e3 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/Exercise 5.3.vbproj @@ -0,0 +1,96 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {C4A4D496-1051-4B96-805D-7261A23BDB59} + WinExe + Exercise_5_3.Form1 + Exercise_5_3 + Exercise 5.3 + WindowsForms + + + true + full + true + true + bin\Debug\ + Exercise_5.3.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise_5.3.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/Exercise 5.3.vbproj.user b/Code/Chapter 5/VB.NET/Exercise 5.3/Exercise 5.3.vbproj.user new file mode 100644 index 0000000..ca07fd0 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/Exercise 5.3.vbproj.user @@ -0,0 +1,6 @@ + + + ProjectFiles + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/Form1.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.3/Form1.Designer.vb new file mode 100644 index 0000000..683eac4 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/Form1.Designer.vb @@ -0,0 +1,86 @@ + _ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim DataGridViewCellStyle7 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle8 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Me.btnDataBind = New System.Windows.Forms.Button + Me.myDataGrid = New System.Windows.Forms.DataGridView + Me.btnPopulate = New System.Windows.Forms.Button + CType(Me.myDataGrid, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'btnDataBind + ' + Me.btnDataBind.Location = New System.Drawing.Point(205, 159) + Me.btnDataBind.Name = "btnDataBind" + Me.btnDataBind.Size = New System.Drawing.Size(75, 23) + Me.btnDataBind.TabIndex = 5 + Me.btnDataBind.Text = "DataBind" + ' + 'myDataGrid + ' + DataGridViewCellStyle7.BackColor = System.Drawing.Color.Silver + DataGridViewCellStyle7.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle7.ForeColor = System.Drawing.Color.Black + Me.myDataGrid.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle7 + DataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle8.BackColor = System.Drawing.Color.White + DataGridViewCellStyle8.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle8.ForeColor = System.Drawing.Color.Black + DataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.myDataGrid.DefaultCellStyle = DataGridViewCellStyle8 + Me.myDataGrid.Font = New System.Drawing.Font("Tahoma", 8.0!) + Me.myDataGrid.GridColor = System.Drawing.Color.Silver + Me.myDataGrid.Location = New System.Drawing.Point(1, 2) + Me.myDataGrid.Name = "myDataGrid" + Me.myDataGrid.RowHeadersDefaultCellStyle = DataGridViewCellStyle7 + Me.myDataGrid.Size = New System.Drawing.Size(279, 150) + Me.myDataGrid.TabIndex = 4 + ' + 'btnPopulate + ' + Me.btnPopulate.Location = New System.Drawing.Point(94, 159) + Me.btnPopulate.Name = "btnPopulate" + Me.btnPopulate.Size = New System.Drawing.Size(98, 23) + Me.btnPopulate.TabIndex = 3 + Me.btnPopulate.Text = "Populate Arraylist" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(283, 186) + Me.Controls.Add(Me.btnDataBind) + Me.Controls.Add(Me.myDataGrid) + Me.Controls.Add(Me.btnPopulate) + Me.Name = "Form1" + Me.Text = "Exercise 5.3" + CType(Me.myDataGrid, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents btnDataBind As System.Windows.Forms.Button + Friend WithEvents myDataGrid As System.Windows.Forms.DataGridView + Friend WithEvents btnPopulate As System.Windows.Forms.Button + +End Class diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/Form1.resx b/Code/Chapter 5/VB.NET/Exercise 5.3/Form1.resx new file mode 100644 index 0000000..02bbfa2 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/Form1.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/Form1.vb b/Code/Chapter 5/VB.NET/Exercise 5.3/Form1.vb new file mode 100644 index 0000000..554ba63 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/Form1.vb @@ -0,0 +1,31 @@ +Imports System.Data +Imports System.Data.SqlClient +Imports System.Collections +Imports System.Data.Common + +Public Class Form1 + Private dbRecordsHolder As ArrayList + + Private Sub btnPopulate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPopulate.Click + Dim connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = New SqlCommand("Select * from TestDemo", testConnection) + testConnection.Open() + Dim sqlDr As SqlDataReader = testCommand.ExecuteReader(CommandBehavior.CloseConnection) + If sqlDr.HasRows Then + Dim rec As DbDataRecord + For Each rec In sqlDr + dbRecordsHolder.Add(rec) + Next + End If + End Using ' testConnection.Dispose is called automatically + End Sub + + Private Sub btnDataBind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDataBind.Click + myDataGrid.DataSource = dbRecordsHolder + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + dbRecordsHolder = New ArrayList() + End Sub +End Class diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Application.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Application.Designer.vb new file mode 100644 index 0000000..3f66db1 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'NOTE: This file is auto-generated; do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to Project Properties or double-click the My Project node in + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.Exercise_5_3.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Application.myapp b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Application.myapp new file mode 100644 index 0000000..1243847 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Application.myapp @@ -0,0 +1,11 @@ + + + true + Form1 + false + 0 + true + 0 + 0 + true + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/ApplicationEvents.vb b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/ApplicationEvents.vb new file mode 100644 index 0000000..3b9cdcd --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/ApplicationEvents.vb @@ -0,0 +1,15 @@ +Namespace My + + 'The following events are available for MyApplication + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + Class MyApplication + + End Class + +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/AssemblyInfo.vb b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..338caa8 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Resources.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Resources.Designer.vb new file mode 100644 index 0000000..3852226 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_5_3.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Resources.resx b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Settings.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Settings.Designer.vb new file mode 100644 index 0000000..2305307 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_5_3.Settings + Get + Return Global.Exercise_5_3.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Settings.settings b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/bin/Debug/Exercise 5.3.exe b/Code/Chapter 5/VB.NET/Exercise 5.3/bin/Debug/Exercise 5.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..23ab84da679c51d3ee303fe0c4d3c7b8a1249ab1 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/bin/Debug/Exercise 5.3.pdb b/Code/Chapter 5/VB.NET/Exercise 5.3/bin/Debug/Exercise 5.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ff3b8ad4b62aad917800aa4e8dbf5b8146027137 GIT binary patch literal 60928 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/bin/Debug/Exercise_5.3.xml b/Code/Chapter 5/VB.NET/Exercise 5.3/bin/Debug/Exercise_5.3.xml new file mode 100644 index 0000000..7b33a49 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/bin/Debug/Exercise_5.3.xml @@ -0,0 +1,24 @@ + + + + +Exercise5.3 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise 5.3.exe b/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise 5.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..23ab84da679c51d3ee303fe0c4d3c7b8a1249ab1 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise 5.3.pdb b/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise 5.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ff3b8ad4b62aad917800aa4e8dbf5b8146027137 GIT binary patch literal 60928 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise 5.3.vbproj.GenerateResource.Cache b/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise 5.3.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..c0771b374da7e022f2c40f8391807b58062416a3 GIT binary patch literal 842 zcma)4K}#D^5Z-OFYqC*@lp>;sPB?yhA6%AMw@zBf5zFGRr%RYItTU;-_ z`d_?y=&8_Ce?tF6|AWpvR7zY*XJK}B=DlyenQuMc^SoO!ezPq;BX>Ghi8W}_Jbqs& zE#qT>Q|xw5z@jqQ;7#1)r`s78Ixj2?GAME@bhmR*Oteb&pgcBH$Oe<%X1bNWP5XVh z)f1Z{;5M%-(c?qF50LG^Ib;&DL;*6DrUg75DGj(X5eWM#n}X!;9c3ZOjVD85n;Q_$3z;4X#0*?$p`+^XLK{i1v+; zBf&!~+;6rqG_!MI!L}K6Xe1n1^HoW(4Ne@XOQ_RwF+35v0Q9_C%?pB7qpH{L1JzVHi+nR+7m{mp#D&mt9vM69$0W){*r4R8>vzS^2J;Y yE)?b%lE6#8Bk6|b2@ik%c>aCu*Ol)xWygJq1D@8q`S$xdqS`VaXIthPTk8%kityP0 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise_5.3.xml b/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise_5.3.xml new file mode 100644 index 0000000..7b33a49 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise_5.3.xml @@ -0,0 +1,24 @@ + + + + +Exercise5.3 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise_5_3.Form1.resources b/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Debug/Exercise_5_3.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYVkeFLJT zx}OyXU+bP;w0y1PxeK0A)bfVoxPdljYF^pVEJqtXG^G{Yf~jxZnCXdJA08t*C=w+8 z=nu!Ey+zI48$_BY2T3ZF{%jZS8m=K+Of=k-Fm7-%e!kNRF37os>J}pWNh0qNWD!~c zevdOVM3m-4tZlPIO>1TU3D)4R&Mpl+UWfI-Tnd0+&VoQE=NiQgB%4Mwt9!ne2a>T3 zf#HQ}!&TRY5WVi1whKcU>nxP)YcsC8HbgXB2PJ!s^NPl?DU_tUFC}`jnMg?Ke^0uU zUUbd$;f`!(`dSABT>>`{W|u)!7Zb>2c2KI1VjV)wE`z9U@**9aWS2oy7lp8>bKIwo2r;4}I7Wqd88CWQN%Vrv^rG~l(MZOL zeq4%KrMI=JiQ~uU+1Jro>BYj-#mIdS4f?dNlJl}4wybg%VQ%TqaK?6IcBFQwicAd0 z!=;L-vxyvi)Q&l9N!`h`@A@!i#qWUr8}O9jJSwyk_82d#+|DxhvmhH9&SJ`2`g6VL zxno19X>hkd)leOWmmf8gUB=|pe$7KDrPnc`a4v2qjQuX@Y=tePS-5&(UJxT~@s)`(;P*S4v^vz!H=EymGl0QYT2r)UX0=WpBoqZ6aJ-wiyC9Bdo5-8o=x zfZ}-j!;Osyggy{g(x$NHd2JAuydaX>?NZ!(aIq;$N9wSCyoNGjWSRZRbCmDUq>x9n z4821yfOd)tsGfdtxyaD6cmaGuVg4@V%Swu#R~`rblk$erOve+$iDr5%aX;uUKr{4F z;tkMEYAeP+pz3Ohe03J|3H1!$rRm|Tm-#0$u>_U+5Q#q z98(xsoa^m$HL@F{{XmUCoE@SgKpVj%C<$}|eK*23Ez!vcVQ)is7kvx56z?L@LXXjp z=rY)~(JtC6wt}7%+dLy;G!y4RDYV$v+6>e`@ zg=QscO%ICCK=<_s-7I>59*odwu?y(w2t6dO1$teg?B-vI13({26px^G6WTuIFCq_J zPlVnVi^#wpiB3~mv4L)ibS=s)KqZN?)S)Z^Js^>wtCbbx>Pd;h5mb6vqD1`Wmv!d=GIHJ0%^IbdRJxQoB>qK}q*WYDj8HdJAY)R3zUa>7DePdO~y% z=dOb|XWQv_ss#z>=stR1t%z^K@*XiNSNovsb&$G~XXqg9NT#srh)UT`r;}aE7r}2+ zo{}~{k#s`RpM#FV#-~j}r&ckcj9@0erU^&}#Vp-UO&Fgg79^h+D^hZrz6SYe%7fkm z`M5YI<&Q|qN9cLFPrN84FVT70th^-UuYz8syd~x5W#9AC&v{CSCUKtr32*O6n}lFq z6FjaaIEJB!vSe2Bvr@Yv`4!2Zll+U4lES^t)4TB6APixOk|>LB;@70~DZ7;G6csC) z!umFVrsbK_DGp(^e=DXzm&KPre=oiY`d#Hg(C3wBK(9$W2YM#)3hFX}pMqLSg0de4 zo*F@0@TA};-bTffM^fwgKU&RMPU4g?@?QIktO0C)iKdI38 z+>BcWKDn*7yBu}Or@4wq_%Le0vu7tvT4;;B6LsR=Pj`rZ5@FXplWw7Go7Ym&&%2&& z&C#Tl_gvqd5ATk`m_-T$rv)>Zsj7-qcJ;KR zRo$ReoB>*6bJRz|*qvmG^0vl=we@K%&a6u78f!f-r&T|0edn=Tu%14-wBHQI4S#V2 zUkfx{DVZ#g_h~nL=+g*RD==qfCLBL7oIE(1CMyCoYWXD>%U`eNNZ}^#@G-fati(&A zPdKO-$FOO{1-BF&Gwia7a^RFo0Y_DJ7p_5FMZ~o+X*k9L^5{iX1Wb|fe!P$vwsl)r zv?FCZD0}9FGw)W7Bbi);wGMegvEHxaWtorW0U;nl_CUEEMdp=icfYbGErRz`NNTHr!gpRDfmsnA~>DIxM zD?l)I3Wiq*&w!fGacs;`c7su@8*AOruw8s>!J%=}E*&r{x4K@T<|*niY8eZT>jzfe z$2{lC3s^7=QZSv1OplbEz$%*hMZrc29>(;1u8pwx!{vyyT*Tv;lwB?9eV$v4BzyCL zb;{sxZ8@X?9;A65eLp7{!;e|+1CV;zHU-IIRux|ut&zsX#a&`986m1}B9wdXdAToZ$I z1kwz$5y&!Vi$EJb3xt|RKPG7=Stf0&CX}sknpQQ+wS#F^x~QQ=h%Ul?KnT&&MM^6{ z-Ae4N18)y%FF+!d>%`T~!*nv~#;dykhTBdi-Oy^R&=_e+O^9rNI)1y4!*9SGLO!j6 zPltS#`E1CyG2f>0(;Cr=<`zL4CM&Y!ld@SItjG6)J&J?`WhO+v@9Z!6* zb!(zQD7exo61n#57!TAA+?>Q1UHBYC79c|+G*vXC8G;6*;)F9jE@B( zD2)d}X~ed08pZP5#Se(q^_~j&+~8Hkms6DJ40ui)Bn?;vUI!r*{sQ7;Q0{0-Q$#av z4N9&PX~zV*k>c=eg^|V`(h$Y(LudITJ8C~*UW?J{`?)&1ng$OWZ`8IY4a*7NflM>5 zb-HjFX+t&B|Ctl=yBXiWE2~|F6@>5Wi{xxKj_al&e4mFoU=jF1&|@@(y?2bpu=l3$ z&VGn)0GIEFQ%r;MKrB-iKXoV=qsTL-W|%+KU z^ix_jj)uVoPz5#HW3crQQ7x7MoJ+Nf5bI^I=h+0()XV0fMEuWT|{|g^NMmhih literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Exercise 5.3.vbproj.FileList.txt b/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Exercise 5.3.vbproj.FileList.txt new file mode 100644 index 0000000..151eff8 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.3/obj/Exercise 5.3.vbproj.FileList.txt @@ -0,0 +1,10 @@ +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise 5.3.vbproj.GenerateResource.Cache +obj\Debug\Exercise_5_3.Resources.resources +bin\Debug\Exercise 5.3.exe +bin\Debug\Exercise 5.3.pdb +bin\Debug\Exercise_5.3.xml +obj\Debug\Exercise 5.3.exe +obj\Debug\Exercise_5.3.xml +obj\Debug\Exercise 5.3.pdb +obj\Debug\Exercise_5_3.Form1.resources diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/Exercise 5.4.vbproj b/Code/Chapter 5/VB.NET/Exercise 5.4/Exercise 5.4.vbproj new file mode 100644 index 0000000..900ebf9 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/Exercise 5.4.vbproj @@ -0,0 +1,96 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {7624D1BE-A3A1-4CFC-BBFE-C7EB8CED7588} + WinExe + Exercise_5_4.Form1 + Exercise_5_4 + Exercise 5.4 + WindowsForms + + + true + full + true + true + bin\Debug\ + Exercise_5.4.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise_5.4.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/Exercise 5.4.vbproj.user b/Code/Chapter 5/VB.NET/Exercise 5.4/Exercise 5.4.vbproj.user new file mode 100644 index 0000000..33b0772 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/Exercise 5.4.vbproj.user @@ -0,0 +1,6 @@ + + + 8.0.50215 + ShowAllFiles + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/Form1.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.4/Form1.Designer.vb new file mode 100644 index 0000000..689b3c2 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/Form1.Designer.vb @@ -0,0 +1,86 @@ + _ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim DataGridViewCellStyle7 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle8 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Me.btnDataBind = New System.Windows.Forms.Button + Me.myDataGrid = New System.Windows.Forms.DataGridView + Me.btnPopulate = New System.Windows.Forms.Button + CType(Me.myDataGrid, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'btnDataBind + ' + Me.btnDataBind.Location = New System.Drawing.Point(205, 157) + Me.btnDataBind.Name = "btnDataBind" + Me.btnDataBind.Size = New System.Drawing.Size(75, 23) + Me.btnDataBind.TabIndex = 5 + Me.btnDataBind.Text = "DataBind" + ' + 'myDataGrid + ' + DataGridViewCellStyle7.BackColor = System.Drawing.Color.Silver + DataGridViewCellStyle7.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle7.ForeColor = System.Drawing.Color.Black + Me.myDataGrid.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle7 + DataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle8.BackColor = System.Drawing.Color.White + DataGridViewCellStyle8.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle8.ForeColor = System.Drawing.Color.Black + DataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.myDataGrid.DefaultCellStyle = DataGridViewCellStyle8 + Me.myDataGrid.Font = New System.Drawing.Font("Tahoma", 8.0!) + Me.myDataGrid.GridColor = System.Drawing.Color.Silver + Me.myDataGrid.Location = New System.Drawing.Point(1, 0) + Me.myDataGrid.Name = "myDataGrid" + Me.myDataGrid.RowHeadersDefaultCellStyle = DataGridViewCellStyle7 + Me.myDataGrid.Size = New System.Drawing.Size(279, 150) + Me.myDataGrid.TabIndex = 4 + ' + 'btnPopulate + ' + Me.btnPopulate.Location = New System.Drawing.Point(94, 157) + Me.btnPopulate.Name = "btnPopulate" + Me.btnPopulate.Size = New System.Drawing.Size(98, 23) + Me.btnPopulate.TabIndex = 3 + Me.btnPopulate.Text = "Populate Arraylist" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(282, 183) + Me.Controls.Add(Me.btnDataBind) + Me.Controls.Add(Me.myDataGrid) + Me.Controls.Add(Me.btnPopulate) + Me.Name = "Form1" + Me.Text = "Exercise 5.4" + CType(Me.myDataGrid, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents btnDataBind As System.Windows.Forms.Button + Friend WithEvents myDataGrid As System.Windows.Forms.DataGridView + Friend WithEvents btnPopulate As System.Windows.Forms.Button + +End Class diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/Form1.resx b/Code/Chapter 5/VB.NET/Exercise 5.4/Form1.resx new file mode 100644 index 0000000..02bbfa2 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/Form1.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/Form1.vb b/Code/Chapter 5/VB.NET/Exercise 5.4/Form1.vb new file mode 100644 index 0000000..3753918 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/Form1.vb @@ -0,0 +1,46 @@ +Imports System.Data +Imports System.Data.Common +Imports System.Collections +Imports System.Data.SqlClient + +Public Class Form1 + + Dim dbRecordsHolder As ArrayList + + Private Sub btnPopulate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPopulate.Click + Dim connectionString As String = _ + "Server=(local);Database=Test;Integrated Security=SSPI;Asynchronous Processing=true" + Dim testConnection As SqlConnection = _ + New SqlConnection(connectionString) + + Dim testCommand As SqlCommand = _ + New SqlCommand("Select * from TestDemo", testConnection) + testConnection.Open() + + Dim callback As AsyncCallback = New AsyncCallback(AddressOf DataReaderIsReady) + Dim asyncresult As IAsyncResult = testCommand.BeginExecuteReader(callback, testCommand) + End Sub + + Private Sub DataReaderIsReady(ByVal result As IAsyncResult) + Dim testCommand As SqlCommand = CType(result.AsyncState, SqlCommand) + + Dim sqlDr As SqlDataReader = testCommand.EndExecuteReader(result) + If sqlDr.HasRows Then + + Dim rec As DbDataRecord + For Each rec In sqlDr + dbRecordsHolder.Add(rec) + Next + End If + sqlDr.Close() + testCommand.Connection.Dispose() + End Sub + + Private Sub btnDataBind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDataBind.Click + myDataGrid.DataSource = dbRecordsHolder + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + dbRecordsHolder = New ArrayList() + End Sub +End Class diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Application.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Application.Designer.vb new file mode 100644 index 0000000..f2ae833 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'NOTE: This file is auto-generated; do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to Project Properties or double-click the My Project node in + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.Exercise_5_4.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Application.myapp b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Application.myapp new file mode 100644 index 0000000..1243847 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Application.myapp @@ -0,0 +1,11 @@ + + + true + Form1 + false + 0 + true + 0 + 0 + true + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/ApplicationEvents.vb b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/ApplicationEvents.vb new file mode 100644 index 0000000..3b9cdcd --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/ApplicationEvents.vb @@ -0,0 +1,15 @@ +Namespace My + + 'The following events are available for MyApplication + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + Class MyApplication + + End Class + +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/AssemblyInfo.vb b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..0b9f9d6 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Resources.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Resources.Designer.vb new file mode 100644 index 0000000..d5f269a --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_5_4.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Resources.resx b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Settings.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Settings.Designer.vb new file mode 100644 index 0000000..68fec63 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_5_4.Settings + Get + Return Global.Exercise_5_4.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Settings.settings b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/bin/Debug/Exercise 5.4.exe b/Code/Chapter 5/VB.NET/Exercise 5.4/bin/Debug/Exercise 5.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..7e60ebb880967b2a10188c6f16a809b8de926c92 GIT binary patch literal 32768 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 LsC(eo(gXho>3f1M literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/bin/Debug/Exercise 5.4.pdb b/Code/Chapter 5/VB.NET/Exercise 5.4/bin/Debug/Exercise 5.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..659ab44b17c7c4ac2af4bf0fa57e5a7edb24376e GIT binary patch literal 62976 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 + + + +Exercise5.4 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise 5.4.exe b/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise 5.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..7e60ebb880967b2a10188c6f16a809b8de926c92 GIT binary patch literal 32768 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 LsC(eo(gXho>3f1M literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise 5.4.pdb b/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise 5.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..659ab44b17c7c4ac2af4bf0fa57e5a7edb24376e GIT binary patch literal 62976 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise_5.4.xml b/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise_5.4.xml new file mode 100644 index 0000000..0ab8ce1 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise_5.4.xml @@ -0,0 +1,24 @@ + + + + +Exercise5.4 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise_5_4.Form1.resources b/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Debug/Exercise_5_4.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYCZ_xNEqEaWT4qwJ#ZhCSayXqVV{xdn?^)fbzH-zuh9qfJ%iWm-UEP@ zu|a=`9Pd~`StF7`Tsx+H*D5V~Y%zgOgShWFHciXmIe$A29Ge`&{T|>MAFrW|7+Ge2av$Y8GzsJp zElqFIbD*8#5~^oFTrJYHBAx>uQ<%S7`J$4bXO%}m|E#>KWava}B$lB^V&4M&6=<41 zh`kEBMQz3S2UT57kf+XpKBk@peM!AqBMLh*9dM2bB9@{cGhrpzkOTfjY70=!gcll-T+%wZiQ! zYtWoTt*IgL3Fy8OqFY4|(1Rg5BX$El8KQ^84M49*l->FpaS-TziJ}qIZbI9y{8i+k z>j}}@VhI`8E72KBDK^k8p{_-_4X7+pmO7MWpa&!pbe*z_TsU1d9M4ZLXgT9RHGT%cS#V$#QB;6}%kJRpxbV$;@k{Xg)lHLZI6;;W1NcuH;Mm;Gy zh;!FLoU@(u2i1avb96twtyaaiVR^3@ldFA5_Buq}@w0S@`r`?#I-*i`(wTUd@;UH3 zlqaOk&m^6c^p~Jxu<>Y%(5Y2SDx;XmZ)p;eAu&gHQZvS9i3Q20#j2E?p)W&zhVr2I zLOvnROZmgn@?m9sHj-c z1lBhRnv#1?r#Ot&{=Jw1T@haZ{iFC2=y#O|L7!Eg0=+)=4CvX|i>S*OehO+S4$6KM zcxnP|!AZd<-e%AoPG^BRT>*XzWEK4Gq1WgQ`a6p0Z{j_nuEOD(_6CX$rB-W#PbxIt zH=~w@Pi|}Nu11~mZmuE{-i%ss_UwX53vH8kqE6fg=q@opBIvqz$|+QA^9CwDDuz8`cvhaKs{6`i+sYfh<&v-kXU^`K9nz<&(2hFAa>X}Y zut!|yl$rOzoiOL8P4~2wH$9qJa!sQ!Z7i6F=UEM_(^kQB=XTRk({m~=8?E!J*EQ3o z@5{re(PZOT^@d1m!#BtvpO;xP1Yo{fx z8V04}EYLceV;&O5?j%!`w{<40ZA@cvc1>E>S?hT@t;TU1JCEOn_4LT01ExP=cuS-B zTA-O~*<^vd&p5%MPor2Z-<+MDEP1|B%7ddBvO+*(mREML{Ecdk6mFspAClXtYP2N! zWC`_BGHe=kz%Bd74ZC8Z95|&?z){uQ1#8ey5m9YS86{&8d33`n0;bUT0A5H8+qxqt z+R=*bS6p+lwBXc?Lz!HJ^$vMLk=|?IWt<5Koqq} z@epHyjG}wZVX^F#%#x1>)U;{5V4+|~T<3Prn77S+KHkmd@xZNDO#4{256L|jt!0~T zv;qX)GrG*RPZpS>v3%a#UCt3sO2J_z@+S2N$+=^Vkp^{ z_pQ?gKled(*OpOD1Z`Y)EC4x0{_3Zx{UR*24_?$>KX|+Qzcvyt;m> zs)gHf{Rs*e&UE$D*!4fcKrh%fA1(vqv`i+sIKTOgz@%B)gKLO%yw94DI5^>0%RJH0 zg~C()kGwPbje$(we0Sm@O8xYXlgB%TUcWc>_>Hr7Wq+5xKBketVU=r6CfajbMXs4a zDg-G8*$`wIw1uDzp9Mlqp&yeJlPr@qRTIi~I8CV<<=VkylrBoP2+>8j4+Qtm?FEP>a-F!kd6-Tn-FS5uz;N5iq#Ig|6&fQgt_hJHNJVe=QTR#BA>dOg z_*B4Wna>7%8}n@{pVo+0WLgAmnySi@muDzmT__2GJQna)Mj3#HJq2&Ifvjwp@8liZ)2AJy zJmLH0QQN|96v=a!9}uk@oeKEe;8n$!Q<&&9cupK7Nvr~|gAfXT0dX=YcPybPB7<8} z$#o*_m_RpD9K5YC(zrtkqUe3-9Diho?MKXO5n6jc-(XkQ;IMJWYXQz)xdMSA5XcBXL*uJw18)uTMsG? zU;NM-kb2M?7Lo_e{$FK_#iJJYG+)47% zPkGHa8U`Cg71V8y!`4Ma^;ib6FV!zXtXILFXX8uT5@NTJFN2D}L{n5n`5b{4hfYC~ zhuuayn~p5;4rgIzCFx10(}-WE0{qFHl6vJl4neypM;V3BGW>H!7HJ8dNtUWFV>%ql zIa?f4lzB$~|Ja6P-hz1+uw(N)*JrPuH_jo^XJwy#m^JVFMa RM$d1!_k4WQ@^P8@zX0C^Mgaf- literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Exercise 5.4.vbproj.FileList.txt b/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Exercise 5.4.vbproj.FileList.txt new file mode 100644 index 0000000..c48710a --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.4/obj/Exercise 5.4.vbproj.FileList.txt @@ -0,0 +1,10 @@ +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise 5.4.vbproj.GenerateResource.Cache +obj\Debug\Exercise_5_4.Resources.resources +bin\Debug\Exercise 5.4.exe +bin\Debug\Exercise 5.4.pdb +bin\Debug\Exercise_5.4.xml +obj\Debug\Exercise 5.4.exe +obj\Debug\Exercise_5.4.xml +obj\Debug\Exercise 5.4.pdb +obj\Debug\Exercise_5_4.Form1.resources diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/Exercise 5.5.vbproj b/Code/Chapter 5/VB.NET/Exercise 5.5/Exercise 5.5.vbproj new file mode 100644 index 0000000..f728a6b --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/Exercise 5.5.vbproj @@ -0,0 +1,84 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {708853C3-E94E-4D78-9C16-AE48BD398F1B} + Exe + Sub Main + Exercise_5_5 + Exercise 5.5 + Console + + + true + full + true + true + bin\Debug\ + Exercise_5.5.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise_5.5.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/Exercise 5.5.vbproj.user b/Code/Chapter 5/VB.NET/Exercise 5.5/Exercise 5.5.vbproj.user new file mode 100644 index 0000000..ca07fd0 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/Exercise 5.5.vbproj.user @@ -0,0 +1,6 @@ + + + ProjectFiles + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/Module1.vb b/Code/Chapter 5/VB.NET/Exercise 5.5/Module1.vb new file mode 100644 index 0000000..09433c2 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/Module1.vb @@ -0,0 +1,25 @@ +Imports System.Data +Imports System.Data.SqlClient + +Module Module1 + Sub Main() + Dim connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = _ + New SqlCommand("Select * from UserBasicInformation" & ";" & "Select * from PermissionsTable", testConnection) + testConnection.Open() + Dim sqlDr As SqlDataReader = testCommand.ExecuteReader(CommandBehavior.CloseConnection) + + If sqlDr.HasRows Then + Do + Console.WriteLine("_____________________") + While sqlDr.Read() + Console.WriteLine(sqlDr.GetInt32(0) _ + & " : " + sqlDr.GetString(1)) + End While + Loop While sqlDr.NextResult() + End If + End Using + End Sub +End Module diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Application.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Application.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Application.myapp b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/AssemblyInfo.vb b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..841542d --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Resources.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Resources.Designer.vb new file mode 100644 index 0000000..e764a3d --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_5_5.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Resources.resx b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Settings.Designer.vb b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Settings.Designer.vb new file mode 100644 index 0000000..41b6ec6 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_5_5.Settings + Get + Return Global.Exercise_5_5.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Settings.settings b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/bin/Debug/Exercise 5.5.exe b/Code/Chapter 5/VB.NET/Exercise 5.5/bin/Debug/Exercise 5.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..edf0fb0d0155cba8bf5d32a615ed53f7cc8f37da GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/bin/Debug/Exercise 5.5.pdb b/Code/Chapter 5/VB.NET/Exercise 5.5/bin/Debug/Exercise 5.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..8209d418eb7cd1746743f1d8962e63a2d282f98a GIT binary patch literal 42496 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/bin/Debug/Exercise_5.5.xml b/Code/Chapter 5/VB.NET/Exercise 5.5/bin/Debug/Exercise_5.5.xml new file mode 100644 index 0000000..8964254 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/bin/Debug/Exercise_5.5.xml @@ -0,0 +1,24 @@ + + + + +Exercise5.5 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise 5.5.exe b/Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise 5.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..edf0fb0d0155cba8bf5d32a615ed53f7cc8f37da GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise 5.5.pdb b/Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise 5.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..8209d418eb7cd1746743f1d8962e63a2d282f98a GIT binary patch literal 42496 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise 5.5.vbproj.GenerateResource.Cache b/Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise 5.5.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..aab6cc4d0759357a834bee5d2896873a1ad530a6 GIT binary patch literal 784 zcma)3O-sW-5KV1U`=L+|BBF;P9)y56EOC}x#(&&m zwKMXEqU`cnf)Nb8j?tRh(=yQ87kC|szJ_sw9Noz={8>6p1*Ib+K<~mT+Ckx9RoT}HtV={n!%iLDRlkw>En7js>)K;SYo(|!4Ebd6GDlX-7t z{p~R>e0!L%=e2+!6hl~=$ZLU7&qx(0kn + + + +Exercise5.5 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise_5_5.Resources.resources b/Code/Chapter 5/VB.NET/Exercise 5.5/obj/Debug/Exercise_5_5.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYvK{Xm5(@_|+Y`TBCPp(c=v- zbv+>_Uh0}&v^=fkIt#8*&~iqx==j>4sk!B%W)-!OLsMG8$(#Ddjp^>t_2E&X2@#{q z|KJTpv%N-5T^mG-C<{pg-a$V|7^f%_SfB`3wkja;;(9K(c8>v%2fKIUpI^ zAQ;}LR$O&$5Yg+dX*)2KvCcxtzBc2kYlB2Xbx^YBIIn0Nn?iBA`wF60n}~#z{`aI) z>A}!+FM4D%-P_VH=rXv0FtZGzI#@tDy^|8X6zLFZW*J0v;+N>)B(n^nIw*uSRb*l~ z9xhcxorz`X-8QUYOXBlPdv6G0R=jrT?|`Q?=TV_uu*ZBE<#v`i9|GBsJc}i7>C5(D z@s)`+AZ*S0C&wTcTKTZ~~)Kl*J)r)UX0=WpAAqvIp!?*^Vm4z>;1&Kxi| zKyke7n+**Jgx(e(rA=n>WY76E+sOoBhJarcIQS}Vyi|Tffpg)18DG_gh=jr&Kc!F+=FM{41XPZakZ2tmy zjwy&N%JmMq2HB0!0iXsT&JNKLpp9T+6bCwiu^VBVlIUcJaBo9*7kvr31m8uXnI5L^ z)0MDmrQNhoYy~|jc7UE0SA#w#hN+A0SMG)NFO;u?{#|(x)QLS!hc&pR#O8lc3*6qc z3e8H?k{S?~L-)B5-7LC+9thECu^Z^|5Irca1A1Aa%;sN;gFx>{6wRP^5!!y`&msq1 zcZl8+i^#xUiB3~Wv4L(1bbyk33@SY@Q7m;(IfL4H zN1~QgD)ud)y0U{@rFNI31Cs8Q)R5GY^cK*Js7StD($CYA>IuEQzX6CN%|KNlz_8pRvZCMH;} z37%II9K&EpSu!i-vr@7WQkI{S{41 z{w6_F^33TFhp^kf5!0Z{;!~i%7oP$BhVlUDQ_2rPuZ=wkdM5S)>N19(f?A4$vL6MW z8bF)zq~IssM$jyt&H`(?4E!d@%J|()uhQ%ER}|A<#M?q$fx}hpbrc;+t=a@XsnGb` zj9MB#xvjR_jymPjTty^&7&YVBvkNB8v_OIx2WM$F;3F znzVAR<2m!be$4X9hCO6>R*ohs`${F-${D`p6lrwHbaR$x&g_}lqfb_#9d-((vTwRz z54+AuGv|XlZq7}a?kOv0dNjT0nnr%gm^Tm2u^LvVti0*Y?xrKA=agMGTH{x*X{Joy zmk*msdAUnj$YOwx0{gJ9QNt3F}|Ay?NlRq=eYKtbTNVEQvvRiVnRUY4|~ zo0JMOKx=G{dPo?%lT1N&YfM;MpT@$>s5)SROn=Pq7Kib* zK+~0y$pYC=JHbPrhOt||IWsd}^n9b314q+jg@8sZujF9+>(v}7+(ZN3Be#>4XiN0* zBI>1R*fi{bTk?+?cG*NZa7v|sqpG?K_MomJqS}}=ipB!+=!R7UOrh}sypR~Sbz4xh z!)4nqyXJUt-l-agGPwzB9rA)Ay;sM}I4RPEQz7JeYoY80Q`K!iRJgM0^5(pOD5{I% zDMkVrMSay_q2v_JqK_NYv}rVNpv_J`PjDi$UPUWWt(oa z0|et@-f;858Bp^%h8r`G-Dni*=2|y2+%BHAP^2-_E*&&0w>oaV<|!O8Vi^lX$Mdb6 zhjq@C7qDTNBySckF+EZ)`c}czF9|kO@HD3Dacu;}A8bdcr(?{}R-DA||u zty2cy_d#`6w_&n!z;(){VaK*{GU0%$Ma4T5%)liOaN(k&NM#*6rD|3YIZjS%)h_20)p&)YUXT>3_7iA-|w{N^_TlV)g-ymY+Jnvghn!m*ZlqECGF z2fr&mf5-kWJp0zqw@;k^3Z;H@+lgcC1FzkaI)DAlota;!uZ?LW@UY4@CKGMh%_7^# zAQgfXgG>lA3|d3biq8U}rZA34ib;k^tEvfQE1afOjk0ZEnv_mTHVe^7==+5b&7GvQ z5Y#Qi&f4)lq4og864?%1T|7+(lPB`=?$cy*y91oE+fw=!x1s6WUfS=~9q-%eud z)>u*~xKarc*|y9mPt*q76vrH$_#8wQAVVTFRWzX)f(F9k!~}X$_QcXE#H=~IqT z8uR_qux;Tqisac#9}q3;Jr(e|!Mlntr!diJ@SHeElGp{_2O$*x0^(#)_Gm&=L=(EC zlI=j+v4Ae5ICxuOr15|hMA7@uS^mfl+jp7QBDA_cS7%q#;9=vA*!HAh6@zym(~N4J zE?!C6V9oS@=7jui#y9ZFYF9x8;rsd$Iopllx@i#K=Rpow1bzVY7){~cJ4U0p_ond9 zeu!=a9tYhIp4(5712iZ9$FK_#iK_jGJV|oW zPifUW8Yb&U71V5x!PZ4YwOIN|hfQ=5V!aafyc%EH77@FRd>K>#CYq!Q%I7e=ICK({ z9PHLR*>q%yPdE!JD@so~okILN<>61Bl++{FF#+v@oMjk3OYqMbS)fIDCRwV!jOkD) z=WKCIQRW%_|6?1Fc?;H=$BE7BT${aG-Z+0mACqJDVby%@7qD7eX6yaNVdw|9A#wQk R7(KJ@+4I3o%LirU{{o-%M~(mh literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/Exercise 5.5/obj/Exercise 5.5.vbproj.FileList.txt b/Code/Chapter 5/VB.NET/Exercise 5.5/obj/Exercise 5.5.vbproj.FileList.txt new file mode 100644 index 0000000..6993b23 --- /dev/null +++ b/Code/Chapter 5/VB.NET/Exercise 5.5/obj/Exercise 5.5.vbproj.FileList.txt @@ -0,0 +1,9 @@ +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise 5.5.vbproj.GenerateResource.Cache +bin\Debug\Exercise 5.5.exe +bin\Debug\Exercise 5.5.pdb +bin\Debug\Exercise_5.5.xml +obj\Debug\Exercise 5.5.exe +obj\Debug\Exercise_5.5.xml +obj\Debug\Exercise 5.5.pdb +obj\Debug\Exercise_5_5.Resources.resources diff --git a/Code/Chapter 5/VB.NET/UDT/AssemblyInfo.vb b/Code/Chapter 5/VB.NET/UDT/AssemblyInfo.vb new file mode 100644 index 0000000..5460ed9 --- /dev/null +++ b/Code/Chapter 5/VB.NET/UDT/AssemblyInfo.vb @@ -0,0 +1,34 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices +Imports System.Data.Sql + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: + + diff --git a/Code/Chapter 5/VB.NET/UDT/Test Scripts/Test.sql b/Code/Chapter 5/VB.NET/UDT/Test Scripts/Test.sql new file mode 100644 index 0000000..242c0f3 --- /dev/null +++ b/Code/Chapter 5/VB.NET/UDT/Test Scripts/Test.sql @@ -0,0 +1,35 @@ +-- Examples for queries that exercise different SQL objects implemented by this assembly + +----------------------------------------------------------------------------------------- +-- Stored procedure +----------------------------------------------------------------------------------------- +-- exec StoredProcedureName + + +----------------------------------------------------------------------------------------- +-- User defined function +----------------------------------------------------------------------------------------- +-- select dbo.FunctionName() + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- CREATE TABLE test_table (col1 UserType) +-- go +-- +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 1')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 2')) +-- INSERT INTO test_table VALUES (convert(uri, 'Instantiation String 3')) +-- +-- select col1::method1() from test_table + + + +----------------------------------------------------------------------------------------- +-- User defined type +----------------------------------------------------------------------------------------- +-- select dbo.AggregateName(Column1) from Table1 + + +select 'put your test script here' diff --git a/Code/Chapter 5/VB.NET/UDT/UDT.vbproj b/Code/Chapter 5/VB.NET/UDT/UDT.vbproj new file mode 100644 index 0000000..bb14c9a --- /dev/null +++ b/Code/Chapter 5/VB.NET/UDT/UDT.vbproj @@ -0,0 +1,65 @@ + + + + Debug + AnyCPU + {c252feb5-a946-4202-b1d4-9916a0590387};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + 8.0.50215 + 2.0 + {D55496AA-EA27-4E28-B42E-16C45FB47464} + Library + Empty + UDT + UDT + + + true + true + true + true + bin\ + + + false + false + true + false + true + bin\ + + + + System + False + + + System.Data + False + + + System.XML + False + + + + + + + + + + + + + + + + Content + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/UDT/UDT.vbproj.user b/Code/Chapter 5/VB.NET/UDT/UDT.vbproj.user new file mode 100644 index 0000000..019c522 --- /dev/null +++ b/Code/Chapter 5/VB.NET/UDT/UDT.vbproj.user @@ -0,0 +1,12 @@ + + + 8.0.50215 + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 5/VB.NET/UDT/XYCoOrdinate.vb b/Code/Chapter 5/VB.NET/UDT/XYCoOrdinate.vb new file mode 100644 index 0000000..abbb29b --- /dev/null +++ b/Code/Chapter 5/VB.NET/UDT/XYCoOrdinate.vb @@ -0,0 +1,70 @@ +Imports System +Imports System.Data +Imports System.Data.Sql +Imports System.Data.SqlTypes +Imports Microsoft.SqlServer.Server +Imports System.Runtime.InteropServices + + _ + _ + _ +Public Structure XYCoOrdinate + Implements INullable + + Private m_x As Integer + Private m_y As Integer + + Public Property X() As Integer + Get + Return m_x + End Get + Set(ByVal value As Integer) + m_x = value + End Set + End Property + + Public Property Y() As Integer + Get + Return m_y + End Get + Set(ByVal value As Integer) + m_y = value + End Set + End Property + + Public Overrides Function ToString() As String + Return m_x.ToString() & "," & m_y.ToString() + End Function + + Public ReadOnly Property IsNull() As Boolean Implements INullable.IsNull + Get + Return False + End Get + End Property + + Public Shared ReadOnly Property Null() As XYCoOrdinate + Get + Dim h As XYCoOrdinate = New XYCoOrdinate + Return h + End Get + End Property + + Public Shared Function Parse(ByVal s As SqlString) As XYCoOrdinate + If s.IsNull Or s.Value.ToLower().Equals("null") Then + Return Null + End If + Dim u As XYCoOrdinate = New XYCoOrdinate() + + Dim str As String = s.ToString().Trim() + Dim commaLocation As Integer = str.IndexOf(",") + Try + u.X = CInt(str.Substring(0, commaLocation)) + u.Y = CInt(str.Substring(commaLocation + 1, str.Length - commaLocation - 1)) + Catch ex As Exception + Throw New ApplicationException( _ + "Error converting " + str + " to a co-ordinate.", ex) + End Try + Return u + End Function +End Structure + diff --git a/Code/Chapter 5/VB.NET/UDT/bin/UDT.dll b/Code/Chapter 5/VB.NET/UDT/bin/UDT.dll new file mode 100644 index 0000000000000000000000000000000000000000..cd37f20c720e3af2ac2f317b1ba291ccbd048569 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/UDT/bin/UDT.pdb b/Code/Chapter 5/VB.NET/UDT/bin/UDT.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e1b0c91ac119218a46513417ac393cc609d028ed GIT binary patch literal 19968 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 5/VB.NET/UDT/obj/Debug/UDT.pdb b/Code/Chapter 5/VB.NET/UDT/obj/Debug/UDT.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e1b0c91ac119218a46513417ac393cc609d028ed GIT binary patch literal 19968 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 V;`}zef7HxwAI4J|K9;8i{vX&TeO>?n literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.1/Example 6.1.csproj b/Code/Chapter 6/C#/Example 6.1/Example 6.1.csproj new file mode 100644 index 0000000..d95cacc --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.1/Example 6.1.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {7C686877-1856-4D7A-B6DF-3AE3D0AB8E9B} + Exe + Example_6_1 + Example 6.1 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.1/Example 6.1.csproj.user b/Code/Chapter 6/C#/Example 6.1/Example 6.1.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.1/Example 6.1.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.1/Program.cs b/Code/Chapter 6/C#/Example 6.1/Program.cs new file mode 100644 index 0000000..0be6d4f --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.1/Program.cs @@ -0,0 +1,51 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data ; + +#endregion + +namespace Example_6_1 +{ + class Program + { + static void Main(string[] args) + { + // Create the table + DataTable productsTable = new DataTable("Products") ; + // Build the Products schema + productsTable.Columns.Add("ID", typeof(System.Int32)) ; + productsTable.Columns.Add("Name", typeof(System.String)) ; + productsTable.Columns.Add("Category", typeof(System.Int32)) ; + + // Set up the ID column as the primary key + productsTable.PrimaryKey = + new DataColumn[] { productsTable.Columns["ID"] }; + + productsTable.Columns["ID"].AutoIncrement = true ; + productsTable.Columns["ID"].AutoIncrementSeed = 1 ; + productsTable.Columns["ID"].ReadOnly = true ; + + DataRow tempRow; + for (int i = 0; i < 10; i++) + { + tempRow = productsTable.NewRow(); + // Make every even row Caterham Seven de Dion + if (Math.IEEERemainder(i, 2) == 0) + { + tempRow["Name"] = "Caterham Seven de Dion #" + i.ToString() ; + tempRow["Category"] = 1; + } + else + { + tempRow["Name"] = "Dodge Viper #" + i.ToString() ; + tempRow["Category"] = 2; + } + productsTable.Rows.Add(tempRow); + } + productsTable.WriteXml("productsTable.xml") ; + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.1/Properties/AssemblyInfo.cs b/Code/Chapter 6/C#/Example 6.1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b50a4b3 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.1/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Example_6_1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Example_6_1")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 6/C#/Example 6.1/Properties/Resources.cs b/Code/Chapter 6/C#/Example 6.1/Properties/Resources.cs new file mode 100644 index 0000000..5bfef63 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.1/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_1.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.1/Properties/Resources.resx b/Code/Chapter 6/C#/Example 6.1/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.1/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.1/Properties/Settings.cs b/Code/Chapter 6/C#/Example 6.1/Properties/Settings.cs new file mode 100644 index 0000000..1cfc275 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.1/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_1.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.1/Properties/Settings.settings b/Code/Chapter 6/C#/Example 6.1/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.1/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.1/bin/Debug/Example 6.1.exe b/Code/Chapter 6/C#/Example 6.1/bin/Debug/Example 6.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..cbf5988f9d8c021c344d925a13d12548fd90c413 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.1/bin/Debug/productsTable.xml b/Code/Chapter 6/C#/Example 6.1/bin/Debug/productsTable.xml new file mode 100644 index 0000000..fe733f4 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.1/bin/Debug/productsTable.xml @@ -0,0 +1,53 @@ + + + + 1 + Caterham Seven de Dion #0 + 1 + + + 2 + Dodge Viper #1 + 2 + + + 3 + Caterham Seven de Dion #2 + 1 + + + 4 + Dodge Viper #3 + 2 + + + 5 + Caterham Seven de Dion #4 + 1 + + + 6 + Dodge Viper #5 + 2 + + + 7 + Caterham Seven de Dion #6 + 1 + + + 8 + Dodge Viper #7 + 2 + + + 9 + Caterham Seven de Dion #8 + 1 + + + 10 + Dodge Viper #9 + 2 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.1/obj/Debug/Example 6.1.csproj.GenerateResource.Cache b/Code/Chapter 6/C#/Example 6.1/obj/Debug/Example 6.1.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..d34a0e65922c6840f26150a674fd82c247d75e25 GIT binary patch literal 784 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.1/obj/Example 6.1.csproj.FileList.txt b/Code/Chapter 6/C#/Example 6.1/obj/Example 6.1.csproj.FileList.txt new file mode 100644 index 0000000..3b56519 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.1/obj/Example 6.1.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Example 6.1.exe +.\bin\Debug\Example 6.1.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Example_6_1.Properties.Resources.resources +obj\Debug\Example 6.1.csproj.GenerateResource.Cache +obj\Debug\Example 6.1.exe +obj\Debug\Example 6.1.pdb diff --git a/Code/Chapter 6/C#/Example 6.2/Example 6.2.csproj b/Code/Chapter 6/C#/Example 6.2/Example 6.2.csproj new file mode 100644 index 0000000..5330510 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.2/Example 6.2.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {A72E72A2-C788-4D27-BDDF-BD9B49E3C967} + Exe + Example_6_1 + Example 6.1 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.2/Example 6.2.csproj.user b/Code/Chapter 6/C#/Example 6.2/Example 6.2.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.2/Example 6.2.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.2/Example 6.suo b/Code/Chapter 6/C#/Example 6.2/Example 6.suo new file mode 100644 index 0000000000000000000000000000000000000000..9c9a088b77ddd2c8ddf6aa9b42e958b1c65485cd GIT binary patch literal 2560 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4%9zsqZbt)A?Ac!F!2um0g7+e|hfOHW-i1Y+Tp^gk}DrfhuxM6V%&F$6-a~f5iGVyb@!-xNC*G`+#n6n literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.2/Program.cs b/Code/Chapter 6/C#/Example 6.2/Program.cs new file mode 100644 index 0000000..ee4628a --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.2/Program.cs @@ -0,0 +1,126 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data ; + +#endregion + +namespace Example_6_2 +{ + class Program + { + static void Main(string[] args) + { + DataTable productsTable = SetupAndPopulateDataTable(); + // Setup Events. + productsTable.ColumnChanged += + new DataColumnChangeEventHandler(productsTable_ColumnChanged); + productsTable.ColumnChanging += + new DataColumnChangeEventHandler(productsTable_ColumnChanging); + productsTable.RowChanged += + new DataRowChangeEventHandler(productsTable_RowChanged); + productsTable.RowChanging += + new DataRowChangeEventHandler(productsTable_RowChanging); + productsTable.RowDeleted += + new DataRowChangeEventHandler(productsTable_RowDeleted); + productsTable.RowDeleting += + new DataRowChangeEventHandler(productsTable_RowDeleting); + + Console.WriteLine("Change some data and watch the events fire."); + Console.WriteLine("------------------------------------------"); + productsTable.Rows[0]["Name"] = "Pinto"; + + Console.WriteLine("\nDelete a row and watch the events fire."); + Console.WriteLine("------------------------------------------"); + productsTable.Rows[0].Delete(); + + Console.Read(); + } + + private static DataTable SetupAndPopulateDataTable() + { + // Create the table + DataTable productsTable = new DataTable("Products"); + // Build the Products schema + productsTable.Columns.Add("ID", typeof(System.Int32)); + productsTable.Columns.Add("Name", typeof(System.String)); + productsTable.Columns.Add("Category", typeof(System.Int32)); + + // Set up the ID column as the primary key + productsTable.PrimaryKey = + new DataColumn[] { productsTable.Columns["ID"] }; + + productsTable.Columns["ID"].AutoIncrement = true; + productsTable.Columns["ID"].AutoIncrementSeed = 1; + productsTable.Columns["ID"].ReadOnly = true; + + DataRow tempRow; + for (int i = 0; i < 10; i++) + { + tempRow = productsTable.NewRow(); + // Make every even row Caterham Seven de Dion + if (Math.IEEERemainder(i, 2) == 0) + { + tempRow["Name"] = "Caterham Seven de Dion #" + i.ToString(); + tempRow["Category"] = 1; + } + else + { + tempRow["Name"] = "Dodge Viper #" + i.ToString(); + tempRow["Category"] = 2; + } + productsTable.Rows.Add(tempRow); + } + productsTable.AcceptChanges(); + return productsTable; + } + + private static void productsTable_ColumnChanged + (object sender, DataColumnChangeEventArgs e) + { + Console.WriteLine("productsTable_ColumnChanged"); + Console.WriteLine(" Value: " + e.Row["Name"].ToString()); + Console.WriteLine(" RowState: " + e.Row.RowState.ToString()); + } + + private static void productsTable_ColumnChanging + (object sender, DataColumnChangeEventArgs e) + { + Console.WriteLine("productsTable_ColumnChanging"); + Console.WriteLine(" Value: " + e.Row["Name"].ToString()); + Console.WriteLine(" RowState: " + e.Row.RowState.ToString()); + } + + private static void productsTable_RowChanged + (object sender, DataRowChangeEventArgs e) + { + Console.WriteLine("productsTable_RowChanged"); + Console.WriteLine(" Value: " + e.Row["Name"].ToString()); + Console.WriteLine(" RowState: " + e.Row.RowState.ToString()); + } + + private static void productsTable_RowChanging + (object sender, DataRowChangeEventArgs e) + { + Console.WriteLine("productsTable_RowChanging"); + Console.WriteLine(" Value: " + e.Row["Name"].ToString()); + Console.WriteLine(" RowState: " + e.Row.RowState.ToString()); + } + + private static void productsTable_RowDeleted + (object sender, DataRowChangeEventArgs e) + { + Console.WriteLine("productsTable_RowDeleted"); + Console.WriteLine(" RowState: " + e.Row.RowState.ToString()); + } + + private static void productsTable_RowDeleting + (object sender, DataRowChangeEventArgs e) + { + Console.WriteLine("productsTable_RowDeleting"); + Console.WriteLine(" RowState: " + e.Row.RowState.ToString()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.2/Properties/AssemblyInfo.cs b/Code/Chapter 6/C#/Example 6.2/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b50a4b3 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.2/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Example_6_1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Example_6_1")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 6/C#/Example 6.2/Properties/Resources.cs b/Code/Chapter 6/C#/Example 6.2/Properties/Resources.cs new file mode 100644 index 0000000..45e6884 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.2/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_2.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.2/Properties/Resources.resx b/Code/Chapter 6/C#/Example 6.2/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.2/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.2/Properties/Settings.cs b/Code/Chapter 6/C#/Example 6.2/Properties/Settings.cs new file mode 100644 index 0000000..1f74dab --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.2/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_2.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.2/Properties/Settings.settings b/Code/Chapter 6/C#/Example 6.2/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.2/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.2/bin/Debug/Example 6.1.exe b/Code/Chapter 6/C#/Example 6.2/bin/Debug/Example 6.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..3d02590f79d7dd588d2030588dd4fa2deb5cc3d3 GIT binary patch literal 20480 zcmeHNd2Afj8UJRzJ9aklCSE6YOs+{Bf^#iCawkxqNepq~*p3sxk{R#5*qiLmEHkr- zjVN_gN{brQ22lhpl?bYeDyV3sAfSb+s0vj$s({o=g;GI^`d%t(gdvCVu)^Ae@5ruJIyh!vMo_sY+dTBBab!^$sVsvKK>&u^0 z_PoBlZzOGNIm;Zj^sJWD4a0P_A)#4$LrWW4`@UW+Yocx zd~fekOqs2e5owU{jce%^5Dj-TZYCNY^W3!7WK0-xtaLkWwrj>+bTt#T7O_DxKp;RMKp;RMKp;RMKp;RM zKp;RMKp;Ti{|N!!SL5QnX^0~9ja5Wvuy<6z<5tgKJ8>q!c9**<>%;UGjF7j2>Ov?X zs?NWlVrQ+|t*4z`#^+gdD!FklI@I`7t6!%4?1yQ9h!cN=EIG;rpyyxl` z$mA`Bq-s_{Qe{?yT2Di4Jr81H1CAVL3ue~LIm{ZitGfnt)f%G8`Ustb8`Q9ZtZIdF z_9CdFs)%{r8eLzU`7bIO)Q zFN8UOZQU0yUR2H1tWnF?(yTQl^(A!B3!AKO!H3rmevM>_iI#KQ-dxL3t^<+rdPeUQ zjLh{=odk-?RHHRC*~h2<1s_eJDfLKPNj=!;%IhKi6Fy!c>ye3aU3f1O7P7p0m06aC z>aIs!(YUmzK12ub#Dr5pcVmEt=gaOoyLA0_x*MZ4T!+)M=oA$OlRX<9f1ESWA7h?n z16$G`P@F6&x|US-pw7Lz_428H zZ#e0!@V)m62PhS;?v{4`=a^f2Z)#QKTgN@aJjOw6tl!*-b62i$2K0T@vi5GGZUFEU zUJSLpj+HisZMOIvz|03;wFi1>-dy+ivv${k&UWZD@DBoz+SZIY#KyP~hH`MhNBN@@NVEFCOU2>d83(S18>BW&sE`;^KsvjdbZ~@Kha>`Q>78o!QDe9a{ri4gT5i@ zO64@E^p5hHqEa;U3Ft_uKcvzLNxv)UGm@T{^g~HQC2X@?(iq!3)=@`8v=?79?7SW-NNm>aSqsY>n zsI*M&4@GIex?PRZ5m2tFTVJ=e=Fv5@0?06@;Ltfin`stO7&qYdf{Os7a&*`yl3&IXkyMv7E$JPSj!Ak#()&OM=@C$Y-pKX;5$F-Bq3UoBbT#NtJxPD~7$ic{yrlPl zK2MK^?}Gff@CkZ}&V}!#bM$8TBG$+xUWWe02K7;JE zp9N(TeMOE?BzAO}seDGyA!L`t+fU;6U=Z79-Vd=JFZc5fd6twV9cG)@U2ijbYJoOc+j!h1nn98&mnDW6Kf- zi)~W>Sclq5w>{?ZOP5zLm|B>x;F2bX08P8d2uIA2MJhN;BI%eGWe5B9OkUvGJ7y$3 zFo%WXiCyK?w`!p|x^zPy78VU!!tNTjd`x%YHK%9Nce<_My~I0>!=^O!cw#SpyZQyO z%-7pRXquIRI{{>bXq(dnu-GdE_X zhew?0Ds)P2?CFX&Gn>7-5V zVkkd6%zbyl%$1>$F$6Jqe9+vb5XMM0m(B>QS6Ii=Sdft`kd4(NGWw`Y*%QU}xEW;y zo%B#TlXi-#Sv0&!=ixBpK-sMuDflEkm6|d_rbuQU7sc8AevjVGd3}~Mdc5EHi&<7< zcCbwh@`F~|5qr{xD2zZeHBh$frkz;968A@$aEr$v&{M^gom_@H4cOFa zI8BYzHYCFmHQ26!9N!;~fqJhqt!*3-ZLPnoqBF>rh| zyBogPuSv8&O6`zka67m;VhwSai1?q3zM@;^Pf?z*N&c-Z{`; zv*F$Qu-8(S#KJ`Ja+N~L;&_GoSWu#oQliG^gw(~Xof9qtfuIKW5|-33S;G0jLs`RQ zNmx^qSOlb^lapl;4TUabLHvNEw}c56VU6NC__&Z3vBg-hmW4}|csXm*DkP?KGMrQ7%{aLL^cdK5xM<0jZ`1s@+x@Z0MGsxMFe>-rf8Q*7k5#(L(hwu#xdx2gW1nr<6q&o3S`@P^h zL3g^px~CVzA6;LDe?N2NkqqK!y3$q4v6 zR5Myg0fM~idbw~gAQZvtPO@PkML1OfyC1OfyC1OfyC1OfyC1OfyC1OfyC1OfyukHFsnmzljl literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.2/bin/Debug/Example 6.1.pdb b/Code/Chapter 6/C#/Example 6.2/bin/Debug/Example 6.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..cf5ec355feeb76bd460e1f0ac1908be48c417e8f GIT binary patch literal 24064 zcmeI4dvIKJ702%;ZAe>El0Fa$t(!K1LQ5V6+CnQ$o3v7!(9(h^M#FZqZDZ4H+-#<; zIJyM}0dedfjw6Z=2tM&2712?cshx`8l)?Y^!3v14nV+n4(4eKH%t!j}ElpL5UR^28U9z54fuzOw!8ltsZ>@NBRO zJPWJ@r+`zzY2bA598h{{z!~67a27ZlJQsW$cpi8@I0u{yUI<t1~-q;F+$dm=%gJiz<--*SJH`}c%U@mo2lXS>+*{BW{o>cRWZNo{ET+{Lhz;1rmFiF*Ej zbl^9CEUo`3u;2wrW?A(FIF8Ta(?1&ejE;Yxl%<_4g*COBd)PrRxN^J;9K_x?xT zUMXIURlKST^Kx5)QOSg8+_+`$KsvDt zp6qqQ`i(lr%iU+65M;`TCa(!5O?rCO-=F->dw;S1@%kxcKYZlTTc`>;g0^4@bP}CY zzmzMMn_jBy82t+?*T-OcBHiUX&=Kp4ZBL}cbZ$^y zqd54p$V=Aq&kLe8Qi-_HudCKAb1Jc zI;b-6JM2Q>slChn)wqI&csiM~HZArHsQmG*dHz3Ndj46I@jm}M2m1#)xApYJdZU*` z3EZ|OlLT%iT659c(i6mOYkj~NT@#BNRqNJYx4Iow9ebl|q{>E(Sye;hM<0HL!?=VG zC8JxN+LP{~R~wG%Ca|}D2Qfk31a>zs=F___4~m=2Gw2IKbO}!TZs)k4hc1^RC;%Tb zDpnFG-v0~eK9vFrQL*wOYQ zufEC0j*_1|RNlmviW~gg zhX)ylVgR-AT^bR{7Zv7d@=@|Vstf07;aqW~Sn(k8g?c|sS+V?2KG5^}yz+V12i1l9 zAV27NeIMi>rB`)f-jm5!!}j%@o7kJs>4CMam_@nfF5jrTSRRgE`nD&!sTy4#FvFb5 zqs!z0-mcqaU_iKC)~sTuYgg3`?in~_IPH46OOsdl`0oEJ{@XW6F}@$~HEs-NUjDan zT=`#mFlEeJKI~^qW(&`Vaz>vg$_L37u+^eIZ1j1mwa>ylRnMfL(h~ER_rw*y#4ycs zK>*i9p6dHKx@W=KhHvX1Xf5S`KDW%z|LiA@L}+A@F-YC%~?okO>O|K|BGb(6LuC{3ktTn_Tx}J>)p_1 zC3ih_`t~|~>~%)ptxn%Zvij6VtIw~A#wKV1 zkAagYxDaduwcpB?fR!r+xedS>fql|^}V*}rICk+Y0 zZDaoxPmI_$@0XA}nZ3u4+s9#VeEgR`X5a2e@n6Aw`?%8#cs%1hB*y|MPw~JWQepij zC3#7l;@!4HZz6pX@ow?)uG9tsgxjs8UF%<|DBkXv$E$rz`zHKDj!z7~TJJ&ntSb8w2?WVKDI&^LEE5IjI0qA;Y7xZ1wUg!qsE~xtPAxHIHl=OTI+D`eM&<^N5(CeUfepfSJn&Wk#=2rLD zfUCf(IM-k$0mV+$%tp1d&T8E2Ox9#3Zw_=Vuw`x8vT9~ga`mj{T&*}z1%DOUzuK1l z-2htuSv=O+Oh4&vfNh!ef#1X^UyfT`p4qBZ$?(S-v`y&cS2e3fb}-I zKLE9Jq`4TXyA=P~cz2@XKb>C)TEG*A|o3gphq-2uS4 z!6n96ZCTS&y$WrL>pZI7l9XMS-j$6uy_CsS{;$pMsxEA0SvcTD1#YHeN1%X-8 zcgK1MnR|Z*yq{w6dmevYKvTvRWI2WJ%cZNJKKs60@#V>V4}daYQrSmumj6Mwi8p;t zv)pt%|2;VSaK){DObv1KQuAbD9nFdQDc?H_{dVk;?7YpUT<`n^?Clv{z71Lh)m}pT z+Uql#p!1>H9oX|T3tc_?seap(Sqz;ERg5qX%D!o00rpL!=W1vzm7Z+<9o)@4>`VstFLnOL0A7}S5NF^^!>@z&vyNK#@&C}(Yqbr6Q1Acft(N` za)=|q{BS+(g~7`Yr^eTZWy05!!#APp7I&Q|9}O|M%i3JSxvQaUBbP*BDWaiZxFhSC z0FF#ZN0bwYqA=3J76@stzy}9)p!^guzw!bTOWy+R1^0k=fcwGw!LNajf(O9E;8E}e z@EG_SD4(zWAPOq~(B7l-75^P)(A>Ii$(qYAUkdMKKWKQFDg(cEG)z>d@_Ri~s8U6W z_iqZ7`AgL)ULUSbJ~Ui6FPN@vNY7LS8Pvv(MO|zA(y6^&o02_!>HK)96#o@}0qo;0 zO=2WCwc;M;4Dya6!BB(_utIH8wF9;u85lts#pXc8)(fc;gfF>o<@y1E8CVWZM~|E6BG+xpZcm2e{XB6gO#p--B4XF-#e^+_mN%$hdJg) zL&36j%dforie=4KS59~Fwx*k0RJ=P}Tjzb|w&BL&+sb|r`2QIH`EhIB^u9bC8;0xj z-X^;sz5*&aom~!Br?Zh89lv-z=vrq3iU9p3i5;BJ006 z^~S7Uz>P;w)=;Hr0zNqP{hMgL{zKLY>|%Hdv)@EJlQ1@5{>Tt4R1wtr>sj-l(0sZzZ5ZfqQ2=>EM$Lc+btUm`3ug(Ir zh?jtuf?C*%K;AVNIpz3TaG&SP5Y(&;K}O=w1**9o?hJtUBj&9-??=r43rPP@peR@i k)`1H^8J-NV9xOre8CX=jxKvu2fzk|=W}q|!r}+&04}Uwa$p8QV literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.2/bin/Debug/Example 6.1.vshost.exe b/Code/Chapter 6/C#/Example 6.2/bin/Debug/Example 6.1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + 1 + Caterham Seven de Dion #0 + 1 + + + 2 + Dodge Viper #1 + 2 + + + 3 + Caterham Seven de Dion #2 + 1 + + + 4 + Dodge Viper #3 + 2 + + + 5 + Caterham Seven de Dion #4 + 1 + + + 6 + Dodge Viper #5 + 2 + + + 7 + Caterham Seven de Dion #6 + 1 + + + 8 + Dodge Viper #7 + 2 + + + 9 + Caterham Seven de Dion #8 + 1 + + + 10 + Dodge Viper #9 + 2 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.2/obj/Debug/Example 6.1.exe b/Code/Chapter 6/C#/Example 6.2/obj/Debug/Example 6.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..3d02590f79d7dd588d2030588dd4fa2deb5cc3d3 GIT binary patch literal 20480 zcmeHNd2Afj8UJRzJ9aklCSE6YOs+{Bf^#iCawkxqNepq~*p3sxk{R#5*qiLmEHkr- zjVN_gN{brQ22lhpl?bYeDyV3sAfSb+s0vj$s({o=g;GI^`d%t(gdvCVu)^Ae@5ruJIyh!vMo_sY+dTBBab!^$sVsvKK>&u^0 z_PoBlZzOGNIm;Zj^sJWD4a0P_A)#4$LrWW4`@UW+Yocx zd~fekOqs2e5owU{jce%^5Dj-TZYCNY^W3!7WK0-xtaLkWwrj>+bTt#T7O_DxKp;RMKp;RMKp;RMKp;RM zKp;RMKp;Ti{|N!!SL5QnX^0~9ja5Wvuy<6z<5tgKJ8>q!c9**<>%;UGjF7j2>Ov?X zs?NWlVrQ+|t*4z`#^+gdD!FklI@I`7t6!%4?1yQ9h!cN=EIG;rpyyxl` z$mA`Bq-s_{Qe{?yT2Di4Jr81H1CAVL3ue~LIm{ZitGfnt)f%G8`Ustb8`Q9ZtZIdF z_9CdFs)%{r8eLzU`7bIO)Q zFN8UOZQU0yUR2H1tWnF?(yTQl^(A!B3!AKO!H3rmevM>_iI#KQ-dxL3t^<+rdPeUQ zjLh{=odk-?RHHRC*~h2<1s_eJDfLKPNj=!;%IhKi6Fy!c>ye3aU3f1O7P7p0m06aC z>aIs!(YUmzK12ub#Dr5pcVmEt=gaOoyLA0_x*MZ4T!+)M=oA$OlRX<9f1ESWA7h?n z16$G`P@F6&x|US-pw7Lz_428H zZ#e0!@V)m62PhS;?v{4`=a^f2Z)#QKTgN@aJjOw6tl!*-b62i$2K0T@vi5GGZUFEU zUJSLpj+HisZMOIvz|03;wFi1>-dy+ivv${k&UWZD@DBoz+SZIY#KyP~hH`MhNBN@@NVEFCOU2>d83(S18>BW&sE`;^KsvjdbZ~@Kha>`Q>78o!QDe9a{ri4gT5i@ zO64@E^p5hHqEa;U3Ft_uKcvzLNxv)UGm@T{^g~HQC2X@?(iq!3)=@`8v=?79?7SW-NNm>aSqsY>n zsI*M&4@GIex?PRZ5m2tFTVJ=e=Fv5@0?06@;Ltfin`stO7&qYdf{Os7a&*`yl3&IXkyMv7E$JPSj!Ak#()&OM=@C$Y-pKX;5$F-Bq3UoBbT#NtJxPD~7$ic{yrlPl zK2MK^?}Gff@CkZ}&V}!#bM$8TBG$+xUWWe02K7;JE zp9N(TeMOE?BzAO}seDGyA!L`t+fU;6U=Z79-Vd=JFZc5fd6twV9cG)@U2ijbYJoOc+j!h1nn98&mnDW6Kf- zi)~W>Sclq5w>{?ZOP5zLm|B>x;F2bX08P8d2uIA2MJhN;BI%eGWe5B9OkUvGJ7y$3 zFo%WXiCyK?w`!p|x^zPy78VU!!tNTjd`x%YHK%9Nce<_My~I0>!=^O!cw#SpyZQyO z%-7pRXquIRI{{>bXq(dnu-GdE_X zhew?0Ds)P2?CFX&Gn>7-5V zVkkd6%zbyl%$1>$F$6Jqe9+vb5XMM0m(B>QS6Ii=Sdft`kd4(NGWw`Y*%QU}xEW;y zo%B#TlXi-#Sv0&!=ixBpK-sMuDflEkm6|d_rbuQU7sc8AevjVGd3}~Mdc5EHi&<7< zcCbwh@`F~|5qr{xD2zZeHBh$frkz;968A@$aEr$v&{M^gom_@H4cOFa zI8BYzHYCFmHQ26!9N!;~fqJhqt!*3-ZLPnoqBF>rh| zyBogPuSv8&O6`zka67m;VhwSai1?q3zM@;^Pf?z*N&c-Z{`; zv*F$Qu-8(S#KJ`Ja+N~L;&_GoSWu#oQliG^gw(~Xof9qtfuIKW5|-33S;G0jLs`RQ zNmx^qSOlb^lapl;4TUabLHvNEw}c56VU6NC__&Z3vBg-hmW4}|csXm*DkP?KGMrQ7%{aLL^cdK5xM<0jZ`1s@+x@Z0MGsxMFe>-rf8Q*7k5#(L(hwu#xdx2gW1nr<6q&o3S`@P^h zL3g^px~CVzA6;LDe?N2NkqqK!y3$q4v6 zR5Myg0fM~idbw~gAQZvtPO@PkML1OfyC1OfyC1OfyC1OfyC1OfyC1OfyC1OfyukHFsnmzljl literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.2/obj/Debug/Example 6.1.pdb b/Code/Chapter 6/C#/Example 6.2/obj/Debug/Example 6.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..cf5ec355feeb76bd460e1f0ac1908be48c417e8f GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.2/obj/Debug/Example 6.2.csproj.GenerateResource.Cache b/Code/Chapter 6/C#/Example 6.2/obj/Debug/Example 6.2.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..d34a0e65922c6840f26150a674fd82c247d75e25 GIT binary patch literal 784 zcma)3%}T>S5Ke7V`=d|~BBF;P9t2Bh712u(tW=8%{vjT`Y_k(wy3LlIjaZ++$ME8- z2tJ75!FSM^q9Qej6Zn$M&VKXFd|t-$ymtzIb4*PTTpp>=8Z?m$b`qs!a4xWiwdw^} zR3>h&1$BOE)mEZiVxbvB;;hiM>T%N5Dm;MUx#>aN?AF(#jc7A!G~`BItP7vptfaCB zr+|A9@4^6L32~?ZSxV6YUbdA6oa+jNLlyTx^8c=~5ISRrxy({J;W*WZE=!yxpYb2J zSnZVjp(wj}Hbe*gpk=hC_OuKP_61%$(bX_&kfS>}hCfRusi1Udglr2QV)Apdg_h|L zgaun+(w32MY|V|5U<;f$Q+JS~BnCprK0-vFg?#pkZS1C0znfF%K z-yY-Kw}(Uad^IA7MIRQ%@>-xfGEzkfis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYce<6f8We}vxaFH#&7)SPha5-ioFfqQ&P(? zb{{2N1a61vzAl%xL1`|d`jYFp)fLZky>h9Mh&WMDk06N^6XnuY(iOb-3`QNf>fHa5KK;Tr9ILy4BUnk0(-?h zYWFGAuVU5}kfK0(Vp literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.2/obj/Example 6.2.csproj.FileList.txt b/Code/Chapter 6/C#/Example 6.2/obj/Example 6.2.csproj.FileList.txt new file mode 100644 index 0000000..9eee926 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.2/obj/Example 6.2.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Example 6.1.exe +.\bin\Debug\Example 6.1.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Example_6_1.Properties.Resources.resources +obj\Debug\Example 6.2.csproj.GenerateResource.Cache +obj\Debug\Example 6.1.exe +obj\Debug\Example 6.1.pdb diff --git a/Code/Chapter 6/C#/Example 6.3/Example 6.3.csproj b/Code/Chapter 6/C#/Example 6.3/Example 6.3.csproj new file mode 100644 index 0000000..08d9616 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.3/Example 6.3.csproj @@ -0,0 +1,61 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {FD2823AF-3180-439D-AB27-C3BE89E41F5C} + WinExe + Example_6_3 + Example 6.3 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.3/Example 6.3.csproj.user b/Code/Chapter 6/C#/Example 6.3/Example 6.3.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.3/Example 6.3.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.3/Form1.Designer.cs b/Code/Chapter 6/C#/Example 6.3/Form1.Designer.cs new file mode 100644 index 0000000..5614fb4 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.3/Form1.Designer.cs @@ -0,0 +1,146 @@ +namespace Example_6_3 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + this.btnSetupGrids = new System.Windows.Forms.Button(); + this.AnimalsGrid = new System.Windows.Forms.DataGridView(); + this.petsGrid = new System.Windows.Forms.DataGridView(); + this.btnShowXml = new System.Windows.Forms.Button(); + this.nestedRelation = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.AnimalsGrid)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.petsGrid)).BeginInit(); + this.SuspendLayout(); +// +// btnSetupGrids +// + this.btnSetupGrids.Location = new System.Drawing.Point(12, 8); + this.btnSetupGrids.Name = "btnSetupGrids"; + this.btnSetupGrids.Size = new System.Drawing.Size(212, 28); + this.btnSetupGrids.TabIndex = 0; + this.btnSetupGrids.Text = "Create DataSet and DataBind"; + this.btnSetupGrids.Click += new System.EventHandler(this.btnPopulate_Click); +// +// AnimalsGrid +// + this.AnimalsGrid.BackgroundColor = System.Drawing.Color.Lavender; + this.AnimalsGrid.BorderStyle = System.Windows.Forms.BorderStyle.None; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.MidnightBlue; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Lavender; + this.AnimalsGrid.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.GhostWhite; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.MidnightBlue; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.AnimalsGrid.DefaultCellStyle = dataGridViewCellStyle2; + this.AnimalsGrid.Font = new System.Drawing.Font("Tahoma", 8F); + this.AnimalsGrid.GridColor = System.Drawing.Color.RoyalBlue; + this.AnimalsGrid.Location = new System.Drawing.Point(12, 43); + this.AnimalsGrid.Name = "AnimalsGrid"; + this.AnimalsGrid.RowHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.AnimalsGrid.Size = new System.Drawing.Size(496, 150); + this.AnimalsGrid.TabIndex = 1; +// +// petsGrid +// + this.petsGrid.BackgroundColor = System.Drawing.Color.Silver; + this.petsGrid.BorderStyle = System.Windows.Forms.BorderStyle.None; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.MidnightBlue; + dataGridViewCellStyle3.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle3.ForeColor = System.Drawing.Color.White; + this.petsGrid.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle3; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.Gainsboro; + dataGridViewCellStyle4.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle4.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.petsGrid.DefaultCellStyle = dataGridViewCellStyle4; + this.petsGrid.Font = new System.Drawing.Font("Tahoma", 8F); + this.petsGrid.GridColor = System.Drawing.Color.DimGray; + this.petsGrid.Location = new System.Drawing.Point(12, 200); + this.petsGrid.Name = "petsGrid"; + this.petsGrid.RowHeadersDefaultCellStyle = dataGridViewCellStyle3; + this.petsGrid.Size = new System.Drawing.Size(496, 150); + this.petsGrid.TabIndex = 2; +// +// btnShowXml +// + this.btnShowXml.Location = new System.Drawing.Point(251, 8); + this.btnShowXml.Name = "btnShowXml"; + this.btnShowXml.Size = new System.Drawing.Size(121, 27); + this.btnShowXml.TabIndex = 3; + this.btnShowXml.Text = "Show XML"; + this.btnShowXml.Click += new System.EventHandler(this.btnShowXml_Click); +// +// nestedRelation +// + this.nestedRelation.AutoSize = true; + this.nestedRelation.Location = new System.Drawing.Point(399, 13); + this.nestedRelation.Name = "nestedRelation"; + this.nestedRelation.Size = new System.Drawing.Size(109, 17); + this.nestedRelation.TabIndex = 4; + this.nestedRelation.Text = "Is Relation Nested"; + this.nestedRelation.CheckedChanged += new System.EventHandler(this.nestedRelation_CheckedChanged); +// +// Form1 +// + this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(522, 362); + this.Controls.Add(this.nestedRelation); + this.Controls.Add(this.btnShowXml); + this.Controls.Add(this.petsGrid); + this.Controls.Add(this.AnimalsGrid); + this.Controls.Add(this.btnSetupGrids); + this.Name = "Form1"; + this.Text = "Example 6.3"; + ((System.ComponentModel.ISupportInitialize)(this.AnimalsGrid)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.petsGrid)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnSetupGrids; + private System.Windows.Forms.DataGridView AnimalsGrid; + private System.Windows.Forms.DataGridView petsGrid; + private System.Windows.Forms.Button btnShowXml; + private System.Windows.Forms.CheckBox nestedRelation; + } +} + diff --git a/Code/Chapter 6/C#/Example 6.3/Form1.cs b/Code/Chapter 6/C#/Example 6.3/Form1.cs new file mode 100644 index 0000000..5ee2dd9 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.3/Form1.cs @@ -0,0 +1,76 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +#endregion + +namespace Example_6_3 +{ + partial class Form1 : Form + { + private DataSet petsData; + public Form1() + { + InitializeComponent(); + } + + private void btnPopulate_Click(object sender, EventArgs e) + { + petsData = CreateSchema(); + petsGrid.DataSource = petsData.Tables["Pet"]; + AnimalsGrid.DataSource = petsData.Tables["Animal"]; + } + + private DataSet CreateSchema() + { + DataTable AnimalTable = new DataTable("Animal"); + DataColumn myDataColumn; + + myDataColumn = new DataColumn("AnimalID", typeof(System.Int32)); + myDataColumn.AutoIncrement = true; + AnimalTable.Columns.Add(myDataColumn); + + myDataColumn = new DataColumn("AnimalName", typeof(System.String)); + AnimalTable.Columns.Add(myDataColumn); + + DataTable petsTable = new DataTable("Pet"); + + myDataColumn = new DataColumn("PetID", typeof(System.Int32)); + myDataColumn.AutoIncrement = true; + petsTable.Columns.Add(myDataColumn); + + myDataColumn = new DataColumn("AnimalID", typeof(System.Int32)); + petsTable.Columns.Add(myDataColumn); + + myDataColumn = new DataColumn("PetName", typeof(System.String)); + petsTable.Columns.Add(myDataColumn); + + DataSet toReturn = new DataSet("petsData"); + toReturn.Tables.Add(AnimalTable); + toReturn.Tables.Add(petsTable); + toReturn.Relations.Add( + new DataRelation("AnimalsPets", + AnimalTable.Columns["AnimalID"], petsTable.Columns["AnimalID"])); + + return toReturn; + } + + private void btnShowXml_Click(object sender, EventArgs e) + { + MessageBox.Show(petsData.GetXml(), "DataSet Contents"); + } + + private void nestedRelation_CheckedChanged(object sender, EventArgs e) + { + if (petsData != null) + { + petsData.Relations[0].Nested = nestedRelation.Checked; + } + } + } +} \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.3/Program.cs b/Code/Chapter 6/C#/Example 6.3/Program.cs new file mode 100644 index 0000000..7a8cc6d --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.3/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Example_6_3 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.3/Properties/AssemblyInfo.cs b/Code/Chapter 6/C#/Example 6.3/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..140f02b --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.3/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Example_6_3")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Example_6_3")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 6/C#/Example 6.3/Properties/Resources.cs b/Code/Chapter 6/C#/Example 6.3/Properties/Resources.cs new file mode 100644 index 0000000..d097c3b --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.3/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_3.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.3/Properties/Resources.resx b/Code/Chapter 6/C#/Example 6.3/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.3/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.3/Properties/Settings.cs b/Code/Chapter 6/C#/Example 6.3/Properties/Settings.cs new file mode 100644 index 0000000..99771c0 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.3/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_3.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.3/Properties/Settings.settings b/Code/Chapter 6/C#/Example 6.3/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.3/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.3/bin/Debug/Example 6.3.exe b/Code/Chapter 6/C#/Example 6.3/bin/Debug/Example 6.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..334b9067605d92a99076413ce1ebe0e6a0f73277 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.3/bin/Debug/Example 6.3.pdb b/Code/Chapter 6/C#/Example 6.3/bin/Debug/Example 6.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..263a10099e37da7b63a99bd823fd0efc1784d364 GIT binary patch literal 30208 zcmeI43y@URna6JrIPw+{l>kZ)4?)3s0P>0tW`-F-L`KH9lVzHj23lsO$DXDDqjHU` zOA_58hTYOFQ%TgUR$_FwLK!u>vhfjD-NdYJ%2bgpHZf~-H$KoZnnc{+|J-wWZa4E} z+KA8}eDlBeyzh6ubI$jjb8oLqG^LUq$#v;yby@YSS<#jCwb2Eo<>e!XO;}p*K}F`j z_jxX-MHJw93j-+pJpv@)UvtaH1v+{qFn&b4wD`c$D}kf?$%j8z5i#@mXtY2KP4GVc zcrZA~*Ij{*a0wjC^CjRRa2-qh@FVbvm#uY2Xn z#q5#_cb`QGu&y5c?CK= zB`}O;<-`6j%>RdH|Mu3Ze9iyImyEsYYrFq-^|pJj|KF$H*!Yv)>Mg_{9umk`|L6Mu z$<)S%rVX+7bUYQEI=`VQ*&J_Zn%WTG5^HU5iAU#`&TVK0=w+)`uV|?5thHLTR!?oH3DsJcO18&S=|sGv zVRgJCxhd5Y?>M9;(0o@AEgwKZ!Lu~SI}+>L;;Df?RDC?1PPDD>>oeu6|8wm>?<4fP z76T$oa_kCpSV+;AsPd;$0>_=(B+3-1V9Cjo%acQ6b>bJ%!?QU3U z6&Fr>E%z?%eYa1#UuhMlw8C)OpHrbr`~9D_{z_@TOqkLtE}T|s>eBx9hVTE2(ke`8 zh2gXW9Z{68{?Fb28RbnIQ@^z%9d9jNz6yz**m<9sb|uIOgxl$P&HOcUOFO4$?f+)Q z@hU>GSLF>J{BP&J@yrjd_{H+arVlOp(f4*Ys+^VHQm+CWM1RRQiRv20jWMKaM=IwW z?{sY~dF?jAViyTw6BmEXMm0rw-uifYjcf7BSX*p;Jf+|hy+LC>0B4e4d0qNpndc1J zpKlqQ;zh@(UF^@A_Uo#;epydKe=P6$DQM(sXz%&w-aG$UK&$a)0lKp%u z`&(?M$Om!6;ZyM<9L$XDt2eczH>J!FRNK?Ednx&p$EEvA$Xx9^rW={(Q!kxtc4z}0 zlCSLuU%j~6$)*Fn%#qDbkv=*THs&|M$CBR z*2tkz7tn0dtL<;Tb--8KOS#vXP#FlTUSD-HM*M}~9B`yLP0};o3{U1vY7{&PSqwLI zDt(}X5hEXNv)am9=SzO)nzEu<`GWq5m^S9-t0KM5$*N7h5|dARG%8DLqbO>59(V!V z4)1{Pfggikf%`+psBp+(aM$}^>56niI&_^)t~Gupto8rGcfWm~)>Fl6JrqSp&a>K|F1p&#l0%G-jui~vTG07Jr8m&4LQTs%rP^FtbENN z8u1$Wvgl>ahe$Rdr$2PG&HuT6hTcVy z%)&~jd)b7w*3Ny{3RU)kBZ7(_Ba_M37ROO)UL9|Vr4z}vHPsv9O&jCQY-F{qk2eQ4 zdjo<_lSyT`d|}(}l#Jg|TAgfZi8raFj?(kuY$+w00zb?8BGt*(_GDYUExnTMF*pD3 zQAhTBoa3z(=Kqd{&+z`=;XnV^xE zZQuF18@>mxC~>#j99?TmT$gBzwNN6v&udj;uw9)gF=ylY;01f2ZS36j$ljD5XiG7% z+2AcPN67sxtKh+!H#}I{@ZOCvdl!X!kh&rYs`_}_0)o- zeZNcWf^=D;tvR{5qf`>M zGVg)o*vi7N${`={OJ00L)(=t@uIG^Pd5gZmZvr+@^DJp^C%@JS zw|}0G^Ohl$xeJ~`x%Eu2YT^Xj*F0C}n25JBbq6x(dta~GEIFv3l*gSP=$u3p-u0lb zinrPN&AC?2`N4}cYzg_4$E9;R$#@FuWahl7@9hl6Qf@o<*>)11A?h#wifd=iIY-~- zi9k18UHd6neVV&huVJilC5ocXTKh^swS~UoJ~&@+XAIj3cl-9vmeASA7Ffi%^3}Jq zL4CiXvj*wx8Qe>FI&&b6IdiB0soS3ea_uh$x%PFo;LaU%-q79IgX$0ZD3a;p@bfUg zo3>#4`D&xiAcC?x&mmMsAm@nLyXMx6E+>;pTSgTq*;HrB$Uc+M+9Qfuo(En4x5GQ& zd*H|5S77yp1cCHqYB5J~1O=E|HanYJHCeUh8xC>sM=`m!Gh^Gm?7ApK z&`#NJ!4m|}JB9n<@D$JW<3a}Abo5U3&p@$7m&3CO7oAKwG*90bndhDisz0OP@gQ~k z`W{I-G7X#x>I{i%(~r}^8tzX8>%bXc12_}h0GYj8gJF1P@s>3Uz+9|0}`r-0~?UkdWAzW;fU{`HrF(gl6kCtX+vN*7Y#5>Suq z)`yq57F`m6`8$HKc$*uGnmaFzwQP!at^qr3dY8t{7p#ZsI_Ti@X{u(X%8JjNPisEu z-+EvwVLiCvO4=&1n0e5xX*%l`F{fk*y()gqJyU6uS=9P7uSh0pr*wH7lfVfe`eAfkV}kG8{Mn#%k@>^uBK@xK-OTx<#)RgK z67K15ql>kmbn!e;@yjeO2c?_mgVN0vpmehylx_y&M78O=JIy(@uryj@ZVcmV9M7@P zpu&Rt6`6aNE;t{ZZpNErqfr>hxpR(U*r_dsG>%!5Ok0nY7DMmBLtxp|qS5f%u;dwq z)t|%of^Zl!%rLJKR(-W_DO?55fM>(2VTG-L=fg@Pziu(y0@uLjz!mTru;P@y96kk} z2G_%N@KkuRnLpG%waJ|<$gdVL7QIQdO?&Cf;0>@k{!Vx|{4)H1@OaXf!^_}Ccsnf8 zb&*${ipSFN`lb!>)|hnXG&6>RxbpdW#iM+lbYZ#)pUL1Y>cY5n`GRmbRyQ0xHg{I>sA`st@nfK59M{~Pd~`+_Pl01 zobytN=1UXt&DHUimiqM8mUx9^82CffXP>W|v`pGctM2VJ?c5-(RKC}=^nZVCE*>{) zP8@8<7IRRB2r6EUOpN?OcD{6W4~HV=OU7im!IE!I!K{wr}F7ChnZc{;VC6 zv-;23>EF@-gytE+2iH_p{HUuhdrB}myoEwq$frCmoyMJtA}T!YGIqKfm!0wKS9Ia$ zhvU2R^TTPn^7F&-hvw%8z5?YKS-HL$jZ8#gy`?XU-{g-G-y!??fxqDDbAJA_wmybu zhAh{9|dc`=fPTVABgSdzXM{s`3FF3H(xdewwr${cp!#nWy|Z z@FH*>xEf4>*mnLl@M3TWh)wVB0xt!>3tk331YQpQ7`y`fDR?FL3s8I4zX9=E`~%<@ zz~dMo+Pj_st^pT{|?*$eiuxD+M~W2d=}gY?gNwH??LPd z{}?8+Yrqr16gUg)0Ohx(!R6p4Fa~Y~H-p!Lw}M{;zX@Ik{xf(z_#}7(_@Cf5@HNoq z|GVIgpnmM&OW<(E=}q8C;C65__}Ad6;NO6OZ@CRyFwC++WlPHTls&l=z66&2IT>CC z&x4glcB|4|3d=5CW%)vTuRK@7D`ABxz5#B8uYy&E%9Aa79xPi`X;kM-SmCmZ6{h@3 zt8101a2FOXQ|(c??m0d^+gkG%`ef~lNM@dA7-X*T4d{m|<0H^*W?zTtSQDu~3LFdK z-{G5}Kj1i%{sd#Y5A&i1RS)CB3)b|A#*itGZq~RnB!A7;Yy39(Y53{JPh;#E|18i4 z`3Vc)vomFnBV({GN6Z>co6T>W$cGVWUqP4h>D(J%&)%Yc|11X2erR+D_92J1(t&kf^)#9K-M1r=O8YCzZaxz|8)?5(tjUZi2Bc_ zL1%Ga0cyV>csBV;=fm=+q-)Yk;hC`XPvNDo(u7g*@~2LNrE?Q9vY`$ySg(Wrm23vV zwAs)S>XvLOLHdB6c5SK5l!57J*V2etS5<~|pb-|;*fKPy4(DFJuyo@*?xh>_v0njd zZbe3BZVjH79)SXXxZ0q?-y>`^tg|MO&QC66!hLAoAp9NnG zYfttT_+j{PA&nuoSMrK&6k{ht$gOxk!sT&zp*xmn1Kj@qF0Pf<#UH9)(AD{Ge{Fi{ zQ0|$4#yNd$+n2wyV0YFny?c?q)S2#QmGr&;grQ~c?BfCSEzEc5X!Z3kVWG}Zg+ndg zN*WVx@o^hoV$&z={desBCYx@N4Zq0ZBQ|`f#j`E`*5XQ={~e1ZHs2*Sp1I7l<8>Q; zjlI9o-hbKNKko9|d=V*p57cA)k|1L=oS$;T)MI`UX2)w*$tIfLBlQ~J`Fx#MJ(k!_ zWR!4Mg03y)JgyDxY*p9sE_dH>Ne{`Q+99#D#9bT$YTX?VPlL7gXkF4=(FkjO*#d8e zcfxnV_rbg2J@5;#=E_&$x8Xm-THCemM`5j{+NadsdlCOeg3?y^+Zy`DLTiJ_g$W0n zFK;5Ohl5F71e=VeZP=~eBXAKx19?p|H}5Ils4;2>>tZn_uUa{4O-)-mwRKHhGSQZn zJr(R3N)?Li0kGR&48rXG;zHRmLE2|c+O7{;UEUy#&AUi;RghO}XHm}Kq{|b;**vk% zJX?@uk(Yf?=<)<{HqTnEU7gP}$kY=YXt?xxra_)f-_)62{XK~14^F@p9_-Bq;Wj-^ zPq_R@Xv5T{SNRcFK1PU>+5ING>y1m7H%Mda!f<{Qxuy?=Y0NX;y(v+~j&w4YMq=1$PLge) z3N&A-0`XBqdh{cj+$Of0V}kj?&KvVWbF7&+vNxk$9_>eG<}?g5H`m;QVwt%n=jAJx zFNn8w;gq`bDeaj??DoRY` zmv+8>Hh2Eg%7s;DqUMHruIqU3EL8wC+qxbuxv9(N2-Q_@zoPS&)>Ktjl`pCdO6cvm zPVn~HgpHu8{ikg=cUPBQNcXDd%$c{KcCL}y8IP7~3)v8RMF)}M6dpc5b%_+GbH4E| zAcTt3o>^Te%v~x@dtN$|$|VJ9&!@XGbuMDNJ1eX5>76YtSfX&zy4Jf`vfD+uae6mO zdq1MwIKA`aCidJoy~}Y)kj?0-y)jd&rlHVqp^X08|3$|B53K)) z_aTL^ptAG9yI}3%=i2an`OPEu)k44Xnn76_{vh)Zi)hN@k2UqX37tc-!3|0M(9%G^ z;RqF*nN{*!Za$lPa9<8o06~fQk)%^m&wZ1qag{ZAwO9o-h7DPF9Spj{-$RnXuF{Ig zKfDpGV*2v#d@SKT7yo6=ogY@eUU}}tuP2$v$}UK>ZCu{AF6ouE#aiPXfxEXM9&3)L z*0v;@3jSYDKXJFtd0NK!J`P3Gm*r*9;$rhAjl2)UFVu-x|<&ftPdL8!sWvOt_sgc9Uld zTDA-&Y(&A9aQ|mpj_i2(S~|PI-8UOh+IwdkRA<%32hf?X`~)eu+BOlM1k3r+hL#j| zG_1iOWtU=0sinYUVcFm(!<@0}eBFz}CGZq@Dm)FI4xb9ofYt8P;L~CGM5XW9UK b*bE@>NF}yR3RI9lK>`H{6eMsIO5pzi@F@?~ literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.3/bin/Debug/Example 6.3.vshost.exe b/Code/Chapter 6/C#/Example 6.3/bin/Debug/Example 6.3.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 I!zqsP2ZsadNB{r; literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.3/obj/Debug/Example 6.3.exe b/Code/Chapter 6/C#/Example 6.3/obj/Debug/Example 6.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..334b9067605d92a99076413ce1ebe0e6a0f73277 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.3/obj/Debug/Example 6.3.pdb b/Code/Chapter 6/C#/Example 6.3/obj/Debug/Example 6.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..263a10099e37da7b63a99bd823fd0efc1784d364 GIT binary patch literal 30208 zcmeI43y@URna6JrIPw+{l>kZ)4?)3s0P>0tW`-F-L`KH9lVzHj23lsO$DXDDqjHU` zOA_58hTYOFQ%TgUR$_FwLK!u>vhfjD-NdYJ%2bgpHZf~-H$KoZnnc{+|J-wWZa4E} z+KA8}eDlBeyzh6ubI$jjb8oLqG^LUq$#v;yby@YSS<#jCwb2Eo<>e!XO;}p*K}F`j z_jxX-MHJw93j-+pJpv@)UvtaH1v+{qFn&b4wD`c$D}kf?$%j8z5i#@mXtY2KP4GVc zcrZA~*Ij{*a0wjC^CjRRa2-qh@FVbvm#uY2Xn z#q5#_cb`QGu&y5c?CK= zB`}O;<-`6j%>RdH|Mu3Ze9iyImyEsYYrFq-^|pJj|KF$H*!Yv)>Mg_{9umk`|L6Mu z$<)S%rVX+7bUYQEI=`VQ*&J_Zn%WTG5^HU5iAU#`&TVK0=w+)`uV|?5thHLTR!?oH3DsJcO18&S=|sGv zVRgJCxhd5Y?>M9;(0o@AEgwKZ!Lu~SI}+>L;;Df?RDC?1PPDD>>oeu6|8wm>?<4fP z76T$oa_kCpSV+;AsPd;$0>_=(B+3-1V9Cjo%acQ6b>bJ%!?QU3U z6&Fr>E%z?%eYa1#UuhMlw8C)OpHrbr`~9D_{z_@TOqkLtE}T|s>eBx9hVTE2(ke`8 zh2gXW9Z{68{?Fb28RbnIQ@^z%9d9jNz6yz**m<9sb|uIOgxl$P&HOcUOFO4$?f+)Q z@hU>GSLF>J{BP&J@yrjd_{H+arVlOp(f4*Ys+^VHQm+CWM1RRQiRv20jWMKaM=IwW z?{sY~dF?jAViyTw6BmEXMm0rw-uifYjcf7BSX*p;Jf+|hy+LC>0B4e4d0qNpndc1J zpKlqQ;zh@(UF^@A_Uo#;epydKe=P6$DQM(sXz%&w-aG$UK&$a)0lKp%u z`&(?M$Om!6;ZyM<9L$XDt2eczH>J!FRNK?Ednx&p$EEvA$Xx9^rW={(Q!kxtc4z}0 zlCSLuU%j~6$)*Fn%#qDbkv=*THs&|M$CBR z*2tkz7tn0dtL<;Tb--8KOS#vXP#FlTUSD-HM*M}~9B`yLP0};o3{U1vY7{&PSqwLI zDt(}X5hEXNv)am9=SzO)nzEu<`GWq5m^S9-t0KM5$*N7h5|dARG%8DLqbO>59(V!V z4)1{Pfggikf%`+psBp+(aM$}^>56niI&_^)t~Gupto8rGcfWm~)>Fl6JrqSp&a>K|F1p&#l0%G-jui~vTG07Jr8m&4LQTs%rP^FtbENN z8u1$Wvgl>ahe$Rdr$2PG&HuT6hTcVy z%)&~jd)b7w*3Ny{3RU)kBZ7(_Ba_M37ROO)UL9|Vr4z}vHPsv9O&jCQY-F{qk2eQ4 zdjo<_lSyT`d|}(}l#Jg|TAgfZi8raFj?(kuY$+w00zb?8BGt*(_GDYUExnTMF*pD3 zQAhTBoa3z(=Kqd{&+z`=;XnV^xE zZQuF18@>mxC~>#j99?TmT$gBzwNN6v&udj;uw9)gF=ylY;01f2ZS36j$ljD5XiG7% z+2AcPN67sxtKh+!H#}I{@ZOCvdl!X!kh&rYs`_}_0)o- zeZNcWf^=D;tvR{5qf`>M zGVg)o*vi7N${`={OJ00L)(=t@uIG^Pd5gZmZvr+@^DJp^C%@JS zw|}0G^Ohl$xeJ~`x%Eu2YT^Xj*F0C}n25JBbq6x(dta~GEIFv3l*gSP=$u3p-u0lb zinrPN&AC?2`N4}cYzg_4$E9;R$#@FuWahl7@9hl6Qf@o<*>)11A?h#wifd=iIY-~- zi9k18UHd6neVV&huVJilC5ocXTKh^swS~UoJ~&@+XAIj3cl-9vmeASA7Ffi%^3}Jq zL4CiXvj*wx8Qe>FI&&b6IdiB0soS3ea_uh$x%PFo;LaU%-q79IgX$0ZD3a;p@bfUg zo3>#4`D&xiAcC?x&mmMsAm@nLyXMx6E+>;pTSgTq*;HrB$Uc+M+9Qfuo(En4x5GQ& zd*H|5S77yp1cCHqYB5J~1O=E|HanYJHCeUh8xC>sM=`m!Gh^Gm?7ApK z&`#NJ!4m|}JB9n<@D$JW<3a}Abo5U3&p@$7m&3CO7oAKwG*90bndhDisz0OP@gQ~k z`W{I-G7X#x>I{i%(~r}^8tzX8>%bXc12_}h0GYj8gJF1P@s>3Uz+9|0}`r-0~?UkdWAzW;fU{`HrF(gl6kCtX+vN*7Y#5>Suq z)`yq57F`m6`8$HKc$*uGnmaFzwQP!at^qr3dY8t{7p#ZsI_Ti@X{u(X%8JjNPisEu z-+EvwVLiCvO4=&1n0e5xX*%l`F{fk*y()gqJyU6uS=9P7uSh0pr*wH7lfVfe`eAfkV}kG8{Mn#%k@>^uBK@xK-OTx<#)RgK z67K15ql>kmbn!e;@yjeO2c?_mgVN0vpmehylx_y&M78O=JIy(@uryj@ZVcmV9M7@P zpu&Rt6`6aNE;t{ZZpNErqfr>hxpR(U*r_dsG>%!5Ok0nY7DMmBLtxp|qS5f%u;dwq z)t|%of^Zl!%rLJKR(-W_DO?55fM>(2VTG-L=fg@Pziu(y0@uLjz!mTru;P@y96kk} z2G_%N@KkuRnLpG%waJ|<$gdVL7QIQdO?&Cf;0>@k{!Vx|{4)H1@OaXf!^_}Ccsnf8 zb&*${ipSFN`lb!>)|hnXG&6>RxbpdW#iM+lbYZ#)pUL1Y>cY5n`GRmbRyQ0xHg{I>sA`st@nfK59M{~Pd~`+_Pl01 zobytN=1UXt&DHUimiqM8mUx9^82CffXP>W|v`pGctM2VJ?c5-(RKC}=^nZVCE*>{) zP8@8<7IRRB2r6EUOpN?OcD{6W4~HV=OU7im!IE!I!K{wr}F7ChnZc{;VC6 zv-;23>EF@-gytE+2iH_p{HUuhdrB}myoEwq$frCmoyMJtA}T!YGIqKfm!0wKS9Ia$ zhvU2R^TTPn^7F&-hvw%8z5?YKS-HL$jZ8#gy`?XU-{g-G-y!??fxqDDbAJA_wmybu zhAh{9|dc`=fPTVABgSdzXM{s`3FF3H(xdewwr${cp!#nWy|Z z@FH*>xEf4>*mnLl@M3TWh)wVB0xt!>3tk331YQpQ7`y`fDR?FL3s8I4zX9=E`~%<@ zz~dMo+Pj_st^pT{|?*$eiuxD+M~W2d=}gY?gNwH??LPd z{}?8+Yrqr16gUg)0Ohx(!R6p4Fa~Y~H-p!Lw}M{;zX@Ik{xf(z_#}7(_@Cf5@HNoq z|GVIgpnmM&OW<(E=}q8C;C65__}Ad6;NO6OZ@CRyFwC++WlPHTls&l=z66&2IT>CC z&x4glcB|4|3d=5CW%)vTuRK@7D`ABxz5#B8uYy&E%9Aa79xPi`X;kM-SmCmZ6{h@3 zt8101a2FOXQ|(c??m0d^+gkG%`ef~lNM@dA7-X*T4d{m|<0H^*W?zTtSQDu~3LFdK z-{G5}Kj1i%{sd#Y5A&i1RS)CB3)b|A#*itGZq~RnB!A7;Yy39(Y53{JPh;#E|18i4 z`3Vc)vomFnBV({GN6Z>co6T>W$cGVWUqP4h>D(J%&)%Yc|11X2erR+D_92J1(t&kf^)#9K-M1r=O8YCzZaxz|8)?5(tjUZi2Bc_ zL1%Ga0cyV>csBV;=fm=+q-)Yk;hC`XPvNDo(u7g*@~2LNrE?Q9vY`$ySg(Wrm23vV zwAs)S>XvLOLHdB6c5SK5l!57J*V2etS5<~|pb-|;*fKPy4(DFJuyo@*?xh>_v0njd zZbe3BZVjH79)SXXxZ0q?-y>`^tg|MO&QC66!hLAoAp9NnG zYfttT_+j{PA&nuoSMrK&6k{ht$gOxk!sT&zp*xmn1Kj@qF0Pf<#UH9)(AD{Ge{Fi{ zQ0|$4#yNd$+n2wyV0YFny?c?q)S2#QmGr&;grQ~c?BfCSEzEc5X!Z3kVWG}Zg+ndg zN*WVx@o^hoV$&z={desBCYx@N4Zq0ZBQ|`f#j`E`*5XQ={~e1ZHs2*Sp1I7l<8>Q; zjlI9o-hbKNKko9|d=V*p57cA)k|1L=oS$;T)MI`UX2)w*$tIfLBlQ~J`Fx#MJ(k!_ zWR!4Mg03y)JgyDxY*p9sE_dH>Ne{`Q+99#D#9bT$YTX?VPlL7gXkF4=(FkjO*#d8e zcfxnV_rbg2J@5;#=E_&$x8Xm-THCemM`5j{+NadsdlCOeg3?y^+Zy`DLTiJ_g$W0n zFK;5Ohl5F71e=VeZP=~eBXAKx19?p|H}5Ils4;2>>tZn_uUa{4O-)-mwRKHhGSQZn zJr(R3N)?Li0kGR&48rXG;zHRmLE2|c+O7{;UEUy#&AUi;RghO}XHm}Kq{|b;**vk% zJX?@uk(Yf?=<)<{HqTnEU7gP}$kY=YXt?xxra_)f-_)62{XK~14^F@p9_-Bq;Wj-^ zPq_R@Xv5T{SNRcFK1PU>+5ING>y1m7H%Mda!f<{Qxuy?=Y0NX;y(v+~j&w4YMq=1$PLge) z3N&A-0`XBqdh{cj+$Of0V}kj?&KvVWbF7&+vNxk$9_>eG<}?g5H`m;QVwt%n=jAJx zFNn8w;gq`bDeaj??DoRY` zmv+8>Hh2Eg%7s;DqUMHruIqU3EL8wC+qxbuxv9(N2-Q_@zoPS&)>Ktjl`pCdO6cvm zPVn~HgpHu8{ikg=cUPBQNcXDd%$c{KcCL}y8IP7~3)v8RMF)}M6dpc5b%_+GbH4E| zAcTt3o>^Te%v~x@dtN$|$|VJ9&!@XGbuMDNJ1eX5>76YtSfX&zy4Jf`vfD+uae6mO zdq1MwIKA`aCidJoy~}Y)kj?0-y)jd&rlHVqp^X08|3$|B53K)) z_aTL^ptAG9yI}3%=i2an`OPEu)k44Xnn76_{vh)Zi)hN@k2UqX37tc-!3|0M(9%G^ z;RqF*nN{*!Za$lPa9<8o06~fQk)%^m&wZ1qag{ZAwO9o-h7DPF9Spj{-$RnXuF{Ig zKfDpGV*2v#d@SKT7yo6=ogY@eUU}}tuP2$v$}UK>ZCu{AF6ouE#aiPXfxEXM9&3)L z*0v;@3jSYDKXJFtd0NK!J`P3Gm*r*9;$rhAjl2)UFVu-x|<&ftPdL8!sWvOt_sgc9Uld zTDA-&Y(&A9aQ|mpj_i2(S~|PI-8UOh+IwdkRA<%32hf?X`~)eu+BOlM1k3r+hL#j| zG_1iOWtU=0sinYUVcFm(!<@0}eBFz}CGZq@Dm)FI4xb9ofYt8P;L~CGM5XW9UK b*bE@>NF}yR3RI9lK>`H{6eMsIO5pzi@F@?~ literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.3/obj/Debug/Example_6_3.Properties.Resources.resources b/Code/Chapter 6/C#/Example 6.3/obj/Debug/Example_6_3.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY$%O&&yB7jH;RJ5hERa*&fCh;|lGVxS1Hfi_* z#4oU6!+*erEwE(8f)x_~0QXKy8>$FZ@#1)NXYM)oY1x)#{l<^}^c9aGJX_*TCAEwa z?|#Zf=&du|(o+)~pfs0p<+|s4k4=8)30z5?DV=!X#3U>o8P;wA@u93STt=&d>zpz{hMPIB+eRSJQz zVjZ>ji0KyzYX~qZ4*J-nV&q&rWXSYiM|zcClq{?>%719DMFp&XRkpX80+l6|HU0`R zXw>co6DepCahyW-VxOoMdYykgoxe-TM7A%ZM|O~Mo%-P3>fK8L4V9-%}p$qR2qp3-Hg_1|UiDV6xv*S&vbh!<^mO^bdQexa z4IQak!AqLO8~&_67wlzHQ>??|=Uym;djeVJ2Vx=bljwbWAn&cVF#08As0_qVV+k`9 zBS=vnh+>n+q3md{E>&9-SBV-!)y<6(oFX_)Fh+0&!J#HhAJn>M`}-{CB(~BlCe3U? z>@TAp-`}+^E$3u}5M#&A9kL6ilO-AQh(kDb=ni(cPPB_7G;Evg7^fgl(jM<^ls3V#5u--8JN literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.3/obj/Example 6.3.csproj.FileList.txt b/Code/Chapter 6/C#/Example 6.3/obj/Example 6.3.csproj.FileList.txt new file mode 100644 index 0000000..d767124 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.3/obj/Example 6.3.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Example 6.3.exe +.\bin\Debug\Example 6.3.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Example_6_3.Properties.Resources.resources +obj\Debug\Example 6.3.csproj.GenerateResource.Cache +obj\Debug\Example 6.3.exe +obj\Debug\Example 6.3.pdb diff --git a/Code/Chapter 6/C#/Example 6.4/Example 6.4.csproj b/Code/Chapter 6/C#/Example 6.4/Example 6.4.csproj new file mode 100644 index 0000000..8016ea3 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.4/Example 6.4.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {E69FBA66-CC29-40FF-98CA-44E57D6F0854} + Exe + DS_Serialization + DS_Serialization + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.4/Example 6.4.csproj.user b/Code/Chapter 6/C#/Example 6.4/Example 6.4.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.4/Example 6.4.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.4/Program.cs b/Code/Chapter 6/C#/Example 6.4/Program.cs new file mode 100644 index 0000000..aeb928f --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.4/Program.cs @@ -0,0 +1,78 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.Serialization.Formatters.Binary ; +using System.Data ; +using System.IO ; +#endregion + +namespace Example_6_4 +{ + class Program + { + static void Main(string[] args) + { + ///////////////////////////// + Console.WriteLine("For a fair demo, please make sure the previous file is deleted."); + Console.Read(); + ///////////////////////////// + + BinaryFormatter bf = new BinaryFormatter(); + FileStream fs = new FileStream( + System.Environment.CurrentDirectory.ToString() + "\\ds.dat", + FileMode.OpenOrCreate); + DataSet ds = GiveMeFakeData() ; + ds.RemotingFormat = SerializationFormat.Binary; + bf.Serialize(fs, ds); + fs.Close(); + + // Check the deserialization performance. + fs = new FileStream( + System.Environment.CurrentDirectory.ToString() + "\\ds.dat", + FileMode.Open); + long nowticks = DateTime.Now.Ticks; + DataSet ds2 = (DataSet)bf.Deserialize(fs); + long tickstotal = DateTime.Now.Ticks - nowticks ; + Console.WriteLine("Took me : " + tickstotal); + fs.Close(); + } + + public static DataSet GiveMeFakeData() + { + DataSet ds = new DataSet(); + DataTable dt = new DataTable("Animals"); + dt.Columns.Add(new DataColumn("AnimalID")); + dt.Columns.Add(new DataColumn("AnimalType")); + + DataRow dr; + for (int i = 0; i <= 1000; i++) + { + dr = dt.NewRow(); + dr[0] = 1; + dr[1] = "Rabbit"; + dt.Rows.Add(dr); + + dr = dt.NewRow(); + dr[0] = 2; + dr[1] = "Monkey"; + dt.Rows.Add(dr); + + dr = dt.NewRow(); + dr[0] = 3; + dr[1] = "Donkey"; + dt.Rows.Add(dr); + + dr = dt.NewRow(); + dr[0] = 4; + dr[1] = "Dog"; + dt.Rows.Add(dr); + } + + ds.Tables.Add(dt); + + return ds; + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.4/Properties/AssemblyInfo.cs b/Code/Chapter 6/C#/Example 6.4/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f505810 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.4/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DS_Serialization")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DS_Serialization")] +[assembly: AssemblyCopyright("Copyright @ 2004")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 6/C#/Example 6.4/Properties/Resources.cs b/Code/Chapter 6/C#/Example 6.4/Properties/Resources.cs new file mode 100644 index 0000000..831be38 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.4/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_4.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.4/Properties/Resources.resx b/Code/Chapter 6/C#/Example 6.4/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.4/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.4/Properties/Settings.cs b/Code/Chapter 6/C#/Example 6.4/Properties/Settings.cs new file mode 100644 index 0000000..01f2c64 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.4/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_4.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.4/Properties/Settings.settings b/Code/Chapter 6/C#/Example 6.4/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.4/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.4/bin/Debug/DS_Serialization.exe b/Code/Chapter 6/C#/Example 6.4/bin/Debug/DS_Serialization.exe new file mode 100644 index 0000000000000000000000000000000000000000..ffaa782c4d7bbb8db2a72faf8ec6fcfd6e132820 GIT binary patch literal 20480 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 T#n~Ci&OmksvNLdc&cOcxBijpt literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.4/bin/Debug/DS_Serialization.vshost.exe b/Code/Chapter 6/C#/Example 6.4/bin/Debug/DS_Serialization.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 YU;OIde*W{XzW>MPKmYe%{`2quAH&I*;Q#;t literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.4/obj/Debug/DS_Serialization.Properties.Resources.resources b/Code/Chapter 6/C#/Example 6.4/obj/Debug/DS_Serialization.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 T#n~Ci&OmksvNLdc&cOcxBijpt literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.4/obj/Debug/Example 6.4.csproj.GenerateResource.Cache b/Code/Chapter 6/C#/Example 6.4/obj/Debug/Example 6.4.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..90b71ca46c5e38b1c9bc0c1769d3ad672f90aa61 GIT binary patch literal 784 zcma)3+e*Vg5KV1Udr_zlT0|d;_#m`|)*|{+1S?)pL9K`nzHGA-T)NGcosG19fnVci z_%;56&J-1?L7c!zGCO2<|RaXbqak1qX@JGPn^qz((yBEGiRs zwu2@=jaoO+F0s&wA#qmdM(r}`YZacs)K;Sd9(tY`Dbe&RDlX-7t{p~SU zzdf9==kW9y(*_ruf=9@K4!!Um1M}PVX7ZBcV^1hNLWvJlCs~nu&-L1&s)jSTRv4?Ib$c#l>>+xJ+Bt7 zg!Qmm4OTo>V-_(j&m?enLBE8k1tW+8i25A#MRax)=z}&FpmPdBPVNJ?qCC#ODTgDbKxK)g!#_d>joRL0 zA^}Y#mX*)mo>A5Mbnve?YtN{jTpq!hBgi6{L`>D4ym#n6hfpL>8iGx6*LRd0fr?R4 zA4QglLJ3{e^{|*GLl>ujP^5Tbv*!`knvebc^{v+Se#f6^y7i*#w-p=02dM`Bd)mc^ z-l|vkk2(p2urFcslXFEM424S>E@OtqxiYj^%qT^X#*ivm#DlXyu!vw$qt!`2Q!i}B z11RIT(&eYU$cy8J*GtFyJf;Uw4iO@p%8gTY!F0SS10He+uAaJsL#|_OqfGN=x`9`y zND|Bl%bjaqzI`$+D*o>5YENdPR4-=* + + Debug + AnyCPU + 8.0.40607 + 2.0 + {0433A8BF-E370-463F-A1D8-219D29AB64B1} + Exe + Exercise_6_5 + Exercise 6.5 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.5/Example 6.5.csproj.user b/Code/Chapter 6/C#/Example 6.5/Example 6.5.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.5/Example 6.5.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.5/Program.cs b/Code/Chapter 6/C#/Example 6.5/Program.cs new file mode 100644 index 0000000..0503b92 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.5/Program.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; + +#endregion + +namespace Example_6_5 +{ + class Program + { + static void Main(string[] args) + { + DataSet BookDataSet = new DataSet(); + BookDataSet.ReadXmlSchema("BookDataSet.xsd"); + BookDataSet.ReadXml("Books.xml"); + + Console.WriteLine("Recent Books:"); + Console.WriteLine("-------------"); + + foreach (DataRow xRow in BookDataSet.Tables["Books"].Rows) + { + Console.WriteLine("{0} by {1}", xRow["Title"], xRow["Publisher"]); + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.5/Properties/AssemblyInfo.cs b/Code/Chapter 6/C#/Example 6.5/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..fabdccb --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.5/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_6_5")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_6_5")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 6/C#/Example 6.5/Properties/Resources.cs b/Code/Chapter 6/C#/Example 6.5/Properties/Resources.cs new file mode 100644 index 0000000..ae67165 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.5/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_5.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.5/Properties/Resources.resx b/Code/Chapter 6/C#/Example 6.5/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.5/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.5/Properties/Settings.cs b/Code/Chapter 6/C#/Example 6.5/Properties/Settings.cs new file mode 100644 index 0000000..9a9c110 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.5/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_5.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.5/Properties/Settings.settings b/Code/Chapter 6/C#/Example 6.5/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.5/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.5/bin/Debug/BookDataSet.xsd b/Code/Chapter 6/C#/Example 6.5/bin/Debug/BookDataSet.xsd new file mode 100644 index 0000000..baf5a38 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.5/bin/Debug/BookDataSet.xsd @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.5/bin/Debug/Books.xml b/Code/Chapter 6/C#/Example 6.5/bin/Debug/Books.xml new file mode 100644 index 0000000..23045ce --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.5/bin/Debug/Books.xml @@ -0,0 +1,10 @@ + + + Pro ADO.NET + Apress Ltd + + + Professional .NET Framework + Apress Ltd + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.5/bin/Debug/Exercise 6.5.exe b/Code/Chapter 6/C#/Example 6.5/bin/Debug/Exercise 6.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..2850da67afa0571e86a021e3fc3630e173f22026 GIT binary patch literal 16384 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 QLIgqtLIgqt{znA<0q~mnOaK4? literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.5/bin/Debug/Exercise 6.5.pdb b/Code/Chapter 6/C#/Example 6.5/bin/Debug/Exercise 6.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a9df2d8c82adda1a3be7c4857484320b7f99eca8 GIT binary patch literal 24064 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 F`2&3d>9YU; literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.5/obj/Debug/Exercise 6.5.exe b/Code/Chapter 6/C#/Example 6.5/obj/Debug/Exercise 6.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..2850da67afa0571e86a021e3fc3630e173f22026 GIT binary patch literal 16384 zcmeHMYiu0V6+W{&UT@a%;@vz*hzXOJqTo2o=1oijws)Pd#ZDZr6GLm{%&u=XLuO}| znb{D7K&Ge1nT1lYK25mUy4G%b7ywF zwp050gVee9oH?(1@44T-bMBql(a(I1qC}+P`sgE~XK?2-AnC`GIhd1IJeQ=WmYv)1 zj52a=!^8>0)oPAiarCNI)-B8Sw35)Ax}_PGmOoU~s`iY?bap1L44NJrCK^$q^it8x zHF|r8l1hgXC+dPm^R=&J0)BvH5DhojIc_eEJIz7hdMFqd)DWcHxHrwx$3wf5%ncBY zF%XN(F{0(r{dNmc_hQ?}$r=$x&@6GtH#Q}rj3-WekY7)Nz$Rl1;)W!PMszIWxK0_8 zjBNl6`)IgY$^fFzIKs5y$g$EfT+4W!g_=@VUQnQlr&N0_d%Z=y zFd&Wy9j1L>Av8|3KC%h-L~pNuho+ZSWTUhfT!hDV4+h08t-hcvk8jyX&JWS|tN4Nt z*@S))Ha-?4+{-}{u{n12D|Bq8_TCj)g#a;spFlfkO-*d3Sno!P%(2kBE*qgEu;b$e z?C=Wu>1f|_9o+-1y6FluyvPKVi!TnbIj%r&Cj(E7Juyb|-DOV@{PFftvY+@11Z7+v z?i@GXi?L&t5D3*v&k}Xd(ak<>tX?vW@=aoP!agaieWl&I^_}INySDDx zzC&cM-P5zQv%2LORnh3ZC_Et6EMtRt{^yv7ik}`*RiJamfc4l{P+s)o>WP&~h zqH$XNxzf)pWzv!gv#_1Nw=$$N`i!XNW}^TjnVhi zuk%oY@%XdSMeC>s^U#p4p*>QHLeoWKkd^_9c02$-rGNf$}Z4;rJu$$Zt)C# zTjI2aVWuyvc@%Xcq)F+%K3KE%iOy1nw$rac*Gbxg zw2`6Buw>{aNy~JplA)ZmUMFdh+MxL?zStII3lAXsKS?hGBL!=kSM#&f2imJ_1wE_` z0cY0pUc<8=1C3yw+ew}CSIA`ic}|Wf?*U=_H;Y2INPeNNbP?V8ri%jWS-JYa>>agd z>ZZ7!hEEHpY`8+(mD!mQrv;7q->hNKt2I+h@0#98jU?l?YBTVx3CA;pOUOQ+%omN6 zM}EGdL#5k9*$bph&bE#lmAa#QNQN|6t0Cn{zEOWjcLj~=hDDjOXFH90^ZhrtQQguj z!l7wLxTBS(;{l{0-8Am>I|!0&!8&eB$3Uiv@TM0x#JYyvZQ&cb>hw|FtP8467iX<< zFf6X*t9{x`(#K7VT8`0mMYUwk1{=VjhrC*d=W#=uGVyGc4>_TbF$Q&7jD@xYCM>w#tFkS#k@Kge%{b4mhE~**`>TF z)hiXf)avHzuw1YPdF=$-sK1|KjZ|xfDV(BkP8rx$$ydl39T%p4T5|4uuj772IY7@S z8K&X246}88lkQ+kYecDgI^{vI_OQV9nVYL-v3vrM6F63Icnu4puw2^|H0crU{lhmoUc$;#zcz)3->#_c;6`9tGU!SaM-=_c2jx68*Nh<9EK?_sN6 z6?lyBh#U}Ji{vk3#}Ss-=#ED1Q{o{1#!|=|Zq0T%X7X7<6SFl8(ua`w8+B_2X0*!E ze#fo`n#O{a!)Xeq4WSkMN7$O^gCn--ldAN!saL>?ba%qNW zMZ@k&U6oHn>&D?z#$~}%!;eLN3oiA;wuS!LpVBe!NvrO{&rWxvc8O*|@50V_H&Mp~ zPB9+(5a@Y~>ad#7xO4&<2RiQAMSpcj904D~&P_dh|BJD24n6noit|5vQfz}9XBi{~YgZ)J&9*L9bg7!6B-=nz`P-y+#tSr+J~8;;${7)6z2cQ@onM|)ekkT%jHlCH)`N#CBTv+rz7 zizvzTYbp;R-&X#<+JEt|#r zQA(lZtrL$|8im?r4KV%>jO+OfH4#}o>FBkCwl#dZEM(@wqQWASzSR7El{ZFtz~%S8 z^+e;vd{N|j%oqB9bMQX<{9hk@dEgn{vOD8?O+V8I#ZR_yzk@qzyxQpeD)@sv}tZ(ZU2;>y@;Ou_}jtF z14JM4;tI-#ksaWUBI`_p4&#(tqyinHgOCfL`@wU0L4E&%f9_N0`Ho4fX#akLw9da5 z1){v=K^3&BBUkK47U8T?K+Zaj{K4f)oG^(dVAY{@Vdo5Jz-mc5(G%(fVpR~62QLHq z%0*hjYdCze&A%PUTEGAqwG;YA&v}`x%Ceo>f_{dPYdO1>Wu_At`7T^|s!{gh{c66A zqtef9iE%5kau(M%!zXi&WV`G?g}OXqPu8N`wruQBb>QZ;jB4q)TJao^crL8F7}bx*l;>j*tHlK-Rk=U${`H@U zL?A>UL?A>UL?A>UL?A>UMBo#Pfad=``s($c*a*YGLIgqtLIgqtLIgqtLIgqtLIgqt QLIgqtLIgqt{znA<0q~mnOaK4? literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.5/obj/Debug/Exercise 6.5.pdb b/Code/Chapter 6/C#/Example 6.5/obj/Debug/Exercise 6.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a9df2d8c82adda1a3be7c4857484320b7f99eca8 GIT binary patch literal 24064 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 a=;*MPnrT<5nW!+nK3%v^=6Pz7zWg6yu1stI literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.5/obj/Example 6.5.csproj.FileList.txt b/Code/Chapter 6/C#/Example 6.5/obj/Example 6.5.csproj.FileList.txt new file mode 100644 index 0000000..ca3697f --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.5/obj/Example 6.5.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Exercise 6.5.exe +.\bin\Debug\Exercise 6.5.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_6_5.Properties.Resources.resources +obj\Debug\Example 6.5.csproj.GenerateResource.Cache +obj\Debug\Exercise 6.5.exe +obj\Debug\Exercise 6.5.pdb diff --git a/Code/Chapter 6/C#/Example 6.6/Example 6.6.csproj b/Code/Chapter 6/C#/Example 6.6/Example 6.6.csproj new file mode 100644 index 0000000..b90e135 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/Example 6.6.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {C4C2264D-3488-4870-BCEB-0E94EA7A41B5} + Exe + Example_6_6 + Example 6.6 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.6/Example 6.6.csproj.user b/Code/Chapter 6/C#/Example 6.6/Example 6.6.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/Example 6.6.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.6/Program.cs b/Code/Chapter 6/C#/Example 6.6/Program.cs new file mode 100644 index 0000000..9c0d4f2 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/Program.cs @@ -0,0 +1,44 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; + +#endregion + +namespace Example_6_6 +{ +class Program +{ + static void Main(string[] args) + { + DataSet BookDataSet = new DataSet(); + + BookDataSet.ReadXmlSchema("BookDataSet.xsd"); + BookDataSet.ReadXml("Books.xml"); + + Console.WriteLine("Relations Created:"); + + foreach (DataRelation xRelation in BookDataSet.Relations) + { + Console.WriteLine(xRelation.RelationName); + } + + Console.WriteLine("Apress Books"); + Console.WriteLine("----------"); + Console.WriteLine(); + + foreach (DataRow xRow in BookDataSet.Tables["Books"].Rows) + { + Console.WriteLine(xRow["Title"]); + + // Obtain child rows using the KeyTitleRef relation + foreach (DataRow zRow in xRow.GetChildRows("KeyTitleRef")) + { + Console.WriteLine(" {0}", zRow["Rating"]); + } + } + } +} +} diff --git a/Code/Chapter 6/C#/Example 6.6/Properties/AssemblyInfo.cs b/Code/Chapter 6/C#/Example 6.6/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c38bd9a --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Example_6_6")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Example_6_6")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 6/C#/Example 6.6/Properties/Resources.cs b/Code/Chapter 6/C#/Example 6.6/Properties/Resources.cs new file mode 100644 index 0000000..94d6d90 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_6.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.6/Properties/Resources.resx b/Code/Chapter 6/C#/Example 6.6/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.6/Properties/Settings.cs b/Code/Chapter 6/C#/Example 6.6/Properties/Settings.cs new file mode 100644 index 0000000..c9df959 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_6.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.6/Properties/Settings.settings b/Code/Chapter 6/C#/Example 6.6/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.6/bin/Debug/BookDataSet.xsd b/Code/Chapter 6/C#/Example 6.6/bin/Debug/BookDataSet.xsd new file mode 100644 index 0000000..6e1a368 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/bin/Debug/BookDataSet.xsd @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.6/bin/Debug/BookDataSet.xsx b/Code/Chapter 6/C#/Example 6.6/bin/Debug/BookDataSet.xsx new file mode 100644 index 0000000..37712f5 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/bin/Debug/BookDataSet.xsx @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.6/bin/Debug/Books.xml b/Code/Chapter 6/C#/Example 6.6/bin/Debug/Books.xml new file mode 100644 index 0000000..2015984 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/bin/Debug/Books.xml @@ -0,0 +1,35 @@ + + + 1 + Pro ADO.NET + APress Ltd + + + 2 + Professional .NET Framework + APress Ltd + + + 1 + 5 + This book was by far one of the best books on .NET ever + written! + + + 1 + 1 + I'm not sure this could be classified as a technical manual. It + is worth more as a paperweight + + + 2 + 4 + Top Notch! Excellent book! I especially liked the chapter on + strongly typed datasets and XSD schemas! + + + 2 + 2 + I liked the introduction. That's it. + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.6/bin/Debug/Example 6.6.exe b/Code/Chapter 6/C#/Example 6.6/bin/Debug/Example 6.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..85915e8996cf9869dbbd99a6cbee78b7821aaeef GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.6/obj/Debug/Example 6.6.csproj.GenerateResource.Cache b/Code/Chapter 6/C#/Example 6.6/obj/Debug/Example 6.6.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..746c9c8686e2bbfd33bc92280099c78f304c1a2c GIT binary patch literal 784 zcma)3O-sW-5KV1U`=L+|BBF;P9t2Bh712u(Z1DpX{6ai<*=8rYbeku-;7 z?%Ts5d%hYG#G(faV|gvm9UG}41#))m3(jMe;D!o9DNOm#4?f45v8C EAAmmT@&Et; literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.6/obj/Debug/Example 6.6.exe b/Code/Chapter 6/C#/Example 6.6/obj/Debug/Example 6.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..85915e8996cf9869dbbd99a6cbee78b7821aaeef GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.6/obj/Example 6.6.csproj.FileList.txt b/Code/Chapter 6/C#/Example 6.6/obj/Example 6.6.csproj.FileList.txt new file mode 100644 index 0000000..2341fab --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.6/obj/Example 6.6.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Example 6.6.exe +.\bin\Debug\Example 6.6.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Example_6_6.Properties.Resources.resources +obj\Debug\Example 6.6.csproj.GenerateResource.Cache +obj\Debug\Example 6.6.exe +obj\Debug\Example 6.6.pdb diff --git a/Code/Chapter 6/C#/Example 6.7/BookDataSet.Designer.cs b/Code/Chapter 6/C#/Example 6.7/BookDataSet.Designer.cs new file mode 100644 index 0000000..3403936 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/BookDataSet.Designer.cs @@ -0,0 +1,795 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_7 { + using System; + + + [Serializable()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [System.Xml.Serialization.XmlRootAttribute("BookDataSet")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] + public partial class BookDataSet : System.Data.DataSet { + + private BooksDataTable tableBooks; + + private BookReviewsDataTable tableBookReviews; + + private System.Data.DataRelation relationKeyTitleRef; + + private System.Data.SchemaSerializationMode _schemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public BookDataSet() { + this.BeginInit(); + this.InitClass(); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + protected BookDataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == System.Data.SchemaSerializationMode.IncludeSchema)) { + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + if ((ds.Tables["Books"] != null)) { + base.Tables.Add(new BooksDataTable(ds.Tables["Books"])); + } + if ((ds.Tables["BookReviews"] != null)) { + base.Tables.Add(new BookReviewsDataTable(ds.Tables["BookReviews"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public BooksDataTable Books { + get { + return this.tableBooks; + } + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public BookReviewsDataTable BookReviews { + get { + return this.tableBookReviews; + } + } + + public override System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [System.ComponentModel.DefaultValueAttribute(true)] + public new bool EnforceConstraints { + get { + return base.EnforceConstraints; + } + set { + base.EnforceConstraints = value; + } + } + + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + public override System.Data.DataSet Clone() { + BookDataSet cln = ((BookDataSet)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override bool ShouldSerializeTables() { + return false; + } + + protected override bool ShouldSerializeRelations() { + return false; + } + + protected override void ReadXmlSerializable(System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Books"] != null)) { + base.Tables.Add(new BooksDataTable(ds.Tables["Books"])); + } + if ((ds.Tables["BookReviews"] != null)) { + base.Tables.Add(new BookReviewsDataTable(ds.Tables["BookReviews"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + protected override System.Xml.Schema.XmlSchema GetSchemaSerializable() { + System.IO.MemoryStream stream = new System.IO.MemoryStream(); + this.WriteXmlSchema(new System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return System.Xml.Schema.XmlSchema.Read(new System.Xml.XmlTextReader(stream), null); + } + + internal void InitVars() { + this.InitVars(true); + } + + internal void InitVars(bool initTable) { + this.tableBooks = ((BooksDataTable)(base.Tables["Books"])); + if ((initTable == true)) { + if ((this.tableBooks != null)) { + this.tableBooks.InitVars(); + } + } + this.tableBookReviews = ((BookReviewsDataTable)(base.Tables["BookReviews"])); + if ((initTable == true)) { + if ((this.tableBookReviews != null)) { + this.tableBookReviews.InitVars(); + } + } + this.relationKeyTitleRef = this.Relations["KeyTitleRef"]; + } + + private void InitClass() { + this.DataSetName = "BookDataSet"; + this.Prefix = ""; + this.Namespace = "urn:apress-proadonet-chapter6-BookDataSet.xsd"; + this.EnforceConstraints = true; + this.tableBooks = new BooksDataTable(); + base.Tables.Add(this.tableBooks); + this.tableBookReviews = new BookReviewsDataTable(); + base.Tables.Add(this.tableBookReviews); + System.Data.ForeignKeyConstraint fkc; + fkc = new System.Data.ForeignKeyConstraint("KeyTitleRef", new System.Data.DataColumn[] { + this.tableBooks.BookIDColumn}, new System.Data.DataColumn[] { + this.tableBookReviews.BookIDColumn}); + this.tableBookReviews.Constraints.Add(fkc); + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None; + fkc.DeleteRule = System.Data.Rule.Cascade; + fkc.UpdateRule = System.Data.Rule.Cascade; + this.relationKeyTitleRef = new System.Data.DataRelation("KeyTitleRef", new System.Data.DataColumn[] { + this.tableBooks.BookIDColumn}, new System.Data.DataColumn[] { + this.tableBookReviews.BookIDColumn}, false); + this.Relations.Add(this.relationKeyTitleRef); + } + + private bool ShouldSerializeBooks() { + return false; + } + + private bool ShouldSerializeBookReviews() { + return false; + } + + private void SchemaChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(System.Xml.Schema.XmlSchemaSet xs) { + BookDataSet ds = new BookDataSet(); + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any = new System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + return type; + } + + public delegate void BooksRowChangeEventHandler(object sender, BooksRowChangeEvent e); + + public delegate void BookReviewsRowChangeEventHandler(object sender, BookReviewsRowChangeEvent e); + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class BooksDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnBookID; + + private System.Data.DataColumn columnTitle; + + private System.Data.DataColumn columnPublisher; + + public BooksDataTable() { + this.TableName = "Books"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal BooksDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected BooksDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn BookIDColumn { + get { + return this.columnBookID; + } + } + + public System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + public System.Data.DataColumn PublisherColumn { + get { + return this.columnPublisher; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public BooksRow this[int index] { + get { + return ((BooksRow)(this.Rows[index])); + } + } + + public event BooksRowChangeEventHandler BooksRowChanged; + + public event BooksRowChangeEventHandler BooksRowChanging; + + public event BooksRowChangeEventHandler BooksRowDeleted; + + public event BooksRowChangeEventHandler BooksRowDeleting; + + public void AddBooksRow(BooksRow row) { + this.Rows.Add(row); + } + + public BooksRow AddBooksRow(long BookID, string Title, string Publisher) { + BooksRow rowBooksRow = ((BooksRow)(this.NewRow())); + rowBooksRow.ItemArray = new object[] { + BookID, + Title, + Publisher}; + this.Rows.Add(rowBooksRow); + return rowBooksRow; + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + BooksDataTable cln = ((BooksDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new BooksDataTable(); + } + + internal void InitVars() { + this.columnBookID = base.Columns["BookID"]; + this.columnTitle = base.Columns["Title"]; + this.columnPublisher = base.Columns["Publisher"]; + } + + private void InitClass() { + this.columnBookID = new System.Data.DataColumn("BookID", typeof(long), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnBookID); + this.columnTitle = new System.Data.DataColumn("Title", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.columnPublisher = new System.Data.DataColumn("Publisher", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnPublisher); + this.Constraints.Add(new System.Data.UniqueConstraint("KeyTitle", new System.Data.DataColumn[] { + this.columnBookID}, false)); + this.columnBookID.AllowDBNull = false; + this.columnBookID.Unique = true; + this.columnTitle.AllowDBNull = false; + this.columnPublisher.AllowDBNull = false; + } + + public BooksRow NewBooksRow() { + return ((BooksRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new BooksRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(BooksRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.BooksRowChanged != null)) { + this.BooksRowChanged(this, new BooksRowChangeEvent(((BooksRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.BooksRowChanging != null)) { + this.BooksRowChanging(this, new BooksRowChangeEvent(((BooksRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.BooksRowDeleted != null)) { + this.BooksRowDeleted(this, new BooksRowChangeEvent(((BooksRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.BooksRowDeleting != null)) { + this.BooksRowDeleting(this, new BooksRowChangeEvent(((BooksRow)(e.Row)), e.Action)); + } + } + + public void RemoveBooksRow(BooksRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + BookDataSet ds = new BookDataSet(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "BooksDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class BookReviewsDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnBookID; + + private System.Data.DataColumn columnRating; + + private System.Data.DataColumn columnReview; + + public BookReviewsDataTable() { + this.TableName = "BookReviews"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal BookReviewsDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected BookReviewsDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn BookIDColumn { + get { + return this.columnBookID; + } + } + + public System.Data.DataColumn RatingColumn { + get { + return this.columnRating; + } + } + + public System.Data.DataColumn ReviewColumn { + get { + return this.columnReview; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public BookReviewsRow this[int index] { + get { + return ((BookReviewsRow)(this.Rows[index])); + } + } + + public event BookReviewsRowChangeEventHandler BookReviewsRowChanged; + + public event BookReviewsRowChangeEventHandler BookReviewsRowChanging; + + public event BookReviewsRowChangeEventHandler BookReviewsRowDeleted; + + public event BookReviewsRowChangeEventHandler BookReviewsRowDeleting; + + public void AddBookReviewsRow(BookReviewsRow row) { + this.Rows.Add(row); + } + + public BookReviewsRow AddBookReviewsRow(BooksRow parentBooksRowByKeyTitleRef, long Rating, string Review) { + BookReviewsRow rowBookReviewsRow = ((BookReviewsRow)(this.NewRow())); + rowBookReviewsRow.ItemArray = new object[] { + parentBooksRowByKeyTitleRef[0], + Rating, + Review}; + this.Rows.Add(rowBookReviewsRow); + return rowBookReviewsRow; + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + BookReviewsDataTable cln = ((BookReviewsDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new BookReviewsDataTable(); + } + + internal void InitVars() { + this.columnBookID = base.Columns["BookID"]; + this.columnRating = base.Columns["Rating"]; + this.columnReview = base.Columns["Review"]; + } + + private void InitClass() { + this.columnBookID = new System.Data.DataColumn("BookID", typeof(long), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnBookID); + this.columnRating = new System.Data.DataColumn("Rating", typeof(long), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnRating); + this.columnReview = new System.Data.DataColumn("Review", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnReview); + this.columnBookID.AllowDBNull = false; + this.columnRating.AllowDBNull = false; + } + + public BookReviewsRow NewBookReviewsRow() { + return ((BookReviewsRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new BookReviewsRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(BookReviewsRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.BookReviewsRowChanged != null)) { + this.BookReviewsRowChanged(this, new BookReviewsRowChangeEvent(((BookReviewsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.BookReviewsRowChanging != null)) { + this.BookReviewsRowChanging(this, new BookReviewsRowChangeEvent(((BookReviewsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.BookReviewsRowDeleted != null)) { + this.BookReviewsRowDeleted(this, new BookReviewsRowChangeEvent(((BookReviewsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.BookReviewsRowDeleting != null)) { + this.BookReviewsRowDeleting(this, new BookReviewsRowChangeEvent(((BookReviewsRow)(e.Row)), e.Action)); + } + } + + public void RemoveBookReviewsRow(BookReviewsRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + BookDataSet ds = new BookDataSet(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "BookReviewsDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + public partial class BooksRow : System.Data.DataRow { + + private BooksDataTable tableBooks; + + internal BooksRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableBooks = ((BooksDataTable)(this.Table)); + } + + public long BookID { + get { + return ((long)(this[this.tableBooks.BookIDColumn])); + } + set { + this[this.tableBooks.BookIDColumn] = value; + } + } + + public string Title { + get { + return ((string)(this[this.tableBooks.TitleColumn])); + } + set { + this[this.tableBooks.TitleColumn] = value; + } + } + + public string Publisher { + get { + return ((string)(this[this.tableBooks.PublisherColumn])); + } + set { + this[this.tableBooks.PublisherColumn] = value; + } + } + + public BookReviewsRow[] GetBookReviewsRows() { + return ((BookReviewsRow[])(base.GetChildRows(this.Table.ChildRelations["KeyTitleRef"]))); + } + } + + public partial class BookReviewsRow : System.Data.DataRow { + + private BookReviewsDataTable tableBookReviews; + + internal BookReviewsRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableBookReviews = ((BookReviewsDataTable)(this.Table)); + } + + public long BookID { + get { + return ((long)(this[this.tableBookReviews.BookIDColumn])); + } + set { + this[this.tableBookReviews.BookIDColumn] = value; + } + } + + public long Rating { + get { + return ((long)(this[this.tableBookReviews.RatingColumn])); + } + set { + this[this.tableBookReviews.RatingColumn] = value; + } + } + + public string Review { + get { + try { + return ((string)(this[this.tableBookReviews.ReviewColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'Review\' in table \'BookReviews\' is DBNull.", e); + } + } + set { + this[this.tableBookReviews.ReviewColumn] = value; + } + } + + public BooksRow BooksRow { + get { + return ((BooksRow)(this.GetParentRow(this.Table.ParentRelations["KeyTitleRef"]))); + } + set { + this.SetParentRow(value, this.Table.ParentRelations["KeyTitleRef"]); + } + } + + public bool IsReviewNull() { + return this.IsNull(this.tableBookReviews.ReviewColumn); + } + + public void SetReviewNull() { + this[this.tableBookReviews.ReviewColumn] = System.Convert.DBNull; + } + } + + public class BooksRowChangeEvent : System.EventArgs { + + private BooksRow eventRow; + + private System.Data.DataRowAction eventAction; + + public BooksRowChangeEvent(BooksRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public BooksRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + public class BookReviewsRowChangeEvent : System.EventArgs { + + private BookReviewsRow eventRow; + + private System.Data.DataRowAction eventAction; + + public BookReviewsRowChangeEvent(BookReviewsRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public BookReviewsRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.7/BookDataSet.cs b/Code/Chapter 6/C#/Example 6.7/BookDataSet.cs new file mode 100644 index 0000000..0205019 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/BookDataSet.cs @@ -0,0 +1,6 @@ +namespace Example_6_7 { + + + public partial class BookDataSet { + } +} diff --git a/Code/Chapter 6/C#/Example 6.7/BookDataSet.xsc b/Code/Chapter 6/C#/Example 6.7/BookDataSet.xsc new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 6/C#/Example 6.7/BookDataSet.xsd b/Code/Chapter 6/C#/Example 6.7/BookDataSet.xsd new file mode 100644 index 0000000..6e1a368 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/BookDataSet.xsd @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.7/BookDataSet.xss b/Code/Chapter 6/C#/Example 6.7/BookDataSet.xss new file mode 100644 index 0000000..9a5e9a0 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/BookDataSet.xss @@ -0,0 +1,21 @@ + + + + + + + + + + + 220 + 107 + + + 290 + 107 + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.7/BookDataSet.xsx b/Code/Chapter 6/C#/Example 6.7/BookDataSet.xsx new file mode 100644 index 0000000..37712f5 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/BookDataSet.xsx @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.7/Example 6.7.csproj b/Code/Chapter 6/C#/Example 6.7/Example 6.7.csproj new file mode 100644 index 0000000..2e3e76f --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/Example 6.7.csproj @@ -0,0 +1,77 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {DB903CB6-943C-44F2-9717-4456718751B1} + Exe + Example_6_7 + Example 6.7 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + BookDataSet.xsd + + + True + True + BookDataSet.xsd + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + BookDataSet.xsd + + + BookDataSet.xsd + + + BookDataSet.xsd + + + SettingsSingleFileGenerator + Settings.cs + + + + + + MSDataSetGenerator + BookDataSet.Designer.cs + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.7/Example 6.7.csproj.user b/Code/Chapter 6/C#/Example 6.7/Example 6.7.csproj.user new file mode 100644 index 0000000..e51ad1c --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/Example 6.7.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ShowAllFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.7/Program.cs b/Code/Chapter 6/C#/Example 6.7/Program.cs new file mode 100644 index 0000000..8dd95b4 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/Program.cs @@ -0,0 +1,39 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; + +#endregion + +namespace Example_6_7 +{ + class Program + { +static void Main(string[] args) +{ + BookDataSet myDS = new BookDataSet(); + myDS.ReadXml("Books.xml"); + + Console.WriteLine("Relations Found:"); + foreach (DataRelation xRelation in myDS.Relations) + { + Console.WriteLine(xRelation.RelationName); + } + + Console.WriteLine("Apress Books and Reviews"); + Console.WriteLine("----------------------"); + + foreach (BookDataSet.BooksRow Book in myDS.Books.Rows) + { + Console.WriteLine(Book.Title); + + foreach (BookDataSet.BookReviewsRow Review in Book.GetBookReviewsRows()) + { + Console.WriteLine(" {0}", Review.Rating); + } + } +} + } +} diff --git a/Code/Chapter 6/C#/Example 6.7/Properties/AssemblyInfo.cs b/Code/Chapter 6/C#/Example 6.7/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6355194 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Example_6_7")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Example_6_7")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 6/C#/Example 6.7/Properties/Resources.cs b/Code/Chapter 6/C#/Example 6.7/Properties/Resources.cs new file mode 100644 index 0000000..66150a5 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_7.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.7/Properties/Resources.resx b/Code/Chapter 6/C#/Example 6.7/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.7/Properties/Settings.cs b/Code/Chapter 6/C#/Example 6.7/Properties/Settings.cs new file mode 100644 index 0000000..b43919a --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_7.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.7/Properties/Settings.settings b/Code/Chapter 6/C#/Example 6.7/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.7/bin/Debug/Books.xml b/Code/Chapter 6/C#/Example 6.7/bin/Debug/Books.xml new file mode 100644 index 0000000..2015984 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/bin/Debug/Books.xml @@ -0,0 +1,35 @@ + + + 1 + Pro ADO.NET + APress Ltd + + + 2 + Professional .NET Framework + APress Ltd + + + 1 + 5 + This book was by far one of the best books on .NET ever + written! + + + 1 + 1 + I'm not sure this could be classified as a technical manual. It + is worth more as a paperweight + + + 2 + 4 + Top Notch! Excellent book! I especially liked the chapter on + strongly typed datasets and XSD schemas! + + + 2 + 2 + I liked the introduction. That's it. + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.7/bin/Debug/Example 6.7.exe b/Code/Chapter 6/C#/Example 6.7/bin/Debug/Example 6.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..bd8d060d19c6f0a140c1c26b55d8a58326a595b9 GIT binary patch literal 36864 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.7/bin/Debug/Example 6.7.pdb b/Code/Chapter 6/C#/Example 6.7/bin/Debug/Example 6.7.pdb new file mode 100644 index 0000000000000000000000000000000000000000..104397baed1731377c53e65bbbfff0e782c5b4f1 GIT binary patch literal 79360 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 Kpay!Nf&UMQ`%HNN literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.7/bin/Debug/Example 6.7.vshost.exe b/Code/Chapter 6/C#/Example 6.7/bin/Debug/Example 6.7.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..87ed49ad954ce326d6b3914c6a1e9a97ee2d004c GIT binary patch literal 5120 zcmeHKeQXrR6@Pm^&c+4P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.7/obj/Debug/Example 6.7.csproj.GenerateResource.Cache b/Code/Chapter 6/C#/Example 6.7/obj/Debug/Example 6.7.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..c48c56d2291b75697b13bb593e46650376b773bd GIT binary patch literal 784 zcma)3O-sW-5KV1U`=L+|BBF;P9t2BhEuxnqSn&fD{6c#0vdvC#={8$-He$UC{sMoG zCx481_oy>PMQRWy@RH2VzIijx%XpsmPQh=EsR@G4u?nq06S-hJQCbEU0()4iUV=qs z;?`PF=ciU}C)ylF~y&0`X8&RVn*XyDwd~UOn${w5n z?m@f*1BfNWp#o$nMGM&3RT^-vD-e!U+ylw~JIX@nj2-4OOX-B;R3o}9ah80>f81iV zQ}TzR?Be+l9rS~?(VE)RGBDT|cB=y?&KK$ES;o+(vcBzSMU&%pPMbTO@AOP z*b0-jjf4|xZj=OD;KaGQgB&dv^Or&=fS#AldcI#Sr1d)Z;#yA8eDI6^^>lNK=Pi}W zghihrPf+16KFG7?dD1fg>&TreGR!141PsWd+X@$RU9mvmGc?kD`EB$nrA8+6-pcyh zW1Rc;aLAsoMg+0w!@^iz3v|ausz`yH9Xo?tg%0y1Z8|e@sK_FDn5X;B+vCggLuQ6k G9OVy(>FQJf literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.7/obj/Debug/Example 6.7.exe b/Code/Chapter 6/C#/Example 6.7/obj/Debug/Example 6.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..bd8d060d19c6f0a140c1c26b55d8a58326a595b9 GIT binary patch literal 36864 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.7/obj/Debug/Example 6.7.pdb b/Code/Chapter 6/C#/Example 6.7/obj/Debug/Example 6.7.pdb new file mode 100644 index 0000000000000000000000000000000000000000..104397baed1731377c53e65bbbfff0e782c5b4f1 GIT binary patch literal 79360 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 Kpay!Nf&UMQ`%HNN literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.7/obj/Debug/Example_6_7.Properties.Resources.resources b/Code/Chapter 6/C#/Example 6.7/obj/Debug/Example_6_7.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYcQ$VNx=Y^MMe5ze zzrc$J{}sG=*1y2J@$OOQTM#N~3}Fx7zRa7MZ|0jfhG`haZ~pMdS3JY;Y9;8XNJoC` zJWc}XIqO1q^>lfIln$b>cE@p@%AD&u?sU1H$T(3{3n__}kkjS0q%DKaGwQELT?%V$ zx8l$GRexs2n{`D+SYWz6l)!mO`U!;%+NRK>uoI9z%g#APdTTL|r1Oe=QhY;tvMn?% z2Vs{yTr~nkoj6kcOvb!EJo#W+Gz6 zM5^1`!CSoR&bigrK_{EkcABJi0#JBT+UGdc{HanQ`aDNJI92pkPp14O&QLp5hK7g* zQk0-5WXX*I#sL=q7a1%FH*=)Vz{U<)s412|T_&U}$ioHFlZX4!$3ji{3?Zw0`Iub_ z9j`=Q;0NSQ9J{04K*!qVv5%VRi=IG{cmR9vwtjv1@#Vc~p@SR4tNk|{mLU7LisB%x zz0Y$*gU4bNKkZd3%wR&ER3{AHxcdFu&D0FRQZpuM-23`@-y0I9W{k=B_;CCdyvI;E GzQP~>kK literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.7/obj/Debug/TempPE/BookDataSet.Designer.cs.dll b/Code/Chapter 6/C#/Example 6.7/obj/Debug/TempPE/BookDataSet.Designer.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..e7bcf23beaa8641e694d2df48d5c08d474798a95 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.7/obj/Example 6.7.csproj.FileList.txt b/Code/Chapter 6/C#/Example 6.7/obj/Example 6.7.csproj.FileList.txt new file mode 100644 index 0000000..5e859a8 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.7/obj/Example 6.7.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Example 6.7.exe +.\bin\Debug\Example 6.7.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Example_6_7.Properties.Resources.resources +obj\Debug\Example 6.7.csproj.GenerateResource.Cache +obj\Debug\Example 6.7.exe +obj\Debug\Example 6.7.pdb diff --git a/Code/Chapter 6/C#/Example 6.8/BookDataSet.xsd b/Code/Chapter 6/C#/Example 6.8/BookDataSet.xsd new file mode 100644 index 0000000..e9c875f --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.8/BookDataSet.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.8/BuildDS.cmd b/Code/Chapter 6/C#/Example 6.8/BuildDS.cmd new file mode 100644 index 0000000..1fd8c8e --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.8/BuildDS.cmd @@ -0,0 +1 @@ +C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\xsd /d /l:CS BookDataSet.xsd \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.9/BookDataSet.Designer.cs b/Code/Chapter 6/C#/Example 6.9/BookDataSet.Designer.cs new file mode 100644 index 0000000..8adde53 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/BookDataSet.Designer.cs @@ -0,0 +1,825 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_9 { + using System; + + + [Serializable()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [System.Xml.Serialization.XmlRootAttribute("BookDataSet")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] + public partial class BookDataSet : System.Data.DataSet { + + private BooksDataTable tableBooks; + + private BookReviewsDataTable tableBookReviews; + + private System.Data.DataRelation relationReviews; + + private System.Data.SchemaSerializationMode _schemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public BookDataSet() { + this.BeginInit(); + this.InitClass(); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + protected BookDataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == System.Data.SchemaSerializationMode.IncludeSchema)) { + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + if ((ds.Tables["Books"] != null)) { + base.Tables.Add(new BooksDataTable(ds.Tables["Books"])); + } + if ((ds.Tables["BookReviews"] != null)) { + base.Tables.Add(new BookReviewsDataTable(ds.Tables["BookReviews"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public BooksDataTable Books { + get { + return this.tableBooks; + } + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public BookReviewsDataTable BookReviews { + get { + return this.tableBookReviews; + } + } + + public override System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [System.ComponentModel.DefaultValueAttribute(true)] + public new bool EnforceConstraints { + get { + return base.EnforceConstraints; + } + set { + base.EnforceConstraints = value; + } + } + + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + public override System.Data.DataSet Clone() { + BookDataSet cln = ((BookDataSet)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override bool ShouldSerializeTables() { + return false; + } + + protected override bool ShouldSerializeRelations() { + return false; + } + + protected override void ReadXmlSerializable(System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Books"] != null)) { + base.Tables.Add(new BooksDataTable(ds.Tables["Books"])); + } + if ((ds.Tables["BookReviews"] != null)) { + base.Tables.Add(new BookReviewsDataTable(ds.Tables["BookReviews"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + protected override System.Xml.Schema.XmlSchema GetSchemaSerializable() { + System.IO.MemoryStream stream = new System.IO.MemoryStream(); + this.WriteXmlSchema(new System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return System.Xml.Schema.XmlSchema.Read(new System.Xml.XmlTextReader(stream), null); + } + + internal void InitVars() { + this.InitVars(true); + } + + internal void InitVars(bool initTable) { + this.tableBooks = ((BooksDataTable)(base.Tables["Books"])); + if ((initTable == true)) { + if ((this.tableBooks != null)) { + this.tableBooks.InitVars(); + } + } + this.tableBookReviews = ((BookReviewsDataTable)(base.Tables["BookReviews"])); + if ((initTable == true)) { + if ((this.tableBookReviews != null)) { + this.tableBookReviews.InitVars(); + } + } + this.relationReviews = this.Relations["Reviews"]; + } + + private void InitClass() { + this.DataSetName = "BookDataSet"; + this.Prefix = ""; + this.Namespace = "urn:apress-proadonet-chapter5-BookDataSet.xsd"; + this.EnforceConstraints = true; + this.tableBooks = new BooksDataTable(); + base.Tables.Add(this.tableBooks); + this.tableBookReviews = new BookReviewsDataTable(); + base.Tables.Add(this.tableBookReviews); + System.Data.ForeignKeyConstraint fkc; + fkc = new System.Data.ForeignKeyConstraint("Reviews", new System.Data.DataColumn[] { + this.tableBooks.BookIDColumn}, new System.Data.DataColumn[] { + this.tableBookReviews.BookIDColumn}); + this.tableBookReviews.Constraints.Add(fkc); + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None; + fkc.DeleteRule = System.Data.Rule.Cascade; + fkc.UpdateRule = System.Data.Rule.Cascade; + this.relationReviews = new System.Data.DataRelation("Reviews", new System.Data.DataColumn[] { + this.tableBooks.BookIDColumn}, new System.Data.DataColumn[] { + this.tableBookReviews.BookIDColumn}, false); + this.relationReviews.ExtendedProperties.Add("typedChildren", "Reviews"); + this.relationReviews.ExtendedProperties.Add("typedParent", "Book"); + this.Relations.Add(this.relationReviews); + } + + private bool ShouldSerializeBooks() { + return false; + } + + private bool ShouldSerializeBookReviews() { + return false; + } + + private void SchemaChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(System.Xml.Schema.XmlSchemaSet xs) { + BookDataSet ds = new BookDataSet(); + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any = new System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + return type; + } + + public delegate void BookChangeEventHandler(object sender, BookChangeEvent e); + + public delegate void BookReviewChangeEventHandler(object sender, BookReviewChangeEvent e); + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class BooksDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnBookID; + + private System.Data.DataColumn columnTitle; + + private System.Data.DataColumn columnPublisher; + + public BooksDataTable() { + this.TableName = "Books"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal BooksDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected BooksDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn BookIDColumn { + get { + return this.columnBookID; + } + } + + public System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + public System.Data.DataColumn PublisherColumn { + get { + return this.columnPublisher; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public Book this[int index] { + get { + return ((Book)(this.Rows[index])); + } + } + + public event BookChangeEventHandler BookChanged; + + public event BookChangeEventHandler BookChanging; + + public event BookChangeEventHandler BookDeleted; + + public event BookChangeEventHandler BookDeleting; + + public void AddBook(Book row) { + this.Rows.Add(row); + } + + public Book AddBook(long BookID, string Title, string Publisher) { + Book rowBook = ((Book)(this.NewRow())); + rowBook.ItemArray = new object[] { + BookID, + Title, + Publisher}; + this.Rows.Add(rowBook); + return rowBook; + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + BooksDataTable cln = ((BooksDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new BooksDataTable(); + } + + internal void InitVars() { + this.columnBookID = base.Columns["BookID"]; + this.columnTitle = base.Columns["Title"]; + this.columnPublisher = base.Columns["Publisher"]; + } + + private void InitClass() { + this.columnBookID = new System.Data.DataColumn("BookID", typeof(long), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnBookID); + this.columnTitle = new System.Data.DataColumn("Title", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.columnPublisher = new System.Data.DataColumn("Publisher", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnPublisher); + this.Constraints.Add(new System.Data.UniqueConstraint("KeyBookID", new System.Data.DataColumn[] { + this.columnBookID}, false)); + this.columnBookID.AllowDBNull = false; + this.columnBookID.Unique = true; + this.columnTitle.AllowDBNull = false; + this.columnPublisher.AllowDBNull = false; + this.ExtendedProperties.Add("typedName", "Book"); + this.ExtendedProperties.Add("typedPlural", "Books"); + } + + public Book NewBook() { + return ((Book)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new Book(builder); + } + + protected override System.Type GetRowType() { + return typeof(Book); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.BookChanged != null)) { + this.BookChanged(this, new BookChangeEvent(((Book)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.BookChanging != null)) { + this.BookChanging(this, new BookChangeEvent(((Book)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.BookDeleted != null)) { + this.BookDeleted(this, new BookChangeEvent(((Book)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.BookDeleting != null)) { + this.BookDeleting(this, new BookChangeEvent(((Book)(e.Row)), e.Action)); + } + } + + public void RemoveBook(Book row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + BookDataSet ds = new BookDataSet(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "BooksDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class BookReviewsDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnBookID; + + private System.Data.DataColumn columnRating; + + private System.Data.DataColumn columnReview; + + public BookReviewsDataTable() { + this.TableName = "BookReviews"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal BookReviewsDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected BookReviewsDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn BookIDColumn { + get { + return this.columnBookID; + } + } + + public System.Data.DataColumn RatingColumn { + get { + return this.columnRating; + } + } + + public System.Data.DataColumn ReviewColumn { + get { + return this.columnReview; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public BookReview this[int index] { + get { + return ((BookReview)(this.Rows[index])); + } + } + + public event BookReviewChangeEventHandler BookReviewChanged; + + public event BookReviewChangeEventHandler BookReviewChanging; + + public event BookReviewChangeEventHandler BookReviewDeleted; + + public event BookReviewChangeEventHandler BookReviewDeleting; + + public void AddBookReview(BookReview row) { + this.Rows.Add(row); + } + + public BookReview AddBookReview(Book parentBookByReviews, long Rating, string Review) { + BookReview rowBookReview = ((BookReview)(this.NewRow())); + rowBookReview.ItemArray = new object[] { + parentBookByReviews[0], + Rating, + Review}; + this.Rows.Add(rowBookReview); + return rowBookReview; + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + BookReviewsDataTable cln = ((BookReviewsDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new BookReviewsDataTable(); + } + + internal void InitVars() { + this.columnBookID = base.Columns["BookID"]; + this.columnRating = base.Columns["Rating"]; + this.columnReview = base.Columns["Review"]; + } + + private void InitClass() { + this.columnBookID = new System.Data.DataColumn("BookID", typeof(long), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnBookID); + this.columnRating = new System.Data.DataColumn("Rating", typeof(long), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnRating); + this.columnReview = new System.Data.DataColumn("Review", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnReview); + this.ExtendedProperties.Add("typedName", "BookReview"); + this.ExtendedProperties.Add("typedPlural", "BookReviews"); + } + + public BookReview NewBookReview() { + return ((BookReview)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new BookReview(builder); + } + + protected override System.Type GetRowType() { + return typeof(BookReview); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.BookReviewChanged != null)) { + this.BookReviewChanged(this, new BookReviewChangeEvent(((BookReview)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.BookReviewChanging != null)) { + this.BookReviewChanging(this, new BookReviewChangeEvent(((BookReview)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.BookReviewDeleted != null)) { + this.BookReviewDeleted(this, new BookReviewChangeEvent(((BookReview)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.BookReviewDeleting != null)) { + this.BookReviewDeleting(this, new BookReviewChangeEvent(((BookReview)(e.Row)), e.Action)); + } + } + + public void RemoveBookReview(BookReview row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + BookDataSet ds = new BookDataSet(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "BookReviewsDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + public partial class Book : System.Data.DataRow { + + private BooksDataTable tableBooks; + + internal Book(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableBooks = ((BooksDataTable)(this.Table)); + } + + public long BookID { + get { + return ((long)(this[this.tableBooks.BookIDColumn])); + } + set { + this[this.tableBooks.BookIDColumn] = value; + } + } + + public string Title { + get { + return ((string)(this[this.tableBooks.TitleColumn])); + } + set { + this[this.tableBooks.TitleColumn] = value; + } + } + + public string Publisher { + get { + return ((string)(this[this.tableBooks.PublisherColumn])); + } + set { + this[this.tableBooks.PublisherColumn] = value; + } + } + + public BookReview[] Reviews() { + return ((BookReview[])(base.GetChildRows(this.Table.ChildRelations["Reviews"]))); + } + } + + public partial class BookReview : System.Data.DataRow { + + private BookReviewsDataTable tableBookReviews; + + internal BookReview(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableBookReviews = ((BookReviewsDataTable)(this.Table)); + } + + public long BookID { + get { + try { + return ((long)(this[this.tableBookReviews.BookIDColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'BookID\' in table \'BookReviews\' is DBNull.", e); + } + } + set { + this[this.tableBookReviews.BookIDColumn] = value; + } + } + + public long Rating { + get { + try { + return ((long)(this[this.tableBookReviews.RatingColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'Rating\' in table \'BookReviews\' is DBNull.", e); + } + } + set { + this[this.tableBookReviews.RatingColumn] = value; + } + } + + public string Review { + get { + try { + return ((string)(this[this.tableBookReviews.ReviewColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'Review\' in table \'BookReviews\' is DBNull.", e); + } + } + set { + this[this.tableBookReviews.ReviewColumn] = value; + } + } + + public Book Book { + get { + return ((Book)(this.GetParentRow(this.Table.ParentRelations["Reviews"]))); + } + set { + this.SetParentRow(value, this.Table.ParentRelations["Reviews"]); + } + } + + public bool IsBookIDNull() { + return this.IsNull(this.tableBookReviews.BookIDColumn); + } + + public void SetBookIDNull() { + this[this.tableBookReviews.BookIDColumn] = System.Convert.DBNull; + } + + public bool IsRatingNull() { + return this.IsNull(this.tableBookReviews.RatingColumn); + } + + public void SetRatingNull() { + this[this.tableBookReviews.RatingColumn] = System.Convert.DBNull; + } + + public bool IsReviewNull() { + return this.IsNull(this.tableBookReviews.ReviewColumn); + } + + public void SetReviewNull() { + this[this.tableBookReviews.ReviewColumn] = System.Convert.DBNull; + } + } + + public class BookChangeEvent : System.EventArgs { + + private Book eventRow; + + private System.Data.DataRowAction eventAction; + + public BookChangeEvent(Book row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public Book Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + public class BookReviewChangeEvent : System.EventArgs { + + private BookReview eventRow; + + private System.Data.DataRowAction eventAction; + + public BookReviewChangeEvent(BookReview row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public BookReview Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.9/BookDataSet.xsc b/Code/Chapter 6/C#/Example 6.9/BookDataSet.xsc new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 6/C#/Example 6.9/BookDataSet.xsd b/Code/Chapter 6/C#/Example 6.9/BookDataSet.xsd new file mode 100644 index 0000000..197087b --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/BookDataSet.xsd @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.9/BookDataSet.xss b/Code/Chapter 6/C#/Example 6.9/BookDataSet.xss new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 6/C#/Example 6.9/BookDataSet.xsx b/Code/Chapter 6/C#/Example 6.9/BookDataSet.xsx new file mode 100644 index 0000000..29b0cef --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/BookDataSet.xsx @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.9/Example 6.9.csproj b/Code/Chapter 6/C#/Example 6.9/Example 6.9.csproj new file mode 100644 index 0000000..cc5216a --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/Example 6.9.csproj @@ -0,0 +1,82 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {500E92F4-DA1C-4F0D-9CBD-089996DE53BE} + WinExe + Example_6_9 + Example 6.9 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + + True + True + BookDataSet.xsd + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + BookDataSet.xsd + + + BookDataSet.xsd + + + BookDataSet.xsd + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + + MSDataSetGenerator + BookDataSet.Designer.cs + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.9/Example 6.9.csproj.user b/Code/Chapter 6/C#/Example 6.9/Example 6.9.csproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/Example 6.9.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.9/Form1.Designer.cs b/Code/Chapter 6/C#/Example 6.9/Form1.Designer.cs new file mode 100644 index 0000000..c5a8a6e --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/Form1.Designer.cs @@ -0,0 +1,88 @@ +namespace Example_6_9 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + this.dgBooks = new System.Windows.Forms.DataGridView(); + this.btnSumScores = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgBooks)).BeginInit(); + this.SuspendLayout(); +// +// dgBooks +// + this.dgBooks.BackgroundColor = System.Drawing.Color.Lavender; + this.dgBooks.BorderStyle = System.Windows.Forms.BorderStyle.None; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.MidnightBlue; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Lavender; + this.dgBooks.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.GhostWhite; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.MidnightBlue; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgBooks.DefaultCellStyle = dataGridViewCellStyle2; + this.dgBooks.Font = new System.Drawing.Font("Tahoma", 8F); + this.dgBooks.GridColor = System.Drawing.Color.RoyalBlue; + this.dgBooks.Location = new System.Drawing.Point(7, 4); + this.dgBooks.Name = "dgBooks"; + this.dgBooks.RowHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgBooks.Size = new System.Drawing.Size(480, 267); + this.dgBooks.TabIndex = 0; +// +// btnSumScores +// + this.btnSumScores.Location = new System.Drawing.Point(412, 278); + this.btnSumScores.Name = "btnSumScores"; + this.btnSumScores.TabIndex = 1; + this.btnSumScores.Text = "Sum Scores"; + this.btnSumScores.Click += new System.EventHandler(this.btnSumScores_Click); +// +// Form1 +// + this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(494, 315); + this.Controls.Add(this.btnSumScores); + this.Controls.Add(this.dgBooks); + this.Name = "Form1"; + this.Text = "Annotated Typed Dataset Binding Example"; + ((System.ComponentModel.ISupportInitialize)(this.dgBooks)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgBooks; + private System.Windows.Forms.Button btnSumScores; + } +} + diff --git a/Code/Chapter 6/C#/Example 6.9/Form1.cs b/Code/Chapter 6/C#/Example 6.9/Form1.cs new file mode 100644 index 0000000..f5191b9 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/Form1.cs @@ -0,0 +1,38 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +#endregion + +namespace Example_6_9 +{ + partial class Form1 : Form + { + private BookDataSet books; + public Form1() + { + InitializeComponent(); + books = new BookDataSet(); + books.ReadXml("Books.xml"); + dgBooks.DataSource = books.Books; + } + + private void btnSumScores_Click(object sender, EventArgs e) + { + int sum = 0; + foreach (BookDataSet.Book book in books.Books) + { + foreach (BookDataSet.BookReview review in book.Reviews()) + { + sum += Convert.ToInt32(review.Rating); + } + } + MessageBox.Show(this, "Score Total: " + sum.ToString()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.9/Program.cs b/Code/Chapter 6/C#/Example 6.9/Program.cs new file mode 100644 index 0000000..f15b905 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Example_6_9 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.9/Properties/AssemblyInfo.cs b/Code/Chapter 6/C#/Example 6.9/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c090073 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Example_6_9")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Example_6_9")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 6/C#/Example 6.9/Properties/Resources.cs b/Code/Chapter 6/C#/Example 6.9/Properties/Resources.cs new file mode 100644 index 0000000..cb2fc4b --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_9.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.9/Properties/Resources.resx b/Code/Chapter 6/C#/Example 6.9/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.9/Properties/Settings.cs b/Code/Chapter 6/C#/Example 6.9/Properties/Settings.cs new file mode 100644 index 0000000..ba58d9b --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Example_6_9.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 6/C#/Example 6.9/Properties/Settings.settings b/Code/Chapter 6/C#/Example 6.9/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/C#/Example 6.9/bin/Debug/Books.xml b/Code/Chapter 6/C#/Example 6.9/bin/Debug/Books.xml new file mode 100644 index 0000000..a5b8de6 --- /dev/null +++ b/Code/Chapter 6/C#/Example 6.9/bin/Debug/Books.xml @@ -0,0 +1,35 @@ + + + 1 + Pro ADO.NET + Apress Ltd + + + 2 + Professional .NET Framework + Apress Ltd + + + 1 + 5 + This book was by far one of the best books on .NET ever + written! + + + 1 + 1 + I'm not sure this could be classified as a technical manual. It + is worth more as a paperweight + + + 2 + 4 + Top Notch! Excellent book! I especially liked the chapter on + Strongly-Typed DataSets and XSD schemas! + + + 2 + 2 + I liked the introduction. That's it. + + diff --git a/Code/Chapter 6/C#/Example 6.9/bin/Debug/Example 6.9.exe b/Code/Chapter 6/C#/Example 6.9/bin/Debug/Example 6.9.exe new file mode 100644 index 0000000000000000000000000000000000000000..2cc4ffa8848704647f110bcdac13c1b080ffd7a1 GIT binary patch literal 36864 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.9/bin/Debug/Example 6.9.pdb b/Code/Chapter 6/C#/Example 6.9/bin/Debug/Example 6.9.pdb new file mode 100644 index 0000000000000000000000000000000000000000..bff53653b5b8e19e4533a44b3146bef21298c783 GIT binary patch literal 87552 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 P4jjmV13B=Ikpur9e*&OV literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.9/bin/Debug/Example 6.9.vshost.exe b/Code/Chapter 6/C#/Example 6.9/bin/Debug/Example 6.9.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.9/obj/Debug/Example 6.9.csproj.GenerateResource.Cache b/Code/Chapter 6/C#/Example 6.9/obj/Debug/Example 6.9.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..69976e41732190fd9ada3bbd208f9ec06da229c9 GIT binary patch literal 784 zcma)3!Ac`R5S^GzOfm}bAR>AQvIoI1B#P)IENntlRB%Qz0j;CbE)1;07wW(Y2iRcsBK#D#w{rDb?7aDdIm z1z1!j?QDiEewvMLrd?*ClS1aK(9On47HJh9!uZ?_Anio0tz-4a{E=QiuP z?BOZk9;7`OK`J4Q6(CEgTENS`(tt~mKsZwA03`qSl!e$CJ1!O0@(HJ@CUiyOtoe*T zxW#Jcv+KEWRq(O=9lo-A(ouz`>krA>lc!=4z%~rZ* zI1(0Yok_b!!ihEilmuJh#F_dJC0Z_)FNDqjJ+D~wd_Sn<^*VUx`jw;k;0yor-`(Fl zZ><&(R(*ytL7l(&pv;<=NzVwZBX_RIFq7FBFeHy|>Rilq)e3>n(9ZYetI->jnwZRc z3-pJ_xb)%Sm_6S}2vRYGm8rZI=#Gt4i2}Jebp|&I9hOPjd|~2Hl|}L}caK4I|MYNM JSl|>#@Ctn%>8bz# literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.9/obj/Debug/Example 6.9.exe b/Code/Chapter 6/C#/Example 6.9/obj/Debug/Example 6.9.exe new file mode 100644 index 0000000000000000000000000000000000000000..2cc4ffa8848704647f110bcdac13c1b080ffd7a1 GIT binary patch literal 36864 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.9/obj/Debug/Example 6.9.pdb b/Code/Chapter 6/C#/Example 6.9/obj/Debug/Example 6.9.pdb new file mode 100644 index 0000000000000000000000000000000000000000..bff53653b5b8e19e4533a44b3146bef21298c783 GIT binary patch literal 87552 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 P4jjmV13B=Ikpur9e*&OV literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.9/obj/Debug/Example_6_9.Properties.Resources.resources b/Code/Chapter 6/C#/Example 6.9/obj/Debug/Example_6_9.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYLXlB?~9VSCdA_n~Ts{7cGcN z4YwFf2eZM{lt1mVBC|;8Mo$4}4b&ruDzF8S4^fkYI*E@n64YjuhoG_&0+4tEYP7)= zEb*uXK3!F~gk~&cCzUd<^d|47r6iB}jGkt67%4nuEjk{B~K$TIhEE^>pq&C6mn|WCjS*2qpO@(EDy* z-ka@E>klDAsV{~KiLMmVE+8LoYh*KrTF3ZZ&$ayB%8gi2xzO3Ak{?9x@d#3!euZ{E;Jfu*+4f zY#hl!Q*YZC1xdsC=0~pa{^#dcrbW42?H%pEY_y>1zft77W$itkLm3)mBmeH>Y!MYq zDwM7m4W;pI&AzV9R61>@DKjp8|9VZEshHYK<73?Z@@bER%B#&Z6UN(n!+RuDaBZeO P8{UW4+B`&g(wF-KQZk-6 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/C#/Example 6.9/obj/Debug/TempPE/BookDataSet.Designer.cs.dll b/Code/Chapter 6/C#/Example 6.9/obj/Debug/TempPE/BookDataSet.Designer.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..cdc9176940e2652cdb3f6950e1b2a5399beb6741 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/Exercise 6.1.vbproj b/Code/Chapter 6/VB.NET/Exercise 6.1/Exercise 6.1.vbproj new file mode 100644 index 0000000..1867079 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/Exercise 6.1.vbproj @@ -0,0 +1,98 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {E842BE1B-6379-4A53-AF8D-1E628987970E} + Exe + Exercise_6_1.Module1 + Exercise_6_1 + Exercise 6.1 + Windows + + + true + full + true + true + true + bin\ + Exercise 6.1.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 6.1.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/Exercise 6.1.vbproj.user b/Code/Chapter 6/VB.NET/Exercise 6.1/Exercise 6.1.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/Exercise 6.1.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/Module1.vb b/Code/Chapter 6/VB.NET/Exercise 6.1/Module1.vb new file mode 100644 index 0000000..a97f214 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/Module1.vb @@ -0,0 +1,42 @@ +Imports System.Data + +Module Module1 + + Sub Main() + ' Create the table + Dim productsTable As New DataTable("Products") + + ' Build the Products schema + productsTable.Columns.Add("ID", GetType(System.Int32)) + productsTable.Columns.Add("Name", GetType(System.String)) + productsTable.Columns.Add("Category", GetType(System.Int32)) + + ' Set up the ID column as the primary key + productsTable.PrimaryKey = New DataColumn() {productsTable.Columns("ID")} + + productsTable.Columns("ID").AutoIncrement = True + productsTable.Columns("ID").AutoIncrementSeed = 1 + productsTable.Columns("ID").ReadOnly = True + + Dim tempRow As DataRow + + ' Populate the Products table with 10 cars + Dim i As Int32 = 0 + For i = 0 To 9 + tempRow = productsTable.NewRow() + + ' Make every even row a Caterham Seven de Dion + If Math.IEEERemainder(i, 2) = 0 Then + tempRow("Name") = "Caterham Seven de Dion #" & i.ToString() + tempRow("Category") = 1 + Else + tempRow("Name") = "Dodge Viper #" & i.ToString() + tempRow("Category") = 2 + End If + + productsTable.Rows.Add(tempRow) + Next i + productsTable.WriteXml("productsTable.xml") + End Sub + +End Module diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/AssemblyInfo.vb b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..4fec96b --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyApplication.myapp b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyApplication.vb b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyResources.resx b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyResources.vb b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + '

    + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MySettings.settings b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MySettings.vb b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/app.config b/Code/Chapter 6/VB.NET/Exercise 6.1/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.exe b/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..48b446cd53e8438804a0f82e8fbfb447182c540c GIT binary patch literal 24576 zcmeHPeUKc*b$>mxJG)w)&e}bFosq-{9r$EP%bj%k!UEr?PUq+(ad(oyIr}uXJGvXO zyR(|v6*_F=brfP_AOTx8Aq5q%%aGWlLJ}NEAjv7({S)dU{qGe*f*H5>W*C!Udv7QF7{*@MnVx*v%LJ zc{4q{=IYwU37=?me(kD&bDHn9Bp!Xjb)$?}NOfOlIX!BJc z93a{!B6M~%*BA8mJT;5OB2J`((&15GxdJ8Q-N+1d6iYq3QIqy_N%tay&I#kfuz*NB zD64EKa|U{kaP25mqRV-yLe#{>Zlcv(zSX1?)vJpG-&@xR(PI zfG3Hx-^Po2a3{cWKQCRTw4-T)=-vERX^;BI7u^_Y74RZ1-is3zg=>qr#;@rvS|loX zTaTbsONWrJr4UZijoidu40d88Y3~krXbv7LvGFR~$b&-gSgpNeE)QLR#~sPC}|6{bp-^rSaGwf0fs*@4YTa!@I{YazZkW?ziLfj5fhaQ`9X z2yKiYahcC*W!9PnS?d>SwemLDA(kv!QK#Bo2Zf)bMfN2qX)a@>4Mhu(kJ|{&1?V5MXS7&V*8*eO2wib|6Kf=G<#P$`;zcddWb~?QE?l?}b528%y;(95 z;|g5`a}m6lOGI4+A<`7zbeZ!2q|PCvyg;)rhrEl+pv2<#PHq~ju&~#}pJR?u!~`MO zp$m~3@feqpQelkaXphTLAj7_bxRf-k<1MU``4_>SL(uUKsRP}!JqXz=Z)9n2xol%O%Ii zZPE{xCv#TjSIn6)`#Q65<>ZbX#;jo8+)W6KVfj#3Wr-{AQ5HxgX~=X@A>{bPPui;2&0j_vY+L;GAHFII{e6ixy#W=nb)z;C1#HLWB1h znOCC3jz{lB-i_SuizDaN1ide^K9ZoxNDE@~ z&d3cBjh=}-2>7oN*47+l{qKslK)(^~jcQZ|MWb7y4@Oe-$I<(vDSBMOCnfw_K#hJN zW!{kRkhVpn=#<9vyHVHZtoDbRMlWgq2>9O;E{&a6KTU0z4~@3Qxc5;BPsCXAH)GuI z-Ln3Ogx`?xWeFp3mRSeL-tl}C%=`x0fw>N_L12r3@mwvX5nxMzsT4({akO0m*|@}x z`xqt@yqoAY@H8x3#(szHml&Q-&@v0&I<#6&oirwNz>kQ{fWIrQ0DMvmqScggJK!HE zcL6@9+ygkIJ_dNT`d4&NM^~h+ii#E}A8){>C6-*(EmneeMq(}TL2(hVhkPtA+JQae zW1kh@^=#)Gq;xw6UZ&_9(5AnAcyF+9b9j{z3Jx`K*9Z37%5Aq7F8zi!hTdGz9nzT?=@g z3`t2!Xi3;6;U)>YB;4)Oc`TcVVV8uvB|IUyGZKCbFfDGT^N|_RiY1?+R${Mipr1s3 z0~Ge+U9>9tS=8B*`v4yl{W2PUAN6+Sk0kxiBs>e47H8?j=vL*Q=||C>fI{n5&Qe0# zqx>DUYVCj)X&m>ZAAGGdcSr=`L^uq`!ub6K=~TkS_a%tYL@ak^b}D4w3Ze^ zunimNDI8lm(bvb7qJWpKzPg#Fjyn*_8(Wa*91@RuhA4~Wp z@i^#zBEACnn0OZO3GwerH*JN^Zfc=#P#=z6-v;FR5PI1vj>;Z0lAe)t3-p|*$X2H% z{WP71hST&Rz?;Dx6!%K*ee?n-_tDFMpQoqkVexsXVODaVko6~sE&m$ocPr0J`U_Ie z_a%h{TS9^@R0Zo-1^2Z`upe|u*QHFi4_Wf4q#u=(imcx&;jE<0%KGyXlEU(&a4)*z ziq~mYVa@Lp7mGHrLEI>QP246vCGHash)a}`@>|NC$`_Sk^=kEydae2a^{ARrr_|%9 z9anEB#tW*Wo|K%sfZs*;&|@egSVNlJ12ycE{50Ai4gh{fi~-&ut_6HWd=T(M${E0W z5Wz&t)ISAmR{sXOL7&Iw3u`C8mVc%4!1(={^fC{a|E?CB&Ptco) z!zR%pRw$7QujTr*6Q*EkSChcgj}u!Mqy+SGYLwd|6*bcC=Pg4fW*&x;DD2jd`6=H- zJ0ZRlYne+v;O|r}r@O`Fw8m4jd)UsFbLLePoO5W{$~d-bA1kE~TW;CN^%|~~q2ZaH zViAWMql6<64V*HajOCgW+b25H!!zLa+4*9*WICuGbnN41ri9uNb8^&lPFgru(b%+u z6V<43%sep3Y)GB7aKbv;NuCLv4O-DUI2E}K40KmLqq&g6nW-dCISbmIuCuyoN*xV@ zGbx=Z*)V*eai{xD&;086yfYkmgFsW+cFHVGR3-A&YU4<(TaqAgK>CS28Ci zh6--UC}dEhF|vGw`YpF;BNXb{Y$DVI4KPxF`b&tP%wZ!}mfckO!-iF$xu;_a0$|uE z7*lY|gk!qHQ%)c_h~uh}vu^N0(m#w36^_|b(8r}O=PF|J0=`>U_Y4a-zCC?*;g~g5 zcD!!t+!;ikjG_F5*El~hI#bAab0GWn$W>kWqFpcxC4{`0qk*i2$m@0N>s@0qXZDnE zV4uV)n#&l4+st6tJW>62KF#rF<=~bv7VYo(*34uO%-Ub znJeNo>U!JB)-(n2;k`3e$6vKz#A9$*d(+^}fY0T~-U~}})i~ed*m?}g_^^#y4YOOn7HWzDk5;F%#tNpA zf3ndJFvig$Ya{mcvV>*je4(ydGgU^R$9DMBhA+D&jlLYmTRb|Ma0@ zGjBUHy@umhFlyK?@cN?xo-;gTtdhS%8W*FtFrbAOt&5@Xx|6%Xh?z4^$(mcU(GN5h z18dUCS*4j8H!yJzmac!HP-703t-5#*M8_Q5L||U7s|g0IKD#*MSX0xb`7AtNv*pYJ z3~5+l0h6%yGLBVj4DX<)F{{+DLHP#&eS5n0+-4+gp2GIkcsvNUUl+d;@~>I=EJDeH zWzQJxGRYRp+R#L61mRiH=TN$juMS}nim8}fc zfZL{MtC`ovgtn+IL~;YJafF=BsIG|S=9M_j4$q94`68Bx8QbaImEjVIh5W&JMcgZr zUa>3^<6#5D86+9-P(*W!pk|!;>K?pAKCS*dLrZZZ2{{gLc@U*0K`{{IK?=uVv3j){ z6AE%%BavF39O6Ef18NSSD%#G{~BZh|_|%w z@d8A#&L99b;Iby$wbL-N*&Um=?b?29b61CHZZ?h?na#U)WOq$&@7!u^-G#gI6$0x% z*x2-LUEk8t0di7MQ~kz52;Ni^avV8{yiCy)MPqEaqBX19S{5*n&4`Av)8qa(DUQ}} zab4%y{1kk_}&%2aJ`iDZdnUK=z-7!p$9?_Q1!R>{7^ZC zyt*41pA|<&`$xZWe(iTJzT-r9<>d#XFW&TA8$VYDt{Cqr;)Lkxy+-D`a?u^%Gqk^F zpT1cip3!@4`?_&{VIA+AHi|f}>)Xc<_onv`jEx5m1wMX`+mpw~<$=9{oGxZ3(L7{_+~W$IDl_Pqxj9&0oo6I2yhSToc<#6 z>YJWDfpV|p-`aA*R~X+~iAvBfX@~Ju%7GqBe#IKXSE^(9CdH{uwi*N10M!MbzpZ&+ z%A^226v0ojp?4H?2b==FyUo|sBxO4A-vxMoy70ve*E;y>#=k!e3pVYRzHIzHS{v1T9rZr!l0Ix~JJ*wQ{kT)M>A`&PjO67v&>4*G z=e29cxOL=iWc)T45Q`A;v2dz@2~MTr6@aKBS7>&27K{t>FaL)js3GGIlNkJ8)AbFh z80l|F#Rxj7r5}cP%^9e{AD^gCzdql8`+~Ip*=L7J#mF=D=}9cq`qcdk&t`);KxPqc zm0w;~p+8pNC&xKIvvlMj&Sz0yI8_kT;2^GL0f_1^6z4HNTz#(%9+1Yo_P;Lodeb+! z&zqLPCq2cpu(BcXQmZsj-U1?cje42AgMW#pFO^>6C#6D5mwFgKC;7P^rqBbS2SN{o z9tb@Udf;v90lX06pWf0B>V9+eHXUg=tk46Y2SN{o9tb@UdLZ;b=z-7!p$9?_gdPYz J@c-5W{{uW>W)=Vd literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.exe.config b/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.pdb b/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..62da4b1bbd4af56fa1c2e62768d83d08c7156060 GIT binary patch literal 38400 zcmeHQ3vg7|c|I$N-Dw)fuP`;9Qrz!5kGprp z>Mo+9MbiD@*MILh|M}13p8x;P>)vgPgc9*&d~eFvw4rJ3T3=hoR$r~ZqM~@(!sZSE zD3Jff9k@(+7$C&$inxErK?|Jz#D$660(GVjUzo_PFmdZX{pEm1_JLXG2t>eq@yRDe zpoMAPxiFqvpm01_&aGSC7I@4b@VwL!ZQ{`Gxz`uJz2wn*>(jq~X3|@SUoAI@8K;MS zCdj4Zqy=)>e|kf^{pUTaJCu%-CYaFGc=pWf&C!26Q*xqFJXL=CqE~*}a>oJ(s@t;IH1S{)o#(E{uT|7_H~Od){Ztrc9dgo&7KL{^;Ag|N7V%sJdH3 zw7_UR|HOA@e|Tr!Xw}e*wd<=k)z+=A+gKM^ zUtL+X2_bc%Kt*l9f3Qc0md#xa{fTfg>1zyz4h-}sySDDQv!T_u-q$whYmCPabT!3$ z!(C1LgZ-&+!dKI^tI>aFOJ`Thp>QG;Nrrtj{yNXj$7bUZ&rA^@Wju&-S*R8zVV!g4}T=!1@kl@)7^?rL*Vr)AZ7pY+sA&pTZgd| zGA;}>z)om*&li39Kgr9^NnXa;dD&47Z`rx8bdZ-Fm%NO#^HKo}@8ie+;|=n%QQC9O|_L8 zL43q&|HmIn#S=oz6@?{CcL9-x7gZOFMS00`R{Ooba_y`7OhbS{T{w??92Qzd7}k?K}VYP+?pf7eX)2l6$v4H zX6AXK?Sf)x|3II_u{N*750TdvHUz+ff2Kb}?L~zQ72<#pY4&e4Sb7R5x=ebiSRjgl zQ*mhGJi-`G9s;j@z$)PN4tD*Y&q@QNF;JJRi z%F8(V$1>rz9=g$qG~_otu70@sF;?`$_>Z~S`XRgcP~AABS5oZ$1J~XsjBa$s)tDCd z^c`K$ixkq3-|)D);p)a%(GBA}=Gk<^*2S&y)n@HGex{wq67+Wi=>FcPaU*?4QzDEx zaCi3(Ik67mO6tk|V0sa0na=RKdgAKISkaS}dW<#SrYAYNI@V}>CDelj7GIIr)mYxN ztvuC@y|HL{M}?(Rx0fRTQg%gpGU0=-F_XSLJ2znYLuV+GE&f-e?AlurvxKW7n;3uz% zclE>7kFla3W`1JUzSa7zN7{RKd@NmAYu_K~weJg{JnR24XffUfFTpMt*T0PnwZ`SK z*2wHK{!7ca2#PfU@!wL$ZIH1hONLqp@W?d*uw|9w6D5=0~+{*R*C@%n0w2Y~soS(h>-X&R{X}E_U z7t=xEr^O7=MWDr?i$Q0C&Jf+mYaOakAm)hWxSoT5<)HJd{J9sQd~WXNfq{Um!)#DK zj~hXY#Wu)T4jHA^^H6pv_kPAaEn_|?_bL`h8H=!!Q6^=aN0@y-qYn42z+T|}z^?+o z4}1}L4tN1L3k_QZYz6iMj{uJWUAVqmpa{h?W5#mc0B%u4{>3oR`!M!-<)hpePIa48 zIBmgLa9=nW`}z@N%_%uvFneLYnamh<=0{z@2f;?XV7C!X z1JTq#!dmNJg*;zFI{IA0Hxhjx32#2#$`|i+&crFsrl;od;3R@;8{Bg%=FpIT#OGG> z*#@%*0e!ZXd5r3rF}~5;LwfUp<2nPS(A!@ay~PRAZj%@cv=`@~vnixw8pAgdT^tE- zKE2Er@1&bfajxF-<6l{4HQe)N+3hjvdTVr(bLWSEYP{^R#@$?3Is_y@x8;2ACQ$lM z&Ns1+%QL8Hgo)Ll>p|CmR)VettpZ&K%DE)sz&{HHV!fPqE)d5t=iIF4pYssDBx~NN z{If^;Y9!B^gV#V7#|pKeEFQWZY|=6|gTlOsn=KjTvK(ga$+NnI z`M?v%^flo7z!?ZH2iEI&$>jdI>K4Gz%sT&jl#4ci2l$XRz_EC-rlID4ZNUiFip+fP z5%81O#5>tpr?`CQHCdE=_J5jn=9A@f&-3OugEwyGOu6RNb1{!$Kf#)tH5Q8C-t3)W z4bBS3OIN)Ep;WRn*c0U>h2toi6YL{fJe&jF75}VEPqpw_adK{z>JBCn!9ngMs641g zOS5^h_UBlRNs`y(k(r}Ks+1hNUud@U%46vx*A?p!PJk?Fi(x~tt|;eL(jQ>BmTts7 z!qWGEVk6byVXOjK}DB3aoE-3vC{S?|S zeFO4F8>N?n`asJ;mx4BcE(7fV#XL3L3AzF_2ulC87nE`mp!8#(1Ev2e!b$DvqFPLb z=bJ3*fla`6U@fo?xDoLSK2csf|B@ zUzEVH>~1{lD9{D0g`*M7IgD0q|MBcBK>zXnEAH^fgy8xg4gs2D7z{GLU^~(>o#D-A zuk*z_`3tAGT(%)!Uas$$*zbav^Gctx?6(m1Zf<-?nH8V0-9yh`nEmAKUTR17elqrJ zyaiAssY|x~#$F@)|1MDY7CA1!m_*(~zr@`LF9+QXT7vz|IhY~R=Wh{r<9Y+eG4riGPNgfk z_c;Fy>6uSAD1H7O&|-{gN`TxaHRA%Qi-?DAiia>Jcp7*TcxHl(59t4m%`)$QVokvU zm?kgnlD1j$1yJMj`Ti$)O?*C^lrP@NE;+@yHp{hHSNr~_Ss(Xle@&ZY0J`Dbh#T4W zIreRe_w^6pMK**{2e>#^hICA0`11AfeDO~G+$ql00aph`ssm=+3*Tq0d)T@-ysmmj z+RP8P)6fI#I)ZfwZv(31a_C4i(lVXl&8G+X;+=HCDbCdsS5K~1PoN~0 zp4hv&(G&A7WG@%w0Cqir3V7QQX6ebNla?Q8g>LLY8uA;SeEmOPyps+%#ku<7>c>d+ z!<<9FJkHV&-MugKA&+RKukPp$nw*%Fj+9T)JxRvYl+|MU`PN=g0Uji+~ z{bQg!V_t?ej)j_Ld@zHVjqR_m`=@4a-XdqM0)zA`#^cN9^cZ!S_#h#+$z^f zj0`n)%Pr%umhlBG#y(?Ll_arSr zU7Dnfq3b@_hZ6tJwI0mn`2CwIAooF{z=wdxfG2=wf#VVE>pxugBFs`m{>5uf-d`hJ zj$8bpto5H~5l&tc?_@Kb;#_;`+S8HPQ+7;aFU^?yBqpMSPDSKjynpWfo$0$=zu6Ux z4usWs;xxjaMH=!O9;ZI)6zBF|xBrf`|C%u~&O=z^0o^^VGb`{-I&S#=M*3#%mna+T zv1~W(HP6lwO5p=b^;qC7+^hcXv2=x*yhcU<&x0^6&x6>{8}eKT&V&f;k)~II@;t|C zQ0&>HarO|qD(c)J!*Nbfo)^J6L3v(e8z{p$uJM6y2k27J+d-Fs-T}HCv;!1%!P&wY z@YPlDIR$6{zT;OXujin23ox2d@6VOtdZ%@*-l4k@=~iOwl=&tfzvD@upLz$^MR0h0 z2cin-g8EIbg;O_t(2j@x6l`KO8imjQV@-dJ8{T`+cBIw%zF6B;zC6Nkb3Xh}boePv zzog@rYI$v1&KvsvB~AM@|C2iY8~VOYr~j47AI}XzqFUeItK%Cqf1eJ2Qio5{{6Ez9 zi}d{;G@r5khjn_m2PyvvO&4gs!|tW1B?QX0*?WY15W@?1AhjjZGH>*KJX$C?;wj( zpbxkX$TNXFFGwBcx13YJH1HANSAkChzYjbKd=YpScnqYOd0u1yz)?< zdF9N!5tu2X;!$Y>ct)np`A#0wLWBzwxCMMLZ|ozvfWP<2u>lR<6!5`ZNX*4MPQx5+ z{dlOe{iQ!+o0M(PHls3QGtP0LUSz*0Xws-Sou(>d&)Byn3H9QL;Z8Xxi$cJ_p~JVqkbLQ{`=4-h7>yr&>;fHx)haOFxiqg^xFq* zgVqU@jT@UQYN{%lnKVxxH;SX&7zFe~GKC-iIp0cCaCsi)Cn@SG0}U0;br=^Boa=Fe zxQGTKtkS;lwSSn;?Gg#Y=7GgDg; zk1uBSb_Dl^clPl2t5DyAk=}4(Pe9bxHP<#&Rd1zGfOGyO;xYZ~IIoZm+B#hR`lmXo zt2Q=OZmPvlU4paxS>k@YuteayM3mqEw`Ie&sTt*Fe>$e6VpB_1byJHJlczqV;`AiN zw@T+X{~mmyNyCt5XnwItY}#5=TT@vJPlfksf9&VfUjoeaW#AF>XEJ=XjxoHv; zV;tXs=GrG=XdKtM%%E^+9M@oHsbm-@Wq>ld&P4l1u*Vgkl~fP(pzkVe;cqZ`e(0}l(5Suq zokL-MACb>cDk&*}4@5z+?OMf+p}&v$1D=;UqD`#dbFVLcds)~A2}%%rytzgqqo z^uZ0Sk=OzL%8%F(3-;kW&W2Bg-K`C5Q$(!|%H>sXQ%JK2hWC1`Dq`F7(v7p_A1 z9{8y}NPH4c>>~KfkaiuO$VEO8+}A^9D=7W)HsE$3qnd!tz!uwb6SC~XR11IUV?o}?oo1Il6#VvE35H{4|FMz9c4MN z9Jm6w5_l7k^`Wm^16&K_ya(S-!6_=(Kp>V7L;%R~8P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.vshost.exe.config b/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.xml b/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.xml new file mode 100644 index 0000000..a2a09c4 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/bin/Exercise 6.1.xml @@ -0,0 +1,11 @@ + + + + +Exercise6.1 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise 6.1.exe b/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise 6.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..48b446cd53e8438804a0f82e8fbfb447182c540c GIT binary patch literal 24576 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 J@c-5W{{uW>W)=Vd literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise 6.1.pdb b/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise 6.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..62da4b1bbd4af56fa1c2e62768d83d08c7156060 GIT binary patch literal 38400 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 Hr#Q+V5n<_t literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise 6.1.xml b/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise 6.1.xml new file mode 100644 index 0000000..a2a09c4 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise 6.1.xml @@ -0,0 +1,11 @@ + + + + +Exercise6.1 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise_6_1.MyResources.resources b/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Debug/Exercise_6_1.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYFm%Y>oXE(S|Jt1yQ$-58m`dk*>$M0MDOD1fNPL7ztFoC3Ym-~x1BK?n*hpl7>G!#a=p z5Rj?P74%}M(oDv_G8%jsmYO`F8@c9885w-#9eSQ1l)5Yi!<}4gr8d0=GG4>qU^C(K>NpUXe=bCAG zQ_0uZcc+=+m}R1Hh#pRMuVmoRDOW^MA_T&7CsC}{?sT@-HtJ8eTb-k+Zai#v8j20z ztyKNa8`{QO{<6Q)Ip`%2!aal0cgKp}83>OM<o>ECk#%A=3dwu>mR}P<1>Y7Bhk< z5u-#(Zi>V-iE|{*qi~3}#UplxE_TF0%_I5dm+vCV|u}K z+>`+iIRrDuY_P|5tX&-Yq-{2OhKi&Gu)cqIS^xR@z3os3S4UU-FB%;|_HPx%;k534 zo})ChD%PbR->y|KgH7}po@fWG+h0Ge7&Q@Q)HGO&U-+``O%xh6jmi3WZ~8iUPf_Lc G75)HwMQ2$6 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Exercise 6.1.vbproj.FileList.txt b/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Exercise 6.1.vbproj.FileList.txt new file mode 100644 index 0000000..00ec4eb --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.1/obj/Exercise 6.1.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Exercise 6.1.exe.config +bin\Exercise 6.1.exe +bin\Exercise 6.1.pdb +bin\Exercise 6.1.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_6_1.MyResources.resources +obj\Debug\Exercise 6.1.vbproj.GenerateResource.Cache +obj\Debug\Exercise 6.1.exe +obj\Debug\Exercise 6.1.xml +obj\Debug\Exercise 6.1.pdb diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/Exercise 6.2.vbproj b/Code/Chapter 6/VB.NET/Exercise 6.2/Exercise 6.2.vbproj new file mode 100644 index 0000000..b65bc73 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/Exercise 6.2.vbproj @@ -0,0 +1,98 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {298946B3-D6AD-4B90-A684-87E9C7FFE3BF} + Exe + Exercise_6_1.Module1 + Exercise_6_1 + Exercise 6.1 + Windows + + + true + full + true + true + true + bin\ + Exercise 6.1.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 6.1.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/Exercise 6.2.vbproj.user b/Code/Chapter 6/VB.NET/Exercise 6.2/Exercise 6.2.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/Exercise 6.2.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/Exercise 6.suo b/Code/Chapter 6/VB.NET/Exercise 6.2/Exercise 6.suo new file mode 100644 index 0000000000000000000000000000000000000000..83b5cb2580e14e6ed5b49fbe97532c1a067c0623 GIT binary patch literal 2560 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4%9zsqZbt)A?Ac!F!2um0g7+e|hfOHWECL{}Ps1Wkt`N*_5KXEXpnMMs zJ5Zc}*rQ-%g}{@j!goHB?M_od?&}NwxyVgw`e|ZtX0T$2VQ^$90OsUWhGHO$Ven;$ z1ePe_4E_v34BkM#GeZV2PZfZ3RS{4|nZXP!n$M5|)Dy!H#^A)D$KVId{UJaes0>I2 znwAXAk;Ook0#LOcgAq{17g$210CQ{(P}C48R>qJ7bnvmIm&IZE9~66}`e7ui2LRB( B4}1Us literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/Module1.vb b/Code/Chapter 6/VB.NET/Exercise 6.2/Module1.vb new file mode 100644 index 0000000..9665dd2 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/Module1.vb @@ -0,0 +1,119 @@ +Imports System.Data + +Module Module1 + Dim WithEvents productsTable As DataTable + Sub Main() + productsTable = SetupAndPopulateDataTable() + ' Setup Events + AddHandler productsTable.ColumnChanged, AddressOf productsTable_ColumnChanged + AddHandler productsTable.ColumnChanging, AddressOf productsTable_ColumnChanging + AddHandler productsTable.RowChanged, AddressOf productsTable_RowChanged + AddHandler productsTable.RowChanging, AddressOf productsTable_RowChanging + AddHandler productsTable.RowDeleted, AddressOf productsTable_RowDeleted + AddHandler productsTable.RowDeleting, AddressOf productsTable_RowDeleting + + Console.WriteLine("Change some data and watch the events fire.") + Console.WriteLine("------------------------------------------") + productsTable.Rows(0)("Name") = "Pinto" + + Console.WriteLine("") + Console.WriteLine("Delete a row and watch the events fire.") + Console.WriteLine("------------------------------------------") + productsTable.Rows(0).Delete() + + Console.Read() + End Sub + + Function SetupAndPopulateDataTable() As DataTable + ' Create the table + Dim productsTable As New DataTable("Products") + + ' Build the Products schema + productsTable.Columns.Add("ID", GetType(System.Int32)) + productsTable.Columns.Add("Name", GetType(System.String)) + productsTable.Columns.Add("Category", GetType(System.Int32)) + + ' Set up the ID column as the primary key + productsTable.PrimaryKey = New DataColumn() {productsTable.Columns("ID")} + + productsTable.Columns("ID").AutoIncrement = True + productsTable.Columns("ID").AutoIncrementSeed = 1 + productsTable.Columns("ID").ReadOnly = True + + Dim tempRow As DataRow + + ' Populate the Products table with 10 cars + Dim i As Int32 = 0 + For i = 0 To 9 + tempRow = productsTable.NewRow() + + ' Make every even row a Caterham Seven de Dion + If Math.IEEERemainder(i, 2) = 0 Then + tempRow("Name") = "Caterham Seven de Dion #" & i.ToString() + tempRow("Category") = 1 + Else + tempRow("Name") = "Dodge Viper #" & i.ToString() + tempRow("Category") = 2 + End If + + productsTable.Rows.Add(tempRow) + Next i + productsTable.AcceptChanges() + Return productsTable + End Function + + Private Sub productsTable_ColumnChanged(ByVal sender As Object, _ + ByVal e As DataColumnChangeEventArgs) + Console.WriteLine("productsTable_ColumnChanged.") + Console.WriteLine(" Value: " & e.Row("Name").ToString()) + Console.WriteLine(" RowState: " & e.Row.RowState.ToString()) + End Sub + + Private Sub productsTable_ColumnChanging(ByVal sender As Object, _ + ByVal e As DataColumnChangeEventArgs) + Console.WriteLine("productsTable_ColumnChanging.") + Console.WriteLine(" Value: " & e.Row("Name").ToString()) + Console.WriteLine(" RowState: " & e.Row.RowState.ToString()) + End Sub + + Private Sub productsTable_RowChanged(ByVal sender As Object, _ + ByVal e As DataRowChangeEventArgs) + Console.WriteLine("productsTable_RowChanged.") + Console.WriteLine(" Value: " & e.Row("Name").ToString()) + Console.WriteLine(" RowState: " & e.Row.RowState.ToString()) + End Sub + + Private Sub productsTable_RowChanging(ByVal sender As Object, _ + ByVal e As DataRowChangeEventArgs) + Console.WriteLine("productsTable_RowChanging.") + Console.WriteLine(" Value: " & e.Row("Name").ToString()) + Console.WriteLine(" RowState: " & e.Row.RowState.ToString()) + End Sub + + Private Sub productsTable_RowDeleted(ByVal sender As Object, _ + ByVal e As DataRowChangeEventArgs) + Console.WriteLine("productsTable_RowDeleted.") + Console.WriteLine(" RowState: " & e.Row.RowState.ToString()) + End Sub + + Private Sub productsTable_RowDeleting(ByVal sender As Object, _ + ByVal e As DataRowChangeEventArgs) + Console.WriteLine("productsTable_RowDeleting.") + Console.WriteLine(" RowState: " & e.Row.RowState.ToString()) + End Sub + + 'Private Sub productsTable_TableCleared(ByVal sender As Object, _ + ' ByVal e As DataTableClearEventArgs) + ' Console.WriteLine("productsTable_TableCleared") + 'End Sub + + 'Private Sub productsTable_TableClearing(ByVal sender As Object, _ + ' ByVal e As DataTableClearEventArgs) + ' Console.WriteLine("productsTable_TableClearing") + 'End Sub + + 'Private Sub productsTable_TableNewRow(ByVal sender As Object, _ + ' ByVal e As DataTableNewRowEventArgs) + ' Console.WriteLine("productsTable_TableNewRow") + 'End Sub +End Module diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/AssemblyInfo.vb b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..4fec96b --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyApplication.myapp b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyApplication.vb b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyResources.resx b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyResources.vb b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MySettings.settings b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MySettings.vb b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/app.config b/Code/Chapter 6/VB.NET/Exercise 6.2/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.exe b/Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..fc614e400399f84a21241077ea184132702766ae GIT binary patch literal 28672 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.pdb b/Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..eda08e7a9dddcdddc06f41b6213c327ae9cd6db8 GIT binary patch literal 46592 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.xml b/Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.xml new file mode 100644 index 0000000..a2a09c4 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/bin/Exercise 6.1.xml @@ -0,0 +1,11 @@ + + + + +Exercise6.1 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/Exercise 6.1.exe b/Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/Exercise 6.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..fc614e400399f84a21241077ea184132702766ae GIT binary patch literal 28672 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 + + + +Exercise6.1 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/Exercise 6.2.vbproj.GenerateResource.Cache b/Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/Exercise 6.2.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..2f89c7c3f3f34fffafa80e7838ef9cd84f2d50da GIT binary patch literal 786 zcma)3O-sW-5KV1U`z6$ac+f);4?;_5712u(Z1Dpv_(kbK58Lbn*KV`2lZf#bh(F9< z;n|b_L1&7J)F4jaC7GRl^JbotaUAEJg5MmK8G=Di`PQHbB5yZVT6z}(N7$(K!J;x@ zd);gD)2MY~9mN*fA;ggtx=}lchg$hZkX)D%gzaH-BiIbKf>ujzHpPZ;xy@QCyLSe- z4`CN>A(RmM3Xr7~E#P2JX~4yyKsZ+62qgb^l?6XCHpyjH(g~-jCUjZiEV+#TxW#HK z@`s}A@_B+0jJ=N0n%dJc&^r)#9f_faNrN2S$uay{I!gtmVBkSQxa@}6X)syavj0WwVI;&@E8Bv>GlrKTPl?a zi!MW+pvqr-kY~+Hy`)BxZfN$)UP6|c*!qATxpZIUa;_{E2wa9%x--A6u2X7aGjFb} zzg@<~Zx<7Gy&e#RVhl@Dc`Y#N8L0vVa$)KW?iEIuCuwt;iAO~i$>TULPgmX7=f})E Hr#Q+V5n<_t literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/Exercise_6_1.MyResources.resources b/Code/Chapter 6/VB.NET/Exercise 6.2/obj/Debug/Exercise_6_1.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYFm%Y>oXE(S|Jt1yQ$-58m`dk*>$M0MDOD1fNPL7ztFoC3Ym-~x1BK?n*hpl7>G!#a=p z5Rj?P74%}M(oDv_G8%jsmYO`F8@c9885w-#9eSQ1l)5Yi!<}4gr8d0=GG4>qU^C(K>NpUXe=bCAG zQ_0uZcc+=+m}R1Hh#pRMuVmoRDOW^MA_T&7CsC}{?sT@-HtJ8eTb-k+Zai#v8j20z ztyKNa8`{QO{<6Q)Ip`%2!aal0cgKp}83>OM<o>ECk#%A=3dwu>mR}P<1>Y7Bhk< z5u-#(Zi>V-iE|{*qi~3}#UplxE_TF0%_I5dm+vCV|u}K z+>`+iIRrDuY_P|5tX&-Yq-{2OhKi&Gu)cqIS^xR@z3os3S4UU-FB%;|_HPx%;k534 zo})ChD%PbR->y|KgH7}po@fWG+h0Ge7&Q@Q)HGO&U-+``O%xh6jmi3WZ~8iUPf_Lc G75)HwMQ2$6 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.2/obj/Exercise 6.2.vbproj.FileList.txt b/Code/Chapter 6/VB.NET/Exercise 6.2/obj/Exercise 6.2.vbproj.FileList.txt new file mode 100644 index 0000000..6c41c48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.2/obj/Exercise 6.2.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Exercise 6.1.exe.config +bin\Exercise 6.1.exe +bin\Exercise 6.1.pdb +bin\Exercise 6.1.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_6_1.MyResources.resources +obj\Debug\Exercise 6.2.vbproj.GenerateResource.Cache +obj\Debug\Exercise 6.1.exe +obj\Debug\Exercise 6.1.xml +obj\Debug\Exercise 6.1.pdb diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/Exercise 6.3.vbproj b/Code/Chapter 6/VB.NET/Exercise 6.3/Exercise 6.3.vbproj new file mode 100644 index 0000000..0bb00be --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/Exercise 6.3.vbproj @@ -0,0 +1,111 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {E5B9250B-18B2-4CA0-8D29-06AD0A59CABE} + WinExe + Exercise_6_3.My.MyApplication + Exercise_6_3 + Exercise 6.3 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 6.3.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 6.3.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/Exercise 6.3.vbproj.user b/Code/Chapter 6/VB.NET/Exercise 6.3/Exercise 6.3.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/Exercise 6.3.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/Form1.Designer.vb b/Code/Chapter 6/VB.NET/Exercise 6.3/Form1.Designer.vb new file mode 100644 index 0000000..abdac72 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/Form1.Designer.vb @@ -0,0 +1,139 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle3 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle4 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Me.nestedRelation = New System.Windows.Forms.CheckBox + Me.btnShowXml = New System.Windows.Forms.Button + Me.petsGrid = New System.Windows.Forms.DataGridView + Me.AnimalsGrid = New System.Windows.Forms.DataGridView + Me.btnSetupGrids = New System.Windows.Forms.Button + CType(Me.petsGrid, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.AnimalsGrid, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'nestedRelation + ' + Me.nestedRelation.AutoSize = True + Me.nestedRelation.Location = New System.Drawing.Point(400, 7) + Me.nestedRelation.Name = "nestedRelation" + Me.nestedRelation.Size = New System.Drawing.Size(109, 17) + Me.nestedRelation.TabIndex = 9 + Me.nestedRelation.Text = "Is Relation Nested" + ' + 'btnShowXml + ' + Me.btnShowXml.Location = New System.Drawing.Point(252, 2) + Me.btnShowXml.Name = "btnShowXml" + Me.btnShowXml.Size = New System.Drawing.Size(121, 27) + Me.btnShowXml.TabIndex = 8 + Me.btnShowXml.Text = "Show XML" + ' + 'petsGrid + ' + Me.petsGrid.BackgroundColor = System.Drawing.Color.Silver + Me.petsGrid.BorderStyle = System.Windows.Forms.BorderStyle.None + DataGridViewCellStyle1.BackColor = System.Drawing.Color.MidnightBlue + DataGridViewCellStyle1.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle1.ForeColor = System.Drawing.Color.White + Me.petsGrid.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle1 + DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle2.BackColor = System.Drawing.Color.Gainsboro + DataGridViewCellStyle2.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle2.ForeColor = System.Drawing.Color.Black + DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.petsGrid.DefaultCellStyle = DataGridViewCellStyle2 + Me.petsGrid.Font = New System.Drawing.Font("Tahoma", 8.0!) + Me.petsGrid.GridColor = System.Drawing.Color.DimGray + Me.petsGrid.Location = New System.Drawing.Point(13, 194) + Me.petsGrid.Name = "petsGrid" + Me.petsGrid.RowHeadersDefaultCellStyle = DataGridViewCellStyle1 + Me.petsGrid.Size = New System.Drawing.Size(496, 150) + Me.petsGrid.TabIndex = 7 + ' + 'AnimalsGrid + ' + Me.AnimalsGrid.BackgroundColor = System.Drawing.Color.Lavender + Me.AnimalsGrid.BorderStyle = System.Windows.Forms.BorderStyle.None + DataGridViewCellStyle3.BackColor = System.Drawing.Color.MidnightBlue + DataGridViewCellStyle3.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle3.ForeColor = System.Drawing.Color.Lavender + Me.AnimalsGrid.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle3 + DataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle4.BackColor = System.Drawing.Color.GhostWhite + DataGridViewCellStyle4.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle4.ForeColor = System.Drawing.Color.MidnightBlue + DataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.AnimalsGrid.DefaultCellStyle = DataGridViewCellStyle4 + Me.AnimalsGrid.Font = New System.Drawing.Font("Tahoma", 8.0!) + Me.AnimalsGrid.GridColor = System.Drawing.Color.RoyalBlue + Me.AnimalsGrid.Location = New System.Drawing.Point(13, 37) + Me.AnimalsGrid.Name = "AnimalsGrid" + Me.AnimalsGrid.RowHeadersDefaultCellStyle = DataGridViewCellStyle3 + Me.AnimalsGrid.Size = New System.Drawing.Size(496, 150) + Me.AnimalsGrid.TabIndex = 6 + ' + 'btnSetupGrids + ' + Me.btnSetupGrids.Location = New System.Drawing.Point(13, 2) + Me.btnSetupGrids.Name = "btnSetupGrids" + Me.btnSetupGrids.Size = New System.Drawing.Size(212, 28) + Me.btnSetupGrids.TabIndex = 5 + Me.btnSetupGrids.Text = "Create DataSet and DataBind" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(524, 353) + Me.Controls.Add(Me.nestedRelation) + Me.Controls.Add(Me.btnShowXml) + Me.Controls.Add(Me.petsGrid) + Me.Controls.Add(Me.AnimalsGrid) + Me.Controls.Add(Me.btnSetupGrids) + Me.Name = "Form1" + Me.Text = "Exercise 6.3" + CType(Me.petsGrid, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.AnimalsGrid, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents nestedRelation As System.Windows.Forms.CheckBox + Friend WithEvents btnShowXml As System.Windows.Forms.Button + Friend WithEvents petsGrid As System.Windows.Forms.DataGridView + Friend WithEvents AnimalsGrid As System.Windows.Forms.DataGridView + Friend WithEvents btnSetupGrids As System.Windows.Forms.Button + +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/Form1.resx b/Code/Chapter 6/VB.NET/Exercise 6.3/Form1.resx new file mode 100644 index 0000000..dab9e6f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/Form1.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Assembly + + + Assembly + + + Assembly + + + Assembly + + + Assembly + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/Form1.vb b/Code/Chapter 6/VB.NET/Exercise 6.3/Form1.vb new file mode 100644 index 0000000..6ece967 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/Form1.vb @@ -0,0 +1,52 @@ +Imports System.Data + +Public Class Form1 + + Dim petsData As DataSet + Private Sub btnPopulate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetupGrids.Click + petsData = CreateSchema() + petsGrid.DataSource = petsData.Tables("Pet") + AnimalsGrid.DataSource = petsData.Tables("Animal") + End Sub + Private Sub btnShowXml_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowXml.Click + MessageBox.Show(petsData.GetXml(), "DataSet Contents") + End Sub + Private Sub nestedRelation_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nestedRelation.CheckedChanged + If Not petsData Is Nothing Then + petsData.Relations(0).Nested = nestedRelation.Checked + End If + End Sub + + Private Function CreateSchema() As DataSet + Dim AnimalTable As DataTable = New DataTable("Animal") + Dim myDataColumn As DataColumn + + myDataColumn = New DataColumn("AnimalID", GetType(System.Int32)) + myDataColumn.AutoIncrement = True + AnimalTable.Columns.Add(myDataColumn) + + myDataColumn = New DataColumn("AnimalName", GetType(System.String)) + AnimalTable.Columns.Add(myDataColumn) + + Dim petsTable As DataTable = New DataTable("Pet") + + myDataColumn = New DataColumn("PetID", GetType(System.Int32)) + myDataColumn.AutoIncrement = True + petsTable.Columns.Add(myDataColumn) + + myDataColumn = New DataColumn("AnimalID", GetType(System.Int32)) + petsTable.Columns.Add(myDataColumn) + + myDataColumn = New DataColumn("PetName", GetType(System.String)) + petsTable.Columns.Add(myDataColumn) + + Dim toReturn As DataSet = New DataSet("petsData") + toReturn.Tables.Add(AnimalTable) + toReturn.Tables.Add(petsTable) + toReturn.Relations.Add( _ + New DataRelation("AnimalsPets", _ + AnimalTable.Columns("AnimalID"), petsTable.Columns("AnimalID"))) + + Return toReturn + End Function +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/AssemblyInfo.vb b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..c1d39d8 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyApplication.myapp b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyApplication.myapp new file mode 100644 index 0000000..38a2405 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_6_3.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyApplication.vb b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyApplication.vb new file mode 100644 index 0000000..69d02cc --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyApplication.vb @@ -0,0 +1,31 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + Inherits Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase + + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyEvents.vb b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyResources.resx b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyResources.vb b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyResources.vb new file mode 100644 index 0000000..c90ce1a --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_6_3.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MySettings.settings b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MySettings.vb b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/app.config b/Code/Chapter 6/VB.NET/Exercise 6.3/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.exe b/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..bd6f8b470b30a6aa4a2157a575cad94a226e580a GIT binary patch literal 32768 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%0Dq-v8pD|OMCdBLlg@-j^-c6z=pI_G)rGIt+l9MH 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 C;AYqW literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.exe.config b/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.pdb b/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..5cffe9b62b236736d516350a8a090caab1b34758 GIT binary patch literal 56832 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 TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.vshost.exe.config b/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.xml b/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.xml new file mode 100644 index 0000000..7c12ae4 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.3/bin/Exercise 6.3.xml @@ -0,0 +1,11 @@ + + + + +Exercise6.3 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise 6.3.exe b/Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise 6.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..bd6f8b470b30a6aa4a2157a575cad94a226e580a GIT binary patch literal 32768 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%0Dq-v8pD|OMCdBLlg@-j^-c6z=pI_G)rGIt+l9MH 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 C;AYqW literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise 6.3.pdb b/Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise 6.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..5cffe9b62b236736d516350a8a090caab1b34758 GIT binary patch literal 56832 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 + + + +Exercise6.3 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise_6_3.Form1.resources b/Code/Chapter 6/VB.NET/Exercise 6.3/obj/Debug/Exercise_6_3.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYiwRTD2O9QDf5P<|6hdCa4ia8%wQi)0)U;;0`)+xzo&CZ1Dv& zE_?wuZu%as+_}(=ab@Dp#COp14YgoHOv5a`JDfA;JO5Y_%d&pc!51fegy2a<)Rok- z5juC;!uOnYrki>uyTO$fGALYgTqi&0x{f=OEw=rzt#~2e?NBj)CcDzE`J(=Sch+T- z2ZfrOZ_GC48@Ze}>#{tH!PC`&4xCl4@A06-w|L<3pf0#RN{&Io`bDdPY!4+w^ zo~$v=mqgIy9#kcvcs-P=6OBeL4kquXMUsbnhNlS=MwD*J7_NsfMV4u=Ka+E79UbzP zQu~HqibD!yFA*=b^c!`ls1YV3gn=Vm^{%eR=$tB6WGDH3&do4;){fn}-#S~X@ zcv%xKd6b0O-e7*4YdDF;Qt=A|qFU@X{`F|#7NSe02ofWJI6(xC5gqjScJ&FmC6WXg zyo8+%yJT6aR?eYD?$~MiJyq#sSCo8Cb*NT4)OOic)Kv2z1A0@BQMx3K5oACMC-!lI z+r=Bz&Bf)?!_Bp7uhq+U*Q;g4T6|loX7vR|^twCe&R6#mEGf1vf~St>`*wy{7KUPh z^%z+fhq9&-^kt{TgV2OAPDF*_h*-!B#R;M)4@I#l0#9yh2c6O2%Ajp1a^fUl0&og2 z2{=s%ji+3HTF-goAo61SZ$N>}jlfwEZi49(o#)%VJRC~NT*-V(7 z+04uuFSPDfp;CcV0tr2X%>fpUm$~#%o2d=A`w=NgQd(8 zfayMBr>w&Jg0jK^#xf{%zk`>0R`K4SKa5*q}X8bsC8;t2*!RKv(ZyDtj+}yZ5#Sz<<+LqX+Dl#za z52ppZ&cw2Gz8h=UnD`RItv7`}D}E2;Ux1|)$5ElHp^y18%3aKJF9%rDb_z@0xIH_F zk=xdUk~ViEL~YG^c48cICbNXasoSse;7a8*78I_<-3(>FmyHcx!Q<+zCUwItl(B)I zgp|oFVVoNAdzCs`#UGFrJt8YobX+_M z{2hs(Q1&VbdR+M$;4hRHl{D>&eKeM)Lx3rIAa)$^iC7n<>6ft|#S)ZI-vzuu?Nt+W zo0=5~sspCzVYLf3f1|z%en+MH zv&uJUzXlVO*zgv0!Nidj)SRTclA8DkWS@_yJz@aVLlNbQ9iX0xsIQ6}K%JIUX2T2O zW>D`*sxgDwM`(MLH$(xlfrvUMj$yUCBz2PhB5Y7cBH4T51gMInG89)9K|LrbLH$Y{ zad}Eo;S4IhBB@yNdgVUk%6pPppL|>SHmKZ{Jp1}2#l8#bNJOoTeGe3e@J+$+avAs# zZiuxL$7T}nMZ}Ep0b<)%OE@gyE(r&u^lAx*CEO+9tr8j%T7WUEi0$-9Sfjjpi|8Sa zNDpx&wveNK793vrJ#?>nyLbSacZqSidsA}M6g{KfM^p4e^>5-~aN^1qS|9IJJ`TKF zd4fI}znPu}z5{%pJ|%R_x>Fg$tUtk8eA*)B=q@@>1mF}qJm z@u=iKMlaAw@tD+qNpfDMbCgnEmYkmf4k~9Q|C}6qPTKjM^nk_B?VZhM$6cj|1{(1>@TRJ5i1KROtZB;sg{}!DUp%?<@2= zy+OaGKhs;{ZK2j-YDKe90g*b*Ciomc70Q>{m3NC(+q{9we!=x@Yo78}!E=50XrRwne$}u?4c{tIzBW>+*jB*^ zEZ3pki>6nwd~EmYTUeo{S znje^D3Z0~q8O%0C7VUAU7PtrZE@TVlZRaRTEp!A(agFs%b9VgOzRJO%6a=!(a{!v2`O~Z-c zI;IogoiT0NU9^x_qn>+*Z_L}~NPsKLJl=uTg6RO!y+nxEq-C34BTxior)YS^@U>jF zIe~X24o(RchabmQQj=OUTxIyJPR2a#zrRK0n;`XCFUv6Ny%sLyltju`0PE&r*546V&+Wh6ETehj)?5qwnTS!gUGIBA{h}$CNdF`VPaiG ztizR9s7Z`tkYtcyuuj#4vI$0$sz%vvAZewS+B${kCGkv<>z>^`KVLTJ!>lk0B@<|8( zM7m2*I$zUU3ni@;)CQic%M>ZJR#oa0v<3>i#qx;5$tpH&inR#^PclIw+npKViMm0j z<52I#M-bKx9+s}DB8_GU8jf-a)9a1g)R7i}TX1b(pLUJPL=aTQYzsxE!Ovb;p1Uqq zlX3axeZ<#76xtMU4jedbh&xAK2!-$d91O~SI-w~djjm0}ZbqQ7fIfs6w*{#nL=seV z<(P{8N5CS7agDJHTjPHTDr_R%e%Cjs{W=k^2jo%8&) zw7T6GF;Ed!+;W*cjz_?%ftt4mRnbP>n3U!@h{m(P1AN>t*V{_hnedC0s`lrx&kdb##{F!Z9NH om>e^L`0+Vd#@cLnul>hy82VwmR0I%M{=ZzE1N>q8zl*@X018$C + + Debug + AnyCPU + 8.0.40607 + 2.0 + {174D09D9-490D-4953-B605-5290B2DB59CF} + Exe + Exercise_6_4.Module1 + Exercise_6_4 + Exercise 6.4 + Windows + + + true + full + true + true + true + bin\ + Exercise 6.4.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 5.4.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/Exercise 6.4.vbproj.user b/Code/Chapter 6/VB.NET/Exercise 6.4/Exercise 6.4.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/Exercise 6.4.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/Module1.vb b/Code/Chapter 6/VB.NET/Exercise 6.4/Module1.vb new file mode 100644 index 0000000..1668c5b --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/Module1.vb @@ -0,0 +1,62 @@ +Imports System.Data +Imports System.IO +Imports System.Runtime.Serialization.Formatters.Binary + +Module Module1 + + Sub Main() + Dim bf As New BinaryFormatter() + Dim fs As New FileStream( _ + System.Environment.CurrentDirectory.ToString() & _ + "\ds.dat", FileMode.OpenOrCreate) + Dim ds As DataSet = GiveMeFakeData() + ds.RemotingFormat = SerializationFormat.Binary + bf.Serialize(fs, ds) + fs.Close() + + ' Check the deserialization performance. + fs = New FileStream( _ + System.Environment.CurrentDirectory.ToString() & _ + "\ds.dat", FileMode.Open) + Dim nowTicks As Long = DateTime.Now.Ticks + Dim ds2 As DataSet = CType(bf.Deserialize(fs), DataSet) + Dim tickstotal As Long = DateTime.Now.Ticks - nowTicks + Console.WriteLine(("Took me : " + tickstotal.ToString())) + fs.Close() + End Sub + + Function GiveMeFakeData() As DataSet + Dim ds As New DataSet() + Dim dt As New DataTable("Animals") + dt.Columns.Add(New DataColumn("AnimalID")) + dt.Columns.Add(New DataColumn("AnimalType")) + + Dim dr As DataRow + Dim i As Integer + For i = 0 To 1000 + dr = dt.NewRow() + dr(0) = 1 + dr(1) = "Rabbit" + dt.Rows.Add(dr) + + dr = dt.NewRow() + dr(0) = 2 + dr(1) = "Monkey" + dt.Rows.Add(dr) + + dr = dt.NewRow() + dr(0) = 3 + dr(1) = "Donkey" + dt.Rows.Add(dr) + + dr = dt.NewRow() + dr(0) = 4 + dr(1) = "Dog" + dt.Rows.Add(dr) + Next i + + ds.Tables.Add(dt) + + Return ds + End Function +End Module diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/AssemblyInfo.vb b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e960db0 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyApplication.myapp b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyApplication.myapp new file mode 100644 index 0000000..922ecdc --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 2 + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyApplication.vb b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyApplication.vb new file mode 100644 index 0000000..976337f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyApplication.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.40607.42 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyResources.resx b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyResources.vb b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyResources.vb new file mode 100644 index 0000000..5764807 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MyResources.vb @@ -0,0 +1,60 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.40607.42 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_6_4.MyResources", GetType(MyResources).Assembly) + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MySettings.settings b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MySettings.vb b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MySettings.vb new file mode 100644 index 0000000..7e8227c --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/My Project/MySettings.vb @@ -0,0 +1,39 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.40607.42 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/app.config b/Code/Chapter 6/VB.NET/Exercise 6.4/app.config new file mode 100644 index 0000000..86af0c8 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/app.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.exe b/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..83edb5ec189a225c54b0867da809b74672f3f4ec GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.exe.config b/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.exe.config new file mode 100644 index 0000000..86af0c8 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.exe.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.pdb b/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..952bd5bd1638342d047ad890834faa1f475ff2fe GIT binary patch literal 38400 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.vshost.exe.config b/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.vshost.exe.config new file mode 100644 index 0000000..86af0c8 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.vshost.exe.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.xml b/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.xml new file mode 100644 index 0000000..6533afb --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/bin/Exercise 6.4.xml @@ -0,0 +1,20 @@ + + + + +Exercise6.4 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/Exercise 6.4.exe b/Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/Exercise 6.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..83edb5ec189a225c54b0867da809b74672f3f4ec GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/Exercise 6.4.pdb b/Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/Exercise 6.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..952bd5bd1638342d047ad890834faa1f475ff2fe GIT binary patch literal 38400 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 + + + +Exercise6.4 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/Exercise_6_4.MyResources.resources b/Code/Chapter 6/VB.NET/Exercise 6.4/obj/Debug/Exercise_6_4.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 VihvgWW>`9K_mcaN|34Xle*nDFz|sH! literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.4/obj/Exercise 6.4.vbproj.FileList.txt b/Code/Chapter 6/VB.NET/Exercise 6.4/obj/Exercise 6.4.vbproj.FileList.txt new file mode 100644 index 0000000..383bd98 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.4/obj/Exercise 6.4.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Exercise 6.4.exe.config +bin\Exercise 6.4.exe +bin\Exercise 6.4.pdb +bin\Exercise 6.4.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_6_4.MyResources.resources +obj\Debug\Exercise 6.4.vbproj.GenerateResource.Cache +obj\Debug\Exercise 6.4.exe +obj\Debug\Exercise 6.4.xml +obj\Debug\Exercise 6.4.pdb diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/Exercise 6.5.vbproj b/Code/Chapter 6/VB.NET/Exercise 6.5/Exercise 6.5.vbproj new file mode 100644 index 0000000..ad5d619 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/Exercise 6.5.vbproj @@ -0,0 +1,98 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {94474804-9A13-419C-B590-49B444B329E8} + Exe + Exercise_6_5.Module1 + Exercise_6_5 + Exercise 6.5 + Windows + + + true + full + true + true + true + bin\ + Exercise 6.5.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 6.5.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/Exercise 6.5.vbproj.user b/Code/Chapter 6/VB.NET/Exercise 6.5/Exercise 6.5.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/Exercise 6.5.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/Module1.vb b/Code/Chapter 6/VB.NET/Exercise 6.5/Module1.vb new file mode 100644 index 0000000..bc3f2e9 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/Module1.vb @@ -0,0 +1,17 @@ +Imports System +Imports System.Data + +Module Module1 + Sub Main() + Dim BookDataSet As DataSet = New DataSet() + BookDataSet.ReadXmlSchema("BookDataSet.xsd") + BookDataSet.ReadXml("Books.xml") + + Console.WriteLine("Recent Books:") + Console.WriteLine("-------------") + Dim xRow As DataRow + For Each xRow In BookDataSet.Tables("Books").Rows + Console.WriteLine("{0} by {1}", xRow("Title"), xRow("Publisher")) + Next + End Sub +End Module diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/AssemblyInfo.vb b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..28e8600 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyApplication.myapp b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyApplication.vb b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyResources.resx b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyResources.vb b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MySettings.settings b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MySettings.vb b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/app.config b/Code/Chapter 6/VB.NET/Exercise 6.5/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/bin/BookDataSet.xsd b/Code/Chapter 6/VB.NET/Exercise 6.5/bin/BookDataSet.xsd new file mode 100644 index 0000000..baf5a38 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/bin/BookDataSet.xsd @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Books.xml b/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Books.xml new file mode 100644 index 0000000..23045ce --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Books.xml @@ -0,0 +1,10 @@ + + + Pro ADO.NET + Apress Ltd + + + Professional .NET Framework + Apress Ltd + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.exe b/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..5f5cf88ff4d35c4d87d2f85010e394f16c45dc42 GIT binary patch literal 24576 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.pdb b/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a1226be067b8ab692eccb7ce3cc8a923ae7a0fce GIT binary patch literal 38400 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.vshost.exe.config b/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.xml b/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.xml new file mode 100644 index 0000000..fffe76a --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/bin/Exercise 6.5.xml @@ -0,0 +1,11 @@ + + + + +Exercise6.5 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise 6.5.exe b/Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise 6.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..5f5cf88ff4d35c4d87d2f85010e394f16c45dc42 GIT binary patch literal 24576 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 GILaRji0MB7 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise 6.5.xml b/Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise 6.5.xml new file mode 100644 index 0000000..fffe76a --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise 6.5.xml @@ -0,0 +1,11 @@ + + + + +Exercise6.5 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise_6_5.MyResources.resources b/Code/Chapter 6/VB.NET/Exercise 6.5/obj/Debug/Exercise_6_5.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYFm%Y>oX;#imvh+Jd<`$rchH&B+Qt&3WG`k9^YhKjH#3%PS=Mj-=ucnq42qXc-cwS`F!mlM zTm)X5>AqelZ-dfYM%CM%?^Tw4-}4vBwM4{;f@%awte99RZzWy9dru*4%RWTau3rh4 z!j*7wF2>c0Yp6x`Ybx<6zJUs7ohVBLQrS{J=H zgy~l?>k2Sg9E`Cki%I9=BSWhH29j5PL$aX3sQ-z>5fzaCnjGvg1u9EfTKpYkP^sN* zCKAw;#BmDQt0Ssf9}fQYe07bQ$rn)MCP-va*p!&6BfDY7*mGphqbQLl#kr)PYo_Hb zC0}FToo0$-mWje4dN|qrl7T~~ToFZy5D3qmM6p`C*V$R$tUudnb&jXH`KaA#C^mq% zQuRA;XdCbN%l=B|u$Mpx_Z&vwA1iuyAUr}ij|jD~5OC9kOa~Cf2B?HU)$xE>%m|`H zj1noiDH78pE|9p0!XergkJ%Zz*bxUckK~(UBDjJ$Iv_oJbRQ`l)O?5{LXPK7=mpbp zQwBWb5X_vg!9Lfqc5&>Jw%O+wR8x_o86Fr6}+5zkCx6dm^O@tXW4c6k9z8-iJg+@(dvOYeTzDeFwR5^Wx EKS#o66951J literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.5/obj/Exercise 6.5.vbproj.FileList.txt b/Code/Chapter 6/VB.NET/Exercise 6.5/obj/Exercise 6.5.vbproj.FileList.txt new file mode 100644 index 0000000..53dd932 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.5/obj/Exercise 6.5.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Exercise 6.5.exe.config +bin\Exercise 6.5.exe +bin\Exercise 6.5.pdb +bin\Exercise 6.5.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_6_5.MyResources.resources +obj\Debug\Exercise 6.5.vbproj.GenerateResource.Cache +obj\Debug\Exercise 6.5.exe +obj\Debug\Exercise 6.5.xml +obj\Debug\Exercise 6.5.pdb diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/Exercise 6.6.vbproj b/Code/Chapter 6/VB.NET/Exercise 6.6/Exercise 6.6.vbproj new file mode 100644 index 0000000..e9814a0 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/Exercise 6.6.vbproj @@ -0,0 +1,98 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {4805CA13-57DE-42D5-B4A2-7D7224CF09D5} + Exe + Exercise_6_6.Module1 + Exercise_6_6 + Exercise 6.6 + Windows + + + true + full + true + true + true + bin\ + Exercise 6.6.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 6.6.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/Exercise 6.6.vbproj.user b/Code/Chapter 6/VB.NET/Exercise 6.6/Exercise 6.6.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/Exercise 6.6.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/Module1.vb b/Code/Chapter 6/VB.NET/Exercise 6.6/Module1.vb new file mode 100644 index 0000000..d7e2727 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/Module1.vb @@ -0,0 +1,31 @@ +Imports System.Data + +Module Module1 + Sub Main() + Dim BookDataSet As New DataSet() + + BookDataSet.ReadXmlSchema("BookDataSet.xsd") + BookDataSet.ReadXml("Books.xml") + + Console.WriteLine("Relations Created:") + Dim xRelation As DataRelation + For Each xRelation In BookDataSet.Relations + Console.WriteLine(xRelation.RelationName) + Next + + Console.WriteLine("Apress Books") + Console.WriteLine("----------") + Console.WriteLine() + + Dim xRow As DataRow + For Each xRow In BookDataSet.Tables("Books").Rows + Console.WriteLine(xRow("Title")) + + ' Obtain child rows using the KeyTitleRef relation + Dim zRow As DataRow + For Each zRow In xRow.GetChildRows("KeyTitleRef") + Console.WriteLine(" {0}", zRow("Rating")) + Next + Next + End Sub +End Module diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/AssemblyInfo.vb b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..f3b658a --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyApplication.myapp b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyApplication.vb b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyResources.resx b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyResources.vb b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MySettings.settings b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MySettings.vb b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/app.config b/Code/Chapter 6/VB.NET/Exercise 6.6/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/bin/BookDataSet.xsd b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/BookDataSet.xsd new file mode 100644 index 0000000..fbe0b13 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/BookDataSet.xsd @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/bin/BookDataSet.xsx b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/BookDataSet.xsx new file mode 100644 index 0000000..37712f5 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/BookDataSet.xsx @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Books.xml b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Books.xml new file mode 100644 index 0000000..2015984 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Books.xml @@ -0,0 +1,35 @@ + + + 1 + Pro ADO.NET + APress Ltd + + + 2 + Professional .NET Framework + APress Ltd + + + 1 + 5 + This book was by far one of the best books on .NET ever + written! + + + 1 + 1 + I'm not sure this could be classified as a technical manual. It + is worth more as a paperweight + + + 2 + 4 + Top Notch! Excellent book! I especially liked the chapter on + strongly typed datasets and XSD schemas! + + + 2 + 2 + I liked the introduction. That's it. + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.exe b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..d61acc1c5ae267288d1cf8b0b3e05a4be2b0aae0 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.exe.config b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.pdb b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..487fb85ceec46f448c7bf49367991923345f6832 GIT binary patch literal 38400 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.vshost.exe b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..87ed49ad954ce326d6b3914c6a1e9a97ee2d004c GIT binary patch literal 5120 zcmeHKeQXrR6@Pm^&c+4P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.vshost.exe.config b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.xml b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.xml new file mode 100644 index 0000000..32d236e --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/bin/Exercise 6.6.xml @@ -0,0 +1,11 @@ + + + + +Exercise6.6 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.exe b/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..d61acc1c5ae267288d1cf8b0b3e05a4be2b0aae0 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.pdb b/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..487fb85ceec46f448c7bf49367991923345f6832 GIT binary patch literal 38400 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.vbproj.GenerateResource.Cache b/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..a5511969187eaf8cd3afef2b603b049162b0b6ff GIT binary patch literal 786 zcma)3%}T>S5Ke7V`=d|~(t{p~cn~b1Rf=AUV8tJ_;2+|_%Qic~wcD)hB+>{T1s}(! z@GX1+@fAd8ii*@APT)&2JNwNy^EnyEao#ET%`r7WaNbqEHE4p!+l-Z#-l@Po)@x^A zQJJv4;x+iG*E+F|VhimM;>ZeJuN}rct^9pRPE8-ecCWD-w1Tyu*_5q@SQRd}SxRO1 zjsbTd+=6QeC4{~LWGO`pc)qPPV6`U@4pi6&$^To*f*%>1T42;QQUwa+?ARF$6-JmRY15gJM@1IN<2*j!zumn& LJ!ED$#ZmqME4}Lu literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.xml b/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.xml new file mode 100644 index 0000000..32d236e --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise 6.6.xml @@ -0,0 +1,11 @@ + + + + +Exercise6.6 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise_6_6.MyResources.resources b/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Debug/Exercise_6_6.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYFm%Y>oXE|(P3ouz6jIk+;N$27tL#qDOuDj@$g+1q6bRF<+d_-n|Z zQoCDBB%mpY;}o(Nhg7vT82t0e@?B~sUqF!?Baua6Q(~%)?1mX*&yhWkqC}n)=aPP= zo|ZS2e1Uzp>M4#{CJKk>;biwp1`eHaMHD4MAUt;*#d7UdYkO^D{+Jh)IKqUmKjt0bH zMi3=plt{@XJ_DIhaA)_l5dWQ;0ogKfb{g?eWY|yvmuHIIi5M9 z7fi=>8Ss!pFm=QRdtArb#j%guW}~O5NLqjo-`@Uu^W)Py+o29F53lxLG&+Lp-ztiO zY2E!i{WP>H)`jn1uT(IDP4pO^Xa}sDUp_7wH4$diG+2wD`@HW>6dE;+$$Ech@+x^x JQ04R${s5K_XyO0> literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Exercise 6.6.vbproj.FileList.txt b/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Exercise 6.6.vbproj.FileList.txt new file mode 100644 index 0000000..e1e39d5 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.6/obj/Exercise 6.6.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Exercise 6.6.exe.config +bin\Exercise 6.6.exe +bin\Exercise 6.6.pdb +bin\Exercise 6.6.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_6_6.MyResources.resources +obj\Debug\Exercise 6.6.vbproj.GenerateResource.Cache +obj\Debug\Exercise 6.6.exe +obj\Debug\Exercise 6.6.xml +obj\Debug\Exercise 6.6.pdb diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.Designer.vb b/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.Designer.vb new file mode 100644 index 0000000..31b61fc --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.Designer.vb @@ -0,0 +1,798 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System + + + _ +Partial Public Class BookDataSet + Inherits System.Data.DataSet + + Private tableBooks As BooksDataTable + + Private tableBookReviews As BookReviewsDataTable + + Private relationKeyTitleRef As System.Data.DataRelation + + Private _schemaSerializationMode As System.Data.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema + + _ + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + _ + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Me.DetermineSchemaSerializationMode(info, context) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + If (Not (ds.Tables("Books")) Is Nothing) Then + MyBase.Tables.Add(New BooksDataTable(ds.Tables("Books"))) + End If + If (Not (ds.Tables("BookReviews")) Is Nothing) Then + MyBase.Tables.Add(New BookReviewsDataTable(ds.Tables("BookReviews"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public ReadOnly Property Books() As BooksDataTable + Get + Return Me.tableBooks + End Get + End Property + + _ + Public ReadOnly Property BookReviews() As BookReviewsDataTable + Get + Return Me.tableBookReviews + End Get + End Property + + Public Overrides Property SchemaSerializationMode() As System.Data.SchemaSerializationMode + Get + Return Me._schemaSerializationMode + End Get + Set + Me._schemaSerializationMode = value + End Set + End Property + + _ + Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Public Shadows Property EnforceConstraints() As Boolean + Get + Return MyBase.EnforceConstraints + End Get + Set + MyBase.EnforceConstraints = value + End Set + End Property + + Protected Overrides Sub InitializeDerivedDataSet() + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Public Overrides Function Clone() As System.Data.DataSet + Dim cln As BookDataSet = CType(MyBase.Clone,BookDataSet) + cln.InitVars + Return cln + End Function + + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader) + If (Me.DetermineSchemaSerializationMode(reader) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Me.Reset + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXml(reader) + If (Not (ds.Tables("Books")) Is Nothing) Then + MyBase.Tables.Add(New BooksDataTable(ds.Tables("Books"))) + End If + If (Not (ds.Tables("BookReviews")) Is Nothing) Then + MyBase.Tables.Add(New BookReviewsDataTable(ds.Tables("BookReviews"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXml(reader) + Me.InitVars + End If + End Sub + + Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema + Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream + Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing) + End Function + + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + Me.tableBooks = CType(MyBase.Tables("Books"),BooksDataTable) + If (initTable = true) Then + If (Not (Me.tableBooks) Is Nothing) Then + Me.tableBooks.InitVars + End If + End If + Me.tableBookReviews = CType(MyBase.Tables("BookReviews"),BookReviewsDataTable) + If (initTable = true) Then + If (Not (Me.tableBookReviews) Is Nothing) Then + Me.tableBookReviews.InitVars + End If + End If + Me.relationKeyTitleRef = Me.Relations("KeyTitleRef") + End Sub + + Private Sub InitClass() + Me.DataSetName = "BookDataSet" + Me.Prefix = "" + Me.Namespace = "urn:apress-proadonet-chapter6-BookDataSet.xsd" + Me.EnforceConstraints = true + Me.tableBooks = New BooksDataTable + MyBase.Tables.Add(Me.tableBooks) + Me.tableBookReviews = New BookReviewsDataTable + MyBase.Tables.Add(Me.tableBookReviews) + Dim fkc As System.Data.ForeignKeyConstraint + fkc = New System.Data.ForeignKeyConstraint("KeyTitleRef", New System.Data.DataColumn() {Me.tableBooks.BookIDColumn}, New System.Data.DataColumn() {Me.tableBookReviews.BookIDColumn}) + Me.tableBookReviews.Constraints.Add(fkc) + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None + fkc.DeleteRule = System.Data.Rule.Cascade + fkc.UpdateRule = System.Data.Rule.Cascade + Me.relationKeyTitleRef = New System.Data.DataRelation("KeyTitleRef", New System.Data.DataColumn() {Me.tableBooks.BookIDColumn}, New System.Data.DataColumn() {Me.tableBookReviews.BookIDColumn}, false) + Me.Relations.Add(Me.relationKeyTitleRef) + End Sub + + Private Function ShouldSerializeBooks() As Boolean + Return false + End Function + + Private Function ShouldSerializeBookReviews() As Boolean + Return false + End Function + + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim ds As BookDataSet = New BookDataSet + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + xs.Add(ds.GetSchemaSerializable) + Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any.Namespace = ds.Namespace + sequence.Items.Add(any) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub BooksRowChangeEventHandler(ByVal sender As Object, ByVal e As BooksRowChangeEvent) + + Public Delegate Sub BookReviewsRowChangeEventHandler(ByVal sender As Object, ByVal e As BookReviewsRowChangeEvent) + + _ + Partial Public Class BooksDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnBookID As System.Data.DataColumn + + Private columnTitle As System.Data.DataColumn + + Private columnPublisher As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Books" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property BookIDColumn() As System.Data.DataColumn + Get + Return Me.columnBookID + End Get + End Property + + Public ReadOnly Property TitleColumn() As System.Data.DataColumn + Get + Return Me.columnTitle + End Get + End Property + + Public ReadOnly Property PublisherColumn() As System.Data.DataColumn + Get + Return Me.columnPublisher + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As BooksRow + Get + Return CType(Me.Rows(index),BooksRow) + End Get + End Property + + Public Event BooksRowChanged As BooksRowChangeEventHandler + + Public Event BooksRowChanging As BooksRowChangeEventHandler + + Public Event BooksRowDeleted As BooksRowChangeEventHandler + + Public Event BooksRowDeleting As BooksRowChangeEventHandler + + Public Overloads Sub AddBooksRow(ByVal row As BooksRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddBooksRow(ByVal BookID As Long, ByVal Title As String, ByVal Publisher As String) As BooksRow + Dim rowBooksRow As BooksRow = CType(Me.NewRow,BooksRow) + rowBooksRow.ItemArray = New Object() {BookID, Title, Publisher} + Me.Rows.Add(rowBooksRow) + Return rowBooksRow + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As BooksDataTable = CType(MyBase.Clone,BooksDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New BooksDataTable + End Function + + Friend Sub InitVars() + Me.columnBookID = MyBase.Columns("BookID") + Me.columnTitle = MyBase.Columns("Title") + Me.columnPublisher = MyBase.Columns("Publisher") + End Sub + + Private Sub InitClass() + Me.columnBookID = New System.Data.DataColumn("BookID", GetType(Long), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnBookID) + Me.columnTitle = New System.Data.DataColumn("Title", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnTitle) + Me.columnPublisher = New System.Data.DataColumn("Publisher", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnPublisher) + Me.Constraints.Add(New System.Data.UniqueConstraint("KeyTitle", New System.Data.DataColumn() {Me.columnBookID}, false)) + Me.columnBookID.AllowDBNull = false + Me.columnBookID.Unique = true + Me.columnTitle.AllowDBNull = false + Me.columnPublisher.AllowDBNull = false + End Sub + + Public Function NewBooksRow() As BooksRow + Return CType(Me.NewRow,BooksRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New BooksRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(BooksRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.BooksRowChangedEvent) Is Nothing) Then + RaiseEvent BooksRowChanged(Me, New BooksRowChangeEvent(CType(e.Row,BooksRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.BooksRowChangingEvent) Is Nothing) Then + RaiseEvent BooksRowChanging(Me, New BooksRowChangeEvent(CType(e.Row,BooksRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.BooksRowDeletedEvent) Is Nothing) Then + RaiseEvent BooksRowDeleted(Me, New BooksRowChangeEvent(CType(e.Row,BooksRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.BooksRowDeletingEvent) Is Nothing) Then + RaiseEvent BooksRowDeleting(Me, New BooksRowChangeEvent(CType(e.Row,BooksRow), e.Action)) + End If + End Sub + + Public Sub RemoveBooksRow(ByVal row As BooksRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As BookDataSet = New BookDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "BooksDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + _ + Partial Public Class BookReviewsDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnBookID As System.Data.DataColumn + + Private columnRating As System.Data.DataColumn + + Private columnReview As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "BookReviews" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property BookIDColumn() As System.Data.DataColumn + Get + Return Me.columnBookID + End Get + End Property + + Public ReadOnly Property RatingColumn() As System.Data.DataColumn + Get + Return Me.columnRating + End Get + End Property + + Public ReadOnly Property ReviewColumn() As System.Data.DataColumn + Get + Return Me.columnReview + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As BookReviewsRow + Get + Return CType(Me.Rows(index),BookReviewsRow) + End Get + End Property + + Public Event BookReviewsRowChanged As BookReviewsRowChangeEventHandler + + Public Event BookReviewsRowChanging As BookReviewsRowChangeEventHandler + + Public Event BookReviewsRowDeleted As BookReviewsRowChangeEventHandler + + Public Event BookReviewsRowDeleting As BookReviewsRowChangeEventHandler + + Public Overloads Sub AddBookReviewsRow(ByVal row As BookReviewsRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddBookReviewsRow(ByVal parentBooksRowByKeyTitleRef As BooksRow, ByVal Rating As Long, ByVal Review As String) As BookReviewsRow + Dim rowBookReviewsRow As BookReviewsRow = CType(Me.NewRow,BookReviewsRow) + rowBookReviewsRow.ItemArray = New Object() {parentBooksRowByKeyTitleRef(0), Rating, Review} + Me.Rows.Add(rowBookReviewsRow) + Return rowBookReviewsRow + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As BookReviewsDataTable = CType(MyBase.Clone,BookReviewsDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New BookReviewsDataTable + End Function + + Friend Sub InitVars() + Me.columnBookID = MyBase.Columns("BookID") + Me.columnRating = MyBase.Columns("Rating") + Me.columnReview = MyBase.Columns("Review") + End Sub + + Private Sub InitClass() + Me.columnBookID = New System.Data.DataColumn("BookID", GetType(Long), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnBookID) + Me.columnRating = New System.Data.DataColumn("Rating", GetType(Long), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnRating) + Me.columnReview = New System.Data.DataColumn("Review", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnReview) + Me.columnBookID.AllowDBNull = false + Me.columnRating.AllowDBNull = false + End Sub + + Public Function NewBookReviewsRow() As BookReviewsRow + Return CType(Me.NewRow,BookReviewsRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New BookReviewsRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(BookReviewsRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.BookReviewsRowChangedEvent) Is Nothing) Then + RaiseEvent BookReviewsRowChanged(Me, New BookReviewsRowChangeEvent(CType(e.Row,BookReviewsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.BookReviewsRowChangingEvent) Is Nothing) Then + RaiseEvent BookReviewsRowChanging(Me, New BookReviewsRowChangeEvent(CType(e.Row,BookReviewsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.BookReviewsRowDeletedEvent) Is Nothing) Then + RaiseEvent BookReviewsRowDeleted(Me, New BookReviewsRowChangeEvent(CType(e.Row,BookReviewsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.BookReviewsRowDeletingEvent) Is Nothing) Then + RaiseEvent BookReviewsRowDeleting(Me, New BookReviewsRowChangeEvent(CType(e.Row,BookReviewsRow), e.Action)) + End If + End Sub + + Public Sub RemoveBookReviewsRow(ByVal row As BookReviewsRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As BookDataSet = New BookDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "BookReviewsDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + Partial Public Class BooksRow + Inherits System.Data.DataRow + + Private tableBooks As BooksDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableBooks = CType(Me.Table,BooksDataTable) + End Sub + + Public Property BookID() As Long + Get + Return CType(Me(Me.tableBooks.BookIDColumn),Long) + End Get + Set + Me(Me.tableBooks.BookIDColumn) = value + End Set + End Property + + Public Property Title() As String + Get + Return CType(Me(Me.tableBooks.TitleColumn),String) + End Get + Set + Me(Me.tableBooks.TitleColumn) = value + End Set + End Property + + Public Property Publisher() As String + Get + Return CType(Me(Me.tableBooks.PublisherColumn),String) + End Get + Set + Me(Me.tableBooks.PublisherColumn) = value + End Set + End Property + + Public Function GetBookReviewsRows() As BookReviewsRow() + Return CType(MyBase.GetChildRows(Me.Table.ChildRelations("KeyTitleRef")),BookReviewsRow()) + End Function + End Class + + Partial Public Class BookReviewsRow + Inherits System.Data.DataRow + + Private tableBookReviews As BookReviewsDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableBookReviews = CType(Me.Table,BookReviewsDataTable) + End Sub + + Public Property BookID() As Long + Get + Return CType(Me(Me.tableBookReviews.BookIDColumn),Long) + End Get + Set + Me(Me.tableBookReviews.BookIDColumn) = value + End Set + End Property + + Public Property Rating() As Long + Get + Return CType(Me(Me.tableBookReviews.RatingColumn),Long) + End Get + Set + Me(Me.tableBookReviews.RatingColumn) = value + End Set + End Property + + Public Property Review() As String + Get + Try + Return CType(Me(Me.tableBookReviews.ReviewColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'Review' in table 'BookReviews' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableBookReviews.ReviewColumn) = value + End Set + End Property + + Public Property BooksRow() As BooksRow + Get + Return CType(Me.GetParentRow(Me.Table.ParentRelations("KeyTitleRef")),BooksRow) + End Get + Set + Me.SetParentRow(value, Me.Table.ParentRelations("KeyTitleRef")) + End Set + End Property + + Public Function IsReviewNull() As Boolean + Return Me.IsNull(Me.tableBookReviews.ReviewColumn) + End Function + + Public Sub SetReviewNull() + Me(Me.tableBookReviews.ReviewColumn) = System.Convert.DBNull + End Sub + End Class + + Public Class BooksRowChangeEvent + Inherits System.EventArgs + + Private eventRow As BooksRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As BooksRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As BooksRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class BookReviewsRowChangeEvent + Inherits System.EventArgs + + Private eventRow As BookReviewsRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As BookReviewsRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As BookReviewsRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xsc b/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xsc new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xsd b/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xsd new file mode 100644 index 0000000..fbe0b13 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xsd @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xss b/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xss new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xsx b/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xsx new file mode 100644 index 0000000..37712f5 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/BookDataSet.xsx @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/Exercise 6.7.vbproj b/Code/Chapter 6/VB.NET/Exercise 6.7/Exercise 6.7.vbproj new file mode 100644 index 0000000..e559242 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/Exercise 6.7.vbproj @@ -0,0 +1,119 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {E5E6F116-BDD1-4909-BB89-270FA547EFB2} + Exe + Exercise_6_7.Module1 + Exercise_6_7 + Exercise 6.7 + Windows + + + true + full + true + true + true + bin\ + Exercise 6.7.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 6.7.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + True + True + BookDataSet.xsd + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + BookDataSet.xsd + + + BookDataSet.xsd + + + BookDataSet.xsd + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + MSDataSetGenerator + BookDataSet.Designer.vb + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/Exercise 6.7.vbproj.user b/Code/Chapter 6/VB.NET/Exercise 6.7/Exercise 6.7.vbproj.user new file mode 100644 index 0000000..e51ad1c --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/Exercise 6.7.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ShowAllFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/Module1.vb b/Code/Chapter 6/VB.NET/Exercise 6.7/Module1.vb new file mode 100644 index 0000000..9678318 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/Module1.vb @@ -0,0 +1,29 @@ +Imports System.Data + +Module Module1 + + Sub Main() + Dim myDS As New BookDataSet() + myDS.ReadXml("Books.xml") + + Console.WriteLine("Relations Found:") + Dim xRelation As DataRelation + For Each xRelation In myDS.Relations + Console.WriteLine(xRelation.RelationName) + Next + + Console.WriteLine("Apress Books and Reviews") + Console.WriteLine("----------------------") + + Dim Book As BookDataSet.BooksRow + For Each Book In myDS.Books.Rows + Console.WriteLine(Book.Title) + + Dim Review As BookDataSet.BookReviewsRow + For Each Review In Book.GetBookReviewsRows() + Console.WriteLine(" {0}", Review.Rating) + Next + Next + End Sub + +End Module diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/AssemblyInfo.vb b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..ac03b90 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyApplication.myapp b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyApplication.vb b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyResources.resx b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyResources.vb b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MySettings.settings b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MySettings.vb b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/app.config b/Code/Chapter 6/VB.NET/Exercise 6.7/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Books.xml b/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Books.xml new file mode 100644 index 0000000..2015984 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Books.xml @@ -0,0 +1,35 @@ + + + 1 + Pro ADO.NET + APress Ltd + + + 2 + Professional .NET Framework + APress Ltd + + + 1 + 5 + This book was by far one of the best books on .NET ever + written! + + + 1 + 1 + I'm not sure this could be classified as a technical manual. It + is worth more as a paperweight + + + 2 + 4 + Top Notch! Excellent book! I especially liked the chapter on + strongly typed datasets and XSD schemas! + + + 2 + 2 + I liked the introduction. That's it. + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.exe b/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..9ad69af2c05f99835e2f53b37013f38213e0df10 GIT binary patch literal 45056 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 Opy+|32mYIT;Qs*V_s;?V literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.exe.config b/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.pdb b/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.pdb new file mode 100644 index 0000000000000000000000000000000000000000..4bd514ddc6dbdd2218c3aa8a216af4234e0bdcb4 GIT binary patch literal 132608 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 AoB#j- literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.vshost.exe b/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.xml b/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.xml new file mode 100644 index 0000000..b4fee6f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/bin/Exercise 6.7.xml @@ -0,0 +1,11 @@ + + + + +Exercise6.7 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.exe b/Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..9ad69af2c05f99835e2f53b37013f38213e0df10 GIT binary patch literal 45056 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 Opy+|32mYIT;Qs*V_s;?V literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.pdb b/Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.pdb new file mode 100644 index 0000000000000000000000000000000000000000..4bd514ddc6dbdd2218c3aa8a216af4234e0bdcb4 GIT binary patch literal 132608 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 AoB#j- literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.vbproj.GenerateResource.Cache b/Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..53068277210ce0377bb6b5b4144f13f003eae2f7 GIT binary patch literal 786 zcma)3O-sW-5KV1U`=L+|;-Majcn~b1wG_P+!4^Nzf?tRSFWc+{*KV`2lZf#bc=hDf zf8xy_BmM`SDJoKfIDwaBcJ|Gic}~W0oOcR-bIeQ;ocEP)4VobGwqm8FcPem*_1YO& zR3_}Kc@2K*wQj7V*g_|SII=?5YlrbbD}Nu7Q!|9HGibDecCa2ao3h;yE#Y#Tl~i`` z7;p!|9$Z5xA@mg>ODS5w^KGR87X||1K!rn){NGa+{K(iOmsv_DoTM7lWr?%oGXCQh ztDTWQ6lE7r5{zKvb&b~4o|b{$uE5Jk3^a@zDo`NjC(htjVT5^-Hk%oHRAiAn&eKEd`SJDT KJ~PKDj`9Z`Y3e)x literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.xml b/Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.xml new file mode 100644 index 0000000..b4fee6f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise 6.7.xml @@ -0,0 +1,11 @@ + + + + +Exercise6.7 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise_6_7.MyResources.resources b/Code/Chapter 6/VB.NET/Exercise 6.7/obj/Debug/Exercise_6_7.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY3m~sF~6xNX4VDa>Mo9^1SD{-b|^Qh&Yi@2_cCk6Emfaq$PO!5u}Z%17W4* zm4mrpA()-@=R8(s7BO8PNZ>vN^#H;p*n!Z8u+2f8L}N#S+Fs!TR8B$w5???~wwQu7 z9(KT|rzI|-9Y-?FWX#Kh!TVt;$zz(4siVWl;4Np-^%$;{Wx?;y%47YjQFn()kXd4>^H-2T zrLs4fNI(&ZW#zM%21K>m@BHh@;yp?xmq+1@kjSDiiI}3Jcl!3;9lSX?6h*QmKb!of zYH4XhMlUe$W-Y}wM~TEHy4cyhqJ~2wr+}hJ2!v;kqFAopZf>ovFFoF>HxIkIzT9Z8 zNY;gyk?b^gX&P^O^WH*pKbI|Nxpk1coG5%D>{AG}I206lpGNOHLwRp^h2}3JLUkwv z99j{jT?k_hG=@Nx;ec4o2%<>Mq53-GB+igHOJah=ITRMPVfL`veSd%f3p$O>)XPb8 zn->QQsU{EhEu{sW4p4;Hv#BF`!Bkv}d>(M{Cyu!O{MUMoX3b8%3d?*6#5f($MG`h4-Hp%E(|+jdZbSjEsvvzF*a9s+v~Q nd>FUBeePLP9krU8Zt(M8d)8E0t)>*v7JHV;f{F%QDEu1_Rd9RzJb)otLzpB?JiFG0O~L>RB(M`Q$;51&{ct8BCLuGhd2hmO*buUR z)j79cvLWoZ-?!iHrlqc1Ri{p!I(6!tQ|I0*^r zGO|dk-qJ<1(XeRCpS;-aw|1JM3(Ac!Q6D(A;@&uhYXaX%eA&7LE~c^@nAp!(dIn$c z`J;-fiSR2xu9{>PK8v9DYDOlBPV0J1<~~P>DsseoKoUggLGBXtHD{fJS5Yv7+thz#MrcQD^X49L4@*~g`VLzJG z1bMUP*JqMsXbSJtzcUimu+g-rrjpqptDabAYgimW)0(2YtQ^`85K;vRA)LN~83r&%x zi_Cf#Rf|j_!b-J^UI1s+tJgxEl>rz#u@r$MPIfOqNn;~GIa+a-0GYM!B>LiU zH!90Q9&CwtkdL@bBga=%kn-iEUh#huru};h% z@Hs$=`ItT6b6;~h8`pwjotui{PDK>YF~kC4W})8Ykj%nRQ-z>ymoKG|^bfrvjBc!6 zsTKQ}S6{>n&`-fboFO*dE1+!Fx);GP-7A4h=tOMGT?gWP`z#St%FjoPF3ClPA7iEb zf{3vTBE~L=7~9Q9jP2$l#&+`&W4rl?v5O-nirz^lR0OH@U>@P%vYKkl!;Cax&EcyH zowi>g=bkJ=&pg6WClwgs3Vd}PsUR_&K`+PL^|0p%)>2-!F}5~U7({b;95a}IV`|Q2 zQjE%!%Y2YgnQ^mtF|yu^oX}ad#Iqzy!LRtw+Z#c z6Q;PwJj`BkH-np-2k7sNd4N?v$7>I`=x}8A#dcwQm;}|-!0~}eZI^SHMrs0HA1;+< z$W4IhqK}dDy={OIJEVeiJBTuO2cYd<&Bd`mnY$B6EKsqO!Wgi>FdLJgO%*HyjB=_1 z*bSYgI|N*ft3^j)1AlZCi$fveavjUvD{z<@JPn#F5a!Ht_elXpKjL05sL05)VY_QnB38SnF0&j?dUms#!s6lPIfWe!9Grg^v$ z+N{PKxCFsr9$}jOn=d^5SX+WGP2yL5P)8bu*k{>%iv9@ zocViRpC*AFL5+aV{dSJak>Yb-$#FSOINuA>_o3~4wna3Z;4VsHR6EO?%4wCRR5ZGO z0wjqZBU(1ajS$~Ug|P$poUtwu;8hNAGYhgn^7jKpkmd# zx3DoXOJ=!$DmXXm^SK3ut1|+R$ptbdx$(`73F=WJ$}DdTYl(8WpO-HI{{+vCqP#pn zSUd=E#<~8j(l}3$rVG@>iP%l^Y)tzPqeLc_<=zIA`(V3E0oW#`0~G7HU3Bn-U>$sY z4?3EZjz1F}JULhgU*Cg{WlF~#q65wn9en)*bmZpKov00`)UEdl1pA_JE69Wlg!6W&u;bzS#=C&T!tS3lo%lUI1pvM$)JLX%H;UbRSZ20+ zFW0aOcM;iS%0rnRUvnrPo>izhR8%XZ_8#vqpr|68`2^ScOWp=J&J(JUI*ZH0((K_wQ-gb?w}qww&YZ zFp`3TJ&NaDi}2$!_$!28Q^ZF&(nZWa%btcYD&EsDCkywqT4>XIS{d(YOe0)nPg7;G zSIj7@E2+n{Ur&|g>lKz^pDk*SX}_K-%hxL`n^jVeX}_K-%h&VEa&s`Zrv>GHOsn`r z);#t`;ht9SejMQ_w<>sN(_7p-Y;XSFwle2ucgEhfip$jAhT-MCjl-aLZ@UCCk}m&2 zdmG1$zl;5t=hh^wKEe^>bKlHyIbPJ>b`;~vpR?_4qE&BKjO*=+8<@EfN@H4>aV^a4 z&fMGB27hm3TnS6)`gTE2VegH9l3c?vNz$d{{P|L6f*zNy=gBTejg8->E4fvI+@Rg&#@5k83JcPTF2ue zw*+N>wA}|F+4xrgYGU(QfvfQ5X{!|4eGsL*miao`3Upwt(mIfhX&sw<9b9Os>VDn! zg1T6f&R&-bb9F7wtvQ#5?b0{*6KE}ei=gq7Ai2MD_3}iezTk!J$edzd;Km30g1Ma4 zoY5D#!n63It3b!LchbRyB|7F}Ot7v}cY%)WIUVB9mm6L_XK~}dLGQ{lD-Z}F?vElBaqbb zge8IZtDFzT_P<8C9)wJxEjNA|1+sDF;%SH3_!%&9ckvtyff+c009CQ7&dxoo`!JU& zg}m-!9O-?+XJN(9>%m;G*W1=9MiM ztw1dDQ-U<$addhij)4tW%f8BZe>RgE9rjq_)n!DFnc!{jr~8m3aqhEl{q`Qj8GRP? zJ{xp2JVdECVrhjjI4!C7@0>8~*?-jCTi1j(MJG(5akx_D(*{l70Y~}>dLBm%2YiMd%h<8?^OMw(xzB- zs5(ybtLwpU0&dgs>c6Uv(!W--B}-#$!<8|X*%)J)Yk=D{5=+M7bO4+Ps{OMnsjRn0FdqjYgC+qtQhdp!aer73Wt^svBx3mB*G)bd#T6s2*B)iFL% zH(UpA)UlVoU&r3~G4Ln_>si}CJ!{)v{|HB>o)P}cSb{Yx2%d_j^`Odtb1d`2%uDbD z$iS23AgJq5w-T~pp|00d6&VSlKc#yS-xvcjA&KRidJ(&gLOrgjCNd%U9Z#qUtvmOQP4Q((Cx<=q$fju?GdUb{J1d- zWgpVi_l-qtv!=r43Q&(}>U{GGP$z_n&E95S1?nxK{1yTW2%m1#GY3(&NK+p&_rZ&6 zg}RyUGSi@T>avfT`$3Hf6{Am@?EQ}jWzdu6Bx2#XP^yIhJtveEK4IR0huUuym2EkX zTMwYOe~YqL7cyms-?sh(BIPYjg#&*Fs&)~Vbw_3go(9#Vsn)=ApjHcIhp!KOjY70V zQ+Ecw32L9F9tfNSHL0oTz)PU+6sptwYM=%&dsL`y^OeB&Ks~3+{sr~I^pd82C)7_g zwKVtxl)c8O3U!(T!PhV|66Z5@GaU@pfNIK7FM)bYD1+`mS%kihTU|VfJ{mj;>a?c* zMyOwF>W$z}Q5J4w$$DzGf34q9up~le8#o)_V^O#DoIT&*Jw#EzwwEA&d@3GVZq#au zM`bqF7{BZ}dzFFw4G0%S~eQz(&{BFtHv)u8-%jM z9}4vu=g}Tb-6hmPO?^VBdo(p2+J`&3$29ds=xWqE0V;tg_*&@w#zOjurv5vqMe>w^ z%c9};8;fZX@)D-jfI6SnX=*E|3+Osc9Rk%z2Q_sss3r6fO+5+fLOKqLuuhx|4;xGA znH)7@G!Y(b;L~k|%Epc5)Tk&#$RSW0h3Yix%9t7w%93$kPLBztMtV6NZDK7pEh@VS zl1~cNX|6B31=LARCCk!S@qVGHo6GJnTBsHI1xMCBpjOa9O??v7Mf9YmJ_ib^d$Vfc z@v>o~m8ylRr>~a%npVLDTq^6z-9fjm0pm|9 z64VvcqN(daT}c}?^H?0#&jbAt2Ba|AyZdwZm^Z3oKcpCL~3Z=%co5nQ7Mm69F`+ zQ{dggc~J0tsYNHi3D7ITf4ijAp#Qa62SVI#p`FhO=jHbZPvcNw(5rwZ{TR@qUkYbe z8S_=|W0A76zv22eIbBi$+&%{kWq^(GcEC#j+tBMC$aht54@}Xq z%HhE6;y1(OR_+CVB=DxR_@=?VFwBp|vw|W*s5vq`82W5r>VSlANc3ih9SvgI!#@*@!)=wcjo=(6QS9`3G?dOg@C&O z_oFY%A-T79W$;DvYA+2wPMq89HyKW26b=D?toEAV?Wnsa_$+kp1>RM?KX^ZSbOSg~ z*S!ykKxM||OZ9m#w9()va!@)V`8@2Zc{&C<| z-95oKji$Pz!G}#u^H%j&tbt-c-do9cT2udUx| zzhYirf3^L(jM3|2;SxGbx0}t>5!`KePz^0Kd%#JWd&r~fFh`k_0_Op9QaCr$2f@FY z1_5sef80DO{7;GGr|1d#p81S$zCu65-IcEh{{{N3`SZXFWLdkd(^C3F`Umq^;D_{2 z=1YLzGM@tcq4_f4VfuLBb&-5sY9-*Qg=WHFdzKi#HGdOWC!BS{=`g-!em&S>d_M5y zV2_mUkkx3c9LR*u z2v+TK+;hO)w@3moA#jDjHi5e;__*c@yj9?XfC1FAQ7;4-!Ktd8Vu1Cye=!H|PtKz% zIv2GbM&?9xt+@@*GIs$En;!sNXx#_6-u^9MuMJf+Y4IJ9U3LU;k6i_Lyz+mKK;FL!m$dz7M!7>{K`lZi-^J@52z#oTS1N@~x#felfKUTr~x9KNh7 zKoi_DTzA4p)x>vYSYJ85*TP$2x(3ihOjiQG4t}e~o*4zF7XAy<2S8WTZhTF=vl)Y% z>H$r>mstZi8$1K|Yi0qTBk*EeO=`t+3lry-d4Q`h3VhFe0boDg*D;YxE(Y9=_e4x& zgi8Rgrlru6p=H4L0~(aYT~ibDis3l%{g49!57EWoOaS8U30g2QyBHop3kKZ?Xwpsa zmO+!^vs>UN6L+pI2mCPnVbX2X1|QsljG&yJ102WCZPaA0HapEN=9N~rb)FrVL{Joc z?yctxBmY5OB?J8TCq=w6@nB8c#b{(1P-!1 zT+iK`ZQhac#*^vxq?a0`-ifxcv2uet2Vn`iG4LO-TE2!OdKiHYfCi|Ui zk!C6I`rI2j_9aJ$ovs7UXm&$#bSRBxxK5vQAm!Zf4gwx)-Ig3kJB9MaOs-y7>XRjE zOGFARI-h5b*OnTi`Ng&=Fmvu%+d5?yj?CxCANDeLb ztw zI`Ah%v~6O{VTN3{x$5Z)bs%K2&hFhkqh2;SItUC4LrN3WnexV5#9(1DTM9LPg|qm! zcfuc%=AKam?PxL$KLb0M-H}X>JBUeksW8~8oH{iI%^X4GM{Jhki^I{Q9I7KzWcr-6 znl$*69zm{hCbp%rX{XQGOZ|iUoDl?mCY4O54oNX4q(i&CvlM6x`o>4IsS&5Ss3sLr zJ)?VFf+L;e2%cp5y-6{5PtgC!0s7MWyOU~CwzIp8S+P`Bkhhl)W6RiPY?O- zakL#J+G$va2Vgl`|#Eld%Hbx>!05|F9+!CXqF?01KRg}!D7{x!81)|kKzu&qodphCvP(= zN;?N-F6KJIi!=JdOy9Y>hX*}b92N8fNV_=i(=!ZO?|3?k9mUIbI%#JZGo7|2Gl&zl zo@k=i$?n4|H{@N8HSGSM}@Wqcr=^7g^k zS*gi0LJ8~o%#aENbgohXufxUcmkH9tJ3blcpP>T_N3jAh&aQ!_3stc1v(8XXgQm}@z?Yp-zt98`I-3c8A+-$+$&}%pJfk;v z42T+voIi7e$XhT1TMsEyYTL;z`kR~^a{73*S+BmfkEhZ+c_0FAcg7v@IRm-`no%NC zN!KZzjhjay;7`Up!TlD>_e`GPqCOeHoLy)}W~NL#Jui!5t1zx|KF~3x;z?r3SLoYQ zM9&zC(y?WML74=7*vj&R(HI2B(HWpVAoaLQK~?pgY%Ln|-r_na~V5=qG zexAadDYjB29oiABSfi{&86p}q%3Q852MFH`A$mL|vS~b>MoyM3pk&-+6L$DCg9!JR zk~Wnl30vdIeCEW0+@LODQlni%DXdxT8TST{ca^p*UR)Z$NsLMg)ZTaIvj%VYDV(a1 z+o(eaghz*xnIUyJ%`IRc{AAkN+l1r!gObR)8sJWj^*44Q*nk)6%9*XwVD(X5xG;X zN@Y@6Sz}5?hg9l<(jKopHJZ%uF-B#*L!9aJR6_5SX-Jw6z#T}vc`R_q!70Eg$wWCZ zm*a-+N6%)hMyI?;{-x>9ACODu9i#fe1 z&x5m+H}pK}b&z_p`+T3uVT`+gr4Rc3lYsb3_n&&P3u6@Iki`P*qN_70z7L|Ax))r4 z(HnG!c#t5erR0+LB==*B%XZ_$gmFv_i4{dL!fjKxn{hB%lcY!b$FmTlP z{ge5})1a8rvynDqmE^Tf-C9CMpjQsA(Tn5g$oNP{67v!ENI;bGSP%A}lHme}*BO0| z!@@U!9l)8XS-~+Oe>*$q!fC8Fg1c(JuHP@Z5|vPhZlrO9@JDWF3?IAJ2b)rcj0)o5J64q zLRC4p-gT!AIzwvpWoPCZ#)(_*-8JKmkAFKv#|IXW0Vk7_l*pH1qiya+S2xPuQuBBp zjvM(SH5RK5;jr&O)H@W+1koMtT#t5EeQ+Ye?GP-zn=i#43_;?>m z58x@eLpKQjDqs_QTM^F_(!jZVZ-IO#G+{f2W(QY1G`MygPa#I}ge8ghQ~ACLq5#h$ z7DwAyR9B-8kK%|4|T%+yj4`Q1-T%- z6?l^Shx-iRa3A^J?OxqK7yL_MJ^OwcdXPfNUbK>dCq}@LCo(moLb0dDfDOWWn#(@r z{@|t${6B{4CM`wtd@o={0golO<)o>yPk1SKc^EGu7mg<_@oN@x|5ZQ{iQEKI_R zakQU+Vg`u6bgD|g=%`*!3~D?vtpC|(h=>*BMGcm)$- zO@x_MKA@p$JZpy>FV*r$kN-PM2n=~Zga?mCLxUAEOnk#3j9*=B@_ufl4vc6J zmFMFxZxB)7A*d1oBZ^PbpjN#LqAkwOGhT=6LTqa+@EI`q`GM+_~-;Ph7QmVhFF5fOAGk$q|O?>i|5Gr3DpZo@!u^<{j z%h7r9B!0!B*OmNF`4XG_rMkRP&OTRCm^|pkg7T0RpZrm-Vr=qFh(hn>tYs<)A{?J8 zmGwfRS^7A&hP$2;MoT&TGIhE7m7b+| z)}>Jbe|OknYriI{+gxI&6S zLcBS(J)8&{;c(bwFB!3^UFU?#*gg22+RDGapJG$nxsQ^p(QJcie0LPyljTVfZ^f$6 z5N2~*oOh1i|~xjY}wMKhi0bZ;^>s@@rJ zoLmz2`^A)4mlypb_J7y|>i^%&CYmfZMC~GYEq?}|5E6D7B(>B%hM{IdEESXkiJ!-+0R>09c?_c%6U-v?h^zbtAXpoUjKO z7H4Dp;kUT>pJZ}QIf@)It@A(5v(@K#fZvodU{e-SDl?p^=^2sX+*kdyBL9RB@RqNM zy1slTTIbxC^>F5%f)%Qr1Y}zT9J?%j#=EvdLJ~8^rg9Rpa;OPyiD3Pc#3o*n#?B7~)gJFoHe+UI zHZxhd?wUtf1bKphxQzQPww(`=GzXK0zkex@>;1r?al-79f_s z<$&-;b>L}eIe4FS4adL(35jHINdW#`?LjZwkd}`X-_?Ekr_cKRoDC z`Y<%L89mY}wYj}t&~-2aW_kfYb+CX`Y6~ScQzV0{=>-7QiLa2sNO}Q4b&v?l#=%m0 z0YG({>ay>8hxAwq_!lssEP~> z`@?AguhX#%UGBsh)+fHmaP!@P&x*GW^3TIkisPuzEzrk&Y2^g-oErdEHJ!qe*Kf`A zVdR!ofuzY<4^dNnp6wWioJlWWaq8BaUAR&?g9Qa^aW+EP>tbVlH}bd|t4ZBp3uSEJ zCn06h3mB({{4S-&)aIdyyN5)WO`Mzaw`TjZxAot;?KTjIxCPjc*!3(BeFOcs8K3Z7 z(=K_ek;9^L=z9)KPz^Z8rDyknu@Ur7uncSK8M2%i(A+?ZL!IAhZf*tf5AktY6XY^F zf9s|J~S6z;9MB#u9X=+NCDw zel;T!R0B-W(<#Lp zkQnh2?#I{`=q4pK8&Wu@kbRk+ge-v*v5mHh4S)y5CcxujJK!^77%{6UPeA^%@(kcP z<(srmg9%EkeV^K4;_wn`T2k#vOVi0m)$WkgN&2g>KphTcm&7qp6-lKjt{eyTRY?izQEG_G zX-Ne$sPr>Q#gexxk0DnsNoq~q9e>Jpj~9s`VtbrP>qUcCo6M`Rsw zBsP()-Ukk^{1JLoeLy@3%@blo?%uc@HBK+7kI^{&SpA!L8l1SYiPps1lurWhR9>Jv z;(O=^z_)>ag8D@k^KDm#;r-9CmJ^f|)8x@*DoBnA&Y-AC&PjRz{F9Je#_T6(gLqc* zpQG34qZ%WQD0Q;14l7B&ty&&!UUh*};b7_KS&q+Kd@#zq;?R(m;{^^_X55n zJ`4D$@)Y3n$`1j%Vy_~HV)#?A?{PpLtzdjJU>mA2-zqJD8Qg#ZE4Ys4@b?vZhu)*# z(4XmjaZ#u>m|D_IR6wLoy$QYt(6};1Ed^`bmg;4YcU)6d_`sRihRVJcDs8l0_Cy=e zZ>3{mEB%FacjTSooMqfeWv}44mN`Rtv*0?ObHvXcG`%_98qz(pK>6xmrDB-{-8UVZ zb{;p}g6SDk+ox{N=8<^SVW(V~^9>j1KG&Hw3O=wy#>|A_&YK0pqsgPLp%*9gBgWnt z7DH>^EE?|gHYn~lJZH{jwPlvGi;}DQm2L2|xJ)kWnxx^xLrt6@?qPk~ydbHGDz*qlVlvRkIY(#DXLrX;~P^`W47n(b^#bok{J>-VtN$^ zTiqyTPhln+aE;jJtI?KZ$86+=ty?tg06Xp<)U7!KThAet4ECySF4%*Hy^pdWuiJVF zah!4uFJE#gRNRfrU$@MMg5(^Yv-~;N7_*N!QZb}u@Ru9ng+y|%0hj(!BnhYCL~v}w z_Hkwmi*^=Gmu$!L&4NcG#>`v^QNoa-VK17v>MC#mJhNoes9{z17}W%SLvEv!Q^;8m`A%802UWy->=zHi|`A^~~GlI^~cvSn$nxosVabg!L52S9iP4 zTxHm?EEEgWoJFsA&w?3v#{w)|TjZ%sH>XmMDm+IqGnedAG{iU(&On2nXOw5GYH*$- zBGe1&7v4$3N=A93?6}n--E~c5WDpyffcp(gKQ1wE(dm3u3+p24Wt4?pb{_TiT9Rzh z;#Xs$J9=>&>U4w*s*sB#JqxTrKH1=wf%j6D@>Ineo&ik=ukDGY=F_Es!^sBNUPFCO>IJS5&C{1L|Ydr?F4Zi|!xz>@)9gKIV zeCxqK(b_JkHD7JKLGYay@EQv#wFz1UJ>Fq?!_jI%O<>4Ej$2l2*br+H3Z7(wM5Z%6 z$P;yfZjEDX7e0uvZt$>lO%<(Zx}bqDuP{|M%F`@T#CHmg2GM`RpifBdGq+~WC&{#k>LX0;D zsUSoWRQURFIQ+eUMK zuki~)ZK(sndBb+E;IrN+p2In!Q$fZs3-|!wL7Jc`z@4a06Zm4-OZR{t1Kb6i+mF-_ zF7wyY@^)9qKowZ>mdorBJOWmARJvVc;x_~XHf_{MhsCIfJZchB9b6A`9reb>~zmw6ZTc{RS&UO}xVS?M*}2P=y=!L{mtmgeDcmWr^zmr0-WdmMI4 z(&{j5RB&@}1WI%iGm<>cMd`!dkk8R!AENa}_s)Ok%Yckau#O_`EWXi}M`tlE93!Gn n$T5S6pNBP+u{I0dYyWW^hJMtp6#)d6f0wIqfIn*gcM +' This code was generated by a tool. +' Runtime Version:2.0.40607.42 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System + +' +'This source code was auto-generated by xsd, Version=2.0.40607.42. +' + + _ +Partial Public Class BookDataSet + Inherits System.Data.DataSet + + Private tableBooks As BooksDataTable + + Private tableBookReviews As BookReviewsDataTable + + Private relationKeyBookIDRef As System.Data.DataRelation + + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Not (strSchema) Is Nothing) Then + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + If (Not (ds.Tables("Books")) Is Nothing) Then + MyBase.Tables.Add(New BooksDataTable(ds.Tables("Books"))) + End If + If (Not (ds.Tables("BookReviews")) Is Nothing) Then + MyBase.Tables.Add(New BookReviewsDataTable(ds.Tables("BookReviews"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.BeginInit + Me.InitClass + Me.EndInit + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public ReadOnly Property Books() As BooksDataTable + Get + Return Me.tableBooks + End Get + End Property + + _ + Public ReadOnly Property BookReviews() As BookReviewsDataTable + Get + Return Me.tableBookReviews + End Get + End Property + + _ + Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Public Shadows Property EnforceConstraints() As Boolean + Get + Return MyBase.EnforceConstraints + End Get + Set + MyBase.EnforceConstraints = value + End Set + End Property + + Public Overrides Function Clone() As System.Data.DataSet + Dim cln As BookDataSet = CType(MyBase.Clone,BookDataSet) + cln.InitVars + Return cln + End Function + + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader) + Me.Reset + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXml(reader) + If (Not (ds.Tables("Books")) Is Nothing) Then + MyBase.Tables.Add(New BooksDataTable(ds.Tables("Books"))) + End If + If (Not (ds.Tables("BookReviews")) Is Nothing) Then + MyBase.Tables.Add(New BookReviewsDataTable(ds.Tables("BookReviews"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + End Sub + + Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema + Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream + Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing) + End Function + + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + Me.tableBooks = CType(MyBase.Tables("Books"),BooksDataTable) + If (initTable = true) Then + If (Not (Me.tableBooks) Is Nothing) Then + Me.tableBooks.InitVars + End If + End If + Me.tableBookReviews = CType(MyBase.Tables("BookReviews"),BookReviewsDataTable) + If (initTable = true) Then + If (Not (Me.tableBookReviews) Is Nothing) Then + Me.tableBookReviews.InitVars + End If + End If + Me.relationKeyBookIDRef = Me.Relations("KeyBookIDRef") + End Sub + + Private Sub InitClass() + Me.DataSetName = "BookDataSet" + Me.Prefix = "" + Me.Namespace = "urn:apress-proadonet-chapter5-BookDataSet.xsd" + Me.Locale = New System.Globalization.CultureInfo("en-US") + Me.CaseSensitive = false + Me.EnforceConstraints = true + Me.tableBooks = New BooksDataTable + MyBase.Tables.Add(Me.tableBooks) + Me.tableBookReviews = New BookReviewsDataTable + MyBase.Tables.Add(Me.tableBookReviews) + Dim fkc As System.Data.ForeignKeyConstraint + fkc = New System.Data.ForeignKeyConstraint("KeyBookIDRef", New System.Data.DataColumn() {Me.tableBooks.BookIDColumn}, New System.Data.DataColumn() {Me.tableBookReviews.BookIDColumn}) + Me.tableBookReviews.Constraints.Add(fkc) + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None + fkc.DeleteRule = System.Data.Rule.Cascade + fkc.UpdateRule = System.Data.Rule.Cascade + Me.relationKeyBookIDRef = New System.Data.DataRelation("KeyBookIDRef", New System.Data.DataColumn() {Me.tableBooks.BookIDColumn}, New System.Data.DataColumn() {Me.tableBookReviews.BookIDColumn}, false) + Me.Relations.Add(Me.relationKeyBookIDRef) + Me.ExtendedProperties.Add("DSGenerator_DataSetName", "BookDataSet") + Me.ExtendedProperties.Add("User_DataSetName", "BookDataSet") + End Sub + + Private Function ShouldSerializeBooks() As Boolean + Return false + End Function + + Private Function ShouldSerializeBookReviews() As Boolean + Return false + End Function + + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim ds As BookDataSet = New BookDataSet + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + xs.Add(ds.GetSchemaSerializable) + If PublishLegacyWSDL Then + Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any.Namespace = ds.Namespace + sequence.Items.Add(any) + Else + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(0) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + sequence.MaxOccurs = Decimal.MaxValue + Dim attribute As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute.Name = "namespace" + attribute.FixedValue = ds.Namespace + type.Attributes.Add(attribute) + End If + type.Particle = sequence + Return type + End Function + + Protected Shared Function PublishLegacyWSDL() As Boolean + Dim settings As System.Collections.Specialized.NameValueCollection = CType(System.Configuration.ConfigurationSettings.GetConfig("system.data.dataset"),System.Collections.Specialized.NameValueCollection) + If (Not (settings) Is Nothing) Then + Dim values() As String = settings.GetValues("WSDL_VERSION") + If (Not (values) Is Nothing) Then + Dim version As Single = Single.Parse(CType(values(0),String), CType(Nothing,System.IFormatProvider)) + Return (version < 2) + End If + End If + Return true + End Function + + Public Delegate Sub BooksRowChangeEventHandler(ByVal sender As Object, ByVal e As BooksRowChangeEvent) + + Public Delegate Sub BookReviewsRowChangeEventHandler(ByVal sender As Object, ByVal e As BookReviewsRowChangeEvent) + + _ + Partial Public Class BooksDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnBookID As System.Data.DataColumn + + Private columnTitle As System.Data.DataColumn + + Private columnPublisher As System.Data.DataColumn + + Private m_suspendValidation As Boolean = false + + Public Sub New() + MyBase.New + Me.TableName = "Books" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Friend ReadOnly Property BookIDColumn() As System.Data.DataColumn + Get + Return Me.columnBookID + End Get + End Property + + Friend ReadOnly Property TitleColumn() As System.Data.DataColumn + Get + Return Me.columnTitle + End Get + End Property + + Friend ReadOnly Property PublisherColumn() As System.Data.DataColumn + Get + Return Me.columnPublisher + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As BooksRow + Get + Return CType(Me.Rows(index),BooksRow) + End Get + End Property + + Public Property SuspendValidation() As Boolean + Get + Return Me.m_suspendValidation + End Get + Set + Me.m_suspendValidation = value + End Set + End Property + + Public Event BookIDChanging As BookIDChangeEventHandler + + Public Event BookIDChanged As BookIDChangeEventHandler + + Public Event TitleChanging As TitleChangeEventHandler + + Public Event TitleChanged As TitleChangeEventHandler + + Public Event PublisherChanging As PublisherChangeEventHandler + + Public Event PublisherChanged As PublisherChangeEventHandler + + Public Event BooksRowChanged As BooksRowChangeEventHandler + + Public Event BooksRowChanging As BooksRowChangeEventHandler + + Public Event BooksRowDeleted As BooksRowChangeEventHandler + + Public Event BooksRowDeleting As BooksRowChangeEventHandler + + Protected Overrides Sub OnColumnChanging(ByVal e As System.Data.DataColumnChangeEventArgs) + MyBase.OnColumnChanging(e) + If (Me.SuspendValidation = true) Then + Return + End If + If (e.Column.ColumnName Is "BookID") Then + If (Not (Me.BookIDChangingEvent) Is Nothing) Then + RaiseEvent BookIDChanging(Me, New BookIDChangeEventArg(e)) + End If + Else + If (e.Column.ColumnName Is "Title") Then + If (Not (Me.TitleChangingEvent) Is Nothing) Then + RaiseEvent TitleChanging(Me, New TitleChangeEventArg(e)) + End If + Else + If (e.Column.ColumnName Is "Publisher") Then + If (Not (Me.PublisherChangingEvent) Is Nothing) Then + RaiseEvent PublisherChanging(Me, New PublisherChangeEventArg(e)) + End If + End If + End If + End If + End Sub + + Protected Overrides Sub OnColumnChanged(ByVal e As System.Data.DataColumnChangeEventArgs) + MyBase.OnColumnChanged(e) + If (Me.SuspendValidation = true) Then + Return + End If + If (e.Column.ColumnName Is "BookID") Then + If (Not (Me.BookIDChangedEvent) Is Nothing) Then + RaiseEvent BookIDChanged(Me, New BookIDChangeEventArg(e)) + End If + Else + If (e.Column.ColumnName Is "Title") Then + If (Not (Me.TitleChangedEvent) Is Nothing) Then + RaiseEvent TitleChanged(Me, New TitleChangeEventArg(e)) + End If + Else + If (e.Column.ColumnName Is "Publisher") Then + If (Not (Me.PublisherChangedEvent) Is Nothing) Then + RaiseEvent PublisherChanged(Me, New PublisherChangeEventArg(e)) + End If + End If + End If + End If + End Sub + + Public Overloads Sub AddBooksRow(ByVal row As BooksRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddBooksRow(ByVal BookID As Long, ByVal Title As String, ByVal Publisher As String) As BooksRow + Dim rowBooksRow As BooksRow = CType(Me.NewRow,BooksRow) + rowBooksRow.ItemArray = New Object() {BookID, Title, Publisher} + Me.Rows.Add(rowBooksRow) + Return rowBooksRow + End Function + + Public Function FindByBookID(ByVal BookID As Long) As BooksRow + Return CType(Me.Rows.Find(New Object() {BookID}),BooksRow) + End Function + + Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As BooksDataTable = CType(MyBase.Clone,BooksDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New BooksDataTable + End Function + + Friend Sub InitVars() + Me.columnBookID = MyBase.Columns("BookID") + Me.columnTitle = MyBase.Columns("Title") + Me.columnPublisher = MyBase.Columns("Publisher") + End Sub + + Private Sub InitClass() + Me.columnBookID = New System.Data.DataColumn("BookID", GetType(Long), Nothing, System.Data.MappingType.Element) + Me.columnBookID.ExtendedProperties.Add("Generator_ChangedEventName", "BookIDChanged") + Me.columnBookID.ExtendedProperties.Add("Generator_ChangingEventName", "BookIDChanging") + Me.columnBookID.ExtendedProperties.Add("Generator_ColumnPropNameInRow", "BookID") + Me.columnBookID.ExtendedProperties.Add("Generator_ColumnPropNameInTable", "BookIDColumn") + Me.columnBookID.ExtendedProperties.Add("Generator_ColumnVarNameInTable", "columnBookID") + Me.columnBookID.ExtendedProperties.Add("Generator_DelegateName", "BookIDChangeEventHandler") + Me.columnBookID.ExtendedProperties.Add("Generator_EventArgName", "BookIDChangeEventArg") + MyBase.Columns.Add(Me.columnBookID) + Me.columnTitle = New System.Data.DataColumn("Title", GetType(String), Nothing, System.Data.MappingType.Element) + Me.columnTitle.ExtendedProperties.Add("Generator_ChangedEventName", "TitleChanged") + Me.columnTitle.ExtendedProperties.Add("Generator_ChangingEventName", "TitleChanging") + Me.columnTitle.ExtendedProperties.Add("Generator_ColumnPropNameInRow", "Title") + Me.columnTitle.ExtendedProperties.Add("Generator_ColumnPropNameInTable", "TitleColumn") + Me.columnTitle.ExtendedProperties.Add("Generator_ColumnVarNameInTable", "columnTitle") + Me.columnTitle.ExtendedProperties.Add("Generator_DelegateName", "TitleChangeEventHandler") + Me.columnTitle.ExtendedProperties.Add("Generator_EventArgName", "TitleChangeEventArg") + MyBase.Columns.Add(Me.columnTitle) + Me.columnPublisher = New System.Data.DataColumn("Publisher", GetType(String), Nothing, System.Data.MappingType.Element) + Me.columnPublisher.ExtendedProperties.Add("Generator_ChangedEventName", "PublisherChanged") + Me.columnPublisher.ExtendedProperties.Add("Generator_ChangingEventName", "PublisherChanging") + Me.columnPublisher.ExtendedProperties.Add("Generator_ColumnPropNameInRow", "Publisher") + Me.columnPublisher.ExtendedProperties.Add("Generator_ColumnPropNameInTable", "PublisherColumn") + Me.columnPublisher.ExtendedProperties.Add("Generator_ColumnVarNameInTable", "columnPublisher") + Me.columnPublisher.ExtendedProperties.Add("Generator_DelegateName", "PublisherChangeEventHandler") + Me.columnPublisher.ExtendedProperties.Add("Generator_EventArgName", "PublisherChangeEventArg") + MyBase.Columns.Add(Me.columnPublisher) + Me.Constraints.Add(New System.Data.UniqueConstraint("KeyBookID", New System.Data.DataColumn() {Me.columnBookID}, true)) + Me.columnBookID.AllowDBNull = false + Me.columnBookID.Unique = true + Me.ExtendedProperties.Add("Generator_RowClassName", "BooksRow") + Me.ExtendedProperties.Add("Generator_RowEvArgName", "BooksRowChangeEvent") + Me.ExtendedProperties.Add("Generator_RowEvHandlerName", "BooksRowChangeEventHandler") + Me.ExtendedProperties.Add("Generator_SuspendValidationPropName", "SuspendValidation") + Me.ExtendedProperties.Add("Generator_SuspendValidationVarName", "m_suspendValidation") + Me.ExtendedProperties.Add("Generator_TableClassName", "BooksDataTable") + Me.ExtendedProperties.Add("Generator_TablePropName", "Books") + Me.ExtendedProperties.Add("Generator_TableVarName", "tableBooks") + End Sub + + Public Function NewBooksRow() As BooksRow + Return CType(Me.NewRow,BooksRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New BooksRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(BooksRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.BooksRowChangedEvent) Is Nothing) Then + RaiseEvent BooksRowChanged(Me, New BooksRowChangeEvent(CType(e.Row,BooksRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.BooksRowChangingEvent) Is Nothing) Then + RaiseEvent BooksRowChanging(Me, New BooksRowChangeEvent(CType(e.Row,BooksRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.BooksRowDeletedEvent) Is Nothing) Then + RaiseEvent BooksRowDeleted(Me, New BooksRowChangeEvent(CType(e.Row,BooksRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.BooksRowDeletingEvent) Is Nothing) Then + RaiseEvent BooksRowDeleting(Me, New BooksRowChangeEvent(CType(e.Row,BooksRow), e.Action)) + End If + End Sub + + Public Sub RemoveBooksRow(ByVal row As BooksRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As BookDataSet = New BookDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "BooksDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub BookIDChangeEventHandler(ByVal sender As BooksDataTable, ByVal e As BookIDChangeEventArg) + + Public Class BookIDChangeEventArg + Inherits System.EventArgs + + Private evArgs As System.Data.DataColumnChangeEventArgs + + Public Sub New(ByVal args As System.Data.DataColumnChangeEventArgs) + MyBase.New + Me.evArgs = args + End Sub + + Public ReadOnly Property Row() As BooksRow + Get + Return CType(Me.evArgs.Row,BooksRow) + End Get + End Property + + Public ReadOnly Property BookIDColumn() As System.Data.DataColumn + Get + Return Me.evArgs.Column + End Get + End Property + + Public Property ProposedValue() As Long + Get + Return CType(Me.evArgs.ProposedValue,Long) + End Get + Set + Me.evArgs.ProposedValue = CType(value,Long) + End Set + End Property + End Class + + Public Delegate Sub TitleChangeEventHandler(ByVal sender As BooksDataTable, ByVal e As TitleChangeEventArg) + + Public Class TitleChangeEventArg + Inherits System.EventArgs + + Private evArgs As System.Data.DataColumnChangeEventArgs + + Public Sub New(ByVal args As System.Data.DataColumnChangeEventArgs) + MyBase.New + Me.evArgs = args + End Sub + + Public ReadOnly Property Row() As BooksRow + Get + Return CType(Me.evArgs.Row,BooksRow) + End Get + End Property + + Public ReadOnly Property TitleColumn() As System.Data.DataColumn + Get + Return Me.evArgs.Column + End Get + End Property + + Public Property ProposedValue() As String + Get + Return CType(Me.evArgs.ProposedValue,String) + End Get + Set + Me.evArgs.ProposedValue = CType(value,String) + End Set + End Property + End Class + + Public Delegate Sub PublisherChangeEventHandler(ByVal sender As BooksDataTable, ByVal e As PublisherChangeEventArg) + + Public Class PublisherChangeEventArg + Inherits System.EventArgs + + Private evArgs As System.Data.DataColumnChangeEventArgs + + Public Sub New(ByVal args As System.Data.DataColumnChangeEventArgs) + MyBase.New + Me.evArgs = args + End Sub + + Public ReadOnly Property Row() As BooksRow + Get + Return CType(Me.evArgs.Row,BooksRow) + End Get + End Property + + Public ReadOnly Property PublisherColumn() As System.Data.DataColumn + Get + Return Me.evArgs.Column + End Get + End Property + + Public Property ProposedValue() As String + Get + Return CType(Me.evArgs.ProposedValue,String) + End Get + Set + Me.evArgs.ProposedValue = CType(value,String) + End Set + End Property + End Class + End Class + + _ + Partial Public Class BookReviewsDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnBookID As System.Data.DataColumn + + Private columnRating As System.Data.DataColumn + + Private columnReview As System.Data.DataColumn + + Private m_suspendValidation As Boolean = false + + Public Sub New() + MyBase.New + Me.TableName = "BookReviews" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Friend ReadOnly Property BookIDColumn() As System.Data.DataColumn + Get + Return Me.columnBookID + End Get + End Property + + Friend ReadOnly Property RatingColumn() As System.Data.DataColumn + Get + Return Me.columnRating + End Get + End Property + + Friend ReadOnly Property ReviewColumn() As System.Data.DataColumn + Get + Return Me.columnReview + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As BookReviewsRow + Get + Return CType(Me.Rows(index),BookReviewsRow) + End Get + End Property + + Public Property SuspendValidation() As Boolean + Get + Return Me.m_suspendValidation + End Get + Set + Me.m_suspendValidation = value + End Set + End Property + + Public Event BookIDChanging As BookIDChangeEventHandler + + Public Event BookIDChanged As BookIDChangeEventHandler + + Public Event RatingChanging As RatingChangeEventHandler + + Public Event RatingChanged As RatingChangeEventHandler + + Public Event ReviewChanging As ReviewChangeEventHandler + + Public Event ReviewChanged As ReviewChangeEventHandler + + Public Event BookReviewsRowChanged As BookReviewsRowChangeEventHandler + + Public Event BookReviewsRowChanging As BookReviewsRowChangeEventHandler + + Public Event BookReviewsRowDeleted As BookReviewsRowChangeEventHandler + + Public Event BookReviewsRowDeleting As BookReviewsRowChangeEventHandler + + Protected Overrides Sub OnColumnChanging(ByVal e As System.Data.DataColumnChangeEventArgs) + MyBase.OnColumnChanging(e) + If (Me.SuspendValidation = true) Then + Return + End If + If (e.Column.ColumnName Is "BookID") Then + If (Not (Me.BookIDChangingEvent) Is Nothing) Then + RaiseEvent BookIDChanging(Me, New BookIDChangeEventArg(e)) + End If + Else + If (e.Column.ColumnName Is "Rating") Then + If (Not (Me.RatingChangingEvent) Is Nothing) Then + RaiseEvent RatingChanging(Me, New RatingChangeEventArg(e)) + End If + Else + If (e.Column.ColumnName Is "Review") Then + If (Not (Me.ReviewChangingEvent) Is Nothing) Then + RaiseEvent ReviewChanging(Me, New ReviewChangeEventArg(e)) + End If + End If + End If + End If + End Sub + + Protected Overrides Sub OnColumnChanged(ByVal e As System.Data.DataColumnChangeEventArgs) + MyBase.OnColumnChanged(e) + If (Me.SuspendValidation = true) Then + Return + End If + If (e.Column.ColumnName Is "BookID") Then + If (Not (Me.BookIDChangedEvent) Is Nothing) Then + RaiseEvent BookIDChanged(Me, New BookIDChangeEventArg(e)) + End If + Else + If (e.Column.ColumnName Is "Rating") Then + If (Not (Me.RatingChangedEvent) Is Nothing) Then + RaiseEvent RatingChanged(Me, New RatingChangeEventArg(e)) + End If + Else + If (e.Column.ColumnName Is "Review") Then + If (Not (Me.ReviewChangedEvent) Is Nothing) Then + RaiseEvent ReviewChanged(Me, New ReviewChangeEventArg(e)) + End If + End If + End If + End If + End Sub + + Public Overloads Sub AddBookReviewsRow(ByVal row As BookReviewsRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddBookReviewsRow(ByVal parentBooksRowByKeyBookIDRef As BooksRow, ByVal Rating As Long, ByVal Review As String) As BookReviewsRow + Dim rowBookReviewsRow As BookReviewsRow = CType(Me.NewRow,BookReviewsRow) + rowBookReviewsRow.ItemArray = New Object() {parentBooksRowByKeyBookIDRef(0), Rating, Review} + Me.Rows.Add(rowBookReviewsRow) + Return rowBookReviewsRow + End Function + + Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As BookReviewsDataTable = CType(MyBase.Clone,BookReviewsDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New BookReviewsDataTable + End Function + + Friend Sub InitVars() + Me.columnBookID = MyBase.Columns("BookID") + Me.columnRating = MyBase.Columns("Rating") + Me.columnReview = MyBase.Columns("Review") + End Sub + + Private Sub InitClass() + Me.columnBookID = New System.Data.DataColumn("BookID", GetType(Long), Nothing, System.Data.MappingType.Element) + Me.columnBookID.ExtendedProperties.Add("Generator_ChangedEventName", "BookIDChanged") + Me.columnBookID.ExtendedProperties.Add("Generator_ChangingEventName", "BookIDChanging") + Me.columnBookID.ExtendedProperties.Add("Generator_ColumnPropNameInRow", "BookID") + Me.columnBookID.ExtendedProperties.Add("Generator_ColumnPropNameInTable", "BookIDColumn") + Me.columnBookID.ExtendedProperties.Add("Generator_ColumnVarNameInTable", "columnBookID") + Me.columnBookID.ExtendedProperties.Add("Generator_DelegateName", "BookIDChangeEventHandler") + Me.columnBookID.ExtendedProperties.Add("Generator_EventArgName", "BookIDChangeEventArg") + MyBase.Columns.Add(Me.columnBookID) + Me.columnRating = New System.Data.DataColumn("Rating", GetType(Long), Nothing, System.Data.MappingType.Element) + Me.columnRating.ExtendedProperties.Add("Generator_ChangedEventName", "RatingChanged") + Me.columnRating.ExtendedProperties.Add("Generator_ChangingEventName", "RatingChanging") + Me.columnRating.ExtendedProperties.Add("Generator_ColumnPropNameInRow", "Rating") + Me.columnRating.ExtendedProperties.Add("Generator_ColumnPropNameInTable", "RatingColumn") + Me.columnRating.ExtendedProperties.Add("Generator_ColumnVarNameInTable", "columnRating") + Me.columnRating.ExtendedProperties.Add("Generator_DelegateName", "RatingChangeEventHandler") + Me.columnRating.ExtendedProperties.Add("Generator_EventArgName", "RatingChangeEventArg") + MyBase.Columns.Add(Me.columnRating) + Me.columnReview = New System.Data.DataColumn("Review", GetType(String), Nothing, System.Data.MappingType.Element) + Me.columnReview.ExtendedProperties.Add("Generator_ChangedEventName", "ReviewChanged") + Me.columnReview.ExtendedProperties.Add("Generator_ChangingEventName", "ReviewChanging") + Me.columnReview.ExtendedProperties.Add("Generator_ColumnPropNameInRow", "Review") + Me.columnReview.ExtendedProperties.Add("Generator_ColumnPropNameInTable", "ReviewColumn") + Me.columnReview.ExtendedProperties.Add("Generator_ColumnVarNameInTable", "columnReview") + Me.columnReview.ExtendedProperties.Add("Generator_DelegateName", "ReviewChangeEventHandler") + Me.columnReview.ExtendedProperties.Add("Generator_EventArgName", "ReviewChangeEventArg") + MyBase.Columns.Add(Me.columnReview) + Me.ExtendedProperties.Add("Generator_RowClassName", "BookReviewsRow") + Me.ExtendedProperties.Add("Generator_RowEvArgName", "BookReviewsRowChangeEvent") + Me.ExtendedProperties.Add("Generator_RowEvHandlerName", "BookReviewsRowChangeEventHandler") + Me.ExtendedProperties.Add("Generator_SuspendValidationPropName", "SuspendValidation") + Me.ExtendedProperties.Add("Generator_SuspendValidationVarName", "m_suspendValidation") + Me.ExtendedProperties.Add("Generator_TableClassName", "BookReviewsDataTable") + Me.ExtendedProperties.Add("Generator_TablePropName", "BookReviews") + Me.ExtendedProperties.Add("Generator_TableVarName", "tableBookReviews") + End Sub + + Public Function NewBookReviewsRow() As BookReviewsRow + Return CType(Me.NewRow,BookReviewsRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New BookReviewsRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(BookReviewsRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.BookReviewsRowChangedEvent) Is Nothing) Then + RaiseEvent BookReviewsRowChanged(Me, New BookReviewsRowChangeEvent(CType(e.Row,BookReviewsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.BookReviewsRowChangingEvent) Is Nothing) Then + RaiseEvent BookReviewsRowChanging(Me, New BookReviewsRowChangeEvent(CType(e.Row,BookReviewsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.BookReviewsRowDeletedEvent) Is Nothing) Then + RaiseEvent BookReviewsRowDeleted(Me, New BookReviewsRowChangeEvent(CType(e.Row,BookReviewsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.BookReviewsRowDeletingEvent) Is Nothing) Then + RaiseEvent BookReviewsRowDeleting(Me, New BookReviewsRowChangeEvent(CType(e.Row,BookReviewsRow), e.Action)) + End If + End Sub + + Public Sub RemoveBookReviewsRow(ByVal row As BookReviewsRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As BookDataSet = New BookDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "BookReviewsDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub BookIDChangeEventHandler(ByVal sender As BookReviewsDataTable, ByVal e As BookIDChangeEventArg) + + Public Class BookIDChangeEventArg + Inherits System.EventArgs + + Private evArgs As System.Data.DataColumnChangeEventArgs + + Public Sub New(ByVal args As System.Data.DataColumnChangeEventArgs) + MyBase.New + Me.evArgs = args + End Sub + + Public ReadOnly Property Row() As BookReviewsRow + Get + Return CType(Me.evArgs.Row,BookReviewsRow) + End Get + End Property + + Public ReadOnly Property BookIDColumn() As System.Data.DataColumn + Get + Return Me.evArgs.Column + End Get + End Property + + Public Property ProposedValue() As Long + Get + Return CType(Me.evArgs.ProposedValue,Long) + End Get + Set + Me.evArgs.ProposedValue = CType(value,Long) + End Set + End Property + End Class + + Public Delegate Sub RatingChangeEventHandler(ByVal sender As BookReviewsDataTable, ByVal e As RatingChangeEventArg) + + Public Class RatingChangeEventArg + Inherits System.EventArgs + + Private evArgs As System.Data.DataColumnChangeEventArgs + + Public Sub New(ByVal args As System.Data.DataColumnChangeEventArgs) + MyBase.New + Me.evArgs = args + End Sub + + Public ReadOnly Property Row() As BookReviewsRow + Get + Return CType(Me.evArgs.Row,BookReviewsRow) + End Get + End Property + + Public ReadOnly Property RatingColumn() As System.Data.DataColumn + Get + Return Me.evArgs.Column + End Get + End Property + + Public Property ProposedValue() As Long + Get + Return CType(Me.evArgs.ProposedValue,Long) + End Get + Set + Me.evArgs.ProposedValue = CType(value,Long) + End Set + End Property + End Class + + Public Delegate Sub ReviewChangeEventHandler(ByVal sender As BookReviewsDataTable, ByVal e As ReviewChangeEventArg) + + Public Class ReviewChangeEventArg + Inherits System.EventArgs + + Private evArgs As System.Data.DataColumnChangeEventArgs + + Public Sub New(ByVal args As System.Data.DataColumnChangeEventArgs) + MyBase.New + Me.evArgs = args + End Sub + + Public ReadOnly Property Row() As BookReviewsRow + Get + Return CType(Me.evArgs.Row,BookReviewsRow) + End Get + End Property + + Public ReadOnly Property ReviewColumn() As System.Data.DataColumn + Get + Return Me.evArgs.Column + End Get + End Property + + Public Property ProposedValue() As String + Get + Return CType(Me.evArgs.ProposedValue,String) + End Get + Set + Me.evArgs.ProposedValue = CType(value,String) + End Set + End Property + End Class + End Class + + Public Class BooksRow + Inherits System.Data.DataRow + + Private tableBooks As BooksDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableBooks = CType(Me.Table,BooksDataTable) + End Sub + + Public Property BookID() As Long + Get + Return CType(Me(Me.tableBooks.BookIDColumn),Long) + End Get + Set + Me(Me.tableBooks.BookIDColumn) = value + End Set + End Property + + Public Property Title() As String + Get + Try + Return CType(Me(Me.tableBooks.TitleColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("StrongTyping_CannotAccessDBNull", e) + End Try + End Get + Set + Me(Me.tableBooks.TitleColumn) = value + End Set + End Property + + Public Property Publisher() As String + Get + Try + Return CType(Me(Me.tableBooks.PublisherColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("StrongTyping_CannotAccessDBNull", e) + End Try + End Get + Set + Me(Me.tableBooks.PublisherColumn) = value + End Set + End Property + + Public Function IsTitleNull() As Boolean + Return Me.IsNull(Me.tableBooks.TitleColumn) + End Function + + Public Sub SetTitleNull() + Me(Me.tableBooks.TitleColumn) = System.Convert.DBNull + End Sub + + Public Function IsPublisherNull() As Boolean + Return Me.IsNull(Me.tableBooks.PublisherColumn) + End Function + + Public Sub SetPublisherNull() + Me(Me.tableBooks.PublisherColumn) = System.Convert.DBNull + End Sub + + Public Function GetBookReviewsRows() As BookReviewsRow() + Return CType(Me.GetChildRows(Me.Table.ChildRelations("KeyBookIDRef")),BookReviewsRow()) + End Function + End Class + + Public Class BookReviewsRow + Inherits System.Data.DataRow + + Private tableBookReviews As BookReviewsDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableBookReviews = CType(Me.Table,BookReviewsDataTable) + End Sub + + Public Property BookID() As Long + Get + Try + Return CType(Me(Me.tableBookReviews.BookIDColumn),Long) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("StrongTyping_CannotAccessDBNull", e) + End Try + End Get + Set + Me(Me.tableBookReviews.BookIDColumn) = value + End Set + End Property + + Public Property Rating() As Long + Get + Try + Return CType(Me(Me.tableBookReviews.RatingColumn),Long) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("StrongTyping_CannotAccessDBNull", e) + End Try + End Get + Set + Me(Me.tableBookReviews.RatingColumn) = value + End Set + End Property + + Public Property Review() As String + Get + Try + Return CType(Me(Me.tableBookReviews.ReviewColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("StrongTyping_CannotAccessDBNull", e) + End Try + End Get + Set + Me(Me.tableBookReviews.ReviewColumn) = value + End Set + End Property + + Public Property BooksRow() As BooksRow + Get + Return CType(Me.GetParentRow(Me.Table.ParentRelations("KeyBookIDRef")),BooksRow) + End Get + Set + Me.SetParentRow(value, Me.Table.ParentRelations("KeyBookIDRef")) + End Set + End Property + + Public Function IsBookIDNull() As Boolean + Return Me.IsNull(Me.tableBookReviews.BookIDColumn) + End Function + + Public Sub SetBookIDNull() + Me(Me.tableBookReviews.BookIDColumn) = System.Convert.DBNull + End Sub + + Public Function IsRatingNull() As Boolean + Return Me.IsNull(Me.tableBookReviews.RatingColumn) + End Function + + Public Sub SetRatingNull() + Me(Me.tableBookReviews.RatingColumn) = System.Convert.DBNull + End Sub + + Public Function IsReviewNull() As Boolean + Return Me.IsNull(Me.tableBookReviews.ReviewColumn) + End Function + + Public Sub SetReviewNull() + Me(Me.tableBookReviews.ReviewColumn) = System.Convert.DBNull + End Sub + End Class + + Public Class BooksRowChangeEvent + Inherits System.EventArgs + + Private eventRow As BooksRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As BooksRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As BooksRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class BookReviewsRowChangeEvent + Inherits System.EventArgs + + Private eventRow As BookReviewsRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As BookReviewsRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As BookReviewsRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.8/BookDataSet.xsd b/Code/Chapter 6/VB.NET/Exercise 6.8/BookDataSet.xsd new file mode 100644 index 0000000..e9c875f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.8/BookDataSet.xsd @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.8/BuildDS.cmd b/Code/Chapter 6/VB.NET/Exercise 6.8/BuildDS.cmd new file mode 100644 index 0000000..54b78a9 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.8/BuildDS.cmd @@ -0,0 +1 @@ +"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\xsd" /d /l:VB BookDataSet.xsd \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.Designer.vb b/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.Designer.vb new file mode 100644 index 0000000..e3a0534 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.Designer.vb @@ -0,0 +1,826 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System + + + _ +Partial Public Class BookDataSet + Inherits System.Data.DataSet + + Private tableBooks As BooksDataTable + + Private tableBookReviews As BookReviewsDataTable + + Private relationReviews As System.Data.DataRelation + + Private _schemaSerializationMode As System.Data.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema + + _ + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + _ + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Me.DetermineSchemaSerializationMode(info, context) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + If (Not (ds.Tables("Books")) Is Nothing) Then + MyBase.Tables.Add(New BooksDataTable(ds.Tables("Books"))) + End If + If (Not (ds.Tables("BookReviews")) Is Nothing) Then + MyBase.Tables.Add(New BookReviewsDataTable(ds.Tables("BookReviews"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public ReadOnly Property Books() As BooksDataTable + Get + Return Me.tableBooks + End Get + End Property + + _ + Public ReadOnly Property BookReviews() As BookReviewsDataTable + Get + Return Me.tableBookReviews + End Get + End Property + + Public Overrides Property SchemaSerializationMode() As System.Data.SchemaSerializationMode + Get + Return Me._schemaSerializationMode + End Get + Set + Me._schemaSerializationMode = value + End Set + End Property + + _ + Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Public Shadows Property EnforceConstraints() As Boolean + Get + Return MyBase.EnforceConstraints + End Get + Set + MyBase.EnforceConstraints = value + End Set + End Property + + Protected Overrides Sub InitializeDerivedDataSet() + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Public Overrides Function Clone() As System.Data.DataSet + Dim cln As BookDataSet = CType(MyBase.Clone,BookDataSet) + cln.InitVars + Return cln + End Function + + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader) + If (Me.DetermineSchemaSerializationMode(reader) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Me.Reset + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXml(reader) + If (Not (ds.Tables("Books")) Is Nothing) Then + MyBase.Tables.Add(New BooksDataTable(ds.Tables("Books"))) + End If + If (Not (ds.Tables("BookReviews")) Is Nothing) Then + MyBase.Tables.Add(New BookReviewsDataTable(ds.Tables("BookReviews"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXml(reader) + Me.InitVars + End If + End Sub + + Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema + Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream + Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing) + End Function + + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + Me.tableBooks = CType(MyBase.Tables("Books"),BooksDataTable) + If (initTable = true) Then + If (Not (Me.tableBooks) Is Nothing) Then + Me.tableBooks.InitVars + End If + End If + Me.tableBookReviews = CType(MyBase.Tables("BookReviews"),BookReviewsDataTable) + If (initTable = true) Then + If (Not (Me.tableBookReviews) Is Nothing) Then + Me.tableBookReviews.InitVars + End If + End If + Me.relationReviews = Me.Relations("Reviews") + End Sub + + Private Sub InitClass() + Me.DataSetName = "BookDataSet" + Me.Prefix = "" + Me.Namespace = "urn:apress-proadonet-chapter5-BookDataSet.xsd" + Me.EnforceConstraints = true + Me.tableBooks = New BooksDataTable + MyBase.Tables.Add(Me.tableBooks) + Me.tableBookReviews = New BookReviewsDataTable + MyBase.Tables.Add(Me.tableBookReviews) + Dim fkc As System.Data.ForeignKeyConstraint + fkc = New System.Data.ForeignKeyConstraint("Reviews", New System.Data.DataColumn() {Me.tableBooks.BookIDColumn}, New System.Data.DataColumn() {Me.tableBookReviews.BookIDColumn}) + Me.tableBookReviews.Constraints.Add(fkc) + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None + fkc.DeleteRule = System.Data.Rule.Cascade + fkc.UpdateRule = System.Data.Rule.Cascade + Me.relationReviews = New System.Data.DataRelation("Reviews", New System.Data.DataColumn() {Me.tableBooks.BookIDColumn}, New System.Data.DataColumn() {Me.tableBookReviews.BookIDColumn}, false) + Me.relationReviews.ExtendedProperties.Add("typedChildren", "Reviews") + Me.relationReviews.ExtendedProperties.Add("typedParent", "Book") + Me.Relations.Add(Me.relationReviews) + End Sub + + Private Function ShouldSerializeBooks() As Boolean + Return false + End Function + + Private Function ShouldSerializeBookReviews() As Boolean + Return false + End Function + + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim ds As BookDataSet = New BookDataSet + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + xs.Add(ds.GetSchemaSerializable) + Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any.Namespace = ds.Namespace + sequence.Items.Add(any) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub BookChangeEventHandler(ByVal sender As Object, ByVal e As BookChangeEvent) + + Public Delegate Sub BookReviewChangeEventHandler(ByVal sender As Object, ByVal e As BookReviewChangeEvent) + + _ + Partial Public Class BooksDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnBookID As System.Data.DataColumn + + Private columnTitle As System.Data.DataColumn + + Private columnPublisher As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Books" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property BookIDColumn() As System.Data.DataColumn + Get + Return Me.columnBookID + End Get + End Property + + Public ReadOnly Property TitleColumn() As System.Data.DataColumn + Get + Return Me.columnTitle + End Get + End Property + + Public ReadOnly Property PublisherColumn() As System.Data.DataColumn + Get + Return Me.columnPublisher + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As Book + Get + Return CType(Me.Rows(index),Book) + End Get + End Property + + Public Event BookChanged As BookChangeEventHandler + + Public Event BookChanging As BookChangeEventHandler + + Public Event BookDeleted As BookChangeEventHandler + + Public Event BookDeleting As BookChangeEventHandler + + Public Overloads Sub AddBook(ByVal row As Book) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddBook(ByVal BookID As Long, ByVal Title As String, ByVal Publisher As String) As Book + Dim rowBook As Book = CType(Me.NewRow,Book) + rowBook.ItemArray = New Object() {BookID, Title, Publisher} + Me.Rows.Add(rowBook) + Return rowBook + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As BooksDataTable = CType(MyBase.Clone,BooksDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New BooksDataTable + End Function + + Friend Sub InitVars() + Me.columnBookID = MyBase.Columns("BookID") + Me.columnTitle = MyBase.Columns("Title") + Me.columnPublisher = MyBase.Columns("Publisher") + End Sub + + Private Sub InitClass() + Me.columnBookID = New System.Data.DataColumn("BookID", GetType(Long), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnBookID) + Me.columnTitle = New System.Data.DataColumn("Title", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnTitle) + Me.columnPublisher = New System.Data.DataColumn("Publisher", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnPublisher) + Me.Constraints.Add(New System.Data.UniqueConstraint("KeyBookID", New System.Data.DataColumn() {Me.columnBookID}, false)) + Me.columnBookID.AllowDBNull = false + Me.columnBookID.Unique = true + Me.columnTitle.AllowDBNull = false + Me.columnPublisher.AllowDBNull = false + Me.ExtendedProperties.Add("typedName", "Book") + Me.ExtendedProperties.Add("typedPlural", "Books") + End Sub + + Public Function NewBook() As Book + Return CType(Me.NewRow,Book) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New Book(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(Book) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.BookChangedEvent) Is Nothing) Then + RaiseEvent BookChanged(Me, New BookChangeEvent(CType(e.Row,Book), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.BookChangingEvent) Is Nothing) Then + RaiseEvent BookChanging(Me, New BookChangeEvent(CType(e.Row,Book), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.BookDeletedEvent) Is Nothing) Then + RaiseEvent BookDeleted(Me, New BookChangeEvent(CType(e.Row,Book), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.BookDeletingEvent) Is Nothing) Then + RaiseEvent BookDeleting(Me, New BookChangeEvent(CType(e.Row,Book), e.Action)) + End If + End Sub + + Public Sub RemoveBook(ByVal row As Book) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As BookDataSet = New BookDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "BooksDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + _ + Partial Public Class BookReviewsDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnBookID As System.Data.DataColumn + + Private columnRating As System.Data.DataColumn + + Private columnReview As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "BookReviews" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property BookIDColumn() As System.Data.DataColumn + Get + Return Me.columnBookID + End Get + End Property + + Public ReadOnly Property RatingColumn() As System.Data.DataColumn + Get + Return Me.columnRating + End Get + End Property + + Public ReadOnly Property ReviewColumn() As System.Data.DataColumn + Get + Return Me.columnReview + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As BookReview + Get + Return CType(Me.Rows(index),BookReview) + End Get + End Property + + Public Event BookReviewChanged As BookReviewChangeEventHandler + + Public Event BookReviewChanging As BookReviewChangeEventHandler + + Public Event BookReviewDeleted As BookReviewChangeEventHandler + + Public Event BookReviewDeleting As BookReviewChangeEventHandler + + Public Overloads Sub AddBookReview(ByVal row As BookReview) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddBookReview(ByVal parentBookByReviews As Book, ByVal Rating As Long, ByVal Review As String) As BookReview + Dim rowBookReview As BookReview = CType(Me.NewRow,BookReview) + rowBookReview.ItemArray = New Object() {parentBookByReviews(0), Rating, Review} + Me.Rows.Add(rowBookReview) + Return rowBookReview + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As BookReviewsDataTable = CType(MyBase.Clone,BookReviewsDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New BookReviewsDataTable + End Function + + Friend Sub InitVars() + Me.columnBookID = MyBase.Columns("BookID") + Me.columnRating = MyBase.Columns("Rating") + Me.columnReview = MyBase.Columns("Review") + End Sub + + Private Sub InitClass() + Me.columnBookID = New System.Data.DataColumn("BookID", GetType(Long), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnBookID) + Me.columnRating = New System.Data.DataColumn("Rating", GetType(Long), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnRating) + Me.columnReview = New System.Data.DataColumn("Review", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnReview) + Me.ExtendedProperties.Add("typedName", "BookReview") + Me.ExtendedProperties.Add("typedPlural", "BookReviews") + End Sub + + Public Function NewBookReview() As BookReview + Return CType(Me.NewRow,BookReview) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New BookReview(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(BookReview) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.BookReviewChangedEvent) Is Nothing) Then + RaiseEvent BookReviewChanged(Me, New BookReviewChangeEvent(CType(e.Row,BookReview), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.BookReviewChangingEvent) Is Nothing) Then + RaiseEvent BookReviewChanging(Me, New BookReviewChangeEvent(CType(e.Row,BookReview), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.BookReviewDeletedEvent) Is Nothing) Then + RaiseEvent BookReviewDeleted(Me, New BookReviewChangeEvent(CType(e.Row,BookReview), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.BookReviewDeletingEvent) Is Nothing) Then + RaiseEvent BookReviewDeleting(Me, New BookReviewChangeEvent(CType(e.Row,BookReview), e.Action)) + End If + End Sub + + Public Sub RemoveBookReview(ByVal row As BookReview) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As BookDataSet = New BookDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "BookReviewsDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + Partial Public Class Book + Inherits System.Data.DataRow + + Private tableBooks As BooksDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableBooks = CType(Me.Table,BooksDataTable) + End Sub + + Public Property BookID() As Long + Get + Return CType(Me(Me.tableBooks.BookIDColumn),Long) + End Get + Set + Me(Me.tableBooks.BookIDColumn) = value + End Set + End Property + + Public Property Title() As String + Get + Return CType(Me(Me.tableBooks.TitleColumn),String) + End Get + Set + Me(Me.tableBooks.TitleColumn) = value + End Set + End Property + + Public Property Publisher() As String + Get + Return CType(Me(Me.tableBooks.PublisherColumn),String) + End Get + Set + Me(Me.tableBooks.PublisherColumn) = value + End Set + End Property + + Public Function Reviews() As BookReview() + Return CType(MyBase.GetChildRows(Me.Table.ChildRelations("Reviews")),BookReview()) + End Function + End Class + + Partial Public Class BookReview + Inherits System.Data.DataRow + + Private tableBookReviews As BookReviewsDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableBookReviews = CType(Me.Table,BookReviewsDataTable) + End Sub + + Public Property BookID() As Long + Get + Try + Return CType(Me(Me.tableBookReviews.BookIDColumn),Long) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'BookID' in table 'BookReviews' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableBookReviews.BookIDColumn) = value + End Set + End Property + + Public Property Rating() As Long + Get + Try + Return CType(Me(Me.tableBookReviews.RatingColumn),Long) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'Rating' in table 'BookReviews' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableBookReviews.RatingColumn) = value + End Set + End Property + + Public Property Review() As String + Get + Try + Return CType(Me(Me.tableBookReviews.ReviewColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'Review' in table 'BookReviews' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableBookReviews.ReviewColumn) = value + End Set + End Property + + Public Property Book() As Book + Get + Return CType(Me.GetParentRow(Me.Table.ParentRelations("Reviews")),Book) + End Get + Set + Me.SetParentRow(value, Me.Table.ParentRelations("Reviews")) + End Set + End Property + + Public Function IsBookIDNull() As Boolean + Return Me.IsNull(Me.tableBookReviews.BookIDColumn) + End Function + + Public Sub SetBookIDNull() + Me(Me.tableBookReviews.BookIDColumn) = System.Convert.DBNull + End Sub + + Public Function IsRatingNull() As Boolean + Return Me.IsNull(Me.tableBookReviews.RatingColumn) + End Function + + Public Sub SetRatingNull() + Me(Me.tableBookReviews.RatingColumn) = System.Convert.DBNull + End Sub + + Public Function IsReviewNull() As Boolean + Return Me.IsNull(Me.tableBookReviews.ReviewColumn) + End Function + + Public Sub SetReviewNull() + Me(Me.tableBookReviews.ReviewColumn) = System.Convert.DBNull + End Sub + End Class + + Public Class BookChangeEvent + Inherits System.EventArgs + + Private eventRow As Book + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As Book, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As Book + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class BookReviewChangeEvent + Inherits System.EventArgs + + Private eventRow As BookReview + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As BookReview, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As BookReview + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xsc b/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xsc new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xsd b/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xsd new file mode 100644 index 0000000..197087b --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xsd @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xss b/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xss new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xsx b/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xsx new file mode 100644 index 0000000..29b0cef --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/BookDataSet.xsx @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/Exercise 6.9.vbproj b/Code/Chapter 6/VB.NET/Exercise 6.9/Exercise 6.9.vbproj new file mode 100644 index 0000000..5c4761c --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/Exercise 6.9.vbproj @@ -0,0 +1,133 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {A188ABEB-04E2-4BE9-B5BD-082AD42FE029} + WinExe + Exercise_6_9.My.MyApplication + Exercise_6_9 + Exercise 6.9 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 6.9.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 6.9.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + + + True + True + BookDataSet.xsd + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + BookDataSet.xsd + + + BookDataSet.xsd + + + BookDataSet.xsd + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + MSDataSetGenerator + BookDataSet.Designer.vb + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/Exercise 6.9.vbproj.user b/Code/Chapter 6/VB.NET/Exercise 6.9/Exercise 6.9.vbproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/Exercise 6.9.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/Form1.Designer.vb b/Code/Chapter 6/VB.NET/Exercise 6.9/Form1.Designer.vb new file mode 100644 index 0000000..6104b32 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/Form1.Designer.vb @@ -0,0 +1,83 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Me.dgBooks = New System.Windows.Forms.DataGridView + Me.btnSumScores = New System.Windows.Forms.Button + CType(Me.dgBooks, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'dgBooks + ' + Me.dgBooks.BackgroundColor = System.Drawing.Color.Lavender + Me.dgBooks.BorderStyle = System.Windows.Forms.BorderStyle.None + DataGridViewCellStyle1.BackColor = System.Drawing.Color.MidnightBlue + DataGridViewCellStyle1.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle1.ForeColor = System.Drawing.Color.Lavender + Me.dgBooks.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle1 + DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle2.BackColor = System.Drawing.Color.GhostWhite + DataGridViewCellStyle2.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle2.ForeColor = System.Drawing.Color.MidnightBlue + DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.dgBooks.DefaultCellStyle = DataGridViewCellStyle2 + Me.dgBooks.Font = New System.Drawing.Font("Tahoma", 8.0!) + Me.dgBooks.GridColor = System.Drawing.Color.RoyalBlue + Me.dgBooks.Location = New System.Drawing.Point(13, 4) + Me.dgBooks.Name = "dgBooks" + Me.dgBooks.RowHeadersDefaultCellStyle = DataGridViewCellStyle1 + Me.dgBooks.Size = New System.Drawing.Size(467, 283) + Me.dgBooks.TabIndex = 0 + ' + 'btnSumScores + ' + Me.btnSumScores.Location = New System.Drawing.Point(405, 295) + Me.btnSumScores.Name = "btnSumScores" + Me.btnSumScores.TabIndex = 1 + Me.btnSumScores.Text = "Sum Scores" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(492, 329) + Me.Controls.Add(Me.btnSumScores) + Me.Controls.Add(Me.dgBooks) + Me.Name = "Form1" + Me.Text = "Annotated Typed Dataset Binding Example" + CType(Me.dgBooks, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents dgBooks As System.Windows.Forms.DataGridView + Friend WithEvents btnSumScores As System.Windows.Forms.Button + +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/Form1.resx b/Code/Chapter 6/VB.NET/Exercise 6.9/Form1.resx new file mode 100644 index 0000000..a3e3729 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/Form1.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Assembly + + + Assembly + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/Form1.vb b/Code/Chapter 6/VB.NET/Exercise 6.9/Form1.vb new file mode 100644 index 0000000..8c5ecbd --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/Form1.vb @@ -0,0 +1,22 @@ + +Public Class Form1 + Private books As BookDataSet + Private Sub btnSumScores_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSumScores.Click + Dim sum As Integer = 0 + Dim Book As BookDataSet.Book + For Each Book In books.Books + Dim Review As BookDataSet.BookReview + For Each Review In Book.Reviews() + sum += CType(Review.Rating, Integer) + Next + Next + + MessageBox.Show(Me, "Score Total: " + sum.ToString()) + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + books = New BookDataSet() + books.ReadXml("Books.xml") + dgBooks.DataSource = books.Books + End Sub +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/AssemblyInfo.vb b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..3d74f98 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyApplication.myapp b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyApplication.myapp new file mode 100644 index 0000000..a47ee0e --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_6_9.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyApplication.vb b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyApplication.vb new file mode 100644 index 0000000..3c1f9d2 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyApplication.vb @@ -0,0 +1,30 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + Inherits Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase + + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyEvents.vb b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyResources.resx b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyResources.vb b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyResources.vb new file mode 100644 index 0000000..8e09d67 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_6_9.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MySettings.settings b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MySettings.vb b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/app.config b/Code/Chapter 6/VB.NET/Exercise 6.9/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/bin/Books.xml b/Code/Chapter 6/VB.NET/Exercise 6.9/bin/Books.xml new file mode 100644 index 0000000..7631016 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/bin/Books.xml @@ -0,0 +1,35 @@ + + + 1 + Pro ADO.NET + APress Ltd + + + 2 + Professional .NET Framework + APress Ltd + + + 1 + 5 + This book was by far one of the best books on .NET ever + written! + + + 1 + 1 + I'm not sure this could be classified as a technical manual. It + is worth more as a paperweight + + + 2 + 4 + Top Notch! Excellent book! I especially liked the chapter on + Strongly-Typed DataSets and XSD schemas! + + + 2 + 2 + I liked the introduction. That's it. + + diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/bin/Exercise 6.9.exe b/Code/Chapter 6/VB.NET/Exercise 6.9/bin/Exercise 6.9.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce7dbb0ef992d6eff9a58350ae878bd364fd0aa8 GIT binary patch literal 49152 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

    Fj!!@m&z{Q(w7*NBO6-> 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/bin/Exercise 6.9.pdb b/Code/Chapter 6/VB.NET/Exercise 6.9/bin/Exercise 6.9.pdb new file mode 100644 index 0000000000000000000000000000000000000000..cf9eb21c991ac3f03cf995da565b8890aa5b1b08 GIT binary patch literal 155136 zcmeI54V+a~x&Qa@GJ-nF2q-G*fS`ad&dA%~>%a^M3W|V8H42BB15BQIapnwyVNHce zg@vYFEGjH3EWJ@-*UAb@yV$jx8r_S9g0F)c2n(-8L=QJmRv`o_=)t<##{-+owx6 zToP=*@^iiJIp$LzczfxxpO$`SOc1=%Z`OB~e4)AeCk^kL{f+(8cD}dmi+8&&Lon>Q zcRcm8&tCIn*``ZAdiU<)-@P?+^NpA4!}a_pJTUC>#8v&OPrU7{d5>PT{IoY-PP{c^ ze7K(f{ryhe_+szs@2~#;cly>{xa$75W^TUmQhm6d|Mt3mzrJtxH9su=HDi3Zp8u-@?)&l7FKqkH(4&5F)9BMWJKmbP`Nm82;d=hJ{p-hnwcwa(_f5O@ z(~mw|{><<rPHTeelHzZ_V6%uOpWl65sJ60PZETiK+#h11Hfn7*KH`l@7GePesFY*P7@I?2^0(uw)W zba`#Ey>WSSvaNjO(jZ8lUzf1fmpbdq8k-X-tT(MLTPo}IvR)rrU%9lrIhn3YMy*S( z0qgBpZ-`hwEKw(wbK6?pnXFIOO>J*aHZ4u9p4GgpMX^6Dktdz4&VIt#Z*=w#cl_t9 zo|kNI>1eA@wihD$O{;-P#{A)rJ?Kd{HZLzwfCx<%DGu>&GR=kDokl!j#EX zTv(bCpbnN=l5k5mgd61J&_&2VZlOH3Z}12Hm3^&_he}M6l(duu%&M$>;6Nj_aBb5 zCylK6{RldTrr=h$)$hm1ovO7!=hmR}3%3?5wivq3d&1Ah_D1Lo^iGJ}kAMDy=D?}H zt|;2WlU#CE+4q0?++#)V*}m@B_DAwKNP6!cZPf&rQT&wc&0o7DwTRyWl7J$=q!lxN z1x7FXr!Q^#rDSzavf@!$fzr#~_O59kldQlhS@}g}1#U0<$3M0IRk8xRWaSr?RblY5 z>#rXBX~_z}l9gXnR^axse=BX=Bw2x8vhs_{sxW!kgQtAyR>`W6NmhPQSrsHNdv)^k zk4jc~Dp~nOWmN#Z?4pGa_LZy(rex(8mE~5Cj%Wnu2V+VlG>EjyjkL`CWmr%=Ziw6e zu{@bxd}%U0tGPX$Xs$QGoEY>jm5l-DO3%xl9*ihG)AtJ(Pg*>se9mhAyY7`LhY_Vw zZv}QJoukp2zq&o0Yzl%C!{6mKEvXb;Hmd&iAUK8lbNrs>@`a7<9f{PmM0;aB_Rqra z%)Fl1FlkC-;ZSlblWpyU)w3KO;N;Zih6RmH}eUf^XYbM7V6Dh@Sc=zeJ zG}W>+ks=j6gsCoVTa#%k4;uTz*Ysb3@CG z?d9rZn0${s)7r+w^5&NIbYnd}!iv+WZA;vUp|1D=Ti~b6;P`JrV7T%s3fJNIt4#e* z=-($;IBi7Dr6bad8CRr6%&%a(d$FN%S0;A#m6ae+J?9;Z+r{&InJBMMx3me5y-SBs z26iGZS?_-+OvmLwg|j>^2Zym7cnrS`4wpc-PA&@T^NZ!m>hf2r3}C>(Ey? zi{bs?OW-BJY3QF8lwkJ&_jF%vzMS?Il|j{z+BZ}2!DDxLb3kpkuj{tDygw-t#6MBj zZ5rg-|43aYz59`utoM($&vCsL*K3EfeHSEsy>^~!o7cFu`51XRw-LO4-Q!jL)p;#9 z%1iC@Ht@O%9m#u{7_)l$FWOO#+v3C3C$+dMGkwwj4Evn4lRz>T%d^$^;i6c+8!Ue} zish-cGcGK5g5#O!NZ!lDSdOu*@oyouvjj$HN7C<_=8XvlMc!OL!FJ&LK|lp8waqfcq<$^hJwLbh_)x#3hjXQ zKnJ0JbQkUa-Rt^)6C;uSG!?p_D&EMb zZ}(bvGK48R>ch}Maq-KsLs)*S<=45^A1j3*pl=hp&r|M7Pj&sArRnDR9ZmD=TiE2X zxQ2}d*PAl;0_ANTy3+HqahZ$D+~F>Bew@W(d|2kRt4?4&5xlD}-YeqQ-qB>%zEoCv zhxc7MXiF{|F}uR}tDN-7^>3UYZ&QwFQi8s@{)x7>#A+jAWVCiroGp{Jex|l*6boQ$ zDJK-YV1g@CN|Va_QK2sLAjy@~Aer*1a_Z;yCTKAN7afayfuO(Q%c$9!w0L$)qQR8S z4TM*Lj^w>eTsGsfdAQ4_Z%h0IFX?ony@$MGAjAUMVtT7cPUNpe6c&1M0>$>tvm(BxHLKoZp>g@Dt#} z-~-{K;rJ2OWrShZ?@EGU{5~EU9){T`>`NAfeNySZVg~;KD|I%^)8UHC8SoN#8T@28 z;dPFL4~JL6&xBXO&xX%}kAg3RW3zK9oH1GFD)>2Y&7X{g-wr2_IzIs~hg0TRWehqW zhEq*-?to*vb0?horE?E_JbWLVJnj55oI0R$0CAoK9|oTcp8_W?otMFv{qRfRpM_V$zYd=Y-wvM!e+oVW{sR0`cyTZDoI8iWNn7U__+{`(@XO)T;IrXZ zz~{gh!mot)WoJf7@IFI&7X67u|6ne3DpUhq3eAD8fM!8@W-Fk}A>EVT+o9{AcR&|G z)1ZqTX|7B*E`-XU8BjSi5*iDJE`ck|(U4?Mfg~&2XM|XIf_$`noFdcT>Blvg3${aY zv?T_A!noQU;ZN-gxad5|UGx008Fcd8j6csKIGXEfcTIkpGC+PB|EuB0;xCNI-YszU zmUVs#F1+_;CsYY>v}I+a;U%O^*QGpl@e+Pn{}RV94%4&%JGO1G z{xYWioywTTd$QAtoj-9;ZK2|(ajNTo)48e$RX=2iG2&zP_H})~tqT5QvLnn{i(8^eDD%OEf>( zW)`o^n+9`uwO4v(eh`cg!j5csy%^^)&I^fiKXzz};JiDS=3;&i69aOtn__;C0P}M_ z=6RiXad*a$7UqY7_ubf$4X+ntKE`|@G4FBg``KFu8R%x!-6O&A+dPid&t8yNno71C z%)t$&o z*89hJjqzGYylNd$xV$0Kx2R7wn|Belmcn9xI8Jm>?b6S9lt~UbmJLI94wrf#+^omU zU(wQ$YVh;bNk86H9laa8Z`ULVnqEG}e2n=*V&2bHGi4ECyBmmxSoeLBhqUPo7sdKm zF2B_c)}!N4;e7{K-=6HH}pf3t_U zc)Q2^ykw$bQB%rS@S0APl<@vASbqY2>3aDX?=jvBiFfVK5>z`vyyxGabr5Xs0Glr$ z`?SNd?+>jEb(zPeq3~lxX*On=qH<|6owICdN`}hCPQu-ZqIA7{ zTrT2rQOI)P`#m>Cu-y$r!~Q?-kA!_BCc={m7WjQx@avxID-HCs<{8gb7l%#krW|OV zW?`aD8?j8EAJDHu$IMGQnHc*q_6v#qT+FVUU@?2AW#%vM(G(xu4Q4lh*R|+K-pj<8 zjWJtD%&H$FV6G19;I91`-`BaRTbar(_4TI72JXQ;Q#sq;z`OX#Es$T;?igr;`4w=oi#^L^B)lK@be@X#?F{3(41N}zJ;mm19?kKy)X;e$ zoc(L&tRD6NnR8fJ2I#z&`>Y{z_KD6a8c2vbXQh+h_UxjPAkA-`RWsZ8`!kICkSX^3 zgre}=1?-3C2{8xTsq)X5s8e&TiX+E+nK%xIGY;w`Tyq~8bKZ~66QVEJIRj4n*f}3g zUDCM(&U@^g%is)mI(awVocF`CGUxq#6fXN8htoamRQ~DQpMQpv?#>@N{~y6=Ry%(W zzZkBymrLNBn`ZR;!K=9*4W9}h1D^(;45ymvtcBOYuYym9^W773ZqW7cOSxVJp9y~- zd=~t}@XO%q;g`cd4WAAF3|!|1ZGm3_{|5X@_z&RJg`GM(<|=q!X8d#>P3DcXdrUO!|ULyjZ7&qEeV!F=eujk4uq=R^+I<&7Csyr<#+}Bd}ul}1bZd? zTWak0=d`8_9%h>JafDZ4%f73h|IF=$q=h7Lx{k%dB6xpJ1G48-WzPOSzn8_lurAjd z5;o+(nz6Ci*;o?VIGea-Y}j{B^T(sX*`UA~OoAsDk8`tZ*mwByf9nS9nRu*#tL!y~ zHY&1g*mtV($D`TVXo0J2w1zfxZdWEP_8pe|HdtRY@mT3>+!)%>xlb7z_C108Hr6;B zH#-~e4sDFfvSIgN7uhuv;v0P~^odP8I*o1+yf?I=bE#}R7NBGIz~(IoTj3|d*TMTz@_n78ddk;BvTgS(7KQs9`*Lq4B=;e7g}o2MOW^C_gW$KphrmAq z?@O&vLW#HbWxF&yOWy7aD+OUhl z75-_im%={-uZM4j-vpN(uo2wDH8R0x;m8D^gWnIo7yeE7=i#bjzX1O!{EP5C@GbB^ z!0&_q75*i7K%Bn}FM?yEvp@U+_y9Qdb*C23zXIw~RfN=~KeE9^}4V2P!gaLR?ZJnE%rc z+{4bsci=<0{w`c`)bkt${~p)n?wWQu*v|Du@JHYm!@m!|1pWi~+u@JG>)_H~41bL4 zl)I)53wZXO%#{ZJ3SR@?0T*r_hkp$IBY0n0-2SvFI$O;?Q+uXcDZLcme)Tu!uX%ra zmSHI;24?&xX61oh4=4)P5~6wV1Ys&4e+(~y|2te|;V1Bs@F(GVUQfZR;7`LZgZ~tM zHGC(0Is8B1o8kWn=h+9l;5?Jy894bA{2WgDf?vRe<=yZR@Mqzdz<&u>f8kf~zJaiy z_Ua@^WnAa>odfB-KGkn(hrR_>LaL9>bF>4lGyK#K8yDumg@kM8eDl{W&k-g;2fsF9 z^Bs7@Z9N*rqn$^~Z{s)4#&4aC|2ACb5@zbBC4^z;C^GeXwCp_ZZ2S(cwp}7Wdy_5q}Mqh#}oR{H);D3S- zgCBsO4gWKI0{k!Vsc`BjgMnAzS91L~cwbtf5_%yeoYPnmEF*5C;n%?R?8+du*@Ji{ zrQvt(6bCuVaxkqiAp2F->VpiXEbv<-R!IshF@oiPEL z4W*&=&}Qf%Xg72K8rl~bXc5#3-3i?fJqqoH4nW89U`9YX8)^xpv(xT{9)@;7`=LQc zndrxV-rzX^BxuX*_kV>qxdE1$zh7dWW;zAX;I+Ko8~~{~cIjeQmJE>`_J1d^FN5bpk((#7S}~#nNS4igBpj9>F?05 z4d>X@*FA;n)8LE|JI{ivzcm^@lZLTkHz6UG(gW&Zsk5}~tw98~xt=ZSDdAhCWNZ!lDn2j-8NX+_v z!H>hXpY+RdXY?H^VskiM%{WM2B0=$-? zBY7_qV>ZTYAu;Rg?WZDju-$ZR=Yto4$)R9U_4XY(_4d;do$l)GUFgVZP13uMPzJu} z%Ydo3Gi6{DVeQ0E@?It`192HBWEseQ3^Y^1*_F<1%KTm>>>h0a!zZV_J zdzl!sF=h*iSzmAeG*Sm^+CpH>#dDoD>EKw42;Bzo{G7+LpYy<1c)lMjFG5H1UM9wK zjORk)*<;qf-&MuJnw+bO&F|a6tQPakoX4zoJ4<&(M=E9HdY3K%vlGxWI!-ReZH(JO z;&!+hv6;P%^jxjWfo51Adu;F5#!;MO=Jy?7`$UiJ`N?z?+^Ul=1lKR1ARR9kV>`xn zA+eoXCqKca1-WRQ{4sDl!Q*yTyPbiH)X4_`><;v#f|BXSc!|)$sY&X@AlYMogA^C zI=KN{4?<5mUM|LVjO{{V+tKh{K@peO^_wIX?Vif_%U2*_;+W^r{O1DD-BP=m4>I_N&{y+zwR{H zJplRB@Kfw44LjjV!_Pvy*=ewAviZ~SjI;4`xYF;V|JDe%#qfju-_83@keLlMYz@h_rvwxW(g-t z=p9LwGo{7OgA|4BL)6C0&c>hM+P8ne*f`4wHeQ1(9z3+X`C;3;{PF08j_}bNu6Xn@HZt)z zz&+I~l95xHUC%oLo1urGozM$VKZMGl3!w#2E3^)}7kU`l1?`9WQMr{tRnS~01+9fP zLk~eap%ZbnD) zUM9wMjO#+;+V6e7KZ0uq$u4+KYmpo0nEAaNJbyll=UM4wlac9Nx&A=feLrLW#(@yc>cD>^VEh0?H!H2!?g-9k3vs6UM|LTjOjvR z+K&r8Zs)RpS#FMH=I;&Q_D4P7wgSw~Mo&6kF2-$)+d|^j&w2cFq%O{>Qp5AF6?HU>F1K1kMn7Qn%@7m>-k+JRtE%l|nYom;u#5=fVF8k7CdU|t5Q?e})o-4M1 z@-YfM>3F%gjKpQ+NR*MUhS=s?9of(f`z?N*X25WZXxDu)7wusCY>(}lR7*1xDVhtc z0MExFFIn#&V>-rkAu+A9XavfyMKE2TYG%)y{f5!kBljItLyY@A&I{T!g^O-sVVb14 zI>b2NTTdrvHMge|`h1bFJ_wxeLr*$hF2;I{^+ICZ_i?sGF`W&~5ZiuUaP!#)+Ci;l z=5GhszRY8LR&!%|VWN#X-QapZnBIhrloLC#I^5Fd(18vW5N26W#;cnF#C}x zW+UH4zZbmDMMv^pCdO=x*&~5j--oCeXTcgB1KtQ`XE1qZ#(-BOvj&>#Lo5QbW6_h2 zmy2;5BY7_qV>`xnA+deB!}h;KupNPAh-u#^**no9`En0v_)TEC)nod~W*}X&BGJ4& z*?^zw>=(fF9`vN+CZ zQj+mwNRRzJRTlJ7?7s`_f4eL8b^N-){yuQO8$IcGxfuH~_KyVizm<*cF4+HewttV< z-|b#(jADNc*e_Lp ze%WJ}fvzTB8Wtp$rjqmPS0tMfk`jJ5g54G9OV`WC_>J*fNc{SD8McS@GxLDWt1E>` zzxU*kY(F!@s5u<%FZ_PgFP&~{T-uRNqAh=&hx3Dc{#ej{mp=GE8u4#n@m}+ueYyWw zTKKNlou044}M^YPGaEkj;@PCc?r#0z`)7pVv+usrTxp8_!vc9n?ku?r~ z8M#%EJu{`qoS(v_IjhE>f%VfOcYYIGc6H{G_Ky9G>yhyPfRBa$Cwx477hK=ic?RB} zU1lYGJ6Gpll?0<9UE6#9oS=iq+A}bU%y}4G1_Pn}`hoiecBnFf-SBAm&vLDA1^*I$ z5nS=AhX0Cd?P=ZvzXJXooONmA&s=fvYpy>4|1bEh@V)TQJO3^4-*C;kOYmDb^V7k9 z!+FlZKKPUH=i&VWo%`g|bq>F0nKYL29c25R;5qJEX&wkob=T**>yhxufzN{l*tKUS z6oqFk^yS`6NbdK9sXTZAuDwi3>#6WRaLpE{;EyIw8?kwo38#cJ#=Pwd@we}^7lrRt z3cD4M+)K{(%g*+n;P%X{v$2;sm&(33oZrS@osCzVjlXqc!@irD-^SmajaQwG*SfJ` z--FA1i#nQ?KJF~1zHs%Eis3db%I{2C?7K(#&x1PJ**FG17#qiiHmb60*mpgOOn*%I z7>&nC&c+Zp+aZFJ;r)YJ^iK<)%M$L}efLG-zI~N>VL|RxXJaV5gzMAbnld;YE?k@e zpA9dA_YXeGq}*lLuY>g5h7nHYEHArvIe(rFM_<@F6RtcPVeBo$#^}(7;$-)V7EyYw zi{kSvXX9+R;yMaG2tFD<1U?4dKd2#&*I?I||4jVs-n^o4Z(lSo$D*tFjWaelAIk76 zu`@O+es&*JQJ_6ha?$uzI2)Dllkhta&a!7P9$o{V0Pjz&t}^M#m!A#z+x;p#cwiPXMa_}&xKEcYpi-c{95=0aMeE-!aoeZ2!0RzVmNCB!6oqiK^ft% zfhr>W-R^oSyp}X)&R4Vh5%NFRsn}Dzror`GYmEI#*f=-LH`NVx%{PCUobGJQfUDlQ z)Yy0zHqObiVb|93mxWo*#$|Aoh0Bc%rRD6T^DhoP;&DXsx{2mzQpTe~B$N9rtfDPr})y5Y21doP! z4c7{D5nN%u&B$F#7$cx*fj#rFwM&?G-Y$Qb@4$w_tTVQP;97Vz%E2^S`=H#XI# zmW9u!4got(C^BOP#LStWbESxDayFXb>KC-Yh4WUp;(r5t1iTGC2Hp;z1W&_Ne|Er| z;Va=Q;WxrnrdPo~1YZsRIQ%B~7Wlj1Tj6Wq%m)NF!ykpe8?JuAd*Hu>cfwzQzZb6l z)%)PD!ru=+nz*lp4}sqT9}fQjd=&gvcz?baUdrjCrNKL)3FOB(xSnq{G!`m{7CU zc0hZegU}$rQ31__8lW}MMrbSa1hg0G!$ThmRqNr$?hTy-eTcn(r{&RJHYvQW5;|@b z-$$p+V0KQTu^AuDEl6)Wo|5(crw1cS&z!z0*;e1!o?JX>@s#p8tNA~-t>vA``g9PS zfPd6mfgDOFI$v=j`tw(}^KyGRXOX0^+1S#|7*FHbIgRygExAK`?4PAL<@Lmdd2u0) zg+s}$Ot!TXR?l*^ybCe4xnV(LQ?f^UGa8wwG0EuJ-i*d(UaM$Kq!hp5-KXQyRLjyt zid6KF)>+NVTH2cUq_z^#qge*L(7fr z(8w#1EQO(GXRU@P$RWgf#i6HjiuW#%t^+v2?p z-VBB#XP9!fbD%RMCF}hUg~!}DD1bxh#2Ah-{CY6#*DDsOlYkp&nfXh7TYS>caGkow zyxyYvSS1Mw)yeC@vd%D;o|iooHe);|+8gW3<2tzjb+Y>6Ya!b|$egd;E8uiP%{Wut%PYAa;I6d^YA)9&z^{Uz4xb0_Z{`pNFiO9LI$rahgF>$U zw;#W&A+_~C{FKgKv_T*G`u=Xu;`o`w0L%bA;a zy9;j=VUOl|c^Ia~WwtC9nR2NxqjN3TH(}B|nRHRav6(b>6mN|glzz@`H?C0~FP!Fh z7Lh?IXf3o6+6p}h{a>8S`L=V93q$$r9ceHAE(tbm=kyyo)Y0($zum}7*89hGP2B%$ zYzHFKOr3f}`hR}CiMl3)t%GUUH}rcSpKyIchRva)Oc(#e__T#JQgj*mfL%#YN|3SraZk;Bjte0~Rm#C$TJEZ2B%*FVMWb z^t^10_ZaU-8t?wy)4xRUo(Hnbaoe+r{u;`4|GgByKk|OpN`#FCSZ7RKJdlRKj9F_N z+gn>$j))cxWYo8Rh_bN-Md^C^xO~Lr<4Bhe;T{MEuVmvsy?A-DIoZ}&AAOI{&(*Xt zNhPOwD({#>Djwl+A6e(viuDxolJ)*E&SRV(X`K5pDswgFdzW_Juqf>4N9RRp1I)ZA zWx~w={taHjTx)5dIo6ZIZ)Vy#nf!aH{@2+!2xm)0@ONY55^QL{M#hF6@8;h(^P00k zV`BEr6q!AeGqIsP9vK^UJdr;hz0pxy)CaD3^ffjvz=rk>S{tjlZ~JJOd2$Wm&EhY- zpR>^)uJMcZVX0fl{uZ;}?-;oD2_6gAp12aY=EskN9~&$ttg$4a7jxNX@_R7#ic4eVULUz#-5CXg1UUt%2@@?uYapl6}yz)N>=CDpQ-H7rR5|Ky?0p ztDFC4SP{BU(55_2+hO`rkv2to`u?Y6y?=C_J6>0e*A)-vUJn7%w;z7~XHA~@{7-_{ zJsz*ilj+5r_YdAdpHTf%y(2P${$%DI3|n{S?`xlnuKFq! zaP_q-;r4wby_b;br`j@;-^N5|W0JEmIka(>v2g&qinr+#!5MM~b1CHw&>HAYNb^!V zpnr6yew?36+pf+!?jp;~-!D=J{Uurl%}chobhOnc=OmgF%XOlmZChpMVf3Zz<;Q5x zYIMV|_5*wUb}qu-hu%XO*(Vy&VtkX?Cpzm&!j9{}xDGsAb)e?Rx`i)T^YeDUh}4H3 zoW6KSM#HMzp-k5~ZMEmM$UH>((fhT%-F|zmg{qEuHq_<4jbu|Rx5D~X{RqFmWso+r z;Z*N=w}tXM-q{P(AFk<0r90Y^@>jTz66OH(q~qn{a$CMIGB*~#C(z}^it<^_|G@7F z9ID*pYP@ZO@Cmk;rm#Mf+y^-I& zIaHbQI3G^Y=gm)VV}yx^A1|zN0|t#3_E7WmIf3^mp( zDf;*Sl;_@YK0@(RzOE~;uh)m#)Nhd9b~-ka_5SgiV!Wmp={Fsb{olUc@$L0iO*G&% zpWq#3vbYZu3#Ry)K5$D@E5{18As{U4J;3|Xla7~*u^eOhNMqUW3w$oxFU>$T9P{~o zfty{YG>Ua@6%UMJeQIlKseYWD^QM_N>9@gvkf^lt@ki3_PaUSFRNaNhkH~d!w=MJV}o$fKd!tM2rVw|aj z;>sw--RTMHyQ~A>I;TbQUM9wPjPd_p7~dPgxIg5>*Wsp;zb3hK zezI+4V|}t6Xq$d|3Y;%MS9)GH#(IqPBaL<6PybB>>ruFRyuS=i7eID?#GX08W!75w zyXm56iur?ZmRW;4;o7%JIqDn*AIcudQ-bq&r(qma&fL~0_~dZ^s~xZA-@CdR8yfT8 z1Xr{2F1VdHyEtop%#H!_+qlKq_<*xn0ZWFW(dJ@_P z^&1!jWl$9~7g_;zLYtvCn$tXyG`K-R3=3+n$J%DMBp6K!pY)q2~;uI;OA?8}zP`p$&b_L)ivp6^zs z(uBnvdhok$WzI8wn`&fs5vg~ai+A*;iW4rppoe$m_7b<9=u6kj$7MV&<43xT`#m?bxFy@uUjd?SLA_5Lx=W1JspocsFQug&UQUpWVQ|GRjd z$8h9quFZgV74nkx{xODQ3?FF>`*}~sTOn+_JDY2TCUtPk1BH&ER`J~)-y8yydp4K8 zVbXw}bi7=Q^BCtx8s~mK=*0-mqj2?gxu4^o4Y1`L)73fIb%fuLuF@B^m z?(6cGA{dWAHJn#@8Jw;N=R1qSIn$xs*LPIpwz~P|ufjENqJ6F-;a}tWJa;__{&lWr zyX(2|ZCo#dKL~Gxe*^wb_`kr@@Q2_X@NdFD4F48H5%ZJTgFBeNC-eQO!F)w#a8L~m;reW+vnnE+!fz;k7dyY9*zS5p z#Z2OA=bnnfIV{c5X-}}+4&p`hg2&-n@Awh?H2A-n_+F1qoqdtLuh)+8^PgAo6KC&9 zct7ksW$a|mt5Du4Y&*s(!nSpqTdZ)uf97ob2Ydkc{uAE86VE-z#P(nFzmK@f+29>w zvsT3Wm)Q6sHnPt#v3-O5YahFv4W7Trn_t39cq2169=7hyACF%-8++hdvw9BR!QN|s zj!EwNNfj~=(XrVL9e{?=08~J=P#u(p)+|bf{gr~NK5v5C@1>p$ zj_q0dy6@M2^}7u0`@SrfZ#ow(|Ni`+QzNPDr2PMkhAm(D*ZDt^_5Sg@*YUg8hwI(z zeCJ2`vhL?mbOwrC6tC|Eulqe-^{&UXmX_;h)tWU{o&TdVgCy@|V$8;vEhJ|BoC#wR zKRgH=B*U?!$MXa=IJi?RGk@O)o{u@f)xUbzID%(=yQ~5o$$Oa?&oQ10iRaupxQ{06 zaM3#W{a|*a$E@n$1&!%c((d7{62{SyyqAeF8)LSRnDuoq^Fd)9>>$~t4t}UaXg1&c zvOoB{7CcvbJgW|l;JF`I-iD5*EWAvN=NQk0#Ivu1{X5SaG_i<_*1@-c*{eNfRR_=Q zSej~VU!j-dwBGVCm|c&abi7=Q+ZeZn#I0Xj`L{?t9D!w67kgaKWX@PFIvxB0aNX*0 zt-3g3K)BYK(6#7E$IHdIj&WT`T>JXikK=~$zJ%OJ%gkTin<>7<<91$hWn=Qjc6kW1 zv%%{ibR_R(V$8;vEhJ`rpZJMLUF>1$@%%D)oC(?a-J-C6p*dr}=K9fIcFlDITx&tM z!!;jqhq=Cl_o_~XE->@!vL`(|_m;62T`#@M+55P&^G|U5&e}BWWZv_#^BqOuTuIc% zMrY%0_{oI#iO|O6EE{(GnLi$%b~Zi(S9&&wHtf4%J}tJ-Ulg`c(RkeBY!c-a0|{&;-R+1LVCJnjo^T$*LWwsraA@g-;D%W%bmdHYVAr`hk{*}A7Fthb_R z`HHi_8bRj>Yo z+*6jBzt!ON(|Pc!wI8h)N!I(vc#ZK|NWA)Y)flt7dB?72Kj&iFuK}GI!Sqxx-Evgd zI(Qv;*7}cRy?>197}JHsw8yJIGhmQg|8dNqb{crS!{arx24B;X>S$_4LStU70}Vh) zdR{ihZj9YRV%OKl%*BN3Kz2Djgl0Gg>G8eatp`Q%T?4*96~(t%56ajOzK5Xj0=m-k zvN676d>0bmetvyj1m96;`nubn2eH$w8%42Q3%0jJu^rB@XXE<-*w%L!rR(Kme8>1M zB))z9{lN&nbK&VR?&sp~b!$it>Yz0Uri1aXM=@U0($So@{gPb>>KrG@dzl#5F|G@V zYd;tNp$M)WB*XrQ$Ft^0<)YK0Gr;o?qIjOgSAvX8@6s(`xfNl_dzl!|F`kbEo4KDgF{FUJO8IR|w4Grp}OGf?bRRDPeI+FJ?F`i>Q7ZT68eTu4~LL+Cf zS!Vvu1+)9Q!R%P@IsqNYdzl!sF=h*iS>LDNz3_0Z!&jy9(|X=*5x=&U8%;Hu_Yq@bo zTT9clj>c4jfA?~NFpaMCyljl?7}tfwwf{ECUD>$Kg=d%k^S<*e#-r;qi@^9(9^*`) zV8omOt2%oKxZaD7f+((!UJ_G9cH3G9C|8{1v5zbV_lN9^yq zShaq3yIrD+HZJI)GwWGYh2oqPNFS;okR24eEwL_{+B-Ze=g$Rz`CgBJNt6~ z-pKuYMMm~HE+Y7RM6Nw~Lq}2@U2ux~QSdKB{L_>>`Dy&kk}O|h@p~-Y_`D%m-`JE$ zX^ig6^~=bug6vr-MVyFao%H!0fpL6ur;{QZ@Xa0beFA-tM|;UixE={V4n7usJbXNy zZ}N1W4`&j9vv^MCES{4X!}o&g8#lVP_w;Q8g?|vTXI~VBXJ!oK-hN1KAa)e~Ah_b? z!)IN&^DM4UgkR+DSHn-@dJcRD{0jKV@Re}st%je%^#|am!f%BSg_F<5e+&FHt{;S- z4*v%H4EPV=W$-8A!{Gh-wooQr=kR-$Nn>fCvz!J(bKLc4cRkfzpX;ti!Y2nl57_(R z&PpgU=O%C&^o3^X2kuP5R340g(=|46JrzEZ>*4UTOq@1i^DGli3EwpGwlBorzRRBf z`#GbXZR%xX`y9AEhv{tWWzM#;?+fR*ajvsb;cQffHqOejVc*HjZ)2jfG0EAO9NN(L zgfj84@4pp=`+8Llncg?aL>NVys#iQ-`Q9IFX8%XxYD^0 zF1%j@p9)_D?;qSmVVC`x&@kv!!WnGJm!7}f%bY*Y-j2So^$xi5jPHbDZy`2Dhc*-^ zyLYsR(raB5pVv7Xi{Xmv68Io^0zL%36y86mA&!@0*O&iH{On%6qHwQY^m#O(tN102 zjUZTN_?6f>D=U6>UsRFVBZYWY`Qe*r#zrIjB>dh9XSp-D9$o`a!TVFIt4x*z6QPT+ zZR;n_qI3IKILAy8!6~1%>j$nGUEOYhp9XJ*p9{YMt}$vGoPK@K4p;q?hJP5|0pA8+ z34a8BBmCdttKh$YuZHh~-voaZ{w_FmV6X<>KPV%PYoH3pRj;gt#zVJ2y03Dh`?_}l zba9v_VZ!cR$d8G46Nb|C9=OuV1!2lw1{1Pj*NO9&=l3}q?}w|-T5D{)3mYSeN9Nhv z^|<`y=mXBit#Fm2b;ib2Yzzx+sGZtl)<}xXoB)@B+QudNf%}lN@nNIO`ND9Od$k8; z@Y}ea1^)>AGWbW0TpeMky}BS!+f^D|%kP1NX)&QN?VNM|FmK0(^6w5~D+oRYkA`_C z*9!A4xWfFnky98WpbK4?*L4Zg&h_OFb0ans=H12?=L^E4VSbWpg}Di?Fh6DF4xLUr z$C5wH&tOAgZZ@_kC-7*PpXFL%eh#iM?=^Bgr&GAH<-lDsMl zpAU7I8)FoOV->ZR)W^ns$=UcaTz!iB;llX?aK-A55hkL{|5Zy@PC1CfjnW&;n?ryFbg_ z_xGB)RvA}bjzvb-(ouaVeYK(LS9CpBaXWF`MaI1V^`U|t0#!h@P#v@ex)a(4Jpt{9 z`q40yK~>OPXa%IkVk5K_+5zo_4nhNHbo5T1Q^CbGodBWS}1n^I63ed?v(!LzNEt0N=KuK!U@cS8@Lw#8yz$8 zdl)E)-$!Rd{Bhno5dT?!%cr>O#~94%{-;t9v6oM5kS2B*6J zRTuuvZl0sm=|2aS&7yqP-|Jz(Tn_N1sb?NwnyZ*C_=gBTUNtcdFciq?V zXQ)>cuQ@K9VUAb2@UC*a`8FMarN(X{}xF6ZH|AH zI!M>gyZn2}g?qD0|EHYYN|#>=7r#cAPaRHvic5Eii|1`F+k@{`hVlX zf574GaTi|Fh4;Agzu8?^y65$0XZKSs-jBF^JlVx(qKp6S&h9LycehJ-rHkK#?zueX zp4T6oovALru5#hO*YQ~{9)lf!#^LP84p)D6`SQFAf4aMWtt*dH-Sd0O#k;@Dx7%H~ z-*GtnpyNqr=WQ-NH@N(n;^OlgAFfNs-R^#)<1e}R-RHtDb@}mkr+1$V_jc$1l#Aap zF8phqe}DJf8B-g)T;$@>e17BPM!R@D>+-wEq;5_dLGi?DTi}^D`%Rm&>QWJGlp3K0N2HC%SUg;qrH?}lWJk8mCud{cR zyS~MxcbJQRU-#T@bNVN{bdPhm_@+y5!sX*&myTy0ejaeVudg2*E+2IGnB(*xarWo< z=jr6W>YmGOPHv*N>(k}(Yp~0&zW5(a-1`*u3i^>l13LQzWt~A#O@1>#=)Q30^fQCY&pb1blG#hG#)MY^S(EZSp&~9iSbN~Wp!LiT~XarON zT?oyD7Ct*A3{heD&EYG@JE0Ih-6L3cu%q5GkSphuzI&_3t@G=hRu z0nLOKKq+VgvnKhjgI(NOsc?D)(61}PHzZ!KHhye-pks1PPQQb+ z?!_iPY}H23+qU}*<>a@e4m3# zv9__jwWXcgp>2EL$uHBIp^Z0lWu1-j85={*xJw@#JhTlf>ugNO)V+IYDQ!H= zrmc1X%jc2xb2^dwdfOncGcTDk5zge3^>aErud`fw*PAiC+Un`e%Uas%X+U>9y7Z-T;3RDyZ!6<;G3v|B?sDm7 z4leQX_P&#+OnUhZl%ag`_P&)LA1RmX!K{_HhfH|;_P&$HrccXeu+!xk*diUK#mYF{ zNZDL}emAevBlCRieJ3C3Gs{ljJoRl~ zSKn4e`nBrs_6_UMS+%H!`DOjA{VK|r&##C2N=M~e4=G#6`Z*oa;B`{8gf^Uc)IxeQ zEEA6Pb2^kSuhYu-!-msU$ND)P((ZLeFc0LyF(1i{hGYGlPD4g#6!oeLr;CpDb2`y7 zG|-1*wta_rw%goy@{uxhKl6i`Jj<&PKR>j zb#x|T-+(GIqU5n?{hSWv$Lkz8-G*axI6EBc=X4_F<;h_#oQRSS$ND)P%8L(Y-3S+s z$>Hp9te?|~v|SBn`*1Q!J{;@kbaMI{z4Ktdx5NG<^4Rw^gzsEgd(YaPMBaK?&2Qw& z+IvoxJoWtyeVe9tq)hoQANaUif2T*jdOdyf!|K_L&DFF1PLI6xdap3&>hw%Tg`L!R+_s-MK+WSsE@;vSZ?^Zs$-L&_eJkP`D@1il1cc+WwG{4w_6rw2o>s=`M#e*Z$mgSjIrP0Vd1vog*@_6JcTk@lom2PO zdrmfj>GjlSNAqlI460>cb2^zYtiRKXU|L}x7fipQBav#4wypNQm9LD{;d_bGaZ3Bl zMEi=G?6H#db2^cFM)Su;$D9h1iIctWG zL_K?4U{k($v7d}wyf~U3E8}#*wAX!z{>5>Ao-Rk(hihe=F4*>U&Q|&v$K^a9d(X*& zX)mk%JSs=l-m|h(up6eIJU+^_H(lp4kMeVk*!J~CC;4mT^Ur05I+3x8!tQ6oNVd0h zFesdpXihBGkwjsBTNxX_M5G;fw71u-=}4tJ+9(>Kj`edo(fZ~n>8Ov{RcDCtb2>a5 zpAQQESn@1izxr604;7L6Q)S~=lP1lc^1cX(@z2ou*)S?1_2)M7&gx8UZDrEb45=gO zvHnhv^!T{l3r4Np)$P%6?0qL6NsH#@t-Q)*X3TEyJ9#kR>!uXAwDQ*^mok=I*;t=c z0rlyz{!R}pcswi5N)AyLtc=s;;d$M?JlB##lm#o}bR+fJ?qca?&-2)OR<@G%#^>E; z=50#y)H(LPlaKTVI+?F2>88%HeolwF(}$5_e#YqJ)H(LPlc)al@^ep+eAhb1-golU zo6+)oOip^0ug7>?QfEeG`{a@B<7BHM{U!BR`$YPhm<*q}^|NuQisa8)Fx;n`@tgH? zI+6TQpVfwAz6chEVedQnNdEK#zc!3)d3)cDEPAEy=U!C;JJCb8aw35 z+Ivox=jF?`^0-&z8Rz!zt-sUbnRz{p7pz|ND{dKlSbwL-v-9Oz-)6IVVZQnx!)Ib; zoNlClps|D1?K-CLc{YJ(=*yAD4pzSFm?D&qJU@*adigO$1nc&`ix1Dl+t;@<^2yu# zR(@inJZYTVOLa%&g99ET*3aqieEhT2x$V7j#uE0PlZ`x+gTst$w_^$G@AM+&N#_dp z$}^U*_nmy?Ijml*(gU6P}2}Zt$afE+<6C-^A zjTKD(b~BC$bs~KMjTL(JFpdayXg_^@qOn3$C)&TaelAV4p0)u zuP3O_6i(;0ywU31^i|2W`o{L;;z^6AlxyD0uM*Twtg4t+RY@^5&fCl%Mp>|8x|N&B zz6lwh`_i$848w%it^m#R2qw*_nl^s?1WJi@J%@Qx(CWfG)`eMp+%c~&OxJv6LY`VR zZPJvQiW#pb+%tlqdI-1+c`hcv(jh!4>$=NNlh$C`6f0`Tr?>!Hn_KW=yIW??TJqBL6cyA(%@$DR%%;cyk{Z`ufskC;g|d)b@!fl~XD! zD<)F)8rO3gPw5ioE3Y>%?K6yqJY&*?@l$FiPJ12Uo@(|3NpJ)SRa#qr)y*@Uv$}kq z8?m*Q&siP*4l1iEr%j!59&LtP&*>Z-Z0Kv{M!E1F>MosgRx<&u8UFTQLhYof6KB*o zR30jfAwivce%e!~Dr42KZty~y=B$p6ziMYpnN%}v(o`GAp3`!Aps}6Y0!Vqcd1v=| zH)nM?HmsaFb<*Ui6}B?!IgFt}U8zD~f0xUzeck65X_?#B^3G&^I;fgHZQ}HauP+^^ z1yzG>7$X>mDIEh|PZ)$|N0gIlt12pL&vSKa&*?ciNDs1MjdFEH+3O4|IvSlcqoQ`| z_(`?a(xLEBYW5IH_F+irThd*)&-e`O?s^draV*0}^mQ`g1G@BAM8ruX1C7e9v4U7T#btp~k^9{gH*@Vf~=nzb%Y;jP8* zq%J=88GjN#+ds$_ke}TjwW%{8T$jZ@mx!Fsc5ubCi{C!{rbT4kPa~&u7P<>h z=O=g!=EgAm&t{2uASPw#A~+qJ^0;)pMOTVHb0M_$7inJxAF7&lI!;){N{8M&y(o6b{F2+_<4Nh+N{RU z<1^RqGWn^Vo_;r`|Ry;26CcJO=;8#pUy3@O=2ft1D zbr+W}bKN@D3^PvQUEPCT zYY%#Q$8MxEm22}$5t}qyp;LH|;m7tW<8u98!_TKL*Y9NJ^t#iVk6(9sO+Dy+5kH?V zx#2yGpHE+|-*fmeJ(o8P91#?j+g!a9@jJa6y$L<&UDku%iXQad-GkmH{CwL_Hz0I+ zMqkIzm%m)U@AlyLc*JJ3KO&oZB6_)gzwg2CFZi)t&N!Oh(8=a_9-gn4a{VsCkLJ<1 zT)*k~Q9OtMOZ4d@}mp?>_webEhc`o%D9#=kNJANkD#2;Wu6vIG?ZjEx$fg z^1cqq^&8lO-|!y%Dtqv&?!oU${CuC5W-@e&X9BQz?B@Et2S1vuPP zKFzs)_u}XCCD-rkJ?MQm5*|%q=#++^MD%j~ejW)g*YEir^bX+XF_Eh`a7ZTYxqc(? z^Ldu*Hx55v_t1ofPHC7I(aZIF2YwTsw9h+TN^b*xW4iJC7Jk>bMk-gYlt$&#-ROM< zzwW}@i=W55Pp8Z%E+?@bLKSLU)K4#4+F95l=8o)0dJMAtT-^LU@d2!q$XYL2v_9-m zEN1sXKXUXKR;)|d5pg^vyr|2+UXeS!IL#{PmVQS>&rxJ?A9UPaW&VDEpU*;-lN%~0 zESp$AE-`-mO1XsP?jHiTdk1 zTHEVp%(`Og?6PrXb5@sWqPb4HS?ZX;Yh~j=*`&IK)5@=yzM#%epq5Q4pHdf@kS?!H zwl^+sPPQF3<7U>OP-YKT4v<-HVx}%LGkDmtAj^7WLa;Cagmb4dk9+mSS6>v|4CJD? z6X>lQUGTL}&Bd*^SND z&*C+b;N0d!6I)WwZEveTcLg(a$+o4bmip`Mjb)9gWc#_v^Xn3}%q?|gZdqelxC)0IFw+Lj)oa7o0)JbOlReQlhA_vVxeojEIy9zzr*|1F0tOb3hHiSYy!9-@~SWea+ zmI4p~X4C4V7PSmi)H9=lZfdJPK9?CQXyl__pL+T_sX)EF;gEXb*U_4*$D>}dG(H5W z7tZOS=H9>Hub$1Blyvn*{tT&?a1j4!Pmo)&dsF7X2vS9tG#Czys^I6iiK)fFX%8q^ z#Jxk&C}i$OehJW7M`!cGx%TXbhI50Un%_IQzl-sX{5Js4xyb13!BL=Y6FiNKU|072$hA+4!$Ub86`>ba`_tCGXe z(3A?50HIu^LZwAWS1D0RP$|%OmFSu=JJB<9b(-@aY5`qjP8PP~GmS;cpka_o+?kN_ zQ{#!VptB+6&1gvDfpeg-&^V|ZB6~PJmOd?X9yA`B0I8op37QO5K~o^j$6Nqi2x*Ld zF?0!34NZlnK{Ze#&?;y(bQAP0Xbp5T^ls=qP$%?W=zY-pp|#L0&@y)p$|bHhSo#3K_7uW z3T=RHhwgwr2HgqW1$`X)Cuk#dH}nbUlh7vUQ;^1KpMf?*_duV8J_p?keIEJ(^hIb3 zbRYC3=*!Uk&;!svLtlZmLSKcx27Mjc20aLU1Ns-}A?TaXx1euB4@2L9z6*U1+73Me zeINP(^eFTg^h4-hp&iiU(2t;hgPwqX4E;Ow6X;3kDd=hFr_fI5XV8B@{|W7ao`HT2 z{Q}wzJq!I3`W3VXdJg(E^k2|k=r_=Bq5p>VLC-_KgMJUa0Q~{_BlIG)A9@LT8Tu1+ z0QxiZ7wE6hE70Gd|AGD&Itcw8dKG#N3X1p-^@4gseIT8|R16&j^@Fqv;b^Eoq+LN8 z_i~oL&e7Ky`Z_<~%*70Z4}!GLb0TySq%&aO%ueU$Y3|&Qzu(MhjnfwAK%4_{4#YW- H$$|d|>!C|i literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/bin/Exercise 6.9.xml b/Code/Chapter 6/VB.NET/Exercise 6.9/bin/Exercise 6.9.xml new file mode 100644 index 0000000..205f8a6 --- /dev/null +++ b/Code/Chapter 6/VB.NET/Exercise 6.9/bin/Exercise 6.9.xml @@ -0,0 +1,11 @@ + + + + +Exercise6.9 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise 6.9.exe b/Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise 6.9.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce7dbb0ef992d6eff9a58350ae878bd364fd0aa8 GIT binary patch literal 49152 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

    Fj!!@m&z{Q(w7*NBO6-> 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 H$$|d|>!C|i literal 0 HcmV?d00001 diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise 6.9.vbproj.GenerateResource.Cache b/Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise 6.9.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..9e2e04037082e6b508819e74bd55c08a27c3e871 GIT binary patch literal 844 zcma)4!A{#i5Vf1wBo0X7fH=@Ygg8_pvXUayULqud(xMWH7KAu(*?7n5HXCoWV^_Fe zz<G)Q{*H@egHY)glzEina7So|%2~X2zcHdEOs7{N}U#jNp8%5^K<;dAwgJ zE#p&xQ|xxmz@jqQ;APz7r`s78Ixj2?GAME@bhmR{OtebgL3wJXkPRliopd*SmG=8` zw&1%9$ zDo0l%&M07f!Yx+2EFUPUJwGWihgm!{T2px%2F7m%e$2&0gDX&{J9UQtrY=!JbYz4a z32tKP?_?W8Gn)$ww#}qNBjMPZ&q{)Au;WC1fjSKr!!w}^K+mhyydY>bs%jnn52m-eH)$4k^|7~))-SaqG`hNAee!tq1e}(OoAQLm#Snz9s`PfL6Dv)an zF}PHiV@NAr@tsK5HupIH^?U#8&Ce^}XUR_c3LD(-{M+{**Bo2rbUv#b + + + +Exercise6.9 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise_6_9.Form1.resources b/Code/Chapter 6/VB.NET/Exercise 6.9/obj/Debug/Exercise_6_9.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 + + Debug + AnyCPU + 8.0.50215 + 2.0 + {9DBA1CE2-99B0-49C4-8391-8AA1F6027273} + WinExe + Properties + Exercise_7_1 + Exercise 7.1 + Exercise_7_1.Program + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + TestDataSet.xsd + + + Designer + MSDataSetGenerator + TestDataSet.Designer.cs + + + TestDataSet.xsd + + + True + Settings.settings + True + + + True + True + TestDataSet.xsd + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/Exercise 7.1.csproj.user b/Code/Chapter 7/C#/Exercise 7.1/Exercise 7.1.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/Exercise 7.1.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/Form1.Designer.cs b/Code/Chapter 7/C#/Exercise 7.1/Form1.Designer.cs new file mode 100644 index 0000000..913c503 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/Form1.Designer.cs @@ -0,0 +1,260 @@ +namespace Exercise_7_1 +{ + partial class Form1 + { + ///

    + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.Label firstNameLabel; + System.Windows.Forms.Label lastNameLabel; + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); + this.testDataSet = new Exercise_7_1.TestDataSet(); + this.userTableBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.userTableTableAdapter = new Exercise_7_1.TestDataSetTableAdapters.UserTableTableAdapter(); + this.userTableBindingNavigator = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); + this.firstNameTextBox = new System.Windows.Forms.TextBox(); + this.lastNameTextBox = new System.Windows.Forms.TextBox(); + firstNameLabel = new System.Windows.Forms.Label(); + lastNameLabel = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.testDataSet)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.userTableBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.userTableBindingNavigator)).BeginInit(); + this.userTableBindingNavigator.SuspendLayout(); + this.SuspendLayout(); + // + // firstNameLabel + // + firstNameLabel.AutoSize = true; + firstNameLabel.Location = new System.Drawing.Point(78, 37); + firstNameLabel.Name = "firstNameLabel"; + firstNameLabel.Size = new System.Drawing.Size(56, 13); + firstNameLabel.TabIndex = 1; + firstNameLabel.Text = "First Name:"; + // + // lastNameLabel + // + lastNameLabel.AutoSize = true; + lastNameLabel.Location = new System.Drawing.Point(78, 67); + lastNameLabel.Name = "lastNameLabel"; + lastNameLabel.Size = new System.Drawing.Size(57, 13); + lastNameLabel.TabIndex = 3; + lastNameLabel.Text = "Last Name:"; + // + // testDataSet + // + this.testDataSet.DataSetName = "TestDataSet"; + // + // userTableBindingSource + // + this.userTableBindingSource.DataMember = "UserTable"; + this.userTableBindingSource.DataSource = this.testDataSet; + // + // userTableTableAdapter + // + this.userTableTableAdapter.ClearBeforeFill = true; + // + // userTableBindingNavigator + // + this.userTableBindingNavigator.AddNewItem = this.bindingNavigatorAddNewItem; + this.userTableBindingNavigator.BindingSource = this.userTableBindingSource; + this.userTableBindingNavigator.CountItem = this.bindingNavigatorCountItem; + this.userTableBindingNavigator.CountItemFormat = "of {0}"; + this.userTableBindingNavigator.DeleteItem = this.bindingNavigatorDeleteItem; + this.userTableBindingNavigator.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.bindingNavigatorSaveItem}); + this.userTableBindingNavigator.Location = new System.Drawing.Point(0, 0); + this.userTableBindingNavigator.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.userTableBindingNavigator.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.userTableBindingNavigator.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.userTableBindingNavigator.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.userTableBindingNavigator.Name = "userTableBindingNavigator"; + this.userTableBindingNavigator.PositionItem = this.bindingNavigatorPositionItem; + this.userTableBindingNavigator.Size = new System.Drawing.Size(292, 25); + this.userTableBindingNavigator.TabIndex = 0; + this.userTableBindingNavigator.Text = "bindingNavigator1"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.Text = "Add new"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Text = "of {0}"; + this.bindingNavigatorCountItem.ToolTipText = "Total number of items"; + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.Text = "Delete"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.Text = "Move first"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.Text = "Move previous"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.ImageAndText; + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(100, 25); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "Current position"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.Text = "Move next"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.Text = "Move last"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + // + // bindingNavigatorSaveItem + // + this.bindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorSaveItem.Image"))); + this.bindingNavigatorSaveItem.Name = "bindingNavigatorSaveItem"; + this.bindingNavigatorSaveItem.Text = "Save Data"; + this.bindingNavigatorSaveItem.Click += new System.EventHandler(this.bindingNavigatorSaveItem_Click); + // + // firstNameTextBox + // + this.firstNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userTableBindingSource, "FirstName", true)); + this.firstNameTextBox.Location = new System.Drawing.Point(141, 34); + this.firstNameTextBox.Name = "firstNameTextBox"; + this.firstNameTextBox.Size = new System.Drawing.Size(100, 20); + this.firstNameTextBox.TabIndex = 2; + // + // lastNameTextBox + // + this.lastNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userTableBindingSource, "LastName", true)); + this.lastNameTextBox.Location = new System.Drawing.Point(142, 64); + this.lastNameTextBox.Name = "lastNameTextBox"; + this.lastNameTextBox.Size = new System.Drawing.Size(100, 20); + this.lastNameTextBox.TabIndex = 4; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(292, 103); + this.Controls.Add(lastNameLabel); + this.Controls.Add(this.lastNameTextBox); + this.Controls.Add(firstNameLabel); + this.Controls.Add(this.firstNameTextBox); + this.Controls.Add(this.userTableBindingNavigator); + this.Name = "Form1"; + this.Text = "Exercise 7.1"; + this.Load += new System.EventHandler(this.Form1_Load); + ((System.ComponentModel.ISupportInitialize)(this.testDataSet)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.userTableBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.userTableBindingNavigator)).EndInit(); + this.userTableBindingNavigator.ResumeLayout(false); + this.userTableBindingNavigator.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private TestDataSet testDataSet; + private System.Windows.Forms.BindingSource userTableBindingSource; + private Exercise_7_1.TestDataSetTableAdapters.UserTableTableAdapter userTableTableAdapter; + private System.Windows.Forms.BindingNavigator userTableBindingNavigator; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton bindingNavigatorSaveItem; + private System.Windows.Forms.TextBox firstNameTextBox; + private System.Windows.Forms.TextBox lastNameTextBox; + } +} + diff --git a/Code/Chapter 7/C#/Exercise 7.1/Form1.cs b/Code/Chapter 7/C#/Exercise 7.1/Form1.cs new file mode 100644 index 0000000..014c505 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/Form1.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace Exercise_7_1 +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void bindingNavigatorSaveItem_Click(object sender, EventArgs e) + { + if (this.Validate()) + { + this.userTableBindingSource.EndEdit(); + this.userTableTableAdapter.Update(this.testDataSet.UserTable); + } + else + { + System.Windows.Forms.MessageBox.Show(this, "Validation errors occurred.", "Save", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); + } + + } + + private void Form1_Load(object sender, EventArgs e) + { + // TODO: This line of code loads data into the 'testDataSet.UserTable' table. You can move, or remove it, as needed. + this.userTableTableAdapter.Fill(this.testDataSet.UserTable); + + } + } +} \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/Form1.resx b/Code/Chapter 7/C#/Exercise 7.1/Form1.resx new file mode 100644 index 0000000..59c5b0b --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/Form1.resx @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + False + + + 17, 17 + + + 126, 17 + + + 297, 17 + + + 463, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAfNJREFUOE/Nk8lr + U1EUxvtnuHMnLQouFGpBRdwIorgQ7EYUobqpi0bEooID3XbRhQutOFDbOgUqDs2AbU2cWtoaJG0TxTSV + 5OXV5OXlzYOJ/rzGVSGBLL27C+f7ne8799y2tv/2uKUI7voILRt05Qm84jhWbqwuqixd5MfrfTj5B/W7 + LY3gK48FNNQYaqzeZD1+FC3ZR9WcxEqdR4luF6Jx3MIwyvtDaMsB3OKLJoDsCMWPJ5CfbcZJncVN9aLH + dvFTGkR/t59SdCdmdgi70ATw16ZfmcBKnkF5vgl99iBm8jT6QjfahwNU1TE8Pdq4e9WYQUtfw0j3Yy2d + QovvxskM4ZsLWNlBrHQAb/UK1pcLOLkbIuLcRpAjPyQ3uQf51TbK4S3Cehee9JTfv3Rs6Q564jharJNi + eCvqYg9+ZXojwFcXMbJ3cQr38Nauo0ba0ee6sb8OoM0fE656qOlPcKT7Ahikan1rHMXOD1Oa2ktZTN+c + P4z2pgvz80kB7MBMBfCNcPO9sPOjyLEjSKFO/PIj0b1fxGkXnYOYK+covOzAyAzgKU0gdm4U5VMf5vdb + +Po0+sol5NAOvFIQT42gJi+jp6/ilZu8hKfMik2cwi3F6zbNtduUE71C/E/gKW8FbAavkmhtvWtOhpqz + 3Fpxyx+mQeEfdtWWWgCbhLwAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAW9JREFUOE+tkk0o + w3EYx3dV3kq5uKBWDiPT8hISMiQsMiEyQ9qBg0hoFwcHUi7kgIvkQFJSTrQ4zdvmrTW1/kuT0i74x+X3 + MRal/fEnv8tz+H2fz/N8vz0azX88PG6wmcDp4E881hYR3VUIixF2Nr+FcO2DlbnPGjaWoM+M6DAiOitg + YUoR8rqhsJTBWG/kP6fOMKTegGjKh/7mTyIx0oUw58C0/XubLM8iKtPeQIx2gfcMJgbD0FBVlRE+D7QU + hS2ZshANuTDQqq75fQIHe6GVcxHV6VCr/2VzQIKmAshOQNbHc6+PhTqDOggBP5jzoDCJoLUaLo7fwr3V + hSCr8z8EeHcLbSU8FCfjLU0nuL/70cB4Py5tDLL7UBnC8xMMW6EkhRNdIsGt9QjhTXkGUnsN8rVf4Q72 + tpFzEnGlRiH1NIL8qDjJoY1DdjkVADNjSGnReI2ZIF196VW22+D8SAFw6YLJITjaV5e2qotSIXoBiiMD + HEVvQ/IAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAStJREFUOE9jYBg0 + oHDW8/9NC57/z5z4+D8uR4W3P8Apx5A789n/VUfe/8elKL77wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+ + ///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0v3f1BxRFoa33wJpb1wFt7/z73yX/AG4D + Apsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvgUXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF + 7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbAIu/O/9T+11gVGSSd+C+b9vW/bvA83AYY + Zt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPulf8gBXgVDZqMh+wQAPB2wKsSwCgmAAAA + AElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAL1JREFUOE9jYBgy + ILz9wX+yHRvf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3v + kn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ14A0ChbVd8+3/6nN///bu+/dcpfPffImE9aQaADNFP + Of/fpOjFf5WsT/+NI5eRbgDIEIOkE/9l077+1w2eR54BYJekXv6v4TuNfANAhqh4TKDMALKTMc01AgDQ + FGCYkuTLEQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKtJREFUOE9jYBh0 + oHDW8/8UOSp35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ + ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuIN8Sj6v7/krnv4JoVXXqI1wyKPvvSu/8D + W56BbSZZM8gAi7w7/20KrpCnGWSAYdZt8jWDDNBJu0GanylKtoNCMwCgfl+gC2KedgAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAATBJREFUOE9jYBhU + oHDW8/+4HASSa1rw/H/mxMc41TDkznz2P6H7HlYFILlVR97/D29/gNuAjClP/8/b//t/QtcdDEUguYX7 + PvwPbriG24CEnif/Z+/79b9z69//bqWXURSC5KZtef/fv/oCbgMiux79n7Lt1/+SpX//J0z/+98m9yxc + MUiud/WH/16lJ3AbENj88H/r2vdgzcYlX/5LR1/7bxy5DKwBJFc3/91/l/wDuA3wqLr/v2TuO7hmRZce + uGKQXP60N//tM7bjNsC+9O7/wJZnYJuRNYNcAJLLnvz6v0XCetwGWOTd+W9TcAVDM8gAkFxq/2u4l7Cm + F8Os21g1gxSD5MJaXv7XDZ6H2wU6aTdwSoLk/Kof/tfwnYbbAHz5yin3yn8VjwlgPKjyHwMAvtG/s0Vm + x8MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAilJREFUOE+tk91L + k3EUx/cvdN9N0EW3NTWGa7EaPOUcyqphWBG9PZEv5dJlmqhYmUYtXyBb4dJJy+kknFT4BqZIjaFMJUsz + V7TEoabYRDD49ju/6Pm1Mm/qB+fy8znPOef7qFT/4z17GgWVr30Zbd4lPHYvoLEhgvuOGdTWfIL9dgg3 + yqdQWjKBwoLXyMsdxYXzQSi9CeztAWqqV7HRW1ldgzGtF4fTnvBSBN7WRS6orPjyV57gyMIKdpufQ62W + YTnkEQL3o3kuKC35vK7gJ/w+vIg4kw8Fl6dxwNwkBM76WS64ZHv3h+BXeGQygm2SF9accaSmOIWg7m6Y + C7KzRmMEv8ODwTA2692Q5QBMJocQVFd95AL5TEARrAf3+D9gU2IDjhx9gaSkWiG4WTmN7i6wUwLHT76C + 5dgA3zYtjGamz6bOP+A+HLR0QpLsQnC1bBIdPrAMAE2ub+zuX1F+fY4vlRZGM2dmBBU4ObUdBkOFEFwp + HIenGXjoXGPBicKYnhNT5hM2pJ8r4p2TUxi83wO9vkwIbHljDAaq7kR5ZxJQSOK0EobezmJsag5y7jXs + NbZxWLvHBZ2uSAgolo57UD6bBASfzb+FN6F5hGaWcLHYjni9i8GNiN/1ANrEfCHIzBhmcy/zmbcaPNiy + Q0JLRz98XYPo7vNj4OUQ9pksUOvqkcDg7Zo6aDTWWMHpU/08npQwCgndmU5F26aF0czUlYrgnQnZQvAv + f/R3bGg6a0rM640AAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/Program.cs b/Code/Chapter 7/C#/Exercise 7.1/Program.cs new file mode 100644 index 0000000..1fa4738 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/Program.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace Exercise_7_1 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/Properties/AssemblyInfo.cs b/Code/Chapter 7/C#/Exercise 7.1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..00d7057 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_7_1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_7_1")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a7ae20b9-adb3-4c39-97ab-3e996df7f7fb")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 7/C#/Exercise 7.1/Properties/Resources.Designer.cs b/Code/Chapter 7/C#/Exercise 7.1/Properties/Resources.Designer.cs new file mode 100644 index 0000000..45cfa50 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/Properties/Resources.Designer.cs @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_7_1.Properties.Resources.get_ResourceManager():System.Resources.Resource" + + "Manager")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_7_1.Properties.Resources.get_Culture():System.Globalization.CultureInfo")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_7_1.Properties.Resources.set_Culture(System.Globalization.CultureInfo):V" + + "oid")] + +namespace Exercise_7_1.Properties { + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if ((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Exercise_7_1.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.1/Properties/Resources.resx b/Code/Chapter 7/C#/Exercise 7.1/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/Properties/Settings.Designer.cs b/Code/Chapter 7/C#/Exercise 7.1/Properties/Settings.Designer.cs new file mode 100644 index 0000000..f1fc1a3 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/Properties/Settings.Designer.cs @@ -0,0 +1,37 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_7_1.Properties.Settings.get_Default():Exercise_7_1.Properties.Settings")] + +namespace Exercise_7_1.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = new Settings(); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] + [global::System.Configuration.DefaultSettingValueAttribute("Data Source=(local);Initial Catalog=Test;Integrated Security=True")] + public string TestConnectionString { + get { + return ((string)(this["TestConnectionString"])); + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.1/Properties/Settings.settings b/Code/Chapter 7/C#/Exercise 7.1/Properties/Settings.settings new file mode 100644 index 0000000..bb225d5 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/Properties/Settings.settings @@ -0,0 +1,16 @@ + + + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Data Source=(local);Initial Catalog=Test;Integrated Security=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=(local);Initial Catalog=Test;Integrated Security=True + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.Designer.cs b/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.Designer.cs new file mode 100644 index 0000000..f5e78bc --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.Designer.cs @@ -0,0 +1,753 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_7_1 { + using System; + + + [Serializable()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [System.Xml.Serialization.XmlRootAttribute("TestDataSet")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] + public partial class TestDataSet : System.Data.DataSet { + + private UserTableDataTable tableUserTable; + + private System.Data.SchemaSerializationMode _schemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public TestDataSet() { + this.BeginInit(); + this.InitClass(); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + protected TestDataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == System.Data.SchemaSerializationMode.IncludeSchema)) { + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + if ((ds.Tables["UserTable"] != null)) { + base.Tables.Add(new UserTableDataTable(ds.Tables["UserTable"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public UserTableDataTable UserTable { + get { + return this.tableUserTable; + } + } + + public override System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [System.ComponentModel.DefaultValueAttribute(true)] + public new bool EnforceConstraints { + get { + return base.EnforceConstraints; + } + set { + base.EnforceConstraints = value; + } + } + + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + public override System.Data.DataSet Clone() { + TestDataSet cln = ((TestDataSet)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override bool ShouldSerializeTables() { + return false; + } + + protected override bool ShouldSerializeRelations() { + return false; + } + + protected override void ReadXmlSerializable(System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["UserTable"] != null)) { + base.Tables.Add(new UserTableDataTable(ds.Tables["UserTable"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + protected override System.Xml.Schema.XmlSchema GetSchemaSerializable() { + System.IO.MemoryStream stream = new System.IO.MemoryStream(); + this.WriteXmlSchema(new System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return System.Xml.Schema.XmlSchema.Read(new System.Xml.XmlTextReader(stream), null); + } + + internal void InitVars() { + this.InitVars(true); + } + + internal void InitVars(bool initTable) { + this.tableUserTable = ((UserTableDataTable)(base.Tables["UserTable"])); + if ((initTable == true)) { + if ((this.tableUserTable != null)) { + this.tableUserTable.InitVars(); + } + } + } + + private void InitClass() { + this.DataSetName = "TestDataSet"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/TestDataSet.xsd"; + this.EnforceConstraints = true; + this.tableUserTable = new UserTableDataTable(); + base.Tables.Add(this.tableUserTable); + } + + private bool ShouldSerializeUserTable() { + return false; + } + + private void SchemaChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(System.Xml.Schema.XmlSchemaSet xs) { + TestDataSet ds = new TestDataSet(); + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any = new System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + return type; + } + + public delegate void UserTableRowChangeEventHandler(object sender, UserTableRowChangeEvent e); + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class UserTableDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnUserID; + + private System.Data.DataColumn columnFirstName; + + private System.Data.DataColumn columnLastName; + + public UserTableDataTable() { + this.TableName = "UserTable"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal UserTableDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected UserTableDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn UserIDColumn { + get { + return this.columnUserID; + } + } + + public System.Data.DataColumn FirstNameColumn { + get { + return this.columnFirstName; + } + } + + public System.Data.DataColumn LastNameColumn { + get { + return this.columnLastName; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public UserTableRow this[int index] { + get { + return ((UserTableRow)(this.Rows[index])); + } + } + + public event UserTableRowChangeEventHandler UserTableRowChanged; + + public event UserTableRowChangeEventHandler UserTableRowChanging; + + public event UserTableRowChangeEventHandler UserTableRowDeleted; + + public event UserTableRowChangeEventHandler UserTableRowDeleting; + + public void AddUserTableRow(UserTableRow row) { + this.Rows.Add(row); + } + + public UserTableRow AddUserTableRow(string FirstName, string LastName) { + UserTableRow rowUserTableRow = ((UserTableRow)(this.NewRow())); + rowUserTableRow.ItemArray = new object[] { + null, + FirstName, + LastName}; + this.Rows.Add(rowUserTableRow); + return rowUserTableRow; + } + + public UserTableRow FindByUserID(int UserID) { + return ((UserTableRow)(this.Rows.Find(new object[] { + UserID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + UserTableDataTable cln = ((UserTableDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new UserTableDataTable(); + } + + internal void InitVars() { + this.columnUserID = base.Columns["UserID"]; + this.columnFirstName = base.Columns["FirstName"]; + this.columnLastName = base.Columns["LastName"]; + } + + private void InitClass() { + this.columnUserID = new System.Data.DataColumn("UserID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnUserID); + this.columnFirstName = new System.Data.DataColumn("FirstName", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnFirstName); + this.columnLastName = new System.Data.DataColumn("LastName", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnLastName); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnUserID}, true)); + this.columnUserID.AutoIncrement = true; + this.columnUserID.AllowDBNull = false; + this.columnUserID.ReadOnly = true; + this.columnUserID.Unique = true; + this.columnFirstName.AllowDBNull = false; + this.columnFirstName.MaxLength = 50; + this.columnLastName.MaxLength = 50; + } + + public UserTableRow NewUserTableRow() { + return ((UserTableRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new UserTableRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(UserTableRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.UserTableRowChanged != null)) { + this.UserTableRowChanged(this, new UserTableRowChangeEvent(((UserTableRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.UserTableRowChanging != null)) { + this.UserTableRowChanging(this, new UserTableRowChangeEvent(((UserTableRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.UserTableRowDeleted != null)) { + this.UserTableRowDeleted(this, new UserTableRowChangeEvent(((UserTableRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.UserTableRowDeleting != null)) { + this.UserTableRowDeleting(this, new UserTableRowChangeEvent(((UserTableRow)(e.Row)), e.Action)); + } + } + + public void RemoveUserTableRow(UserTableRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + TestDataSet ds = new TestDataSet(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "UserTableDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + public partial class UserTableRow : System.Data.DataRow { + + private UserTableDataTable tableUserTable; + + internal UserTableRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableUserTable = ((UserTableDataTable)(this.Table)); + } + + public int UserID { + get { + return ((int)(this[this.tableUserTable.UserIDColumn])); + } + set { + this[this.tableUserTable.UserIDColumn] = value; + } + } + + public string FirstName { + get { + return ((string)(this[this.tableUserTable.FirstNameColumn])); + } + set { + this[this.tableUserTable.FirstNameColumn] = value; + } + } + + public string LastName { + get { + try { + return ((string)(this[this.tableUserTable.LastNameColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'LastName\' in table \'UserTable\' is DBNull.", e); + } + } + set { + this[this.tableUserTable.LastNameColumn] = value; + } + } + + public bool IsLastNameNull() { + return this.IsNull(this.tableUserTable.LastNameColumn); + } + + public void SetLastNameNull() { + this[this.tableUserTable.LastNameColumn] = System.Convert.DBNull; + } + } + + public class UserTableRowChangeEvent : System.EventArgs { + + private UserTableRow eventRow; + + private System.Data.DataRowAction eventAction; + + public UserTableRowChangeEvent(UserTableRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public UserTableRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} +namespace Exercise_7_1.TestDataSetTableAdapters { + + + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.ComponentModel.DataObjectAttribute(true)] + [System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class UserTableTableAdapter : System.ComponentModel.Component { + + private System.Data.SqlClient.SqlDataAdapter m_adapter; + + private System.Data.SqlClient.SqlConnection m_connection; + + private System.Data.SqlClient.SqlCommand[] m_commandCollection; + + private bool m_clearBeforeFill; + + public UserTableTableAdapter() { + this.m_clearBeforeFill = true; + } + + private System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this.m_adapter == null)) { + this.InitAdapter(); + } + return this.m_adapter; + } + } + + internal System.Data.SqlClient.SqlConnection Connection { + get { + if ((this.m_connection == null)) { + this.InitConnection(); + } + return this.m_connection; + } + set { + this.m_connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + protected System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this.m_commandCollection == null)) { + this.InitCommandCollection(); + } + return this.m_commandCollection; + } + } + + public bool ClearBeforeFill { + get { + return this.m_clearBeforeFill; + } + set { + this.m_clearBeforeFill = value; + } + } + + private void InitAdapter() { + this.m_adapter = new System.Data.SqlClient.SqlDataAdapter(); + System.Data.Common.DataTableMapping tableMapping = new System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "UserTable"; + tableMapping.ColumnMappings.Add("UserID", "UserID"); + tableMapping.ColumnMappings.Add("FirstName", "FirstName"); + tableMapping.ColumnMappings.Add("LastName", "LastName"); + this.m_adapter.TableMappings.Add(tableMapping); + this.m_adapter.DeleteCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.DeleteCommand.Connection = this.Connection; + this.m_adapter.DeleteCommand.CommandText = "DELETE FROM [dbo].[UserTable] WHERE (([UserID] = @Original_UserID) AND ([FirstNam" + + "e] = @Original_FirstName) AND ((@IsNull_LastName = 1 AND [LastName] IS NULL) OR " + + "([LastName] = @Original_LastName)))"; + this.m_adapter.DeleteCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_UserID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "UserID", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_FirstName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "FirstName", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IsNull_LastName", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Original, true, null, "", "", "")); + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_LastName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.InsertCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.InsertCommand.Connection = this.Connection; + this.m_adapter.InsertCommand.CommandText = "INSERT INTO [dbo].[UserTable] ([FirstName], [LastName]) VALUES (@FirstName, @Last" + + "Name);\r\nSELECT UserID, FirstName, LastName FROM UserTable WHERE (UserID = @@IDEN" + + "TITY)"; + this.m_adapter.InsertCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.InsertCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@FirstName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "FirstName", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.InsertCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@LastName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.UpdateCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.UpdateCommand.Connection = this.Connection; + this.m_adapter.UpdateCommand.CommandText = @"UPDATE [dbo].[UserTable] SET [FirstName] = @FirstName, [LastName] = @LastName WHERE (([UserID] = @Original_UserID) AND ([FirstName] = @Original_FirstName) AND ((@IsNull_LastName = 1 AND [LastName] IS NULL) OR ([LastName] = @Original_LastName))); +SELECT UserID, FirstName, LastName FROM UserTable WHERE (UserID = @UserID)"; + this.m_adapter.UpdateCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@FirstName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "FirstName", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@LastName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_UserID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "UserID", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_FirstName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "FirstName", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IsNull_LastName", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Original, true, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_LastName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@UserID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, 0, 0, "UserID", System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + private void InitConnection() { + this.m_connection = new System.Data.SqlClient.SqlConnection(); + this.m_connection.ConnectionString = Exercise_7_1.Properties.Settings.Default.TestConnectionString; + } + + private void InitCommandCollection() { + this.m_commandCollection = new System.Data.SqlClient.SqlCommand[1]; + this.m_commandCollection[0] = new System.Data.SqlClient.SqlCommand(); + this.m_commandCollection[0].Connection = this.Connection; + this.m_commandCollection[0].CommandText = "SELECT UserID, FirstName, LastName FROM dbo.UserTable"; + this.m_commandCollection[0].CommandType = System.Data.CommandType.Text; + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(TestDataSet.UserTableDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.m_clearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual TestDataSet.UserTableDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + TestDataSet.UserTableDataTable dataTable = new TestDataSet.UserTableDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + public virtual int Update(TestDataSet.UserTableDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + public virtual int Update(TestDataSet dataSet) { + return this.Adapter.Update(dataSet, "UserTable"); + } + + public virtual int Update(System.Data.DataRow dataRow) { + return this.Adapter.Update(new System.Data.DataRow[] { + dataRow}); + } + + public virtual int Update(System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_UserID, string Original_FirstName, string Original_LastName) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_UserID)); + if ((Original_FirstName == null)) { + throw new System.ArgumentNullException("Original_FirstName"); + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((string)(Original_FirstName)); + } + if ((Original_LastName == null)) { + this.Adapter.DeleteCommand.Parameters[2].Value = ((int)(1)); + this.Adapter.DeleteCommand.Parameters[3].Value = System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[2].Value = ((int)(0)); + this.Adapter.DeleteCommand.Parameters[3].Value = ((string)(Original_LastName)); + } + System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + this.Adapter.DeleteCommand.Connection.Open(); + try { + return this.Adapter.DeleteCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string FirstName, string LastName) { + if ((FirstName == null)) { + throw new System.ArgumentNullException("FirstName"); + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(FirstName)); + } + if ((LastName == null)) { + this.Adapter.InsertCommand.Parameters[1].Value = System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(LastName)); + } + System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + this.Adapter.InsertCommand.Connection.Open(); + try { + return this.Adapter.InsertCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string FirstName, string LastName, int Original_UserID, string Original_FirstName, string Original_LastName, int UserID) { + if ((FirstName == null)) { + throw new System.ArgumentNullException("FirstName"); + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(FirstName)); + } + if ((LastName == null)) { + this.Adapter.UpdateCommand.Parameters[1].Value = System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(LastName)); + } + this.Adapter.UpdateCommand.Parameters[2].Value = ((int)(Original_UserID)); + if ((Original_FirstName == null)) { + throw new System.ArgumentNullException("Original_FirstName"); + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(Original_FirstName)); + } + if ((Original_LastName == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = ((int)(1)); + this.Adapter.UpdateCommand.Parameters[5].Value = System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((int)(0)); + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Original_LastName)); + } + this.Adapter.UpdateCommand.Parameters[6].Value = ((int)(UserID)); + System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + this.Adapter.UpdateCommand.Connection.Open(); + try { + return this.Adapter.UpdateCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xsc b/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xsc new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xsc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xsd b/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xsd new file mode 100644 index 0000000..b9d95f7 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xsd @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + DELETE FROM [dbo].[UserTable] WHERE (([UserID] = @Original_UserID) AND ([FirstName] = @Original_FirstName) AND ((@IsNull_LastName = 1 AND [LastName] IS NULL) OR ([LastName] = @Original_LastName))) + + + + + + + + + + + + + + + INSERT INTO [dbo].[UserTable] ([FirstName], [LastName]) VALUES (@FirstName, @LastName); +SELECT UserID, FirstName, LastName FROM UserTable WHERE (UserID = @@IDENTITY) + + + + + + + + + + + SELECT UserID, FirstName, LastName FROM dbo.UserTable + + + + + + + UPDATE [dbo].[UserTable] SET [FirstName] = @FirstName, [LastName] = @LastName WHERE (([UserID] = @Original_UserID) AND ([FirstName] = @Original_FirstName) AND ((@IsNull_LastName = 1 AND [LastName] IS NULL) OR ([LastName] = @Original_LastName))); +SELECT UserID, FirstName, LastName FROM UserTable WHERE (UserID = @UserID) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xss b/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xss new file mode 100644 index 0000000..35047e8 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/TestDataSet.xss @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/app.config b/Code/Chapter 7/C#/Exercise 7.1/app.config new file mode 100644 index 0000000..867d2ba --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/app.config @@ -0,0 +1,22 @@ + + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.exe b/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..d088546e96d8b1a6170aa7638d379c44416a371a GIT binary patch literal 49152 zcmeHw33yb+@^7CrYgRIoJtQ)0GGPe`JIIy|2okmgK>=Zs3^1DHgqaBtFp>lT5mC{L z3km`X?g*}+BB;2aqM)KzQ2_J5}`PT*gL7I+jpanyuA#kVQ&il9{nP zK(PtxZI7wx9fS`S^eCY>QAmIBkr)G=J~Af*;kfqe%jP^iAa^{ab}(iqLp1yxWGo!C zdmm*ixnbU);Woz50^i3Be3%boEY0hj;|2bYB>>3dZB_LK#y>X3rlz?)?qXnEw;f0j z&l-FKK7(P9G`F)<0VC|3?<6pnWwyv^SNRfqAcCtldb)u#0BcP8t)iKfflHIR4rvI$dU+z>4w~ zrt2Ig&qGQdb5ZIf#fKWZL^458ussb$jXJx95*=A|x{-~;h8cTy3zI!oP^+or9uQ=E zG*C|rK)CEdF=I7t?PVd#1MNbqv31wWp3#(tqX1uC9OW5!UOXj@JefdAlb?!uQJ6D? z_>-sz)I{P9hSl01*)2pqg7&nQwYvD(W3%!e@1e+dx%yg zD7}OT>KwEC9A(2jLcK#_O{I@N&pkjwR^I@EhY0-yfz0V%5Wv9+yzc@zUL=kyL=oyn zU+sjL-QQAnquMFY-Cp+B&IuEVpvop2`$Q39cDpFMktoV@Zw?T}2|ophBE$Pc5n^`h zbWMq(JogyNQf}PWB7tXw&zne78NqhG+26I?O|YG5^EOOJ`(wH z7bUD#I%t#dC?TC@D0R-ls4^;(04`^p;+X6{g@(90nOH?!t91KluwTwPPDAmAMXsSD zyiSQ>xYM;43%e0Z8+~XeW~6nH%&=&o>ls)FxqCvQG8W>zx4@|8WjaXh7JySsomF*7v7?mQyP|T4M zfjH@h%mbbDY!RjkSj#6{r?*ez3^G#Fk%Gmd^%i}Xo=lFjCpA$M2Ds5z69zXBUQ?em zh}OBMprw1Lk$kbI%z#MV<}j+j1uXueq}I{zMJUBQ)Vgr9$#WfkJ=X&$r2x#VP@BYB zqYNpmJ-K3SVFAi%nD1!^U6gVv%4D;mAYt!77?27=W~zvr5RZy@38_?(S%l11kvW85 z1i;khxOjUNC)*Q=z&gb+IY41MR~V~cy?ric3+S5&p>2rPH)OF8VKL#e62I1iSrdLT zFIID)=yXAcj}V>wfP2m5sD*n4I#lDqR0bYy6wag3VF;p=Hw4kqPei8%a(YKvzt1DZ zJ6;QVkeAuH`;b3N4BkM#PGxTZw->%G!|Aw5jA5OaN!1B$5o0ipi|1t<)Aa0f@L~Kx zp3YtkfxY}+s!`vX3Fb2AWG0-K9N`Olk zl>nD8DgiEGR03SW*vKV#Gq{qn>LoA-A9G#t8$s>#)SwNavN6U}i-f(7+GmWrPFcVc zo}2I!V_yi!jfrlF7bB3{RmU&-iM|t^?H?On_@rD-&Z83%FGckw3>tN}Mwv86gOmJD zhxmlJDn2q_;;W;@?ZF6E2aCIs(qgQ{tAl~&6eF)oXd#?d3_Rf{jr&?=h*`oX^vWVM zFo6dFs1^ce5@Sll%+cV(@&vXDMKz(G#bgc7&4A&uQCWgtL6|ATPEV%WaIzJd^0xtssk`;lE_bG{3U!Dm{^1AAe@&F8U7MH zW1!l8o$@5q#o(fOwl~_2$%ESdl&{ss#AWDVDcl^dTW3ztuQMwfse~|}Q507LDaq(S z{pGh`JTDw(iqqYS$SAEdDNp+(t7{I?Co%pq$|kV*`$WWWgaXoQGnJ;mff&vmBrt}D zp>9k%7>6|6g#=x?j^%*PKeB8`m=1NnOe>pbk*X$N(x|l77F6;ijY{ibK_x%JI5RQ} z0vZZJA1-MRwT!PEV&Xl|`K0oygtscsg9>h{!N1PXxOr_VH>EXhs<|;YX(5^+&!e=; zZGV9pwhIl5U)Boxgc@_Kp4WwcI5Hls#A6#>B&b0ij6`gL*E6WnLFbo4*#A(@ z>p~6uzh-#8~w40dg$Z zbq18P=*5iZc^9&x4HkoYHWhr2BwGw-zP3@`C(Nkq#*f7i$Zxb5-An!aM)xCx1hN|i zyU`>jRAaOW6RN4B8;iCNNGikV{tyYV2DuC-7VBD>-)AM}2YDXRX@h9A?*Z?68s^*| zuS0Qvrig6zy(Cwx2hjEE9!h0HP!ux!JE^ODGAL806=y9GuR5bV+z>-ZtH&NBAnfbN zQ0Cr^MjJgJq1w4v#Y!}IFhY`AvPkr<7vp{&<*H*>&|wqA%X!4k=|g1uKZU6H>UKUEGHZ`k zz~zazHOLqTSaM*wOlz+3XbI}(8C(c>sXbH%eMM#3G%PbgEkhZBWe}$sltdX_HRZ|n zG2m1_hfb&y6=JvKC+U_t6e zFg!Hzd&-n;uT38IMnUN+6YH zHaDMGIaTzi@-504mBUn8P&`MFR=xvJJ6$0w%l5I;$rwN!Vf$@fK&MqK-Gs=FUlLkSVgNiE`XZ&KNpY&0YU+? z11}%{KT%+`Ujd(hOSeE+^jLsN$l;r?D3RT>P)CqOi5hHCq6mw;8Q#Dm@?SEkU%-C9 z0MVkqBtW$2C#a$M2#v8OT0~^`anupiBBBPjh$#P8E%FQado5D@0{)(t`pf@KFZB!f zdtT}<|M$E!zyjVD7$!;nae4`#=y)6A*3alc5!3l}V8@(cR7?bpBL{Od?FkU=#Yc`` zh8b9@reG=0BN)ehYMqL#4E80?u+n`K^wJzjkW?>17)2b_v4Qw)!{aEQGDHNATdDk; zRFHZ6#l#kF#>A#mP7+a_Z*~EQN5bZCdtq~( z&o;0q&0E11^~GYfFI4r_#RY1|K1(R=;}o_JvRA7=VA47$P(&kZaKVkO!O4GO4S%sf zYY1CB!(!fIK3hnLAl&~hVGCajyQD3AoPTDE222fX;mZ{cY6$SGNWb-)90k6j!gC`v z$&pQr10QeFAB_VaN6W_JAWQ34ACnN%#5nMA2r-cj27)g;nb#6&3}~nK47&=fEGBL!!|bu)O8 zzi-+wcU%;XYj6Z54lWcuN_h+bp~f0w6$SVqIh}RTSrz6T$bmGm6mP@i8bUhK-sFRK zkH3mg$(G|=T2STjI?K|=Iz39IyV&XRrN%lPB~Eu|TbZX=ahJM^I@_*tx;-wXd_cFf zbo$rXmR(uut#msFlshZEZbxZn+vv)oQdjYn&ZTNNB2FBtF(PkR4tD1J6gSFjM5@)PdIx?a&)A_^Y~u&X*m*Pk^vwKB#x~y`cHRLmV7B66 zV{t}17lE(lCdRPvVl~*ZSEe)e!&Jul-HW64iU(dAgSac5%FD?t>@#ZjUAwL?7!&i> zx#?Rx9lC_3#ax$}`=xo^mZ)PxV%EO&*wP_8*VXC1nzeUf*i(H*@9$^m7`eNqEdPOP zzDR0U7X4KTFVz3KWxe_5-_2cG zdXI#>@=c$s%AZVoyz}J4Z~s``=d9`U%UzZo>~y=K$0rHbJ^6LXfE#1Fd_HvF13QPW z8oH!Be%;J3Ur&GcT=tCjq%Xf&dU?$;^P9JKxZ}aHxAIoKnSXlS+q3>%kd!n3#RtcF zJ4~BpetD1n#Ah3(+_z)+>ddNFL#ltZO*`4+_pIJuEY=n7%jiGgi!Jl^-J5yklsAT* zDekf=Yw7W~c7-3hKWxJ1nNMQSpAP->p0GY!TekV;%OQ8P9n`M(R@2#iz1}_4<@LGo ztAF{&f$iSXqmgsJ>2uAKcNNX)^g~gL8=Z68?ie4R@yzU*p=VBfy78eQU+n$afNM@LmWd`?by_`2%rli&QHMZwB1uDp80fd>ZN`s;?UQ>XHzV>?C|PAsc9 zwQbX>hu+!TcG%jH=TElXyKTx&SNy64_jdZ;{>rf(?}Q&r&9}`ek2zA%>bo-&fBU`1 z@9(xhyeIONu~DOzt+~AGLytWD&5HY9x#^MjZ^?h)^)7Gz*lYLm`~MNWE$jTKgQ<$4 z)cEwBGs?DIKXTE^XTQ8==6kI+WFBfYYv0}1u={U%1%AQua!2ND%$iyk_W$&__%}w( ze|B6bVq83RXTJT7nF(*t9{2U|ty|Vy71{RVlU8fDcAdMm?w0*U?Sf%5;!UQpX@_f; z9v(b)?8xW(?B4&~Q$3%*c;#ImrTzBykuw=_>o5Gf!}j+)zg0i@;i((84@lZQzkmPo zP513MdT><#Pvb0KjWaK`%<8p$VZ~1iR&4z+sn^|WKD_l`>23OTn(7#CIr-AsP5*dp zf^vA!BOjzc{B_NYcNbs$Zd99$j~1qXzvHF{lr{0>{TpWC}*&Y-li@Mq4A zPJI1Tboj)z?G{E)Zu8nxr_G1*tBhmkMVx$o%Av?#Us&$3&RjpF_30jU=O68}Ywfb^ zS$$(!_u^r$y>ph`XPaDobleO351t<;RUEC`)w<6YuDn30`pC7im{=)};`)yF#(1kA!+L8M99ao(Cynfu!uj}7l zZ-4dNYxM^gUB4yboqJFIQvZ5&t4$qmIbQYK{G%7^>n}Xf^foy(Qx2V{?DmKKryOCU@;qXLhWd_?c98{QS8C?dw^&PQJg@#i#GD zkKAbAa^&aw+Z4!Pe}31LV*5v<`qm$K_+M|%U-9Iq`ekkJIn--Mo8uqU ze{%7&39*UoR{hrX{$EdTFF(=$OJl;cuP(Ow^rZEXHWxm5ufFFEj~wbXxWi9x&ENjR z;yJO8%^9(ytft`S74`OoV!41C-T6^xYs|>cS%eEBVF$sQF|5NuDzU{T+)n9(D z-*NZ!srN7MxnL5z^S#yQf8U<_`rI##6ApiMRw<}3WOsju-7)F9`s=scvuQ*88&B?^ z&~rh|g2S(0bM3{?B33WnZ|LXhT`|1w@cGAEUHt6Cszv+R4QJm?J@fAT*xN&<_J8zb zD;;}v@AhYNr@j5ge~(jj`A<6)d&1{bUhY&eeLK$n?%Dc~ug<*FyIt|SAJ?Dywf^FR zdnyV7dKY7__TD=$s^mnzdT?6*7Emm?!EJ&A1>D4x%K$Lm9dlO-uzkkEd$Se^m4s! z;_BM6%dbXvFMZ{T`m)fCcRZ3}1ac;d}C4&RqFm>hKp9WOZk2Zk)0vtZ4PD z|DOIF^dIlfZNC2OW_#trYxAE;X?ftn!TA+$^gJ1UbHIdhNBQ8KbJd%^d;jYC`gto> z+jiIN`E=gY-B0~k^TO#Hm8ni=!Jr z|8~H<@i$7j{Vyyn_Pjk~Aee$=H<5wSi=k?H8_dl5Z)ZLE0 zhb{7%hpN)-UCzF;@nDDZ17Eqh&s{AH_dGIl$CvH&AN+oG+Ln@eXBHnEKc}QyUD=)S zpFS}2;SGHjuKBtA-mqt$9a5~{{>FmW(tG{*)g4FJh|3p86^^eyET0`Q*z%<5%x{CH z78L1jORlbc_~C0>Z@IefvY*p7707RodbRGzKiPp^U2dJW;lm9d3_3V4`8jXaoyW2& zo-ehg4BQmX@;55Sex5Ss#_HR;u814befl(gY@fc*rx>#rMomghUi?VnoPSL!er?I? z_pXjE_%6EF!w+`)X4PE<39lT`ZF_ZuxwNV{-1zveyk$iS2T+bN_(dF?$(|ANHNO@5cU(+!G#UU5JPN&g~z#*6JF~TQQZH0@58$l0cA4prk^G}{WfV7dN$P91-hYL8|$YF+#=+|->t7nk&p`PTY z7?{Dzx&lVBMTU`}uLq1{V~j(Laje#;7(>}^;}%d(BOOQ2@))hG$drV#3ScC=%S3Vt zLrAw}A(Y-2LiAUWj$~&-3Fd}%4U1&ga##guWt+ku47ajF;qL=xM`T1;*;Eeiji^F; z1BWkh%Eui3%wb3*akk;`3J$N~a5jf)BX5h`&z{Gzo0T1o+!<+Q`W6KHwjf*Owjf)L z;%N`kMs{lpvi6-k{WQ`^>`;r3S|qUxfJQbdiY)dthg&%uXdxbtg>vsg+R7faB!Oo; z(nj_J&;6C>p68VIRwn7BLR?TavaLuP*-j4ka`-ieCjg;m^iJFm)+)L+(w(D8+kQMf zDf%|htB?+5%Q;-b>DxHZ$I)9r{|PXTwTzKt;#e=hP*xH%6tF6W+RI{p1wA5m2zsq0 z(vfUaEcM7qKr1dwQf_n{<+euJ%6i1v| ztOpEbm&KDl85~~2;aouYLwrU=B~T(ikHgP6JkMc7B5}@0 zOhWCqCQ|J$1L6_zB%&uIk%TrJ4g?Hkg-KNV48TbCM$)FFNOqdTb}cF0i^D7qYdO5X zCF%2GOY+RGIQ)TAe&NuROu7A%H{oP-QZh-N1sKVm0wt1#q-;vEvQ{ai!w}RS$*xEt zttvnmo!s$CXJj5yIc{)Yk8$4-%7FMp$LVAaO0^s-hNr0gSbNn(bu0>HvBH(+VlY`~ksZUDSDtWL799pT>r{uKVBG}?wn zvz_cT`buIqbF7wKkfLF=qquvLu|)|3^@QnD39Dr}`YV7QfqrZViyc3kyt|QfO6F8@$+?Gy+Eiw-_%)mSU_HgVi z^GHJ(uz#u8bp|)EUsTSOhB@$*aJtD9Pu!i&>0|fZeR-#T)B@J)mM;IJQZ}CK{I_@7^v{-%hsFxE%A|#~fS0)*7RM9rR(5 zz|v{@g9RT)UO2m1#h!!AaQ1+TeQ&%Q*iMe!&Eid~==mFbbi5y4VJ%ebEoq|Zb@+?O zdrPV|?V_g>@X@iiq$Q?LFb-^82^amBz(#Ov0j&Eq?oqekGK6O9L}usMBJ;bZ!x(*o zRct@UCaBnPj#a3bY(5IkJ5(&({1dQef!SdBRP!0!ZT!B9WdciKM^tPku*=v*6}tsk zD;A$2%Dn{4#?n>nBVesro{GsKXK>e1k&3kh)|Sl!hW4@EAs28L&#gX8C$(pLRBUL- zPgrs2yAkJG($tVp$>&6U#GCn`2S^h%b&&a2q6 z(BV=Bi{Y!mMdtgF*Nsh5u}6{Djd=yeo)4{K-Pt`Vwlg#u*k*yD_6b<(y|0$DgvCld z*Y}QIrf&69sZ!yo3$H6 zoNr0P!e_8PY^sWlMqVFQ@M?#@Ds@UO~ot`zXEHKOXcn| zr$n3wMzdpA410+^Xr1g8BPh*&7amW;?#3a1LriVnjgTs5fa%L zX`p_%bTx+#4qbqeY$i`vaahaY5)PMhcpryrIed)6&44ZB*8p>+U4YSSuXGx-atNQP zKj##S|g`+9c34XGXbMn6^FGPF5z%FhyUhf&r0iCL^DZ#k;6AzU_O)w z>if!){C$f-fWNdDE?HEH95n=#u&7)~k`tnaONp#Cpo3*_I5;XF^-hi&3s@R;HQ7jMB}Z7-0d}`OCWo+G zE45{sb(35Lo)2$hj3fDA6F`L=l zG5^pdGFroIRnw#)@lOTZ8nafnmc1YI7e^fU+;bXx0fS*I>1CV)3!V!I6 zwmjhnP}V1$1wXAmQu(SQm2FQ*G@M1*R)(|Czdh0?Eg6PXb}XT{!J;3iA7BX4pR^1? zZbD)tJIgw9*pI`Z9F9#SeQ1S|C|Sae=o2NHe^VK)GEy0>E>iib;&W(qK;IfNbEU_0 z6^YjxDD5;nrn?d8CAvov%MBTzM6(P%jkOH@2Z_U_&)HXr}=v)hQ8omiFEIz#|&fiLz130Wb$6P8uUo!030smiGGphCf#7{E72UED&2~7sO6eTA`BKe^>9;}WDFf&|{nlG5@~<8uAdmhce$BQ2i> z{ezY-7$1Y2SBz`H`7z|jB|i#i2h8B5cIk&E5100W=Nr&hP%e8UIhq~PXNUh{Jft73 zLW_ygo29k-aC55Zs6I9&U;a05%UONTlyp;HiPkN<^jD_zH0{!lONnO7_1B~vWxMp( zAsu2M4K0S-Q@)WbhIJ|9O=GwPEYi~{lTDe>q}bFNJo8LxxU=dQ;5>F3u$b)yyqME9~c9%po?vlHk7weC5I5=#9 z=?CLfKpgmmFEF(-*#NUmg8}nRQ^R%UujM#-oBXZ(FZq7m*Sa5dCv>NEzw7FCvHC3i z_4=*)o%#>-C-lrp{L=WlG1Qb`y25n5snUeA z0<4>2%~%p)pG~df-c1X0tx3gHl zRO}pO))7%%#(kS~<}n0N#+nt!H+Z8VUS`4auxpdpa6lP1XSN0$#ZO(v;M_!JV#!rvu8NUr#o|JIm^An9OWgYPPads_&J}Sgc3nWKyg2vm&q(~RCpmRNTC2N z0+~Dvn$n-2VA{RX9;V(?Io?%XqRjTBQJX!y~@ra#$6;=qzPEl#MF74uV)7^!7Sj<*-n(#_C}?E>DF5b@R$y zUYDcPHP`7c=nd$>ELa8IUBK^ZXO&ui{sB4A)J)|W>6qn0Q}Muf!_xkoLPaU1D>xNd zm0mB5TO?}rF=UpMjC9Vm&=C)yKsgT{CUKQ}J&dYtg6tpqIcVf8 zXNeZBvP%(9SiuaXvb02NzmpGb1f5{2zi!ov6Us^%zT&AD1X)K3Fii*#WPZjpVJG5O zQ$wBJ2DYQnM~YtMa3dZfkqrlIq=w)8e%l007$RKq?ibV&f1MQeN}Y2Gt16s+BF$aU zg@~F}R1N(#sRr>|ph*+Y!V^3!FVj<1UW^$Bj?Z{H+fiCt=wevI-oc|6O9VIIIFdU$6UY8 z0&OUmYd6%%*Zpi+^*>}yp6N4MJlN*ZX$!`N=JEB;}Ymq|JJB+ zc8=3ijKw{zavNtBy1apH(uSAIF}+;zV7G*|kF%(9`gB@6_)7~KViv9Ke0w2n4M&Qi zE8IR?3IcZrny}~al*cblEyx?_brrcvUEY9ZYCB8X7qb$+bE0UOCpJ-hRRasCn=Dln z1x>Nf)m9P|#Z?N`!}n|rT~BOk@(L;|Dik*s$=c>jTPL`@*x;3W-FTO6L8Yg{Sza>2 zQKeLRxu0fMdX)m~N%_rZ#6{MO1 z!U&CDB6$#XO2*Qu1J{xEM0`T@1=scd=xPiaz|3dHBd&S zdiV;E?*{pj7fy|FfRhf@mq$C@nDWYeo(*rLr+KeJL@%M41%+};P$=K&@xYF>sm{S> zPnk|qu)@y6QBL=6;yfpSNt`Ws0w{UKIBUR;W;Q=Hp@1>e30t6!fWTXz9(ak<9e$fB zODpEP-oP`UVjO^Bx5N*}{BcEuDW`j+!k6&b2v+{gf(mCb^lnrrn67PpRW?|mGEj!L zKWz{lJ+A50t7yt}#T^jJ$g_%+IpnMXiinpNU?0|C_v_o4VM>_gLO1x!AZx6m1WXcY z;P!54Krk96Q|!{64fc~X2XTj0)y*448+t@@b;pWk(FjzrfFx0T=HSZ)8d~TS z-_8qhVwy{YO*Kh@h_XEu4xDs&f-uS(fpDw_3N=a8Y#bvN(75wrQ_f2TQ}SIN4-^&+ zQx~QAPB#JyTCdrHPjI9mn?(+TMG{s5ZW?FU+EU*E=XOxrg;7xkM-hh`#6V3S?{?9_ zs!CKXMj04_#R{DZ5~s?=fBY7r)@p%L8@jN4(D^Ub&0Lt|_~rtGP+R+o?pE72#}l|Q zpIPaoV&ixhysjC z!a<=U8hA{(gKviX`MgUo?PFCz8&7`njX+U^@u}`P8O*Hic6pUNK)KzHDw5c}8{b_s zsux0W9^x0xl@>&Vc1J}8ypnH>G1+*;30Na$EyKgcmAl|jepZ?g)lysyn)dR_i*cYp zn>?~bW@)K1J12|pIteEq9#vi{3?;+~n>pr;aF$Q^&R|9AUOorWzRXc7a$V)4ii<08 zrp4{+n4@AoXM`SJREfBYtpE*o&ZwelX27@zc7!3WInELh2dQIxnI7gY;`S2bjjAR) z(*Rev)lg6FoMI?k#gwnIP_X+*;uPSx=?sSd!6CDx<*DPBZw}@Vk;) zq>+=5o2hx?_*FQWRs#vpHnk0_Zy+mBGtuGV^hIk>PLY&{JE>Ro(@-_O zkY$7)DN2PyFaoM!(Qq`}MF<*xF)k zP^uj=`EdVsmjl$lHu1FT+ z1OSV_F_lht6~nBYAIxEC)n90w|v zHMlNMwbEOWScHPB@iyFzlFq6b>rU_e3FgRx&VTljCf4>+uLHu(*qN8&x#X*!dj1^= ztc8$kLks97Qmp%>q-5hoPnF>Izu<{=Dg=$JSPDCpBe#tAm>Za|oeR12YAVlPXy>Kg zM#V1K&ZZ==h(IbEdZ||awbxm(EB?M57OT}^gMVo+&0_g~RpMWH7uBV`O4H$wq_LJ7 zhmBPC3*eT7C<1^mK|uXte@>wBs8jfT&7U=J_83cN{s#};1Ribs^P;axbJg%VO z0(B}y|53F3JJ!V`A_FdE-9LLB8q4^fmS)kKJex1Rvk;2-+^*67Swx#JSZn_X)My%i z7CdYY9;4Ijqvf+!npHGPgA!pwP|}U42meaUg$$ZCis98Xf7tM3MjGYxzKX|97oMl1 zF(Q24#(CYmyoX28VwBW8zXT;&h}K4yO7&9jP-HI0KU~1|Nh(0f4XNe0myAVEfHpYd zMg9zM(Mtkx16S@0@OUwj`r&S~u1HZ%1+UG8ny3wQADUK6@Qj&;c6p#Xi_m7yJlLGY z3tdPn8v9hgms*<{T-R*OII~g5Y~07`uc;em+H`PtWfSl`;)q~<3&;xP(A5*r3J>m? zD?=^C$fI~bvyKZMbD|EN)56M`|LBQUs+Y zqsYW2#7_p#c-+>QixO1Qj(>hW>TKc|fbU>PBv+fx6{jXo@yR2;RPba%!5l7SB6QFu zJ#7H}nWV}0<@Ueh=(-DgTv8caU60-aIHt7?bPz7`TwZx z4ZAcIvhX}->r2^*b!dvCar;TqpSPH`Z%R@_y;yC29-3RgySR`WU?kjR6jFc1Imj%H zm79z^bE$m8$|iGzUIj-O0R!i9Q&ZP9mO$kPH!7csd%Yv@R4Hjo?wk!xZ9#5E<(ih( zP?x}A(0E)mbbF11Tv>B?>Hr#8WUoAYuci);ZK^dax^Y`r-GXs=#5xDY5To+1n420- zO>Wxgnqo~GpsDWAN;Ec3^Qiyd8}i(cAFwp3a76(2Uk7d^7NEhi^}O`{FwQ-%NaS@y#>Z zWGUI&8p&|n>23{2xk$a45_T2|YJ$#a$v1(?I>s_iZ)4U30873Bby)HVznZ{g6q6|t zK^ayDC7nXF3lC^m%d9i?b}DN}SxQ|^U^42E4WvMV;I)O?^w!E`tIb-K%mr0KgKD0N zC6U#r#thV&Y(_>5&k!&f0<6iAkp^(p)DkZ*kZb~TinV4Tr!O&*ay84S?rPL+HrPp& zpe`h{nF&y{ll4YR&2lrfI~fTS2c&Yz1~dUlqqSxQf%^u|;!}TyP z+O*za<|Kmasdh`vS2~jK#C6=0h3yqd=lXWp~8Z>3TWnXANGQOD`z*1}A#cD&y z1TZJ0){5TDpf=UU!jw`9Xo4*fY{`*=jhX}Q_M9)(WYbHL$&s=kcA+Z5!$qMC@za+x z4iF4d3zObjbC&-teVwNY3j#$%tMA5os2IyV83W9w{ds<8ik z|9$@QA5duUzJF}!ljcqlXOEn{i)=}?U>S|3U9UvEh7)v6+Oy-TxL(a#{Fk|Nh*(>>o1yLX$85H4>FIbC2>v*0c;Mv)#xS-_ z)J96+?QHnqk1XJ=KXTl7x1$2rPka|%aODJ-nK^GlVQDt8QhRXT&z^e}-+LJwTaZ&Q z>f7I?zG;P74<+5*#Sy;1NUhK9Hz~6M7dSk&EZlitS>c&9ByVKq2wN9hew8gtQLdjv zx93d4y$AF-nXUJv?6w-xdy=Lv-2ylXSLi44J9~o2X%!`CG@jF>$1K&)jg+=&SnzK} z0G~ex*Z_Y)m6at_-Z*KAAfC#)97lAo1ZVzy#aYRp{Eml`n2Pv3X$so)q~@2 z|MeWsz&7deC;1>Z@R|%AcLYnKKlCH+s3_X>XW zLDzoh^GAmzl$VZWkYC1CkU@W{NnCTHd^%D|_kF2OypWW)lCBETbr(9;*N*EO*QH(6 zN&`1t@1oBzyh%aASuJj3;ic)yPzA22h)V@@J&5ruSHUzJdkhO48{XGIHlP>1jo`X8 zJTTJipt+5{HI|_rI8l3ga2p1fZD`4ccI?B;WWv^T?T_w` zD1`-V@X_ENXjqQwYyLD_pxFY=7HGCWvjv(h&}@Nb3p87x*#gZL_^-CW8u2$+#G9)B ut6S2ne6t0bEzoR%W(zc1pxFY=7HGCWvjv(h&}@Nb3p87x*#duHf&T-C&5g(a literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.exe.config b/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.exe.config new file mode 100644 index 0000000..867d2ba --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.exe.config @@ -0,0 +1,22 @@ + + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.pdb b/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/Exercise 7.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..acdc8afecabfad0f50ae17c4eece9a99c1b0387c GIT binary patch literal 67072 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 + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/WindowsApplication3.exe.config b/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/WindowsApplication3.exe.config new file mode 100644 index 0000000..abaa5de --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/WindowsApplication3.exe.config @@ -0,0 +1,22 @@ + + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/WindowsApplication3.vshost.exe b/Code/Chapter 7/C#/Exercise 7.1/bin/Debug/WindowsApplication3.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.1/obj/Debug/Exercise 7.1.csproj.GenerateResource.Cache b/Code/Chapter 7/C#/Exercise 7.1/obj/Debug/Exercise 7.1.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..5a29894d453845cfacc72f0cd4ad3b5c90bef50a GIT binary patch literal 842 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.1/obj/Debug/Exercise 7.1.pdb b/Code/Chapter 7/C#/Exercise 7.1/obj/Debug/Exercise 7.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..acdc8afecabfad0f50ae17c4eece9a99c1b0387c GIT binary patch literal 67072 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 vpw&|pNniI$8x;Tm*CF$_ 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.1/obj/Debug/Exercise_7_1.Properties.Resources.resources b/Code/Chapter 7/C#/Exercise 7.1/obj/Debug/Exercise_7_1.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYwE6`yXT&B?zwla&pr7Pascw|ckTdha+Ee@;C}|&6qi2vRtdlCe|Pvzb@tui z)u;T#Zp2YNb~kO$4Z|q4*R>rtL)#DSxuvST8P&8iI9PnJWqNrYIID8_*`J@EX|Hwz zrQv<502ImT&A84ON1J_$U4YHO%KRo~{Ff2i?Bq*hTnuZ!`Rk4?GE>3zQD8~%DWD*U z*xN1v1ABQNhqh^NhhBm7V>@Uk)mtg)$$kRLOsp-xNttE?mz+3>JyOQEDI&5_dmJKr z%87LlQPGGlQAcbs^qp-AnAu4SzF+dnCcatd!NFnRojyPr?tc%)txi&TOGQs1_}=yMNGQ!9=)_idpIHDJ{J=%TrBo(i)uDu-*NPfAE+qoqa7;K z4q?7{9KGX5VQmZ1k#qYfC(Ptr-@+lzqeDZmVpdusV!DfIi9Q(2 zahyr2etAZLeB)zI!9?Vp`N(!H6^8h57cMHX{G>WcA7R_YDsv5?2=t6 z1I{xe^Jip2i&XUF;5-eF)Kz?w_#5~U;SKzr@aO6U)r(u|Z-hrI!6z+`{1XO7);Fvo zUbVhY_?Cfxu*AY&C@tcB;zit-6ZnvUCkdrxt7duIkI&!)Gi4~XA73HW&p3Lx5pQ$m z5N@JG_&HU(+Pav1nc~@Y{qh^LGnB#u#RC84j!TCb0uJLwG;oqTzc6zh?N?xF@gR8lJ&V z3BOJqkNES%Eyk2Hd;JDJMeiMTobVZSiZD?#lv|W4?s$*E1oohhu$R8)x2d+Py~7R3 zDk5VmJZX^KJg+_HFu$c^ z&rkH)qiYjRcP^?rP0fMWOuQ%#{B=~XB&puS()!cdOIwsP8-*Kwy&1cyABC81Gy>l< zczgbgo9MQ3chxp_&JEqVjuE#!CEZp&%>(8J{=W84~~~cG3q*9 z+iO;MZLMSn-saWxhD*bXVUoI`r;UxdjA!swourH~WWWqByCTq5_()-vBxj`=rv9d8 zdNvz=pyR5JFZUi;qX) z`9#OF{6u#Rwmmqlx&3acYhBUmm4-&kQ^6l|!&;zmTBkxS#L;Gp(+)~+1X(69og{j5 zJ-A}B)FCdrL9?^jvTzjYFlAxt0P{7UyEGF=-%8x|V26Wy1l5#IcB;=*kL=>2lwNBC z9M5d{&SLXe^R-sVbpxz6wCB6QUHI({ZK++5Ai6f>e9g{d3mP%cx{rj|8Xjez;El0N zZp8aVq$#DEatAABjLs8JsZx2YuP;{~EDu`wK3eLb=FmhzwXPrG4RH1+O1VB& z;s;F`g?TDuO)Qrd6sG6g)U~VT$~iU4=ZqVSePJ>5Q|^I1OIZ-rPsynvGu3=!vKsBG z_L{MuUOBZIvvxqEoo83R^|p~!9uV9X?8B}72FfIBvr#-31m|2ogt@!4HdmfV?;L|Y zm8tz-LS^16hk@=(I1jFxKI&ub8ms*cGk1toa32eZaG@$lBlFS&;Uic@?cv>XMsK z?siU!QNSF8yZ&|c8-h*=2 t?af{{Z<0gc^JdO8qm(;#le-l#8vCyEBp3H=v$OvhD<|&R4BXR!{~IxBj-CJj literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.1/obj/Debug/TempPE/TestDataSet.Designer.cs.dll b/Code/Chapter 7/C#/Exercise 7.1/obj/Debug/TempPE/TestDataSet.Designer.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..a5f50259379e16b424e91d013f360f77b7823fc5 GIT binary patch literal 36864 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.1/obj/Exercise 7.1.csproj.FileList.txt b/Code/Chapter 7/C#/Exercise 7.1/obj/Exercise 7.1.csproj.FileList.txt new file mode 100644 index 0000000..25341c3 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/obj/Exercise 7.1.csproj.FileList.txt @@ -0,0 +1,9 @@ +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_7_1.Properties.Resources.resources +obj\Debug\Exercise 7.1.csproj.GenerateResource.Cache +obj\Debug\Exercise_7_1.Form1.resources +bin\Debug\Exercise 7.1.exe.config +bin\Debug\Exercise 7.1.exe +bin\Debug\Exercise 7.1.pdb +obj\Debug\Exercise 7.1.exe +obj\Debug\Exercise 7.1.pdb diff --git a/Code/Chapter 7/C#/Exercise 7.1/obj/WindowsApplication3.csproj.FileList.txt b/Code/Chapter 7/C#/Exercise 7.1/obj/WindowsApplication3.csproj.FileList.txt new file mode 100644 index 0000000..3ccecde --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.1/obj/WindowsApplication3.csproj.FileList.txt @@ -0,0 +1 @@ +bin\Debug\WindowsApplication3.exe.config diff --git a/Code/Chapter 7/C#/Exercise 7.2/Exercise 7.2.csproj b/Code/Chapter 7/C#/Exercise 7.2/Exercise 7.2.csproj new file mode 100644 index 0000000..9a6dc9b --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.2/Exercise 7.2.csproj @@ -0,0 +1,64 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {DDD5F5E2-EECC-4B3C-B70F-7E306C263D81} + WinExe + Exercise_7_2 + Exercise 7.2 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.2/Exercise 7.2.csproj.user b/Code/Chapter 7/C#/Exercise 7.2/Exercise 7.2.csproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.2/Exercise 7.2.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.2/Form1.Designer.cs b/Code/Chapter 7/C#/Exercise 7.2/Form1.Designer.cs new file mode 100644 index 0000000..2429649 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.2/Form1.Designer.cs @@ -0,0 +1,81 @@ +namespace Exercise_7_2 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.datagridView = new System.Windows.Forms.DataGridView(); + this.buttonFillData = new System.Windows.Forms.Button(); + this.buttonBind = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.datagridView)).BeginInit(); + this.SuspendLayout(); + // + // datagridView + // + this.datagridView.Location = new System.Drawing.Point(1, -1); + this.datagridView.Name = "datagridView"; + this.datagridView.Size = new System.Drawing.Size(280, 244); + this.datagridView.TabIndex = 0; + // + // buttonFillData + // + this.buttonFillData.Location = new System.Drawing.Point(124, 250); + this.buttonFillData.Name = "buttonFillData"; + this.buttonFillData.Size = new System.Drawing.Size(75, 23); + this.buttonFillData.TabIndex = 1; + this.buttonFillData.Text = "Fill Data"; + this.buttonFillData.Click += new System.EventHandler(this.buttonFillData_Click); + // + // buttonBind + // + this.buttonBind.Location = new System.Drawing.Point(206, 250); + this.buttonBind.Name = "buttonBind"; + this.buttonBind.Size = new System.Drawing.Size(75, 23); + this.buttonBind.TabIndex = 2; + this.buttonBind.Text = "DataBind"; + this.buttonBind.Click += new System.EventHandler(this.buttonBind_Click); + // + // Form1 + // + this.ClientSize = new System.Drawing.Size(282, 274); + this.Controls.Add(this.buttonBind); + this.Controls.Add(this.buttonFillData); + this.Controls.Add(this.datagridView); + this.Name = "Form1"; + this.Text = "Exercise 7.2"; + ((System.ComponentModel.ISupportInitialize)(this.datagridView)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView datagridView; + private System.Windows.Forms.Button buttonFillData; + private System.Windows.Forms.Button buttonBind; + } +} + diff --git a/Code/Chapter 7/C#/Exercise 7.2/Form1.cs b/Code/Chapter 7/C#/Exercise 7.2/Form1.cs new file mode 100644 index 0000000..c585b37 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.2/Form1.cs @@ -0,0 +1,47 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; +using System.Data.SqlClient; + +#endregion + +namespace Exercise_7_2 +{ + partial class Form1 : Form + { + private DataTable userTable; + + public Form1() + { + InitializeComponent(); + userTable = new DataTable(); + } + + private void buttonFillData_Click(object sender, EventArgs e) + { + // Never hard code connection strings. + // Usually you would get this from a config file + string connectionString = + "Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI;" ; + + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = testConnection.CreateCommand(); + testCommand.CommandText = "Select FirstName, LastName from userTable"; + SqlDataAdapter dataAdapter = new SqlDataAdapter(testCommand); + + dataAdapter.Fill(userTable); + } // testConnection.Dispose called automatically. + } + + private void buttonBind_Click(object sender, EventArgs e) + { + datagridView.DataSource = userTable; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.2/Form1.resx b/Code/Chapter 7/C#/Exercise 7.2/Form1.resx new file mode 100644 index 0000000..02bbfa2 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.2/Form1.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.2/Program.cs b/Code/Chapter 7/C#/Exercise 7.2/Program.cs new file mode 100644 index 0000000..8e9f8b7 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.2/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_7_2 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.2/Properties/AssemblyInfo.cs b/Code/Chapter 7/C#/Exercise 7.2/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..048ed37 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.2/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_7_2")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_7_2")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 7/C#/Exercise 7.2/Properties/Resources.cs b/Code/Chapter 7/C#/Exercise 7.2/Properties/Resources.cs new file mode 100644 index 0000000..5340180 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.2/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_7_2.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.2/Properties/Resources.resx b/Code/Chapter 7/C#/Exercise 7.2/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.2/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.2/Properties/Settings.cs b/Code/Chapter 7/C#/Exercise 7.2/Properties/Settings.cs new file mode 100644 index 0000000..81ed45d --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.2/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_7_2.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.2/Properties/Settings.settings b/Code/Chapter 7/C#/Exercise 7.2/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.2/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.2/bin/Debug/Exercise 7.2.exe b/Code/Chapter 7/C#/Exercise 7.2/bin/Debug/Exercise 7.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..9a443fc7896afcf8a43ec04c32042d24d58d921d GIT binary patch literal 20480 zcmeHNeT)^=6+bg?-Un}CW#95CC<6<+EX(Wiu`URd{RCDPSa}O;?Z#!^d&4sF-ppfW z9_&h?OG>r2je#a58fzkr#-^=}ZB1&8^`kLuY}C|RVj7L2jcF_<*3>lBq}boNGxPQ> zOO5s~o6cS4%suCxd(OGPd+*#i^Vo6oDT)x0g6rdti5|n9OS_<-Ovce%yXf&+dUVzyq=yhBe~Q!-QPphCq-z% zK%pz}cAjdb8Yw}fLc$lyldT{su6A5ZRNQ8Iaib>U=R1w#f}D#i#9#y;+$+sOrv$s( zxzz|7yPrcLC_YA2enF3iT0&! z$Id|_Vrxf*$I^nUsmn%kUYluyX+v5O&&vL9#rwA zLXnShn^nhs<;Ik_3DMlyPCYnl)`ZB0)slrY8>&J_od=2f0fKbqu0`Yq{vc;yI)QC8eCWT3>S|Ytm~lC)ATGD8@d#_?oHqdIX7* zcG6HBXX8y*%Z*QFI>rk_T;!X7}64k&ClwoHY8bw4)NFHZ~L!(D=z4*KLp2QT=X51yUbkxfnzee%y7diHos~`3DC&XtjP7E=R7!tGH~-_9 z|5xMg%-ql^@lzFrzwsSr@LF5iR=2SvN(ImaCamE&k&F8SSYZtr*EY-%hc)J*)3?#R zVNZr0z{8h64>oMw)7y>vqu@umt+QZdSs4ZJNrSV$FHK{YA4zKnk4mocvmNFM3xUv$ z&j?!M*ICZ6V^8oJ6#9XT*C_Yr9*0Q-_bob!W&IF+2lO001$kW3Ko^6iXs6UECFy{4 z5}Gedzeb(p3!t~ieR7hH2zpA;9|`&!LEjMcpMuVfu;yApZ;5P=WXMKfNje)j5lPZB zg8n1IF~|ygU!-UlWVh0)%%OdtNjj;Vq=WQB3?)TU^n#M2D+JvTZH%U9kErKSPtxtt zldy14l*jc#^a)7*0!fnI6?A5-Pp+lr*i-P;1Ioq2!kf{Vw15@^Rp!RA>C@n*!Cnmf zOuCLX18JaxUNdPB+%$YyW;D+WI!l_1dZV-ev`x^Pq(#`c_ep8c2c^}Zf0j0bPM5o= zUuEyl(gnmK(KiHlg8okRn7Oef+;;oCti;^?f;&OB)BtXJ1Gk-^JHRQlSa7H5Zm9{8 ztrOgt#LuKwaE}Sjvl62pdz$mkM_Kb}!F^45h|%+Yzj^Xjw9Q(|9?m4153;HKWj-!49R>(^FX)G$8huDtMjxVSQV-Tuos^XxrumW` zeH2k0iT)P*g!Pw84+7cc(qqw=Xq9v>`U>c)pmoB|e9xwIG5Qv*m*&SVP%k9!(~amG z!}`Fs2K_R2TN-PS>kYIJbOo&e&Cwv}1|jbfbi0ses7LChd!-qYA?VYzU3#7l(c?J6 zJ|sy}FgH=m644XV^`I|HgP`5=5M*(RfYyli>EI-+?Kmmp-i{bdyv+v>${Uz%wh$Bv zGs|VN?C51=Cod!G6x*%3Z<$)LhP=X!H)E0UZ(m%$ofjOJjXSJ-xuAcMdPa3SXE?gr zmR_CKM|Ij_*~L{A@o?MlYU=lX_9C1;u6XJOowzlP){<_!hVD>sNIB#mV}pj7w~jbz zHtGn|6dabm3hm0?s^{FGLziXlH%7{~=HeKoj#3GSrKktKJ2gk2P%f4%Q#V}Ne#pzr~?$!zo$l(`y>8p%skV^sbtK~VU$6t=Q*n5& zRw(PZXU5E&kI#ti`eLu~()WZ4_B%9F8vz8vw(jg0v4cRj;sE5)d%*gyCB5c;ODOt0 zv6o;H14Aqe+MTL;Age^OzkrDp)8;sOFh*qGlhQ z+SFy0#%yEcfIGDbD==TqU8aF&S~JI{_L#KHrZ#u$PR=$;JeaAC1BP4BC&d2nyA5r` zv>eySVae&)^2i7;hzT`MhTX$!wX#2UdoOos4%8^TR<$af`NS_`ud@CS%qMAiS_6O=uk&KPd#Q{M2&@8F6w@;4&sL0%Cmy^ zXgYJKfQ<*!#5Kz_{RJzyViB=Wm#u3qKOzJdOfGk386FAU*`QHG>M4o=!3uln$ZI7R zuDi3<96v+E*jbnni3DW^ItC8FUw&dc_F@fovc>D~Em2~dI2?W>A4t>*+3e~bo#@% z28+yc{OdtSl``m17D_s8qDBN_p@W9|a=c*l!jXYM4Ixpf%MX&ZMxZ|cvkuxlO&1&w zmWQn)K(?;K8rx?pW9X5=Uq9?_Aj)uSL1?(p z*yUl_hyrJuutfE{A#tk4Byy}*-#qnXY}JOHXI?pf_jm6|{*@BHxNT_f{I%!rjKorP ziYiHRL?sE#Y+UnkT@_PhX<=$HzuJPGDaRJ#tt2&5Nq|7G4A*j&EMu}9DS`wZjmwxU zXOp#2kh(owO+@07oOopO@K@{3C9jXdbRr>Ii-I0v$-;SDPn8vwQe&cOL{S|-5o7WA z35XJ@tER`JwW(uZQ{#8aYk17N{8kZ4ng3#x_y79BZ#)EM`F% z%Tmi^C5~{}aNYRB3CVwVi?SuWO;TOuuu|Jqb#+TiE7qDs(}U--c&j4xi;Etp;5!A% z)tn~{$a4m5t+dlJdq#7*IE1j*vHOHBzR&popNQZ2j^X;-T3k!S_p>wxJ+mK1qhG?5#uM9GfIgm-1P-p}R52p!|gEYQRmt2j69hhPx~q4!oBh z{)VFK={z2jTs~e#YP+a~Bt#%YAVeTUAVeTUAVeTUAVlD^Bf!5m;I|^=Zj<|Zzf<6M z!zpss+lK3=cA^jXW!osA@nn60Y3klXR?mLl&?Gl>5Qr^4heRY-S z?V3Tn;d}SZz8wX3|CQdC;7hWQ?L|6f`*|%sTq1?skA#fNQsQ0%Xw@Kfkg{>AXrR>; z?L?0#1Bg{ZOfIxI&mFmpCH(XZotDbqTBLu#0RCq{?&Z%qI8Fs~!cJ+DpG!02VPwX` zoEf8RB>w#+u(4Mpm`+uUtB^yth&*}~zS6g%wg&uK)YyL=`tpc50k(1HL^?=ak<0vt zj64l(&egeW?+jds8w5uIf`}yAAy)VD_ z%X|4l-g6al;N<*%zk7c7@44rmbMAfbHMY0LyAoa7dZM)pYv;|2Ha68qmsV6(jvG5= zb(04anEzfam+K;W;CU;2GV=En=z-*z!eb{s8G+Na2dazrdxgmH>DvC&z1?U0eO07d zdThK!$OTA45wtMLpAk5vd!Y4_=C-cZT{~l)J&9;bXInH8>*;ClyfM+7XxZN05#8C+ z(Y~X(Etc5P)79PFy1k{lCl-&+T-w~))fQ`Ro#`GeZI11U#ar7GG0cZW&E4^?8{;iI zD_RrY!bH4v;kNdUSYlzG3ftBd-&s{b9ouj0jKx2lGHGCUEZ)-|OEkx0iLPDo)>z_G zFWHUNr&F-s&5Y3^+> zLH)0LO~KfA&J%+6R95Z?BZ@U*X@M@!;Lp zm2P{r^w|qN@57Qc&u)3NbLEfQzOwFn$7)`?BmUR}G8+Wvl}%ZFVBg*Uear1l1-F0n z(B&meYR%!5%;&wJWT$~SehIv?Hzi-v1JV%}fs4V5!6l&d#5v$3@C#rRoDNFANH0_m5TU>P_IoDE8!l!J3Yn&Zs_=YtEt3a|>S1Q&vfz&YTl4!IitHyUsF zamf|kb@QHHUw2=mJb9}3+o{q%&9f-;@(>eJet^^QKVWe_lX<&|X9J<$34-{wwuk5W zaOSnmZ{)tFBRS@y2XdwVU)lF|^X~Io zF0Q$9*1eBjU-o1^>N=8V?t36tG_sNcv-KRCg*?h9`Wb?`P zlg;OBLM~4$$kq7&$s^ByvgBad2Vc7B-V2|<=Z`1n)BkT?)lJML(cE}#^qTcou5GUE zjY`!jDpfnvJzCma7mP}6=ndLj84TJGmum5|+<8lMcUOFei)sxj(3LR`RC~#AYUyHU z!>gFfrN6r5YW&0cU-Lbv12n(g+?Nk0zc1)}X+DPM|74yi&XZ~W%NLaIDLIor81@03 z?oeDP3Q8xqxRd-srx)Z0YVJ!vNH=)iN8l`K-vo_A6_Ij)q3msRHvy`h(XWBhOrI~v z)%d@8&95hJSWhC)uSU)BUj5ZSyiB|rP35b!Ag@N;@!s*$*Y6VV zqo8<|7Ubpjl!9E1e|Y`Z{B-ku6xW*X;rZ?6Xr}ocUf-SnS3piRUQyBCt@w`@pS<=T z*E}<8Ou_g6;?Ned_Zq#`CWcdpP^j!ED9Ugf(6s~QbD4Lc)Q7jnGAK6XfI1hqaU=Qi zZjAM8b_+&hOJ~cCvA7;j@(N2&Kr4A)?>hdmURi0=Es37kPT3spx?;_G^G@pC<(S|x z@vE{@w^nUlx_MDW?^=a^OHUL3G%s4Jx>2-ggCc6RO=VSOm4HoGvqI^Mm0rbj)qOb` z;GW-e~In?`|ZHUwsU~I6w8TB^?&WIj-Fj{GZj_$TWQz^-qSmd@6+mc)sdnz z_IobnGu1!DW(1li4!ACUoEy_W>;r8M_0K^nxPkZdj^oSJKe-zJ@cN&N`S}5Lmn>gz z+8HtSKbK}cm+1nCdR|g(oMGsBw7105dmW%ZA0uXNa%=ixi!K0ckEC?euipDODP4mv zkdz&O9g+l9Zc=44SCZAxMbL33qAa`PZtwzP(Px2Ek-;-end0|lF=FJB+qAk~MjjDRty6-i#l_HdU^loId>DKNJPKxlT#bKt z{%a?AuzF1OLXI=eC#UB^=_x%n)cK~eP#t|h`BYeabcDhLL2Hh8iZ}4gBvrJw_H@OK z4n30xcY@+|=|k1!xom@E{|G3E@K1FTNX8HA0$@)iCHo)0_wjpb(^yTS{v3toLAzE> z_5^`;rM=;KFwV6KZgl6SlBva4waiT=<3X2lc(rt%+wdypav4Tl>dn!L)q$fG!>Cf< za~i|0+3*H0b)tcKtWG-x<7BwG$(({|G^b$b26GB#DDeh226S7V&)MXu4H+dMA5F<9 z9eElRr&q#SARq0@c2X!$=-DlX5B3+d>5jGQlv{+!Q8Yf}24oW)RRqMh%Ki(V|4It<-y%AI47SwXb>*7D^ z5%DT5$UBr+kw(Pj>tawEDdnrQV7?j!$Ls2=(GjoGg1j0f$Lr!s8eQ=!Ey$~pbG)t& z+2UYBi9rn|wk3&kb#SpQNuuhjv|NpU`25F9r=XNjWF z=}<7KeV-Z7#n9Q%dgvVJ)lkY#c0;Lq@>VFk$v=Y1M|=n>AMvlC%%$XW&?@N9pqyVy zz7ORLQ!+vw*zZb?gW^9X&xbC9UJU&rv=%CVa1&Ji;7!n#&|9Iap!Y#*pbtQ6p$|h> zL%##9gFXel96FY_#*)KW?^19BcmcQyoDJ&vOmGcY36_Hu;6|{{+~;ci!|^}Gy{__u zU?%W2DR7@!b?GblK9}_q&%^KbiVFPmVv?Cc6VcPN!cp?y>4suI4?mXYe7EJKIVgeW zAbG&sZ!GU+lJAE}?>c_xf1)~!&de5P3#F(0Q^l%E$nyX=gM6Q`^_XIHaPNDbN5D{G zXZpnVN3+K{O}~(5QDpOO^#ksk=?51x>Y*G#(1#rZ&(UB%5Hrfv_@DLtx7Jkrbo*`5 zZ+!Q$SD!!YCY7ytY;QfU8I!4=Z`pb>MkyesSNt!oo|qNE*jB|rvSRvVf;lVb`s4$0 z)|h_HTPk6-#n)CdHSs#hTO}e=H-ZF%GszI!1Mo zj$z!5j`8#EjXSwHB0dd+-e*Zjoy$~zs4o;_l^kjO)Gpfa6gSF$k?RM%{-mo)e`UO9BA_TQeHZ>`?Md%3p%mi^xQ zJC*N<{pas(2JJr=|GQrUiA$P;qZL87Ge@DdkZ+lTN~Ua((>(q+{Lgv0SW0M&KG*(# zotp^JnwHibySfw2^=rPgYF%_ewDFc`O;^_r8x6MykCtXXa@03`7ITM?*DM_ZM*|IxZs-dR6n*EeD|^mzwy@yrcWZ-1Wmq5o%y4@Y~Y=Zmm!>MZRqK ztVq!R|19YLN!S1A1+783_W!S3_Ro`*Z?>~71Nr~Kc!kD2XhW{DHe?M{wqPyPw;|K_ zActcAjmE2$l`sly0F|%&eVy;Xjxc+%M7E5-j?ZrVb?sM;<`Y4(!^e8EUuT&W(C@I^7xWFAME6Tmfnhw>T*bJy*12dsq%U(45z={dr$D5b{ ze!Q{e*IK#`T28uOpA9&MO~xJ`hfh6@>v7%{;9TIpwC!$9Xm$lr1Ar>`6d|Lfgt*KimgZ5EQYwZdMuEcq1L7MTDmnOu6d#U)c z1`yv=4ADOF{+3C7jwVqC(4Mx7z;EMP>x7H8Pr!*yfSM~>J2a0JzkQ8oOIXyTr!z&~ zrR%m+-m{=|t03DB!K0)pt}Ezom%!)f`&Tj1{``OCFTJOEEC}k6!TSGN|KCL?YT}2I z)_;wKc$F694ek{<-fXsl*DE>8SyGD$g8~$$LsRVwht2A zD;UUDkSx1=9j|0vbx>Nc4ntZ0gL^Tq&$9XA!955!ZrN;*q3msF4!X7tw7)VG8;`hE z@m2JX7Y2qJF%WWCPT(xYV_wpR>F#!|me#j^D-qX|IM3$b8N=l%6&I zKi$^D#s7QXJK6aEdK3TGIBCzIzxY4vL~&!VA3|qFe?s4_WG&Eo;`r2lwHj5HvHgSJ zr|@I);d;JBd4dw3n7@o`@g`SKjG3Xw|9#nTWogdJ?)K$$c=3No2>RRLeYp8j&rn9}Lo#R`-AFJ)!+1=I27afUbD7qinG-WzH zxy4p$rZTc19rFgyO_>$uc&O2n^La3p=i+tgK|MJwpeJj)Iyz#lJ?&kciHgf(e3emq ztNC1j+eb|`ppj3xb@*pLT-xfEo)%R_=Rs1>;w`)RDyOtOu4(UV>)M^DkbjqeU;XUb zrSTD*?Gy8t<+%8OYgc1SdnZqw{y$)OUHZwkD_p0OkrBylQ9=5epn2Z_`t^&X+NCy2 z9|$H`8K=!g#wS8~ruE$V_w!ie=A?XY=_%Qq0uk*G6*0#848vTm$3Z0n(wh>KUcD*( zp6Fo=ck(q`CS7$7rnfPMtJ=&rY?*nYei*!d_4k1#hkEA{dzN{%8Vk^_6iC0Wv-MQ+ zBFp=@<&Z7nfVLn4R<2jKC%U^5G2J^E&>VOCuH8!KI=Eh>&K{|5iw3iYOCE}Is1F5t z&#m!_a|nWS9=>AL!z2xB&ZomZXgG<<7SCrgH|ptFzPBt4%#|DMXw9 z{V?q(|JB@I!nMY62KkEy-}mRO%fqkRhcN8pUCsGb_FXsU`@Wk#=Y#3PoAbWyM>W#s ze6>0V2+n!*OmWiI)ARehhNU3Y--BBZ{kh@FlYZS}N>blNQhGpok>$w%0fD6YlQ=C`l)YXDeFIt#eFsY2ZNJsCZq>o=Vu?lpN|nUPwA7i_#HBB!bPH4pcES0rJ}K zK7ity$3Tsbhn|qCaO?kTTnn!9iTO*m#gD6ZTZWlnEMRDybg zTO&Rx{e+Hj`srnpmO0Sw^pnqH^;1i)E|*PPWb|@xaN51&r`dP5_P!(iU(}EOPt~zC zy*&jP^mBpJw|&-%%=$Uv_*pAl`=6lwkpc9x&tuzyv*7wUO8d3WIQ^`C_Mchai+an^ zdKj_JT-bqjedhDncNfbK^4F&$7*2Xu`41QTZ-?&v?ofB{=XH6YtO3`*1UGr%Yr+hW3O=DT2J8^|7W=Z0Lq zeV9+p2Wt8$4GO*m13^x2`1-->4UDd!ty-AHZZ34XFksti9WBgYH~Y_R{%x#0{&CmP z7xtx2q2>R>(kUgN1L65E&gnN>TCPvD5Bem(bldJRRp#8!RJQBR_vXAfjc-R+>`8H{ z`HWu&`p3Z}F3vSKzdG!m^{>ay^_GY9SV_k!Yz-gM^nXZ?iKG9#C->38Kl#zh%z4|R zfdw zr71Qv(>(}Kr76ZH-z*GDOOiG*oWQ-(voB6GUAfO3m? zOOf%2>9?=K`zCq34ZRgQ=t;^??t~O$mT!5;O^zv<8oqLJ2Wf{rfS4!%d3K(6@(GHIXm9}mkx=JDXc@|@-Fre|(4+%~}PnVoDm`1$tf)qH%D zPT(^X>3x!q!UpQEe3VH8-N!BZ5ve?voPDO`qu@;96U*a=83Tfo>tfR9K<;wSEcQ9g z-$`ATvCm6cX%aqxl>$!@o7VIGdh=hJ=$gLios%AYe&x^o`rqxO$*NYUSuV}%c!bJF zCndDew~XaS-oYbKPQiOMSjcBWXMido`0IaiCMWVodn@5z4g50CO*osh5g1GlTmX|| z(f`D-R72mh9_Kf4ko38rO*}gpR9@v^HzU%3sGMLJ583?O?*i=QUZbziH0bjT^4Goy zstSttDh#W9*jmu}9rGCr#UE5>NybdD44ef@TG-b&QZ*T>7==EYB&p(a7DlQhNs>bO zev%$ZtR(q-a5gvxRGsI7I)gM1RQzKBs53&^5tnpTf`t3cZ`Kix*I6I)+jWr79q|1y ZBQVkfBRw$E10y{!(gPzsaGLeN{{wHS48i~a literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.2/bin/Debug/Exercise 7.2.vshost.exe b/Code/Chapter 7/C#/Exercise 7.2/bin/Debug/Exercise 7.2.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 ZBQVkfBRw$E10y{!(gPzsaGLeN{{wHS48i~a literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.2/obj/Debug/Exercise_7_2.Form1.resources b/Code/Chapter 7/C#/Exercise 7.2/obj/Debug/Exercise_7_2.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY6Nvfb4Lz*ZirY4rtrr@oo&|Q;lh^tM% z5=}?5QMnvW`>etoQo7Msz*_qCoK*y^|Auv{~ zqxPOK{W@Vy0Y=3^ADdK+oQsDHnf~iYuks6$g$+je5AC(6fc3A*&K6UkvZS)g-$DkB z+FfTN1x+H3Q^;QK6V-gL^RMS~_bHit0U33fEVCd*V|3q9=XPRWqrlUxy@ME=C)4kJ9M-3d14m+H?pR)d3{EOhGy}WKjY5^dzsV~+vf2rFBHN(g)DOev5@y^^u9Zg_hv^J{Sq=%2V$tRgc*tv zq-YF8vBBd|Zfmb0RYwz7i5f%I&5aVAAvjAgMsN6Zb237Rv11pG*ag$cq6~S&Asjn$2RmFR+QktXw#{~oQ;;-FR{7h{m%l&1 zvmHv~YX4{tv(Z9j|3y*km34P@4rFNXtnVxC^$IH3R3lR?nk4JekFVE^nW|>YG$PjR kFP~ + + Debug + AnyCPU + 8.0.40607 + 2.0 + {AABB3DE7-4022-43FA-83DC-6BA17001D2E4} + WinExe + Exercise_7_3 + Exercise 7.3 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.3/Exercise 7.3.csproj.user b/Code/Chapter 7/C#/Exercise 7.3/Exercise 7.3.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.3/Exercise 7.3.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.3/Form1.Designer.cs b/Code/Chapter 7/C#/Exercise 7.3/Form1.Designer.cs new file mode 100644 index 0000000..a5c5691 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.3/Form1.Designer.cs @@ -0,0 +1,93 @@ +namespace Exercise_7_3 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.comboTables = new System.Windows.Forms.ComboBox(); + this.datagridView = new System.Windows.Forms.DataGridView(); + this.buttonUserData = new System.Windows.Forms.Button(); + this.buttonPermData = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.datagridView)).BeginInit(); + this.SuspendLayout(); + // + // comboTables + // + this.comboTables.FormattingEnabled = true; + this.comboTables.Location = new System.Drawing.Point(2, 0); + this.comboTables.Name = "comboTables"; + this.comboTables.Size = new System.Drawing.Size(277, 21); + this.comboTables.TabIndex = 0; + this.comboTables.SelectedIndexChanged += new System.EventHandler(this.cmbTables_SelectedIndexChanged); + // + // datagridView + // + this.datagridView.Location = new System.Drawing.Point(2, 28); + this.datagridView.Name = "datagridView"; + this.datagridView.Size = new System.Drawing.Size(277, 297); + this.datagridView.TabIndex = 1; + // + // buttonUserData + // + this.buttonUserData.Location = new System.Drawing.Point(2, 333); + this.buttonUserData.Name = "buttonUserData"; + this.buttonUserData.Size = new System.Drawing.Size(127, 20); + this.buttonUserData.TabIndex = 2; + this.buttonUserData.Text = "Fill User Data"; + this.buttonUserData.Click += new System.EventHandler(this.buttonUserData_Click); + // + // buttonPermData + // + this.buttonPermData.Location = new System.Drawing.Point(136, 333); + this.buttonPermData.Name = "buttonPermData"; + this.buttonPermData.Size = new System.Drawing.Size(143, 20); + this.buttonPermData.TabIndex = 3; + this.buttonPermData.Text = "Fill Permissions Data"; + this.buttonPermData.Click += new System.EventHandler(this.btnPermData_Click); + // + // Form1 + // + this.ClientSize = new System.Drawing.Size(282, 358); + this.Controls.Add(this.buttonPermData); + this.Controls.Add(this.buttonUserData); + this.Controls.Add(this.datagridView); + this.Controls.Add(this.comboTables); + this.Name = "Form1"; + this.Text = "Exercise 7.3"; + ((System.ComponentModel.ISupportInitialize)(this.datagridView)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ComboBox comboTables; + private System.Windows.Forms.DataGridView datagridView; + private System.Windows.Forms.Button buttonUserData; + private System.Windows.Forms.Button buttonPermData; + } +} + diff --git a/Code/Chapter 7/C#/Exercise 7.3/Form1.cs b/Code/Chapter 7/C#/Exercise 7.3/Form1.cs new file mode 100644 index 0000000..d52d8f0 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.3/Form1.cs @@ -0,0 +1,76 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; +using System.Data.SqlClient; +#endregion + +namespace Exercise_7_3 +{ + partial class Form1 : Form + { + private DataSet myData; + + public Form1() + { + InitializeComponent(); + myData = new DataSet(); + } + + private void buttonUserData_Click(object sender, EventArgs e) + { + // If there is a data source, remove it. + datagridView.DataSource = ""; + // Never hard code connection strings. + // Usually you would get this from a config file + string connectionString = + "Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI;"; + + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = testConnection.CreateCommand(); + testCommand.CommandText = "Select * from userTable"; + SqlDataAdapter dataAdapter = new SqlDataAdapter(testCommand); + + dataAdapter.Fill(myData, "UserTable"); + } // testConnection.Dispose called automatically. + UpdateComboBox(); + } + + private void btnPermData_Click(object sender, EventArgs e) + { + // Never hard code connection strings. + // Usually you would get this from a config file + string connectionString = + "Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI;"; + + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = testConnection.CreateCommand(); + testCommand.CommandText = "Select PermissionType from PermissionsTable"; + SqlDataAdapter dataAdapter = new SqlDataAdapter(testCommand); + + dataAdapter.Fill(myData, "PermissionsTable"); + } // testConnection.Dispose called automatically. + UpdateComboBox(); + } + + private void UpdateComboBox() + { + comboTables.Items.Clear(); + foreach (DataTable tbl in myData.Tables) + { + comboTables.Items.Add(tbl.TableName); + } + } + + private void cmbTables_SelectedIndexChanged(object sender, EventArgs e) + { + datagridView.DataSource = myData.Tables[comboTables.SelectedIndex]; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.3/Form1.resx b/Code/Chapter 7/C#/Exercise 7.3/Form1.resx new file mode 100644 index 0000000..a845c83 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.3/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.3/Program.cs b/Code/Chapter 7/C#/Exercise 7.3/Program.cs new file mode 100644 index 0000000..17abce8 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.3/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_7_3 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.3/Properties/AssemblyInfo.cs b/Code/Chapter 7/C#/Exercise 7.3/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8dcfb48 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.3/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_7_3")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_7_3")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 7/C#/Exercise 7.3/Properties/Resources.cs b/Code/Chapter 7/C#/Exercise 7.3/Properties/Resources.cs new file mode 100644 index 0000000..6e75dac --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.3/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_7_3.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.3/Properties/Resources.resx b/Code/Chapter 7/C#/Exercise 7.3/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.3/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.3/Properties/Settings.cs b/Code/Chapter 7/C#/Exercise 7.3/Properties/Settings.cs new file mode 100644 index 0000000..96b3a4a --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.3/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_7_3.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.3/Properties/Settings.settings b/Code/Chapter 7/C#/Exercise 7.3/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.3/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.3/bin/Debug/Exercise 7.3.exe b/Code/Chapter 7/C#/Exercise 7.3/bin/Debug/Exercise 7.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..5175bc208f94482a31d1a0768e84be81a62ec2bd GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.3/bin/Debug/Exercise 7.3.pdb b/Code/Chapter 7/C#/Exercise 7.3/bin/Debug/Exercise 7.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..87b0b11e8e9633720dc7f5051e71e748700ecd59 GIT binary patch literal 34304 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.3/obj/Debug/Exercise 7.3.exe b/Code/Chapter 7/C#/Exercise 7.3/obj/Debug/Exercise 7.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..5175bc208f94482a31d1a0768e84be81a62ec2bd GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.3/obj/Debug/Exercise 7.3.pdb b/Code/Chapter 7/C#/Exercise 7.3/obj/Debug/Exercise 7.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..87b0b11e8e9633720dc7f5051e71e748700ecd59 GIT binary patch literal 34304 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.3/obj/Exercise 7.3.csproj.FileList.txt b/Code/Chapter 7/C#/Exercise 7.3/obj/Exercise 7.3.csproj.FileList.txt new file mode 100644 index 0000000..40727cf --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.3/obj/Exercise 7.3.csproj.FileList.txt @@ -0,0 +1,8 @@ +.\bin\Debug\Exercise 7.3.exe +.\bin\Debug\Exercise 7.3.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_7_3.Form1.resources +obj\Debug\Exercise_7_3.Properties.Resources.resources +obj\Debug\Exercise 7.3.csproj.GenerateResource.Cache +obj\Debug\Exercise 7.3.exe +obj\Debug\Exercise 7.3.pdb diff --git a/Code/Chapter 7/C#/Exercise 7.4/Exercise 7.4.csproj b/Code/Chapter 7/C#/Exercise 7.4/Exercise 7.4.csproj new file mode 100644 index 0000000..f18c3ce --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/Exercise 7.4.csproj @@ -0,0 +1,64 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {7D290C84-EE3A-46F6-8CD4-618FFE2EF402} + WinExe + Exercise_7_4 + Exercise 7.4 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.4/Exercise 7.4.csproj.user b/Code/Chapter 7/C#/Exercise 7.4/Exercise 7.4.csproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/Exercise 7.4.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.4/Form1.Designer.cs b/Code/Chapter 7/C#/Exercise 7.4/Form1.Designer.cs new file mode 100644 index 0000000..acf5e4e --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/Form1.Designer.cs @@ -0,0 +1,84 @@ +namespace Exercise_7_4 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.xmlBrowser = new System.Windows.Forms.WebBrowser(); + this.buttonSchema = new System.Windows.Forms.Button(); + this.buttonData = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // xmlBrowser + // + this.xmlBrowser.AllowWebBrowserDrop = false; + this.xmlBrowser.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.xmlBrowser.Location = new System.Drawing.Point(1, -2); + this.xmlBrowser.Name = "xmlBrowser"; + this.xmlBrowser.Size = new System.Drawing.Size(500, 489); + // + // buttonSchema + // + this.buttonSchema.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonSchema.Location = new System.Drawing.Point(330, 494); + this.buttonSchema.Name = "buttonSchema"; + this.buttonSchema.Size = new System.Drawing.Size(75, 23); + this.buttonSchema.TabIndex = 1; + this.buttonSchema.Text = "Fill Schema"; + this.buttonSchema.Click += new System.EventHandler(this.buttonSchema_Click); + // + // buttonData + // + this.buttonData.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonData.Location = new System.Drawing.Point(412, 494); + this.buttonData.Name = "buttonData"; + this.buttonData.Size = new System.Drawing.Size(75, 23); + this.buttonData.TabIndex = 2; + this.buttonData.Text = "Fill Data"; + this.buttonData.Click += new System.EventHandler(this.buttonData_Click); + // + // Form1 + // + this.ClientSize = new System.Drawing.Size(499, 519); + this.Controls.Add(this.buttonData); + this.Controls.Add(this.buttonSchema); + this.Controls.Add(this.xmlBrowser); + this.Name = "Form1"; + this.Text = "Exercise 7.4"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.WebBrowser xmlBrowser; + private System.Windows.Forms.Button buttonSchema; + private System.Windows.Forms.Button buttonData; + } +} + diff --git a/Code/Chapter 7/C#/Exercise 7.4/Form1.cs b/Code/Chapter 7/C#/Exercise 7.4/Form1.cs new file mode 100644 index 0000000..daaaf2c --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/Form1.cs @@ -0,0 +1,62 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; +using System.Data.SqlClient; + +#endregion + +namespace Exercise_7_4 +{ + partial class Form1 : Form + { + private DataSet myData; + public Form1() + { + InitializeComponent(); + myData = new DataSet(); + } + + private void buttonSchema_Click(object sender, EventArgs e) + { + string connectionString = + "Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI;"; + + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = testConnection.CreateCommand(); + testCommand.CommandText = "Select * from userTable; Select * from permissionsTable"; + SqlDataAdapter dataAdapter = new SqlDataAdapter(testCommand); + + dataAdapter.FillSchema(myData, SchemaType.Source); + } // testConnection.Dispose called automatically. + DisplayContents() ; + } + + private void buttonData_Click(object sender, EventArgs e) + { + string connectionString = + "Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI;"; + + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = testConnection.CreateCommand(); + testCommand.CommandText = "Select * from userTable; Select * from permissionsTable"; + SqlDataAdapter dataAdapter = new SqlDataAdapter(testCommand); + + dataAdapter.Fill(myData); + } // testConnection.Dispose called automatically. + DisplayContents() ; + } + + private void DisplayContents() + { + myData.WriteXml(Application.StartupPath + "\\myData.Xml", XmlWriteMode.WriteSchema) ; + xmlBrowser.Navigate(Application.StartupPath + "\\myData.Xml") ; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.4/Form1.resx b/Code/Chapter 7/C#/Exercise 7.4/Form1.resx new file mode 100644 index 0000000..02bbfa2 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/Form1.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.4/Program.cs b/Code/Chapter 7/C#/Exercise 7.4/Program.cs new file mode 100644 index 0000000..f1c0170 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_7_4 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.4/Properties/AssemblyInfo.cs b/Code/Chapter 7/C#/Exercise 7.4/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..551d058 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_7_4")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_7_4")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 7/C#/Exercise 7.4/Properties/Resources.cs b/Code/Chapter 7/C#/Exercise 7.4/Properties/Resources.cs new file mode 100644 index 0000000..1911b18 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_7_4.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.4/Properties/Resources.resx b/Code/Chapter 7/C#/Exercise 7.4/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.4/Properties/Settings.cs b/Code/Chapter 7/C#/Exercise 7.4/Properties/Settings.cs new file mode 100644 index 0000000..df723d4 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_7_4.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.4/Properties/Settings.settings b/Code/Chapter 7/C#/Exercise 7.4/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.4/bin/Debug/Exercise 7.4.exe b/Code/Chapter 7/C#/Exercise 7.4/bin/Debug/Exercise 7.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..e26b99b44b17b5acb2fa60ca1ba9bfd96cfdbdbb GIT binary patch literal 20480 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 b*9w8o=zX5j%FmOqBeITYU_=8Y)xiG)yAErX literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.4/bin/Debug/Exercise 7.4.vshost.exe b/Code/Chapter 7/C#/Exercise 7.4/bin/Debug/Exercise 7.4.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.4/bin/Debug/myData.Xml b/Code/Chapter 7/C#/Exercise 7.4/bin/Debug/myData.Xml new file mode 100644 index 0000000..f7f3021 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/bin/Debug/myData.Xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.4/obj/Debug/Exercise 7.4.csproj.GenerateResource.Cache b/Code/Chapter 7/C#/Exercise 7.4/obj/Debug/Exercise 7.4.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..db113dbc6de40b07b2c4a03f942d6166d98f6346 GIT binary patch literal 842 zcma)4!D`z;5S406v1JGBLkOikn9xJPM%WFZy*Pn5xCu=ltwYG6m$i087q7KuXBFZ= z?zy&K(64EKqaV;i{~(^s>x^>katp%@a%Y9^bx!lCR>?b9o|zeB!)bpz-AP}kgMr-X zi)|6`H7`rq;}3vuAv=HtWD>GO0kV|31-uw54Y)ZK2*)a$f#mN4Wg&6KF01}lIpHc* zL02KpC}8}LQ>?ZrA1JCkpDfYAJRTXX>3SLl#)kqwIWg5xTu`MmRfd0VU84=ru@Q1C zxQVqtldX-+d?75@7L$&Qgi~uSl>}Skg^9X`Dh(IIbD?uU&#P3tAZXOe?mGI*^`b=c z(Ift!@89fk15wl; zF_AhY^@t$gY*232WB0qXR5;JWZ0LLAar55TCI1NBlpqsxc($^x1-cU>RjNR4tkmF2 yp~H|2UiS-;Mbq5jk1xCJ?yqmRzR!{i?dzOydtaNMZ#E|1Z~ZoJ=V)_{qwyQbo$$~A literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.4/obj/Debug/Exercise 7.4.exe b/Code/Chapter 7/C#/Exercise 7.4/obj/Debug/Exercise 7.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..e26b99b44b17b5acb2fa60ca1ba9bfd96cfdbdbb GIT binary patch literal 20480 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 b*9w8o=zX5j%FmOqBeITYU_=8Y)xiG)yAErX literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.4/obj/Debug/Exercise_7_4.Form1.resources b/Code/Chapter 7/C#/Exercise 7.4/obj/Debug/Exercise_7_4.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYjYVT?m57KyfW*B_yKi;U=?FrY35cNHYc11hP~yF*UK0H3e@yf$q9&LsD%9 zm3Stei>IffnSfQ8LrORL3izv_A3;)wZAcbNgEJeMUTwLqw6gqxQ3W2d= z9ku_M=~pRh3NR`T`q-pmye`vo&MXY~KcD9)Ul_!-o{swYr z)b0io8E6u5oMQfRpQsjloqs-`zemXwiU{5iK_0;-VTz9K>A!dH;mIo?l<6h;x#V|# zMagYYDRwl(Cd*7=3w`YCZrPCG6R(6&CVygchY{}A?u46*%k^iQYvEx}mmjW&4aGXJ zBUL+mO|y6_m<{H_{Y>hL?eOHK9|_@}LYDb~SjhV{dfy$$d#fXiei<3612NQD$_&K_ zQZxpl*yKqhceLM-s-uakOpT%HdZPqq2+k6W5u8JCs0q`DweH#eKFc|Ytu%{CGg}k~ z%c#c>cCAaxIT<4)*s%*o?1Jg^sf>8cAsRb!2fJLS+QktXw#{~oQ;;-FKi)5lO#b@( z)^;e3tNo+>myH%G|2K+KudKVLb0|ZDXMJ0BuUAmPrW%=I(Ii=yzJI-D%v3dFrV+7j kfB7_L%v48XroLMr7Do3-sItaPy|luQ?~Hkb5~8p82fj^#-2eap literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.4/obj/Exercise 7.4.csproj.FileList.txt b/Code/Chapter 7/C#/Exercise 7.4/obj/Exercise 7.4.csproj.FileList.txt new file mode 100644 index 0000000..d3628cd --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.4/obj/Exercise 7.4.csproj.FileList.txt @@ -0,0 +1,8 @@ +obj\Debug\Exercise 7.4.exe +obj\Debug\Exercise 7.4.pdb +.\bin\Debug\Exercise 7.4.exe +.\bin\Debug\Exercise 7.4.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_7_4.Properties.Resources.resources +obj\Debug\Exercise 7.4.csproj.GenerateResource.Cache +obj\Debug\Exercise_7_4.Form1.resources diff --git a/Code/Chapter 7/C#/Exercise 7.5/DB.MDB b/Code/Chapter 7/C#/Exercise 7.5/DB.MDB new file mode 100644 index 0000000000000000000000000000000000000000..b205f5036fc6db8256923aaad2433a757270115a GIT binary patch literal 139264 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 ZZuLpex9(>oXKhdIH)=ysUk*M0x<1h9rstpX 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 + + Debug + AnyCPU + 8.0.40607 + 2.0 + {0CF6F240-9E70-48A6-A480-88E80A92DA48} + Exe + Exercise_7_5 + Exercise 7.5 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.5/Exercise 7.5.csproj.user b/Code/Chapter 7/C#/Exercise 7.5/Exercise 7.5.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.5/Exercise 7.5.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.5/Program.cs b/Code/Chapter 7/C#/Exercise 7.5/Program.cs new file mode 100644 index 0000000..c0889c5 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.5/Program.cs @@ -0,0 +1,41 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.OleDb; + +#endregion + +namespace Exercise_7_5 +{ + class Program + { + static void Main(string[] args) + { + try + { + OleDbConnection dbConn = + new OleDbConnection( + "Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin;Data Source=..\\..\\db.mdb"); + string selectQuery = + "SELECT ID AS UserID, fn AS FirstName, " + + "ln AS LastName, cty AS City, st AS State FROM tabUsers"; + OleDbDataAdapter usersDataAdapter = new OleDbDataAdapter(selectQuery, dbConn); + DataSet usersDataSet = new DataSet("Users"); + usersDataAdapter.Fill(usersDataSet); + foreach (DataRow userRow in usersDataSet.Tables[0].Rows) + { + Console.WriteLine("ID: {0}, FirstName: {1}, LastName: {2}, City: {3}, State: {4}", + userRow["UserID"], userRow["FirstName"], + userRow["LastName"], userRow["City"], userRow["State"]); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.5/Properties/AssemblyInfo.cs b/Code/Chapter 7/C#/Exercise 7.5/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5342b0b --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.5/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_7_5")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CIPS")] +[assembly: AssemblyProduct("Exercise_7_5")] +[assembly: AssemblyCopyright("Copyright @ CIPS 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 7/C#/Exercise 7.5/Properties/Resources.cs b/Code/Chapter 7/C#/Exercise 7.5/Properties/Resources.cs new file mode 100644 index 0000000..8966c3d --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.5/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_7_5.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.5/Properties/Resources.resx b/Code/Chapter 7/C#/Exercise 7.5/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.5/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.5/Properties/Settings.cs b/Code/Chapter 7/C#/Exercise 7.5/Properties/Settings.cs new file mode 100644 index 0000000..cc230b6 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.5/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_7_5.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.5/Properties/Settings.settings b/Code/Chapter 7/C#/Exercise 7.5/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.5/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.5/bin/Debug/Exercise 7.5.exe b/Code/Chapter 7/C#/Exercise 7.5/bin/Debug/Exercise 7.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..81e0628048140642bdd437e8c98b7d986fba416d GIT binary patch literal 20480 zcmeHOYiu0V6+W{&Ua#$V@vb2xu|pIhM6$KDd0jR1_z=;E5~fv? z#k4=#n-o)8lqit~4IgNGw}5Ck`f)JPaBB1N1}F39GtJ?Eo*U+cX+e;(f3BIO&qpbu zEOY(n%0Mh`w-YUcZVG;#i*27IYebkqtwkYUUz3QEt~lyKo{WRQ=FbOQt!YHJCvC^h zLnCwR2g7qgF7>S+*(YsLwBX3O((O3duOCNU>n9ql69YCtAV45MAV45MAV45MAV45M zAV45MAVA>%2!Ry;u14eErXgye{%-uvZ6#75HxNZ0?3%9$u;0IH8$#>RyBTg9s67>? zUEmNaPWOVU7oS&_pI4SeH+PW@x%_$vqppvkgLM&zgCDKU&5=2F^*Xd{q{a>HDTP`P z2hNBCsy1(=$c8Qo&9ShdBh^3=^a-<_>`M^XNpK|l1+XoR5vLu}GP|O{a531{Xp;r6 z<}0YlT8{H_>rzl_1(TH^?U9X@c*I%-*42=IyGr(b=-lxTMp4=u<45Ds9mg(QxNvrLJW}c6F`ME| z0FMouqwyx|GIsw1(b@L)28uUWYap*js)%uxp(h0aL$rrZzD|h9O`*TON9|Z%(kP>c_-Zqt-5|Khg@jFP!1{^5w1w6bT(G?M3xvFDS7U4g?Lmf zX^1vaYzJYPQTK3od(3h04afuOG$UK0XK=js%DX=Wz;p^nF+1zHqLiEvj#aVq!l`i+ zLN5q=lU8!_mR&S*o3wqxb_~nx+nP-ApG{i2Qgkb}=rcvdwe{jAZM>2z8u=T=?4)&A zn0>k4UVVFh`&C=6+14XcS6|b;bg+u)8YSV6o)s>3TCI%_WcV-VJea*|a zNo-H`ZtZ371}cKS1f;s}McD?kz8V)*ch_jI483(~qYkeuNlx=Q^Py+^a^<8+QrsNW?;=}^B5sr!!H(y>{uEsS`Wa;-XjU17B?LVm zyc1N=5Z1hr)H!dr?2o?9j~ujju!Hfp))b7xZK1C4F}f2xuxxyVwcyG}+cjzxDn)TE z4ILGB-f)E0o7|ohM+Nye8>eQP?w#JA9Jj5quw6qq1ePo73+#k@lPm8g{tc15yBUq; z?htvmDkamFdC-`t*t&~bB@L9zxFJg3??0$J!groe#pgzKQ=btwP20j5ow0q#J-9RJ zMdNNSYW2Q5Y#y|vV^yYP-nDF+5$^QjaIEvaoI2jujp~L;rRjZou_AEJ&YJn^w793I z_Gs-Eez1sH%Q-rZDCLT?)yKnti@R>F;tCq58mfaVHB8!g#FTXV@KRISD$m-+%prHF z39D16C@_3dhOqXX-q@jX= z{WWM?cR34ZyU37rb*#Q_%1T6R827>;g$jn89v@C{K0 zU%`^pgCj*dX`FO~b?~6G(5rw5JMmKN$Y>f3!@G|Lpf4e=30nsKE)ET!4d;{TL$oAK zRcV28;7aI~Bbs|Yi$QtdG)18w1)%#HGC$u7rfxqgdxL zB2!;z&%=MV79))qEOSqe|3h##rb*GtyQa^o2T7Y)y`+;>3g83RzDBUf!ddjOYy~HQIj8^TIORCJ^jIR z4}Ub3-E;DX&mJ4>dU*#$e{}cMzLh<1o(xA4tvKRgysY7+G11B-j<*9P5m%!ugGhOG z41R5)NGE%=vARvw6eZRG67OR+8X+Yy93NFRO57CDLP{)gQ)6Q|(VA!tsf`FIT@OT+ z>RW{8avQYKgy2pku!%dP%vP8jM^>GP+!>1yqOIj;3&EL=)Le z_MTSr+?lVwn115^U%W7|?*1nmU?18sHBiQN?`VU1{&1!2Ozj@tJ20Yc)<$QwLCZQk zmBu}PDt$=ah_&9Sbhj_`PWid>E7g>hyJJc|?iQ$%6U!rF}{~JRS;E2eT-{CMbxo|Q5QRif*iMX z_@0A*Sr4lYtphvPx(rxNX~)+f^+6OQ6y)T>iwk=*9}}q{eNw1*d4GCP&I1OheW5CZ zYMzCvTv?7WTdUFW0BK}1j@aBX)Cyle%M3DgWO>p+&-$E(=qPMl*)-rGfKo3G)MU_h zQLHY;KI!Mw&1VaWjVT;k@hxy0`tbL&6bhW&JA*H4ibRL2eKuyQ0}sEVhg)k#ic6IgM5OGy0s9 zj}c2;?flPj+a>Y!%D@HGhPnPZKf9$d>T&ItxGwCw7~N0Cme*wf>%}Wp!tN-_+UtK4 z1JevzfIxsifIxsifIxsifIxsifIxsifWW7N0DjQ&{}~^z`yT%33>=ISAP^uBAP^uB bAP^uBAP^uBAP^uBAP^uBAP^w%X(8}0hI)T2 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.5/bin/Debug/Exercise 7.5.pdb b/Code/Chapter 7/C#/Exercise 7.5/bin/Debug/Exercise 7.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3bb2cebd101f7b7bdd6e45c346d713f10c1444d0 GIT binary patch literal 28160 zcmeHPdvH|M8NZu^kbp>nfH4ZaKtLX{NiYyz3Ly#diUFeaF=@lHxsWu;Zf18Gz(>0> zzB+ZL%t)s?wNtHDr`1|#>NpO9(owKFPCHe`q5o8EXWFq35zDkVgVNvc-23gGz1a=B z$qg3RZ}{@vd)|-ldG29bx`UB$G`uZlHdZ&zn`gGPtv2iZH8tbLR5rC4fCBZ;sK;ZO zj|qlRXOsNj3thme zXY5C9EB73}|LxEFX}0rl9;|>@`=7V}=fP&D8KPJFpO^nMi+dg<1*1lFG!m@d*4=AG ztAk71JHx>peO4$IH3OkeGit?R-J$K#_GqB1yVvXs^mg~OcUsY&Sh&AE*cIrHSrKza zeS0w6X|)GuNK$>fwabbGyQ3BklNYx4N5cJ9B-U+3+ap#qydx5{qW*K$^Y%!fZ(wJE zevBmA-nZM_8IJVGxV@UnFj^n6;mTHWEf|$E(&mBw8HVA2=|D#51bY9B%8P;D!1*8} z`PqebB+ux56!2T9%rd)?&S?H^lw-T6fQ<4V1~TIR3(B#M4OJlSm|s5|V9WaXfPNmp za{xLPJQt`0a+Ex0m6eo_?L07_TMf4tIE`B2@WH4TCa5pLE>w$IZd5WZ48Ikdz$*cQ%-we9uwCH95;NLeRfOr@Q~Us@n%JC)rr z@xBEy_V|avbDl8Gqx9c2RuF zAx?QoYRLA@x_9jT1kyU;gUm+x{HarFO#1wd^!YI}C#gPlirTDXdFXi#GAWND44nr? zes04Y*oL#-&EjJ_FtK(~INkDt!}qrIYjk?)2T zc-G?p@$aS~eL9eSAncFw1I14iTY+TdH(c-7`&~37fTcE3e=&w)3**N>!`N=cI%K0; z0-?ZmE5c;j|I?r~sL#4mehln?+wN%0>f?Cj*}t|`)k(Zdi%}%Q3a0u-XY(28H*svx zx5{Tp=QnX$uKa}G#IY|&177XF`~08#d*z>Ne8;XWJx$y2AM~{yv=f7}Km{5wKq>pd zpT>TZW#2^^mSvt^miAi8O1oSGmSvt^b^?rulzq0Y^#!*30@`C)=ILdBhctItrm-xk zUiSOwP|C`9XFGFao?bQ^e-uMX_@jIlpij8S;m=2C5CNlYqW&VnF8(?C!#~4-%Ij#{ z(Hq+lQQdQIA46jsQIB<`Tspq|^7xm>*~U5w<{%0s)e7Wn*mM&xm<<@BWfsGx>;6G3 z%@BLJ5bZw?@CI6Lndu;FI81{kJ%HsJ?4!7r+ss>9H?J3Wf=6*#dl(5->bMxgIDZpX za$DMAj8f)`)f~paq!n*gOc%)EjY}3xmp#UGZ#r75a+G0g0lML7q@8l5Qxj2>(@M|^ z&}vY-QnOMU(;~#sF10eXIW;*W7=k)CSg4;HQ1_vLZXavp+<^A8WMICsj|-5_e4b*a ztA8!hsbd+%p2Eof1-c)IN7!*w^_Q%N*=%hLheCFnETiW|W0AJz4b6==Idw7Vl>E-X z%~2~7RqfI~=yf}zb{@yF7!98UK7cYD2>Y3gv7mfP9Xc+wEkxF%Pxc`SKmOFR|IWJa zu#bJ@0$ig@f$Z<3bCS$m6&opbn!C*%WS#{oK+ce|%Rf5sH`-}(49hZ4FH4S+vSNG5 z4J^w%y=)iKq^yjAV`N$8>1A{AL2~gca`6?&@$T_v@|no}QdWE$rg3hh`rJzJ9tZ9N zrh}34|E9v9z1enx{f*(?UMm>u4u_)t8?2BO=?<#1K*_(!+7;v2cs?j;O@UZ|X_H-P z{?=ZrX{#+ubXmZ!x_l3ie^>qh`FG_HkbhUcs;|p`8TO6xe>;%;CGwxFH&Fidyr{*c z*|fuo>_)s|mQ()q{2i2jE=EJA`q+kS#5ZO+%A_v`#m+LK6D~o658(ZApo|ZqlBi1` zo$?=l`K{PI$UpOP0Wamh@^$lYUjEM>Gvy-x+{;pYQ9B7rT|nJR;IqjG2VNs{0EF6a z$-gSQCD0v05_yY!vIe|WjEvjx%zVZdj{L%YCZ6;1@3Q~8e1FyQFY(_UWC*yHBXqE- zyPNs=FXKt6JC4b88Doe6thnl0Y~x+Pr2GHP64jZj0>Pdg{n7T-Yj14WV9qyNcAKlh z;T|Wna}JXc>1A<@oU%BU#8T!~r-yCbp+GNsz?F`z?7_a0lIQ`S5S;reSzb=@bPf`{ zc{*%q)YFj)kLVKX>8PaxonK}{`RG7v(gnP9v|$8+1m*oBL*hophxD)|CVUy?c#8EL z@Cs@(fW(OQn;lout9FBU&+c@-OZ-}qF7v!kqyNX)!+fUpp9B7*9=9dFOYmIc`a$k<@NA|C z{7V0mXBUiv2t@@G)a^6yVKLi~yBs_hA?SBGz@^16B3)%UcRBoL>l1~Ge0CpLKGnx( zXm=vgJ5*af<7U;9eV3_3HBMjIi1U$mF8KY5_Y*j7Xp=Y>0N=3USApWhEY5vm{yb28 zvx;8>It6q-DDJq$>p}6IE4~<%<(7g@!#i&~Ob1;JIs^0uCx4AY*Me3deI4jb(Dk6R zK-)mMjyX|Ae&CVb2Jiz}g6E0g zhs4=W9OelL)9*@m=7F9&R|0J=KP zF=IF4x_*bwj&t$AcS@gw@8Y$1N8fR-51y6&#xv@1|G^Cadyl_|eXdf^<%X&Dl4D{2 z_8ukg!0Ge34sCHP*MoA5D-vy2rLmuJ zy*sSr8PHy*yp)mqoM@NR2c+_j+*@$vdtm=l^@!LsZ|(oxMdW9$31xtLa=zPtaGk?{ zwp7^sm%O9NyO_MAso&MK-;?(>xyzaEY}$TSl3ywMRjdF2gTyo4*`$w3Cj1JJLVebi@}i@VoKc5yU0wMJ9me%Jjr<2uU^*y$7d(QRs=Z`Ae9gA{ z`jMs9A$z;px-*?!?Q%Aowp;-Ap;+v?S_juXp*Jv?k+c7)G16fEaqqbpDeN%mX zGwRLX??2%*mC&JVSAcocN5aFBPRcxvSC@096PULNsQcDTCoqq3mBjaa=R7M*t4~k~ zEyvn@0m}4R{2`s@y#Lanzi}vBK$S0dUiqJSSpJU=ZE@(`4*h{cC!r9_t#v4$2ZOWa zv#zN(;OxI7Wm8|urlV)8pF{o-thY8I6VF3v!L=M(gWf!vw6q=o?O6q|3RnXq->(7Q z1l$7b1v2Kk7q}Pr7?2?HYQGJX|6ThwWt7j{<^S>l@?Wy;#*FQs5Ar|NxK#Nhqo5Y> z0l2kgUPp5%7TMjgG29)B@lMW6l~2|ya1H<`8*{X@nnnDtdNoi0leMyiTCk{>FEpI; zILwstv>SzRE^Y6U>2~{ex>FwdUmuIlaYm&q$LEu_Yw35{<36C$(>s7t*DmAqgMhr! zsY~C;=W?2)j-BV!xi(p+7vkV^9biZuJI|?8hk;!H(39oQ2MqIzwf?a%yWcAqVu$ig zbwoRnPoUa&_;dU-42ktL!LO8^bRfO~eTfpq*S76WSM~x;OXo&iP*dd|?<}oV-+gg@ z{@~@t)km(t|IFvP*>5q^Yk=et0r_1Ki)r$1=T92o|F7J?61K($Z~gzv z2KfJF$ChR6D|h=pae)1QA=H$y{qw>8%RbPLGrQ6sN44X;Tt1jB1ZG`)m?9G9op zb!3>HHag;?mJU+(%aFT>4m&CSQGduhHcU_qWj`nL^G`!wfqnj3-;_JASq1;!xNBVK z^Ft3EY<%jz*Y`J6-S_->Bvx{$KLfqTDg%8Iv;tIqNbP-` z$Fra5K<6u{3eg_MJL3`g;Wa!CANXzR5#Vdk^@~AYae_fVX2d&*w<0ZDoQ<+YsL$Vi z=mb3gy3%QbzXid`@@x;sGx+9bF9PmK@Q#F04dk62F3uz%7kLU0cX8BjcX1&&c`h_< z70<@GNE3j(^D_>}TQD3x=VSt>0jC3J0IPsAfwO@4=B@5T&H-h7GY?n+oD00z07qAO S$geP7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.5/obj/Debug/Exercise 7.5.csproj.GenerateResource.Cache b/Code/Chapter 7/C#/Exercise 7.5/obj/Debug/Exercise 7.5.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..d55b5945ed5d2cf0d6733156708327a76e13d790 GIT binary patch literal 784 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 bAP^uBAP^uBAP^uBAP^uBAP^w%X(8}0hI)T2 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.5/obj/Debug/Exercise 7.5.pdb b/Code/Chapter 7/C#/Exercise 7.5/obj/Debug/Exercise 7.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3bb2cebd101f7b7bdd6e45c346d713f10c1444d0 GIT binary patch literal 28160 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 Zzt%G|%_=jK6vpQ#^LNQSM + + Debug + AnyCPU + 8.0.40607 + 2.0 + {ADC8D2A8-6D61-4A61-9955-4B75DA39B23F} + Exe + Exercise_7_6 + Exercise 7.6 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.6/Exercise 7.6.csproj.user b/Code/Chapter 7/C#/Exercise 7.6/Exercise 7.6.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.6/Exercise 7.6.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.6/Program.cs b/Code/Chapter 7/C#/Exercise 7.6/Program.cs new file mode 100644 index 0000000..8152cfe --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.6/Program.cs @@ -0,0 +1,60 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.OleDb; +using System.Data.Common; +#endregion + +namespace Exercise_7_6 +{ + class Program + { + static void Main(string[] args) + { + try + { + OleDbConnection dbConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin;Data Source=..\\..\\db.mdb"); + OleDbDataAdapter usersDataAdapter = new OleDbDataAdapter("SELECT ID, fn, ln, cty, st FROM tabUsers", dbConn); + DataSet usersDataSet = new DataSet("User"); + DoDataMappings(usersDataAdapter); + usersDataAdapter.Fill(usersDataSet); + foreach (DataRow r in usersDataSet.Tables["tabUsers"].Rows) + { + Console.WriteLine("ID: {0}, FirstName: {1}, LastName: {2}, City: {3}, State: {4}", r["UserID"], r["FirstName"], r["LastName"], r["City"], r["State"]); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + } + + private static void DoDataMappings(OleDbDataAdapter dataAdapter) + { + try + { + // Define an array of columns to map. + DataColumnMapping[] mappedColumns = { + new DataColumnMapping("ID", "UserID"), + new DataColumnMapping("fn", "FirstName"), + new DataColumnMapping("ln", "LastName"), + new DataColumnMapping("cty", "City"), + new DataColumnMapping("st", "State") + }; + + // Define the table containing the mapped columns. + DataTableMapping usersTableMapping = new DataTableMapping("Table", "tabUsers", mappedColumns); + + // Activate the mapping mechanism. + dataAdapter.TableMappings.Add(usersTableMapping); + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + } + } +} \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.6/Properties/AssemblyInfo.cs b/Code/Chapter 7/C#/Exercise 7.6/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0d1af3a --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.6/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_7_6")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("CIPS")] +[assembly: AssemblyProduct("Exercise_7_6")] +[assembly: AssemblyCopyright("Copyright @ CIPS 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 7/C#/Exercise 7.6/Properties/Resources.cs b/Code/Chapter 7/C#/Exercise 7.6/Properties/Resources.cs new file mode 100644 index 0000000..f2a8b0a --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.6/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_7_6.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.6/Properties/Resources.resx b/Code/Chapter 7/C#/Exercise 7.6/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.6/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.6/Properties/Settings.cs b/Code/Chapter 7/C#/Exercise 7.6/Properties/Settings.cs new file mode 100644 index 0000000..79a9c4d --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.6/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_7_6.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 7/C#/Exercise 7.6/Properties/Settings.settings b/Code/Chapter 7/C#/Exercise 7.6/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.6/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/C#/Exercise 7.6/bin/Debug/Exercise 7.6.exe b/Code/Chapter 7/C#/Exercise 7.6/bin/Debug/Exercise 7.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..0c099cf9c9850680f830cc316c25944ee69a12da GIT binary patch literal 20480 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 EZ-lVaHUIzs literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.6/bin/Debug/Exercise 7.6.pdb b/Code/Chapter 7/C#/Exercise 7.6/bin/Debug/Exercise 7.6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1a0e4e9ff142fd9881cb8ceca9d581576355c5fe GIT binary patch literal 26112 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 Skeh+r4CH1YHv^a84E!I6u8x-g literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.6/obj/Debug/Exercise 7.6.csproj.GenerateResource.Cache b/Code/Chapter 7/C#/Exercise 7.6/obj/Debug/Exercise 7.6.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..47294719c334a92426259104c81789a517ad2dea GIT binary patch literal 784 zcma)3OG*Pl5S^Gz%uk355z$2u7lL6(3_&+RFyaRl`~=CuO=r3Wn{=i_SC1G^;1N8L zr*Y#6v?{1b9K;%UGgDpt>Qy~2<9XgY1;05ea|Hc!60J0v4v4l8OfGnkG0sDta11=8)!kLPPAo>45SqPo6lU!y!op6?FN|zA9_*+SQh#=?TF zGHKUHxUlA4Nw5V@T&qXO(Q+|=BXk1jdD*Pz`{hDfuahsXjTFr%zxZD-clUVSQmIT> z^cnI5RsQ0GJZoMdJ!7zr+_@#gOkzX8fINDraxvEx3j{txGu@ZpMsHDSYBKMwtiL_R z_H2uoL6EB&2a`_U<;$lDpeu zcQ1)U0aFTvwy30{p{PPF0V(A}D^!q5krGsdS``(PRxJWSBU(kODo~-NssL4_zc;sg zKHF*9PkiZ)vv1#f^X9!bznPt#o6X1<9wsjl`EXslNc24JT#|xbo=l@Uy7Gl6Jr{m; z)$`KutE;kyG*hk^`lO+hz15TWusb_wX&Svosmm=K}|F_N7mS`M+b?9B`+<@ z7E?~NcPJ_~Ng*N`8op3o+W;ctO5$Q7GtH#m_$-)R~b^jy#{bPIxzoqN4n*c^l3 z40A~|WgzC3TZtAx_jV6a+uXX#$ubdoP%k0KJL?ir!cvb}kbf5kL7medaP=Y+-I_2= zBM*(pEeVGE(v7R3B$0i>P>VVYIaj(B7uzLqHIyXLK!fPAE&?tBE&?tBE&?tBE&?tB zE&?tBE&?tB|3?Ts!@sLh__wKt{Pa;f(S>Fr2{L}a29l7SGXb{yZ>6={LwjI^_A$B( z)OY2l(&A60rr`P;=q?ZB4tS5usai>7qAoDa4d{H-wv4hRy$yH5Q)C?lI@vdV+j^*r zqSq5F@LSrv0*2GqPCM-y1ld&91M_?x1Q62(E8P6AY|nnl%9?l z8tC{v9x+=$A_4x*?W;9tT1UaomTrlf;0J2>!O?6I(^o_8fFT^5XXr^n z`W_mk>2rkaxk&WE->78`7{=={X#9*PwLWw;bj{(##$S<*=#B}i$f@uW;~%Wy9@(0u z#wV=dPT87e2EtTCziiENBg7i+nyrZ#QPwcN0TaO@O&)zMZbAJT(6w|vwg6+$0e)5& z#C+qt@4KI3oHyne&n@(h=s8@kz4HE93_G2`Rm@D8mRd@Tsis~v@~TOZX`dggTDG*3>O{||7G_AjjP|GbALl%fxp6?^rxbPlnQPz{gGPJN68vanC}27_Qp~ zih7QXQD7?VTXaeabI4Dmjf97RSs;&RtaiaAKU;(m5IG?vw-Y+HVSBFUJMg#f0Xj-K zNZ+Lcpl{JDpdsl)EDc8`Rf^El(xad+3Hp|x{}eRlVST5dDM53B-Yw|Uo|B%>(;0-1 z(0iU=dm^;J%XFu=&l{nfmt#!|`VH@+Qh?5QPkRIOI%t$W@Tw9PCf|P0R$s^$r7pqW zBQl#`)esS8rdmXcBrq+ubQpsdu7k^J&%wmd-( zNIQ^aFO~_STD;omK7qlN=v_gV`+MjtjnEcB`vn~m^kzZ#3#tgJ33|JrQ=nt?Am}ZK z#C>^;M!jDI-3uBMny{cx(3H1GPtYS?la@hqjD80CP5Kq+2we;MJ^GE{-=u4Nr@$wD zKcqj>9^a4XFI4e8OCQs-zUN7je(pO}7N^TWfhAjm=d z`KD_#Y+vXCzvxgpF&g{~Iz>V}F0*ytx`b|jZK|S%nS1$R=CXA}FI0=_=VOR<#YKx(LOQiJjL2a^X zC>EAj>aSF=kP6-jGoY9%Ig2sv&fTWwEhfA*}yxx5k)II zQPPT~H1dhvMKzrxLAkEKpj0d*m)2PtQ7RPydA&0Si-18OW}0d#SDdn6QvDXz{#?~k zso$=!qtCC%8hFu_6yxyxs+3-tGPKD<*8D0AX`!0GL`6z3Rh077{1&rDcz$(SHS>m6 z;m*vj%xYFqol)D}Pix9#SvM^$Z&F&#RVOEvT%%b{2f#3gF&`b!YVTakxKc$cszydN zj%axEQ%xbpdrU1V#{_52L>;R&6dkm*oL1DVhHg4f0Y4v3sO%vFy9gveBYIimxj0zn z(HuOcS(M0&*_oZHsARiley36{6jj=xS}bih^pdS{22#wqx^P6yf4gg(nqF4R7I(Nv zg9VN`VCYB9*}%-H$XE&{ieg}^ASND0s%%dyo^^Nvoer_cz?JZfGVe^!?OL%Y6j=_G z(u>ZtrXQVS4~qLR|V7XdSv3LMt zAlD$(9!A3eC{8#GblKE_@jgSd)M2fxVt9_IyZ8&=P+Bu9x`2yntcuaft72Y?#79)q z#Ck!6hVI)*R!e3337zTee^Si!Nq7~&)F1EuLV>b+ZTmKB(QH^=>l;-Q-xBT3E7t3l zF;dASovLKut;9S{KRF6Prz3df6reI_8(x_js#(j%2MP0$ZbTj5chfKpQW{?$6V!{V z8!x$0QebIf^QNO!0UmC^4@XmYlW7Rn+o&J<68x4?mxjHCOUCEgnPj%XTY|=ITEIpy zffjtHn=^>XaZ{84D}H?D^w8s9 zzccvvbKdtT^wZj zv{XWpy-}%|sL+Pu8aKKfY`hv}cFGSjeGl?%L!`E7fZ%RL8)OfzCLdnjxkQWVuR%E} zr-nu|@`mp2P52Qk(E?}H7dsm4D#^zNIE%psO|%Dta~YJYc-x=#EZ%1*m0fzdzNp|G zf%Q(1nRMo!?42*Zcf2L_)Qg_?zmk9IML+5XuOIKP;Q2S@ z0VRL9S~17B5AEt7meO`fGLm2vjeeT5kS>|Qt<`?IDYNlo)r5gw&Ha%kdrmBeo-WFUgUQKdRa4vBXa1n43 za1n43a1n43a1n43a1n43a1pp10{l&h2w$V8XIs_2Fm+!-&vrX;-IBz2JNz(rN{6=> z>|Pw!On?sJP$h#SnB6!EnZSJ)j#+jK(=)#JKdpTskmy3wKK!(;-9K+T!a0HXeqf8@ zmKM6bIEpafN5fH$3ZG>h?dYO@jranVMXds@iF!Ud(ol;74N;!)J%As?5^}O&#Rp82 zm+({&Hr+VTsr~ihI0zWvaL13fDflZ< z#+(N6{fQ6K^2mk{!6xvnW`Z^gA6qHf;A5|_GaLHTgF~-wTpOqd-;g$e+X%TAe;l8` z?J+uhXk_5701xLt3cvT~#FY^@fw&1+b4FZ7#TUV0NRy&9_q>9mDMoIR4#6|`d9F^T zB!1L8SjfnZQN%F^4&^wf-FACMpL23BVu=sS{?i^i8S|Zyo*ALb`9L?_;v(Q8;3D86;3D86;3D86;3D86 z;3DwZAb=mV`0u)OuHk#^XA{_s;v(Q8;3D86;3D86;3D86;3D86;3D86;3D86@L3`7 EZ-lVaHUIzs literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.6/obj/Debug/Exercise 7.6.pdb b/Code/Chapter 7/C#/Exercise 7.6/obj/Debug/Exercise 7.6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1a0e4e9ff142fd9881cb8ceca9d581576355c5fe GIT binary patch literal 26112 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 Skeh+r4CH1YHv^a84E!I6u8x-g literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.6/obj/Debug/Exercise_7_6.Properties.Resources.resources b/Code/Chapter 7/C#/Exercise 7.6/obj/Debug/Exercise_7_6.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYwED6huHGAyCnlLZY@3{@KK1vC769?b^_A z0*-*hY53tAPQV5D;RG;aN|RO*s_KvD)$Gi?nR&B@X&A!ax)c4s-O`=nkXhJ<(;%Ac>e{AyK(?=qvzM6 z)uK|hgdoXeRvW+$IcOHH2Aja;3qj2xZ{79CF!N?n%1=}wkAW1YazYf2%oR-B{u zo-_S6VLbsEi-j>Jv1D{M9&%**ZyF^JbL!-8L znMgqsiDeb@*Jo6~-P-h2@3ZEUw*?sbBRrrS@uL0hpQyq9VayrW&b z=dbzo;INZW2>Sv?KRi?P{!n<7;UZ>eoGC+#C5%$IG=@w`7Z1(?!6Jf1jaDc9Oueuf z4`2nyl`TK*MNu3ryk0um=P^Bil?Wlmsa!o_7fdHxGUO45@bZZ}IN&3Vudg3Xi;BNFyV~Q~sMY+xDoWF|_FtX}4T)=9`|@%R3d%FKevucR{#J2 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/C#/Exercise 7.6/obj/Exercise 7.6.csproj.FileList.txt b/Code/Chapter 7/C#/Exercise 7.6/obj/Exercise 7.6.csproj.FileList.txt new file mode 100644 index 0000000..a2638bd --- /dev/null +++ b/Code/Chapter 7/C#/Exercise 7.6/obj/Exercise 7.6.csproj.FileList.txt @@ -0,0 +1,7 @@ +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_7_6.Properties.Resources.resources +obj\Debug\Exercise 7.6.csproj.GenerateResource.Cache +obj\Debug\Exercise 7.6.exe +.\bin\Debug\Exercise 7.6.exe +.\bin\Debug\Exercise 7.6.pdb +obj\Debug\Exercise 7.6.pdb diff --git a/Code/Chapter 7/SQL/CreateDatabase.Sql b/Code/Chapter 7/SQL/CreateDatabase.Sql new file mode 100644 index 0000000..2efc364 --- /dev/null +++ b/Code/Chapter 7/SQL/CreateDatabase.Sql @@ -0,0 +1,47 @@ +use Master +Go +CREATE DATABASE Test +Go + +use Test +Go + +CREATE TABLE [dbo].[PermissionsTable]( + [PermissionID] [int] IDENTITY(1,1) NOT NULL, + [PermissionType] [varchar](50) NOT NULL, + CONSTRAINT [PK_PermissionsTable] PRIMARY KEY CLUSTERED +( + [PermissionID] ASC +) ON [PRIMARY] +) ON [PRIMARY] +Go + +CREATE TABLE [dbo].[UserPermissionsTable]( + [UserPermissionsID] [int] IDENTITY(1,1) NOT NULL, + [UserID] [int] NOT NULL, + [PermissionsID] [int] NOT NULL, + CONSTRAINT [PK_UserPermissionsTable] PRIMARY KEY CLUSTERED +( + [UserPermissionsID] ASC +) ON [PRIMARY] +) ON [PRIMARY] +Go + +CREATE TABLE [dbo].[UserTable]( + [UserID] [int] IDENTITY(1,1) NOT NULL, + [FirstName] [varchar](50) NOT NULL, + [LastName] [varchar](50) NULL, + CONSTRAINT [PK_UserTable] PRIMARY KEY CLUSTERED +( + [UserID] ASC +) ON [PRIMARY] +) ON [PRIMARY] +Go + +ALTER TABLE [dbo].[UserPermissionsTable] WITH CHECK ADD CONSTRAINT [FK_UserPermissionsTable_PermissionsTable] FOREIGN KEY( [PermissionsID]) +REFERENCES [PermissionsTable] ( [PermissionID]) +GO + +ALTER TABLE [dbo].[UserPermissionsTable] WITH CHECK ADD CONSTRAINT [FK_UserPermissionsTable_UserTable] FOREIGN KEY( [UserID]) +REFERENCES [UserTable] ( [UserID]) +GO diff --git a/Code/Chapter 7/VB.NET/Chapter 7.sln b/Code/Chapter 7/VB.NET/Chapter 7.sln new file mode 100644 index 0000000..c53a1c5 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Chapter 7.sln @@ -0,0 +1,50 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 7.2", "Exercise 7.2\Exercise 7.2.vbproj", "{8946E843-87EC-4F44-9F20-9D15A4244D6E}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 7.3", "Exercise 7.3\Exercise 7.3.vbproj", "{9E33E365-0EA6-4753-A58D-52B40E87528A}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 7.4", "Exercise 7.4\Exercise 7.4.vbproj", "{9B4B4F40-6E18-40AE-8E7D-C77D0A4C829B}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 7.5", "Exercise 7.5\Exercise 7.5.vbproj", "{29F60579-2F46-4396-8FE5-B7930B77B460}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 7.6", "Exercise 7.6\Exercise 7.6.vbproj", "{EA516597-743B-4B57-83DA-18700D2613CE}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 7.1", "Exercise 7.1\Exercise 7.1.vbproj", "{29474399-421B-4218-984C-3B801A0ABD74}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8946E843-87EC-4F44-9F20-9D15A4244D6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8946E843-87EC-4F44-9F20-9D15A4244D6E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8946E843-87EC-4F44-9F20-9D15A4244D6E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8946E843-87EC-4F44-9F20-9D15A4244D6E}.Release|Any CPU.Build.0 = Release|Any CPU + {9E33E365-0EA6-4753-A58D-52B40E87528A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E33E365-0EA6-4753-A58D-52B40E87528A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E33E365-0EA6-4753-A58D-52B40E87528A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E33E365-0EA6-4753-A58D-52B40E87528A}.Release|Any CPU.Build.0 = Release|Any CPU + {9B4B4F40-6E18-40AE-8E7D-C77D0A4C829B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B4B4F40-6E18-40AE-8E7D-C77D0A4C829B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B4B4F40-6E18-40AE-8E7D-C77D0A4C829B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B4B4F40-6E18-40AE-8E7D-C77D0A4C829B}.Release|Any CPU.Build.0 = Release|Any CPU + {29F60579-2F46-4396-8FE5-B7930B77B460}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29F60579-2F46-4396-8FE5-B7930B77B460}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29F60579-2F46-4396-8FE5-B7930B77B460}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29F60579-2F46-4396-8FE5-B7930B77B460}.Release|Any CPU.Build.0 = Release|Any CPU + {EA516597-743B-4B57-83DA-18700D2613CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA516597-743B-4B57-83DA-18700D2613CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA516597-743B-4B57-83DA-18700D2613CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA516597-743B-4B57-83DA-18700D2613CE}.Release|Any CPU.Build.0 = Release|Any CPU + {29474399-421B-4218-984C-3B801A0ABD74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29474399-421B-4218-984C-3B801A0ABD74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29474399-421B-4218-984C-3B801A0ABD74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29474399-421B-4218-984C-3B801A0ABD74}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 7/VB.NET/Chapter 7.suo b/Code/Chapter 7/VB.NET/Chapter 7.suo new file mode 100644 index 0000000000000000000000000000000000000000..22efc0d9e62fb6c8a4f2a5a2bd1dd168433bf204 GIT binary patch literal 61952 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/Exercise 7.1.vbproj b/Code/Chapter 7/VB.NET/Exercise 7.1/Exercise 7.1.vbproj new file mode 100644 index 0000000..0e4db33 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/Exercise 7.1.vbproj @@ -0,0 +1,118 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {29474399-421B-4218-984C-3B801A0ABD74} + WinExe + Exercise_7_1.Form1 + Exercise_7_1 + Exercise 7.1 + WindowsForms + + + true + full + true + true + bin\Debug\ + Exercise_7.1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise_7.1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + True + True + TestDataSet.xsd + + + TestDataSet.xsd + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + TestDataSet.xsd + + + Designer + MSDataSetGenerator + TestDataSet.Designer.vb + + + TestDataSet.xsd + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/Exercise 7.1.vbproj.user b/Code/Chapter 7/VB.NET/Exercise 7.1/Exercise 7.1.vbproj.user new file mode 100644 index 0000000..a871dca --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/Exercise 7.1.vbproj.user @@ -0,0 +1,6 @@ + + + ShowAllFiles + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/Form1.Designer.vb b/Code/Chapter 7/VB.NET/Exercise 7.1/Form1.Designer.vb new file mode 100644 index 0000000..057d2e2 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/Form1.Designer.vb @@ -0,0 +1,234 @@ + _ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1)) + Dim FirstNameLabel As System.Windows.Forms.Label + Dim LastNameLabel As System.Windows.Forms.Label + Me.TestDataSet = New Exercise_7_1.TestDataSet + Me.UserTableBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.UserTableTableAdapter = New Exercise_7_1.TestDataSetTableAdapters.UserTableTableAdapter + Me.UserTableBindingNavigator = New System.Windows.Forms.BindingNavigator(Me.components) + Me.bindingNavigatorMoveFirstItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorMovePreviousItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorSeparator = New System.Windows.Forms.ToolStripSeparator + Me.bindingNavigatorPositionItem = New System.Windows.Forms.ToolStripTextBox + Me.bindingNavigatorCountItem = New System.Windows.Forms.ToolStripLabel + Me.bindingNavigatorSeparator1 = New System.Windows.Forms.ToolStripSeparator + Me.bindingNavigatorMoveNextItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorMoveLastItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorSeparator2 = New System.Windows.Forms.ToolStripSeparator + Me.bindingNavigatorAddNewItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorDeleteItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorSaveItem = New System.Windows.Forms.ToolStripButton + Me.FirstNameTextBox = New System.Windows.Forms.TextBox + Me.LastNameTextBox = New System.Windows.Forms.TextBox + FirstNameLabel = New System.Windows.Forms.Label + LastNameLabel = New System.Windows.Forms.Label + CType(Me.TestDataSet, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.UserTableBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.UserTableBindingNavigator, System.ComponentModel.ISupportInitialize).BeginInit() + Me.UserTableBindingNavigator.SuspendLayout() + Me.SuspendLayout() + ' + 'TestDataSet + ' + Me.TestDataSet.DataSetName = "TestDataSet" + ' + 'UserTableBindingSource + ' + Me.UserTableBindingSource.DataMember = "UserTable" + Me.UserTableBindingSource.DataSource = Me.TestDataSet + ' + 'UserTableTableAdapter + ' + Me.UserTableTableAdapter.ClearBeforeFill = True + ' + 'UserTableBindingNavigator + ' + Me.UserTableBindingNavigator.AddNewItem = Me.bindingNavigatorAddNewItem + Me.UserTableBindingNavigator.BindingSource = Me.UserTableBindingSource + Me.UserTableBindingNavigator.CountItem = Me.bindingNavigatorCountItem + Me.UserTableBindingNavigator.CountItemFormat = "of {0}" + Me.UserTableBindingNavigator.DeleteItem = Me.bindingNavigatorDeleteItem + Me.UserTableBindingNavigator.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.bindingNavigatorMoveFirstItem, Me.bindingNavigatorMovePreviousItem, Me.bindingNavigatorSeparator, Me.bindingNavigatorPositionItem, Me.bindingNavigatorCountItem, Me.bindingNavigatorSeparator1, Me.bindingNavigatorMoveNextItem, Me.bindingNavigatorMoveLastItem, Me.bindingNavigatorSeparator2, Me.bindingNavigatorAddNewItem, Me.bindingNavigatorDeleteItem, Me.bindingNavigatorSaveItem}) + Me.UserTableBindingNavigator.Location = New System.Drawing.Point(0, 0) + Me.UserTableBindingNavigator.MoveFirstItem = Me.bindingNavigatorMoveFirstItem + Me.UserTableBindingNavigator.MoveLastItem = Me.bindingNavigatorMoveLastItem + Me.UserTableBindingNavigator.MoveNextItem = Me.bindingNavigatorMoveNextItem + Me.UserTableBindingNavigator.MovePreviousItem = Me.bindingNavigatorMovePreviousItem + Me.UserTableBindingNavigator.Name = "UserTableBindingNavigator" + Me.UserTableBindingNavigator.PositionItem = Me.bindingNavigatorPositionItem + Me.UserTableBindingNavigator.Size = New System.Drawing.Size(292, 25) + Me.UserTableBindingNavigator.TabIndex = 0 + Me.UserTableBindingNavigator.Text = "BindingNavigator1" + ' + 'bindingNavigatorMoveFirstItem + ' + Me.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMoveFirstItem.Image = CType(resources.GetObject("bindingNavigatorMoveFirstItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem" + Me.bindingNavigatorMoveFirstItem.Text = "Move first" + ' + 'bindingNavigatorMovePreviousItem + ' + Me.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMovePreviousItem.Image = CType(resources.GetObject("bindingNavigatorMovePreviousItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem" + Me.bindingNavigatorMovePreviousItem.Text = "Move previous" + ' + 'bindingNavigatorSeparator + ' + Me.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator" + ' + 'bindingNavigatorPositionItem + ' + Me.bindingNavigatorPositionItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.ImageAndText + Me.bindingNavigatorPositionItem.Margin = New System.Windows.Forms.Padding(1, 0, 1, 0) + Me.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem" + Me.bindingNavigatorPositionItem.Size = New System.Drawing.Size(50, 21) + Me.bindingNavigatorPositionItem.Text = "0" + Me.bindingNavigatorPositionItem.ToolTipText = "Current position" + ' + 'bindingNavigatorCountItem + ' + Me.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem" + Me.bindingNavigatorCountItem.Text = "of {0}" + Me.bindingNavigatorCountItem.ToolTipText = "Total number of items" + ' + 'bindingNavigatorSeparator1 + ' + Me.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator" + ' + 'bindingNavigatorMoveNextItem + ' + Me.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMoveNextItem.Image = CType(resources.GetObject("bindingNavigatorMoveNextItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem" + Me.bindingNavigatorMoveNextItem.Text = "Move next" + ' + 'bindingNavigatorMoveLastItem + ' + Me.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMoveLastItem.Image = CType(resources.GetObject("bindingNavigatorMoveLastItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem" + Me.bindingNavigatorMoveLastItem.Text = "Move last" + ' + 'bindingNavigatorSeparator2 + ' + Me.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator" + ' + 'bindingNavigatorAddNewItem + ' + Me.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorAddNewItem.Image = CType(resources.GetObject("bindingNavigatorAddNewItem.Image"), System.Drawing.Image) + Me.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem" + Me.bindingNavigatorAddNewItem.Text = "Add new" + ' + 'bindingNavigatorDeleteItem + ' + Me.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorDeleteItem.Image = CType(resources.GetObject("bindingNavigatorDeleteItem.Image"), System.Drawing.Image) + Me.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem" + Me.bindingNavigatorDeleteItem.Text = "Delete" + ' + 'bindingNavigatorSaveItem + ' + Me.bindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorSaveItem.Image = CType(resources.GetObject("bindingNavigatorSaveItem.Image"), System.Drawing.Image) + Me.bindingNavigatorSaveItem.Name = "bindingNavigatorSaveItem" + Me.bindingNavigatorSaveItem.Text = "Save Data" + ' + 'FirstNameLabel + ' + FirstNameLabel.AutoSize = True + FirstNameLabel.Location = New System.Drawing.Point(92, 42) + FirstNameLabel.Name = "FirstNameLabel" + FirstNameLabel.Size = New System.Drawing.Size(56, 13) + FirstNameLabel.TabIndex = 1 + FirstNameLabel.Text = "First Name:" + ' + 'FirstNameTextBox + ' + Me.FirstNameTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.UserTableBindingSource, "FirstName", True)) + Me.FirstNameTextBox.Location = New System.Drawing.Point(155, 39) + Me.FirstNameTextBox.Name = "FirstNameTextBox" + Me.FirstNameTextBox.Size = New System.Drawing.Size(100, 20) + Me.FirstNameTextBox.TabIndex = 2 + ' + 'LastNameLabel + ' + LastNameLabel.AutoSize = True + LastNameLabel.Location = New System.Drawing.Point(91, 71) + LastNameLabel.Name = "LastNameLabel" + LastNameLabel.Size = New System.Drawing.Size(57, 13) + LastNameLabel.TabIndex = 3 + LastNameLabel.Text = "Last Name:" + ' + 'LastNameTextBox + ' + Me.LastNameTextBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.UserTableBindingSource, "LastName", True)) + Me.LastNameTextBox.Location = New System.Drawing.Point(155, 68) + Me.LastNameTextBox.Name = "LastNameTextBox" + Me.LastNameTextBox.Size = New System.Drawing.Size(100, 20) + Me.LastNameTextBox.TabIndex = 4 + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(292, 100) + Me.Controls.Add(LastNameLabel) + Me.Controls.Add(Me.LastNameTextBox) + Me.Controls.Add(FirstNameLabel) + Me.Controls.Add(Me.FirstNameTextBox) + Me.Controls.Add(Me.UserTableBindingNavigator) + Me.Name = "Form1" + Me.Text = "Exercise 7.1" + CType(Me.TestDataSet, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.UserTableBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.UserTableBindingNavigator, System.ComponentModel.ISupportInitialize).EndInit() + Me.UserTableBindingNavigator.ResumeLayout(False) + Me.UserTableBindingNavigator.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TestDataSet As Exercise_7_1.TestDataSet + Friend WithEvents UserTableBindingSource As System.Windows.Forms.BindingSource + Friend WithEvents UserTableTableAdapter As Exercise_7_1.TestDataSetTableAdapters.UserTableTableAdapter + Friend WithEvents UserTableBindingNavigator As System.Windows.Forms.BindingNavigator + Friend WithEvents bindingNavigatorAddNewItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorCountItem As System.Windows.Forms.ToolStripLabel + Friend WithEvents bindingNavigatorDeleteItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorMoveFirstItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorMovePreviousItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorSeparator As System.Windows.Forms.ToolStripSeparator + Friend WithEvents bindingNavigatorPositionItem As System.Windows.Forms.ToolStripTextBox + Friend WithEvents bindingNavigatorSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents bindingNavigatorMoveNextItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorMoveLastItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorSeparator2 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents bindingNavigatorSaveItem As System.Windows.Forms.ToolStripButton + Friend WithEvents FirstNameTextBox As System.Windows.Forms.TextBox + Friend WithEvents LastNameTextBox As System.Windows.Forms.TextBox + +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/Form1.resx b/Code/Chapter 7/VB.NET/Exercise 7.1/Form1.resx new file mode 100644 index 0000000..ca2324e --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/Form1.resx @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 129, 17 + + + 301, 17 + + + 469, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAfNJREFUOE/Nk8lr + U1EUxvtnuHMnLQouFGpBRdwIorgQ7EYUobqpi0bEooID3XbRhQutOFDbOgUqDs2AbU2cWtoaJG0TxTSV + 5OXV5OXlzYOJ/rzGVSGBLL27C+f7ne8799y2tv/2uKUI7voILRt05Qm84jhWbqwuqixd5MfrfTj5B/W7 + LY3gK48FNNQYaqzeZD1+FC3ZR9WcxEqdR4luF6Jx3MIwyvtDaMsB3OKLJoDsCMWPJ5CfbcZJncVN9aLH + dvFTGkR/t59SdCdmdgi70ATw16ZfmcBKnkF5vgl99iBm8jT6QjfahwNU1TE8Pdq4e9WYQUtfw0j3Yy2d + QovvxskM4ZsLWNlBrHQAb/UK1pcLOLkbIuLcRpAjPyQ3uQf51TbK4S3Cehee9JTfv3Rs6Q564jharJNi + eCvqYg9+ZXojwFcXMbJ3cQr38Nauo0ba0ee6sb8OoM0fE656qOlPcKT7Ahikan1rHMXOD1Oa2ktZTN+c + P4z2pgvz80kB7MBMBfCNcPO9sPOjyLEjSKFO/PIj0b1fxGkXnYOYK+covOzAyAzgKU0gdm4U5VMf5vdb + +Po0+sol5NAOvFIQT42gJi+jp6/ilZu8hKfMik2cwi3F6zbNtduUE71C/E/gKW8FbAavkmhtvWtOhpqz + 3Fpxyx+mQeEfdtWWWgCbhLwAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAW9JREFUOE+tkk0o + w3EYx3dV3kq5uKBWDiPT8hISMiQsMiEyQ9qBg0hoFwcHUi7kgIvkQFJSTrQ4zdvmrTW1/kuT0i74x+X3 + MRal/fEnv8tz+H2fz/N8vz0azX88PG6wmcDp4E881hYR3VUIixF2Nr+FcO2DlbnPGjaWoM+M6DAiOitg + YUoR8rqhsJTBWG/kP6fOMKTegGjKh/7mTyIx0oUw58C0/XubLM8iKtPeQIx2gfcMJgbD0FBVlRE+D7QU + hS2ZshANuTDQqq75fQIHe6GVcxHV6VCr/2VzQIKmAshOQNbHc6+PhTqDOggBP5jzoDCJoLUaLo7fwr3V + hSCr8z8EeHcLbSU8FCfjLU0nuL/70cB4Py5tDLL7UBnC8xMMW6EkhRNdIsGt9QjhTXkGUnsN8rVf4Q72 + tpFzEnGlRiH1NIL8qDjJoY1DdjkVADNjSGnReI2ZIF196VW22+D8SAFw6YLJITjaV5e2qotSIXoBiiMD + HEVvQ/IAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAStJREFUOE9jYBg0 + oHDW8/9NC57/z5z4+D8uR4W3P8Apx5A789n/VUfe/8elKL77wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+ + ///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0v3f1BxRFoa33wJpb1wFt7/z73yX/AG4D + Apsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvgUXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF + 7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbAIu/O/9T+11gVGSSd+C+b9vW/bvA83AYY + Zt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPulf8gBXgVDZqMh+wQAPB2wKsSwCgmAAAA + AElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAL1JREFUOE9jYBgy + ILz9wX+yHRvf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3v + kn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ14A0ChbVd8+3/6nN///bu+/dcpfPffImE9aQaADNFP + Of/fpOjFf5WsT/+NI5eRbgDIEIOkE/9l077+1w2eR54BYJekXv6v4TuNfANAhqh4TKDMALKTMc01AgDQ + FGCYkuTLEQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKtJREFUOE9jYBh0 + oHDW8/8UOSp35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ + ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuIN8Sj6v7/krnv4JoVXXqI1wyKPvvSu/8D + W56BbSZZM8gAi7w7/20KrpCnGWSAYdZt8jWDDNBJu0GanylKtoNCMwCgfl+gC2KedgAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAATBJREFUOE9jYBhU + oHDW8/+4HASSa1rw/H/mxMc41TDkznz2P6H7HlYFILlVR97/D29/gNuAjClP/8/b//t/QtcdDEUguYX7 + PvwPbriG24CEnif/Z+/79b9z69//bqWXURSC5KZtef/fv/oCbgMiux79n7Lt1/+SpX//J0z/+98m9yxc + MUiud/WH/16lJ3AbENj88H/r2vdgzcYlX/5LR1/7bxy5DKwBJFc3/91/l/wDuA3wqLr/v2TuO7hmRZce + uGKQXP60N//tM7bjNsC+9O7/wJZnYJuRNYNcAJLLnvz6v0XCetwGWOTd+W9TcAVDM8gAkFxq/2u4l7Cm + F8Os21g1gxSD5MJaXv7XDZ6H2wU6aTdwSoLk/Kof/tfwnYbbAHz5yin3yn8VjwlgPKjyHwMAvtG/s0Vm + x8MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAilJREFUOE+tk91L + k3EUx/cvdN9N0EW3NTWGa7EaPOUcyqphWBG9PZEv5dJlmqhYmUYtXyBb4dJJy+kknFT4BqZIjaFMJUsz + V7TEoabYRDD49ju/6Pm1Mm/qB+fy8znPOef7qFT/4z17GgWVr30Zbd4lPHYvoLEhgvuOGdTWfIL9dgg3 + yqdQWjKBwoLXyMsdxYXzQSi9CeztAWqqV7HRW1ldgzGtF4fTnvBSBN7WRS6orPjyV57gyMIKdpufQ62W + YTnkEQL3o3kuKC35vK7gJ/w+vIg4kw8Fl6dxwNwkBM76WS64ZHv3h+BXeGQygm2SF9accaSmOIWg7m6Y + C7KzRmMEv8ODwTA2692Q5QBMJocQVFd95AL5TEARrAf3+D9gU2IDjhx9gaSkWiG4WTmN7i6wUwLHT76C + 5dgA3zYtjGamz6bOP+A+HLR0QpLsQnC1bBIdPrAMAE2ub+zuX1F+fY4vlRZGM2dmBBU4ObUdBkOFEFwp + HIenGXjoXGPBicKYnhNT5hM2pJ8r4p2TUxi83wO9vkwIbHljDAaq7kR5ZxJQSOK0EobezmJsag5y7jXs + NbZxWLvHBZ2uSAgolo57UD6bBASfzb+FN6F5hGaWcLHYjni9i8GNiN/1ANrEfCHIzBhmcy/zmbcaPNiy + Q0JLRz98XYPo7vNj4OUQ9pksUOvqkcDg7Zo6aDTWWMHpU/08npQwCgndmU5F26aF0czUlYrgnQnZQvAv + f/R3bGg6a0rM640AAAAASUVORK5CYII= + + + + False + + + False + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/Form1.vb b/Code/Chapter 7/VB.NET/Exercise 7.1/Form1.vb new file mode 100644 index 0000000..35b35e7 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/Form1.vb @@ -0,0 +1,18 @@ +Public Class Form1 + + Private Sub bindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindingNavigatorSaveItem.Click + If Me.Validate Then + Me.UserTableBindingSource.EndEdit() + Me.UserTableTableAdapter.Update(Me.TestDataSet.UserTable) + Else + System.Windows.Forms.MessageBox.Show(Me, "Validation errors occurred.", "Save", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning) + End If + + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + 'TODO: This line of code loads data into the 'TestDataSet.UserTable' table. You can move, or remove it, as needed. + Me.UserTableTableAdapter.Fill(Me.TestDataSet.UserTable) + + End Sub +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Application.Designer.vb b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Application.Designer.vb new file mode 100644 index 0000000..0c8fb08 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'NOTE: This file is auto-generated; do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to Project Properties or double-click the My Project node in + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.Exercise_7_1.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Application.myapp b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Application.myapp new file mode 100644 index 0000000..1243847 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Application.myapp @@ -0,0 +1,11 @@ + + + true + Form1 + false + 0 + true + 0 + 0 + true + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/ApplicationEvents.vb b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/ApplicationEvents.vb new file mode 100644 index 0000000..3b9cdcd --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/ApplicationEvents.vb @@ -0,0 +1,15 @@ +Namespace My + + 'The following events are available for MyApplication + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + Class MyApplication + + End Class + +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/AssemblyInfo.vb b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..edbd4f3 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Resources.Designer.vb b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Resources.Designer.vb new file mode 100644 index 0000000..7c2d359 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_7_1.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Resources.resx b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Settings.Designer.vb b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Settings.Designer.vb new file mode 100644 index 0000000..1ea6f04 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Settings.Designer.vb @@ -0,0 +1,76 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property + + _ + Public ReadOnly Property TestConnectionString() As String + Get + Return CType(Me("TestConnectionString"),String) + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_7_1.Settings + Get + Return Global.Exercise_7_1.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Settings.settings b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Settings.settings new file mode 100644 index 0000000..eb7db38 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/My Project/Settings.settings @@ -0,0 +1,16 @@ + + + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Data Source=(local);Initial Catalog=Test;Integrated Security=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=(local);Initial Catalog=Test;Integrated Security=True + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.Designer.vb b/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.Designer.vb new file mode 100644 index 0000000..cf836d9 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.Designer.vb @@ -0,0 +1,750 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System + + + _ +Partial Public Class TestDataSet + Inherits System.Data.DataSet + + Private tableUserTable As UserTableDataTable + + Private _schemaSerializationMode As System.Data.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema + + _ + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + _ + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Me.DetermineSchemaSerializationMode(info, context) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + If (Not (ds.Tables("UserTable")) Is Nothing) Then + MyBase.Tables.Add(New UserTableDataTable(ds.Tables("UserTable"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public ReadOnly Property UserTable() As UserTableDataTable + Get + Return Me.tableUserTable + End Get + End Property + + Public Overrides Property SchemaSerializationMode() As System.Data.SchemaSerializationMode + Get + Return Me._schemaSerializationMode + End Get + Set + Me._schemaSerializationMode = value + End Set + End Property + + _ + Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Public Shadows Property EnforceConstraints() As Boolean + Get + Return MyBase.EnforceConstraints + End Get + Set + MyBase.EnforceConstraints = value + End Set + End Property + + Protected Overrides Sub InitializeDerivedDataSet() + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Public Overrides Function Clone() As System.Data.DataSet + Dim cln As TestDataSet = CType(MyBase.Clone,TestDataSet) + cln.InitVars + Return cln + End Function + + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader) + If (Me.DetermineSchemaSerializationMode(reader) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Me.Reset + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXml(reader) + If (Not (ds.Tables("UserTable")) Is Nothing) Then + MyBase.Tables.Add(New UserTableDataTable(ds.Tables("UserTable"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXml(reader) + Me.InitVars + End If + End Sub + + Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema + Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream + Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing) + End Function + + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + Me.tableUserTable = CType(MyBase.Tables("UserTable"),UserTableDataTable) + If (initTable = true) Then + If (Not (Me.tableUserTable) Is Nothing) Then + Me.tableUserTable.InitVars + End If + End If + End Sub + + Private Sub InitClass() + Me.DataSetName = "TestDataSet" + Me.Prefix = "" + Me.Namespace = "http://tempuri.org/TestDataSet.xsd" + Me.EnforceConstraints = true + Me.tableUserTable = New UserTableDataTable + MyBase.Tables.Add(Me.tableUserTable) + End Sub + + Private Function ShouldSerializeUserTable() As Boolean + Return false + End Function + + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim ds As TestDataSet = New TestDataSet + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + xs.Add(ds.GetSchemaSerializable) + Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any.Namespace = ds.Namespace + sequence.Items.Add(any) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub UserTableRowChangeEventHandler(ByVal sender As Object, ByVal e As UserTableRowChangeEvent) + + _ + Partial Public Class UserTableDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnUserID As System.Data.DataColumn + + Private columnFirstName As System.Data.DataColumn + + Private columnLastName As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "UserTable" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property UserIDColumn() As System.Data.DataColumn + Get + Return Me.columnUserID + End Get + End Property + + Public ReadOnly Property FirstNameColumn() As System.Data.DataColumn + Get + Return Me.columnFirstName + End Get + End Property + + Public ReadOnly Property LastNameColumn() As System.Data.DataColumn + Get + Return Me.columnLastName + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As UserTableRow + Get + Return CType(Me.Rows(index),UserTableRow) + End Get + End Property + + Public Event UserTableRowChanged As UserTableRowChangeEventHandler + + Public Event UserTableRowChanging As UserTableRowChangeEventHandler + + Public Event UserTableRowDeleted As UserTableRowChangeEventHandler + + Public Event UserTableRowDeleting As UserTableRowChangeEventHandler + + Public Overloads Sub AddUserTableRow(ByVal row As UserTableRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddUserTableRow(ByVal FirstName As String, ByVal LastName As String) As UserTableRow + Dim rowUserTableRow As UserTableRow = CType(Me.NewRow,UserTableRow) + rowUserTableRow.ItemArray = New Object() {Nothing, FirstName, LastName} + Me.Rows.Add(rowUserTableRow) + Return rowUserTableRow + End Function + + Public Function FindByUserID(ByVal UserID As Integer) As UserTableRow + Return CType(Me.Rows.Find(New Object() {UserID}),UserTableRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As UserTableDataTable = CType(MyBase.Clone,UserTableDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New UserTableDataTable + End Function + + Friend Sub InitVars() + Me.columnUserID = MyBase.Columns("UserID") + Me.columnFirstName = MyBase.Columns("FirstName") + Me.columnLastName = MyBase.Columns("LastName") + End Sub + + Private Sub InitClass() + Me.columnUserID = New System.Data.DataColumn("UserID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnUserID) + Me.columnFirstName = New System.Data.DataColumn("FirstName", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnFirstName) + Me.columnLastName = New System.Data.DataColumn("LastName", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnLastName) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnUserID}, true)) + Me.columnUserID.AutoIncrement = true + Me.columnUserID.AllowDBNull = false + Me.columnUserID.ReadOnly = true + Me.columnUserID.Unique = true + Me.columnFirstName.AllowDBNull = false + Me.columnFirstName.MaxLength = 50 + Me.columnLastName.MaxLength = 50 + End Sub + + Public Function NewUserTableRow() As UserTableRow + Return CType(Me.NewRow,UserTableRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New UserTableRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(UserTableRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.UserTableRowChangedEvent) Is Nothing) Then + RaiseEvent UserTableRowChanged(Me, New UserTableRowChangeEvent(CType(e.Row,UserTableRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.UserTableRowChangingEvent) Is Nothing) Then + RaiseEvent UserTableRowChanging(Me, New UserTableRowChangeEvent(CType(e.Row,UserTableRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.UserTableRowDeletedEvent) Is Nothing) Then + RaiseEvent UserTableRowDeleted(Me, New UserTableRowChangeEvent(CType(e.Row,UserTableRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.UserTableRowDeletingEvent) Is Nothing) Then + RaiseEvent UserTableRowDeleting(Me, New UserTableRowChangeEvent(CType(e.Row,UserTableRow), e.Action)) + End If + End Sub + + Public Sub RemoveUserTableRow(ByVal row As UserTableRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As TestDataSet = New TestDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "UserTableDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + Partial Public Class UserTableRow + Inherits System.Data.DataRow + + Private tableUserTable As UserTableDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableUserTable = CType(Me.Table,UserTableDataTable) + End Sub + + Public Property UserID() As Integer + Get + Return CType(Me(Me.tableUserTable.UserIDColumn),Integer) + End Get + Set + Me(Me.tableUserTable.UserIDColumn) = value + End Set + End Property + + Public Property FirstName() As String + Get + Return CType(Me(Me.tableUserTable.FirstNameColumn),String) + End Get + Set + Me(Me.tableUserTable.FirstNameColumn) = value + End Set + End Property + + Public Property LastName() As String + Get + Try + Return CType(Me(Me.tableUserTable.LastNameColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'LastName' in table 'UserTable' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableUserTable.LastNameColumn) = value + End Set + End Property + + Public Function IsLastNameNull() As Boolean + Return Me.IsNull(Me.tableUserTable.LastNameColumn) + End Function + + Public Sub SetLastNameNull() + Me(Me.tableUserTable.LastNameColumn) = System.Convert.DBNull + End Sub + End Class + + Public Class UserTableRowChangeEvent + Inherits System.EventArgs + + Private eventRow As UserTableRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As UserTableRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As UserTableRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class +End Class + +Namespace TestDataSetTableAdapters + + _ + Partial Public Class UserTableTableAdapter + Inherits System.ComponentModel.Component + + Private WithEvents m_adapter As System.Data.SqlClient.SqlDataAdapter + + Private m_connection As System.Data.SqlClient.SqlConnection + + Private m_commandCollection() As System.Data.SqlClient.SqlCommand + + Private m_clearBeforeFill As Boolean + + Public Sub New() + MyBase.New + Me.m_clearBeforeFill = true + End Sub + + Private ReadOnly Property Adapter() As System.Data.SqlClient.SqlDataAdapter + Get + If (Me.m_adapter Is Nothing) Then + Me.InitAdapter + End If + Return Me.m_adapter + End Get + End Property + + Friend Property Connection() As System.Data.SqlClient.SqlConnection + Get + If (Me.m_connection Is Nothing) Then + Me.InitConnection + End If + Return Me.m_connection + End Get + Set + Me.m_connection = value + If (Not (Me.Adapter.InsertCommand) Is Nothing) Then + Me.Adapter.InsertCommand.Connection = value + End If + If (Not (Me.Adapter.DeleteCommand) Is Nothing) Then + Me.Adapter.DeleteCommand.Connection = value + End If + If (Not (Me.Adapter.UpdateCommand) Is Nothing) Then + Me.Adapter.UpdateCommand.Connection = value + End If + Dim i As Integer = 0 + Do While (i < Me.CommandCollection.Length) + If (Not (Me.CommandCollection(i)) Is Nothing) Then + CType(Me.CommandCollection(i),System.Data.SqlClient.SqlCommand).Connection = value + End If + i = (i + 1) + Loop + End Set + End Property + + Protected ReadOnly Property CommandCollection() As System.Data.SqlClient.SqlCommand() + Get + If (Me.m_commandCollection Is Nothing) Then + Me.InitCommandCollection + End If + Return Me.m_commandCollection + End Get + End Property + + Public Property ClearBeforeFill() As Boolean + Get + Return Me.m_clearBeforeFill + End Get + Set + Me.m_clearBeforeFill = value + End Set + End Property + + Private Sub InitAdapter() + Me.m_adapter = New System.Data.SqlClient.SqlDataAdapter + Dim tableMapping As System.Data.Common.DataTableMapping = New System.Data.Common.DataTableMapping + tableMapping.SourceTable = "Table" + tableMapping.DataSetTable = "UserTable" + tableMapping.ColumnMappings.Add("UserID", "UserID") + tableMapping.ColumnMappings.Add("FirstName", "FirstName") + tableMapping.ColumnMappings.Add("LastName", "LastName") + Me.m_adapter.TableMappings.Add(tableMapping) + Me.m_adapter.DeleteCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.DeleteCommand.Connection = Me.Connection + Me.m_adapter.DeleteCommand.CommandText = "DELETE FROM [dbo].[UserTable] WHERE (([UserID] = @Original_UserID) AND ([FirstNam"& _ + "e] = @Original_FirstName) AND ((@IsNull_LastName = 1 AND [LastName] IS NULL) OR "& _ + "([LastName] = @Original_LastName)))" + Me.m_adapter.DeleteCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_UserID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "UserID", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_FirstName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "FirstName", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@IsNull_LastName", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Original, true, Nothing, "", "", "")) + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_LastName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.InsertCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.InsertCommand.Connection = Me.Connection + Me.m_adapter.InsertCommand.CommandText = "INSERT INTO [dbo].[UserTable] ([FirstName], [LastName]) VALUES (@FirstName, @Last"& _ + "Name);"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"SELECT UserID, FirstName, LastName FROM UserTable WHERE (UserID = @@IDEN"& _ + "TITY)" + Me.m_adapter.InsertCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@FirstName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "FirstName", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@LastName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.UpdateCommand.Connection = Me.Connection + Me.m_adapter.UpdateCommand.CommandText = "UPDATE [dbo].[UserTable] SET [FirstName] = @FirstName, [LastName] = @LastName WHE"& _ + "RE (([UserID] = @Original_UserID) AND ([FirstName] = @Original_FirstName) AND (("& _ + "@IsNull_LastName = 1 AND [LastName] IS NULL) OR ([LastName] = @Original_LastName"& _ + ")));"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"SELECT UserID, FirstName, LastName FROM UserTable WHERE (UserID = @UserID)"& _ + "" + Me.m_adapter.UpdateCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@FirstName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "FirstName", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@LastName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_UserID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "UserID", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_FirstName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "FirstName", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@IsNull_LastName", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Original, true, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_LastName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "LastName", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@UserID", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, 0, 0, "UserID", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + End Sub + + Private Sub InitConnection() + Me.m_connection = New System.Data.SqlClient.SqlConnection + Me.m_connection.ConnectionString = Exercise_7_1.Settings.Default.TestConnectionString + End Sub + + Private Sub InitCommandCollection() + Me.m_commandCollection = New System.Data.SqlClient.SqlCommand(0) {} + Me.m_commandCollection(0) = New System.Data.SqlClient.SqlCommand + Me.m_commandCollection(0).Connection = Me.Connection + Me.m_commandCollection(0).CommandText = "SELECT UserID, FirstName, LastName FROM dbo.UserTable" + Me.m_commandCollection(0).CommandType = System.Data.CommandType.Text + End Sub + + _ + Public Overloads Overridable Function Fill(ByVal dataTable As TestDataSet.UserTableDataTable) As Integer + Me.Adapter.SelectCommand = Me.CommandCollection(0) + If (Me.m_clearBeforeFill = true) Then + dataTable.Clear + End If + Dim returnValue As Integer = Me.Adapter.Fill(dataTable) + Return returnValue + End Function + + _ + Public Overloads Overridable Function GetData() As TestDataSet.UserTableDataTable + Me.Adapter.SelectCommand = Me.CommandCollection(0) + Dim dataTable As TestDataSet.UserTableDataTable = New TestDataSet.UserTableDataTable + Me.Adapter.Fill(dataTable) + Return dataTable + End Function + + Public Overloads Overridable Function Update(ByVal dataTable As TestDataSet.UserTableDataTable) As Integer + Return Me.Adapter.Update(dataTable) + End Function + + Public Overloads Overridable Function Update(ByVal dataSet As TestDataSet) As Integer + Return Me.Adapter.Update(dataSet, "UserTable") + End Function + + Public Overloads Overridable Function Update(ByVal dataRow As System.Data.DataRow) As Integer + Return Me.Adapter.Update(New System.Data.DataRow() {dataRow}) + End Function + + Public Overloads Overridable Function Update(ByVal dataRows() As System.Data.DataRow) As Integer + Return Me.Adapter.Update(dataRows) + End Function + + _ + Public Overloads Overridable Function Delete(ByVal Original_UserID As Integer, ByVal Original_FirstName As String, ByVal Original_LastName As String) As Integer + Me.Adapter.DeleteCommand.Parameters(0).Value = CType(Original_UserID,Integer) + If (Original_FirstName Is Nothing) Then + Throw New System.ArgumentNullException("Original_FirstName") + Else + Me.Adapter.DeleteCommand.Parameters(1).Value = CType(Original_FirstName,String) + End If + If (Original_LastName Is Nothing) Then + Me.Adapter.DeleteCommand.Parameters(2).Value = CType(1,Integer) + Me.Adapter.DeleteCommand.Parameters(3).Value = System.DBNull.Value + Else + Me.Adapter.DeleteCommand.Parameters(2).Value = CType(0,Integer) + Me.Adapter.DeleteCommand.Parameters(3).Value = CType(Original_LastName,String) + End If + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.DeleteCommand.Connection.State + Me.Adapter.DeleteCommand.Connection.Open + Try + Return Me.Adapter.DeleteCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.DeleteCommand.Connection.Close + End If + End Try + End Function + + _ + Public Overloads Overridable Function Insert(ByVal FirstName As String, ByVal LastName As String) As Integer + If (FirstName Is Nothing) Then + Throw New System.ArgumentNullException("FirstName") + Else + Me.Adapter.InsertCommand.Parameters(0).Value = CType(FirstName,String) + End If + If (LastName Is Nothing) Then + Me.Adapter.InsertCommand.Parameters(1).Value = System.DBNull.Value + Else + Me.Adapter.InsertCommand.Parameters(1).Value = CType(LastName,String) + End If + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.InsertCommand.Connection.State + Me.Adapter.InsertCommand.Connection.Open + Try + Return Me.Adapter.InsertCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.InsertCommand.Connection.Close + End If + End Try + End Function + + _ + Public Overloads Overridable Function Update(ByVal FirstName As String, ByVal LastName As String, ByVal Original_UserID As Integer, ByVal Original_FirstName As String, ByVal Original_LastName As String, ByVal UserID As Integer) As Integer + If (FirstName Is Nothing) Then + Throw New System.ArgumentNullException("FirstName") + Else + Me.Adapter.UpdateCommand.Parameters(0).Value = CType(FirstName,String) + End If + If (LastName Is Nothing) Then + Me.Adapter.UpdateCommand.Parameters(1).Value = System.DBNull.Value + Else + Me.Adapter.UpdateCommand.Parameters(1).Value = CType(LastName,String) + End If + Me.Adapter.UpdateCommand.Parameters(2).Value = CType(Original_UserID,Integer) + If (Original_FirstName Is Nothing) Then + Throw New System.ArgumentNullException("Original_FirstName") + Else + Me.Adapter.UpdateCommand.Parameters(3).Value = CType(Original_FirstName,String) + End If + If (Original_LastName Is Nothing) Then + Me.Adapter.UpdateCommand.Parameters(4).Value = CType(1,Integer) + Me.Adapter.UpdateCommand.Parameters(5).Value = System.DBNull.Value + Else + Me.Adapter.UpdateCommand.Parameters(4).Value = CType(0,Integer) + Me.Adapter.UpdateCommand.Parameters(5).Value = CType(Original_LastName,String) + End If + Me.Adapter.UpdateCommand.Parameters(6).Value = CType(UserID,Integer) + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.UpdateCommand.Connection.State + Me.Adapter.UpdateCommand.Connection.Open + Try + Return Me.Adapter.UpdateCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.UpdateCommand.Connection.Close + End If + End Try + End Function + End Class +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.vb b/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.vb new file mode 100644 index 0000000..150e606 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.vb @@ -0,0 +1,4 @@ + + +Partial Public Class TestDataSet +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xsc b/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xsc new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xsc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xsd b/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xsd new file mode 100644 index 0000000..cfd3af1 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xsd @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + DELETE FROM [dbo].[UserTable] WHERE (([UserID] = @Original_UserID) AND ([FirstName] = @Original_FirstName) AND ((@IsNull_LastName = 1 AND [LastName] IS NULL) OR ([LastName] = @Original_LastName))) + + + + + + + + + + + + + + + INSERT INTO [dbo].[UserTable] ([FirstName], [LastName]) VALUES (@FirstName, @LastName); +SELECT UserID, FirstName, LastName FROM UserTable WHERE (UserID = @@IDENTITY) + + + + + + + + + + + SELECT UserID, FirstName, LastName FROM dbo.UserTable + + + + + + + UPDATE [dbo].[UserTable] SET [FirstName] = @FirstName, [LastName] = @LastName WHERE (([UserID] = @Original_UserID) AND ([FirstName] = @Original_FirstName) AND ((@IsNull_LastName = 1 AND [LastName] IS NULL) OR ([LastName] = @Original_LastName))); +SELECT UserID, FirstName, LastName FROM UserTable WHERE (UserID = @UserID) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xss b/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xss new file mode 100644 index 0000000..35047e8 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/TestDataSet.xss @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/app.config b/Code/Chapter 7/VB.NET/Exercise 7.1/app.config new file mode 100644 index 0000000..e0404c6 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/app.config @@ -0,0 +1,47 @@ + + + + +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.exe b/Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..7e6e92bd1f703196ad6ccde880ed8aced71b81e2 GIT binary patch literal 65536 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.exe.config b/Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.exe.config new file mode 100644 index 0000000..e0404c6 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.exe.config @@ -0,0 +1,47 @@ + + + + +

    +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.pdb b/Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise 7.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1e76b17c05d2206d3d5739a92317499124ca073e GIT binary patch literal 148992 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 + + + +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise_7.1.xml b/Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise_7.1.xml new file mode 100644 index 0000000..0d57b45 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/bin/Debug/Exercise_7.1.xml @@ -0,0 +1,24 @@ + + + + +Exercise7.1 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise 7.1.exe b/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise 7.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..7e6e92bd1f703196ad6ccde880ed8aced71b81e2 GIT binary patch literal 65536 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 + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise_7_1.Form1.resources b/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise_7_1.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..09c395fe3c97fbe1b68b402346d8bc05d19bf832 GIT binary patch literal 5278 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise_7_1.Resources.resources b/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise_7_1.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/TempPE/TestDataSet.Designer.vb.dll b/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/TempPE/TestDataSet.Designer.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..1164b0b9ba8dea0952eaea0a759221b15cec9a2a GIT binary patch literal 36864 zcmeHwdwg5fk^kI#r7Ov@6-%~dhd7`>0#4!xha?avfjD*&40+-tB?UH-?HflR>pGI0 z#6YNB3N(e#QlP(tE-jBz$^tD}pgc+oG_;hyHY|OR&jL%Kl=3P4wOzVx=|cH^XU@G> z4?Css+dqB}%hBAKIdkUB%$f6)?5zCAr^z59AKvf2OY{(){8}vVZ-WsOM~-?VLidM$ zIPD>A#Sf>g+nUZN26J|QE;W$oO=YuoA<<(cazoifI-BTR-JKY)`>bS5P1STq^_rzb zD>Q??^UIGeaa((dBGbZJkZ3bF3B^5amxGTmy;$*UmEFu?`{ngGAo%>!g$+Vz_vsaj z%N>M_i}gOMPD2i_|P`V5aEN*1i01<;-61E5TNb?gQuuLQWs zTt3$eN^Bbe!ZL$+m%J7uAjzDSu^}k7-i$()8^OEewV23@aS3|@oru6h1STRd5rK&a zOhjNJ0uvFKh`>YyCL%Bqf&UL8kl=GQUVJvy$xl~*h^VifNE7b+2S@5Hs9H4(PlKOz zZ5mC28Ze`m0{Cp4)T^pylR1mrG90_3m-1oV_KzuplIW!XKHD5q22IgR0ep7AEBjI& zr|zl|ZYdvPjP>TL7-KE@Fk@V277=X3DVc55DGD3WdQ>-BfL67{0F;#^cA_4^f~ek7 z=asnjqxI-PRMuPS%gVS8tU;ZIGJX^Iuq~=z4Kt_Asp5#uu9|Jm_UY0j+r!6qSRFND z^w$RXFvT2YIO|Mhv!0)f@?FqW#c|ZB74m2=s$a}J`v`z=;A*%$WlpRGHD`xaNx+_h zqJXrM%)?7_1aA4bzoxP>_6hCsJwo(SE^&guZNLkv;WlzGc+fr)@-0UJl*WncMj*ps zGE3?%10Q*SSj<2Ty>S-;UU8a_J-vh@T#&JC2SuGTpMW>BfNn+0dp3#*{c$N?QZcp?&3 zI@3NLCE{clt=Mg#8W-ORU-IlmO(>9`i)a1>0DB%l$Y#59r*nMf18YqvPb&F&Xfo{u zkkCUmTC1{8Quso~PgeLTjAJ~q%&CkoQut|%qY36OW*j|X>Y;d}-OfxKrkS&&dZlgb zz!DZXe555DD$){TjdO~}2J#A7?j!@}2=kFW;B!Z+jy_s9q+3zd8#71)^f?Db$+&ef zQo!eqE$1W0z-O;Koh==pSm&y;d{LRe`glCWrCui_3m95D(uJd7hG$biavG^jjgW~e zwPGLhP`8BVqpyR9p@p2XmqJ8jU?sa!yp>$^A$jMh4p4y~9}n8Bfv`CKPp^3rqNJO(7I za~CoyNu3*DRC2merEMM~%oMe%K}RDG4Yq^(m-`80*6XJwK6@34o93CW$1JB4n1t~h z%_AAiaDFvp>U{Y%c+}_tdpel*S`f$P&jzeA11jvW6T@~LplPq?;;1iVZvYbYRnMj% zjQEV+vI(@VVzHS~J0%cl0ULUND_ae^88-0CsbcV*Y?Zwkz_9xSTFl^%O;)4hm}hU1 zf__G~3Mw)(Ws@rE zG40k-FyoFew>wstZBS0= z7c;Je?T@inuc1cc9;_c)l^ItJ-)c7IFGHFAaW+6kQKNmihsW(JJiO7qvIPHx;B1a7 z!}w7r*t?~Gn|6pJpR)<$I>BH5jYR)~P0@lB-Z6gVnIF2AbcX}=~3U<qfPW4gUAO-c54B-HqVlB3b3fK_YU6&}7uerBLDNm|LP_o~HvVk)vaktAh&-RecKD=Nw0yUi%Q3h;t?}iZibq0?$>ZSkiP}^MJ=}izQ{SQVNCFA$`m?c6UM#Q4l8onao0FBUEa=Z zo_UmW?c;iveh~$7=JfpBptsx(CU(?N&OcH3 zbsnGh=}d78srSz5|OS?NEOmNKDAvAJ)S?U-ra z*cx#$Rc1E+v`X#O%xfMz;gHHF(e0dA^I z{)D*<6jybLyonDM{mO;N!I^TsYJ_+Z&ttp5SCv#8*MWoNPe2g}Zq z2z(}p@p(jXe7;9M%(_C)KZ*`ild{a(a%*Q}k~Zycpkx-$YX+^v{LL@DanI3M_I5S! zBrfx1T(ap_hq$pcja2!Kxm#hB8W9dhB@k4L?)i8w;yF{MeKlprZ?wOO*40$oik0;- zrbNK79|s*hCXV{pKoZW-63-dZHE|#lV`&&gJ z-tRU;rrnci+;aqi!)GoWw+^_HydS_y&0oB7d^C!M;Pbwu6%#4WOzv99)3OYzxcwwh zXA|^opuRaZxk!ix^WOn+5wCT!czP8YrGn39S^u1l%Hk#|Zj>XT$W#hU7J*BjLUk#h zy{J+`sffRq3jY}O-({Uo1B6Re3io^9mNLH&x{5brf%v?J(gKnG0ZN}YXKC1r>GWUJ zP^%&Aq;VXfo;ndn17YF?rXoz<%<05cZ1l}J+G)ZoR#7a8f*a=w2^Htk+GCuQ8kJ58 zb37-D(vFktnE1Ju8tx&_&&QB2OAqg-H=~U2r&oMfKPx24{PfCHCish)5UI${sZM0P z8Y;UYN?oLwpPs-GhsjS*U`l0vo>tk0QZY6^D^x_v64Wbf7X1;k=v1kGuXo*Sm3o!E zD@^X)FsHCtOyQ!m^lm_%Cv>_-Yq(A2@RIH`muS4J!VBF_+fPWgB^R`vFn0lS{FLDb zCZ=O>tCGR!E484T1!8om;G-eN9|^I}ZwdS(ph>AP%NN2=8WFlL95Q3{Z1@}D7)`EbI3F-V57vat z2pt537m-(Ms%Uzo4$<2fIW=O^Xe0~xaAY6g&mwHee*spJe^MQy(>-baq$=v4^eXmQ z`APdC5xQp5LbP?4zyp9L{p+MG_`elSv^Hd#l&)nxU#z{cHctC%x53B9fSc42O-5t1 zJIY>s6A*QyEc5SCmiY~E^hfLu(Kv--9I@kL9I>-v9I+nYak2%D3cOw50|I{&`*AEz ze+7)t6#|C_6lf@(9=!q@4pHBt-#P^ z_Wj7o+^44la&D{4cE|2aoSyyQDeiJmA>cgPh|UI81H_P9O>DqH`SB?+-*H~xP`IYj zYUy&ihNdD*uzNt+=cHZ$pTTMgqOYKA8U-*yb(G;~f<0OY_jfwV4uRST>UbGK_4~Ui~a! zcl9A{O#&v7*>t5=2mR-iQJaOT3w}#$MA;<{^($>UsJ#vq)#rk`-=U7zPXl#OsA$vq z`dOgf7RqhGH;wRGreC7>qHMZDU9N9Mq)rv;GWx8Z0dUe2+8K@qBCgu9z)*D7iw8m-uEP^6%O?&-_xMZaU{R(`xj)2v9dh<@p_b{V`dr1_h4PFt!}3EieNrS zcowz*cRN%Is44VahdK{bGyTG$hCoe~>wT_w7pNntd8X2G0Mt>m(4qbWDnaWUsy1|% zHjM^B5nVycLhH4oX~d(>)sCSjg)(U%v{aixe->()u_x4{9ZU7IxE}X(Kd6O5b?ToB zF||f0L;CMnx>+dIW5?3{v$>v0{}jqV@}N+i`ZJ+zpnm00zYb;a>5h*#5Xg|4s-4<# zbcRD60jhgT8yI;z%dvuV0eaoSMz7PZofB$sjj?a}7YR-w$` zAFH-fl0NNFTKGCGNq0L`b$A=*%^y3|5#hbs@$@T)YC%~WoqD{q7hHg{Hd>=7S`t2l z8MEL}Yr}P*u2&RVzg?S4cRTfN2xqX-deWh83f}|jd7;|FzX?A9>JOk2)E@q?@Kd08 zPv>Uje5w^n3tH7rX!B{IP)2ZD_4A-MJJd+^%b?yC$`|}p_3PRKnm$)qeS7sGT0o~d z)Wg*;fI34cjeb~NM<>$Tve(q;kWh&ext>P966zA6zGM8g`ghui^r%DC)I5f@=?@Oo zQ1d(OB&z4DcKVLdQ1eG^AuaT%x3!aLvq$OrDKz3x3u;38hv>VwPUd>sYHBfm-+QvF zC9W?9s?lXS!$(WtIX>QBo)4(eT_x~FY(O=7Uf^<*WmW-d^a+9A7tV8n7fTJQ4&Z8o zrUGhoiojy2Mh^(5v_&(>lGEQO+z{eg9|6>u`U7nMbe~;LSZ@|^EI#C zleH_gd3sdv>BMVatHAjJPZc;_N?Qfa7kH|`nW&4gBk*Lvy;{5Alclsv`)=f$`efo2 zdouA#J(FIKd>m3q7x=ApeHmDf^ZcQfmbzCS64y27? zO>YYxh%z3FGCv{s>Sz*mKN6h}Xhjc!za#nrAg|W#bW`+0;NKSI)_KKlCtjPm^$hqA zMcKCRMf1Mb#joE3j(}em`y@C=$FB9UZJ+fG)3Vr2zEQd<{8is>@qMPw5xW+4KH!@s z_%xmEnW=v+_NZ^J{#@<1Ao*16Xu8&Bh5_6By9M7b`uEep zy1m+diST~n81APR>$U;1kNfG3x|adj)BVH|cm}<;4d+F@{v`i?iN=13(te53eu>_G z;^^(C+WM`iHNE~i;M_0!>CE~L|3019<9+%&fiC|o`g!&10Q&&M!y?OuQ2A(;4nZRQmyMuHWb14-H@NKLO3R1AngeUex_z{nz|Y!@EcQPk{4n zl)hE}0zE#QYv`c-`Aiyx#36Ug!3~w$1*ZL+5o` zyMA87^Mb$PZ`UsXK25)_;SK*Gl-6N%-O;dDJEY$WxSJkpc+~fM@b_xZz`{L%e`@Fl zd?zs1+@@*qlgwu*96#06jML*CX4JS+I}^ASKZ~BB9r2CkWaEnXCi8XaqqhWV+Mamc zjB32fXxbNmYubK+-1;eFgHTaJ?2_SJ_-FtHSGhO3mB4GA+4inFIqnboc(k`QymRs zO?uWG#(JaRtAgwLTH~F-o6t6E(qGKo(79K;*0{^}E?VI=Go*d7$rlJ|Ux9|Gc3;z0 z3TX#`?-R*e0AHXx0e=*DSU67rUWXk>p6=0;bd}i{?4UY)g4zYnK7BJ?OnJ;q%t?cD zwLT)8%cvLp%jiPD-Qe%kZx;S-_^#m}^xH)Kap4@GS7^I&KsYZ6=M~^r8LyC`<@ML8 zPJ7vS9p6M?{1|~@?Rvw|Sihk$-_W=fLu2`nmZx7E35~5vAl9eo$7tWz6aHhg1G*pZ z>-ryj$7s*$#{$pOzx!rtZ|d8PncA=QtBl1`Yq8YY>_G8Od)5~*d!eDpOhfWzV?;_v zM1Hq$ZWjDb?G?23xZnr0yqWMHkhTtJ7n&yoz@a8Uwuf}qJX7b^Q~G7*O9866*!*oE z0r*znalo43OMpKOP~>9M2%f2L(0lZ(en5Xpe^!4^e+@sjaf$Jqeu-iDmipHEHu%o< zZT20|ExZrt7yItO^PulEKmRi|EvF5{bzpl^Crrl)6X^! zK&r>=$IpQIls*jlhvp&kMc_~AZvf&8)PZOqjMbFrmMUz`=>dV?6Zj&a4`n9S#{ggu zKOy{taW7Pj9<9N-JtE&)y-Qn-x_$aOz-oOX;Gq5wfUU+}z#EM(0p4od1$a3zewE2h zzGm=k!3`#VVfi1;Nq}E6>j5vQ;&0gR5O}4)&sJT=GF4XsUKC>dBO%t-C-BSRe+K97 z@PmLmYZBO1eN5mdYmNneLrp8-9X0j1i&%)AK@ht<9X|$sf>=F$xK%g>P{*5ZFg^rN zYw`KF2@d;ROQ(Sw#HTw!a7_5m-)av7as+g$$M=!=JLOTpCh#;|a5n&-EN}|Gt*hf^ zaWddkd~-yjBLQ_f0hCVj=qSMXG!1Y89RqkG&4A3=I7#TVR$w=F2O6yd)M-8LMl{;M zHzf2Cnge*Q+>h|hhlZWYTyQo)t41m4(`mE79`U#rzG~D57^aWYpKyONM4zAzeYJkB z-mh;k&NqA`2x-}C(`4RD6<_K*_2qvN05_c?P%d{r`l7P#lYEI

    G>@w!HuHA+kQ4 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Exercise 7.1.vbproj.FileList.txt b/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Exercise 7.1.vbproj.FileList.txt new file mode 100644 index 0000000..8e9fa10 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Exercise 7.1.vbproj.FileList.txt @@ -0,0 +1,11 @@ +bin\Debug\Exercise 7.1.exe.config +bin\Debug\Exercise 7.1.exe +bin\Debug\Exercise 7.1.pdb +bin\Debug\Exercise_7.1.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_7_1.Form1.resources +obj\Debug\Exercise_7_1.Resources.resources +obj\Debug\Exercise 7.1.vbproj.GenerateResource.Cache +obj\Debug\Exercise 7.1.exe +obj\Debug\Exercise_7.1.xml +obj\Debug\Exercise 7.1.pdb diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/Exercise 7.2.vbproj b/Code/Chapter 7/VB.NET/Exercise 7.2/Exercise 7.2.vbproj new file mode 100644 index 0000000..6f4c02f --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/Exercise 7.2.vbproj @@ -0,0 +1,111 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {8946E843-87EC-4F44-9F20-9D15A4244D6E} + WinExe + Exercise_7_2.My.MyApplication + Exercise_7_2 + Exercise 7.2 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 7.2.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 7.2.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/Exercise 7.2.vbproj.user b/Code/Chapter 7/VB.NET/Exercise 7.2/Exercise 7.2.vbproj.user new file mode 100644 index 0000000..e51ad1c --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/Exercise 7.2.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ShowAllFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/Form1.Designer.vb b/Code/Chapter 7/VB.NET/Exercise 7.2/Form1.Designer.vb new file mode 100644 index 0000000..179f020 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/Form1.Designer.vb @@ -0,0 +1,75 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.datagridView = New System.Windows.Forms.DataGridView + Me.buttonFillData = New System.Windows.Forms.Button + Me.buttonBind = New System.Windows.Forms.Button + CType(Me.datagridView, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'datagridView + ' + Me.datagridView.Location = New System.Drawing.Point(2, 0) + Me.datagridView.Name = "datagridView" + Me.datagridView.Size = New System.Drawing.Size(267, 240) + Me.datagridView.TabIndex = 0 + ' + 'buttonFillData + ' + Me.buttonFillData.Location = New System.Drawing.Point(112, 247) + Me.buttonFillData.Name = "buttonFillData" + Me.buttonFillData.Size = New System.Drawing.Size(75, 23) + Me.buttonFillData.TabIndex = 1 + Me.buttonFillData.Text = "Fill Data" + ' + 'buttonBind + ' + Me.buttonBind.Location = New System.Drawing.Point(194, 247) + Me.buttonBind.Name = "buttonBind" + Me.buttonBind.Size = New System.Drawing.Size(75, 23) + Me.buttonBind.TabIndex = 2 + Me.buttonBind.Text = "Data Bind" + ' + 'Form1 + ' + Me.ClientSize = New System.Drawing.Size(270, 273) + Me.Controls.Add(Me.buttonBind) + Me.Controls.Add(Me.buttonFillData) + Me.Controls.Add(Me.datagridView) + Me.Name = "Form1" + Me.Text = "Exercise 7.2" + CType(Me.datagridView, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents datagridView As System.Windows.Forms.DataGridView + Friend WithEvents buttonFillData As System.Windows.Forms.Button + Friend WithEvents buttonBind As System.Windows.Forms.Button + +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/Form1.resx b/Code/Chapter 7/VB.NET/Exercise 7.2/Form1.resx new file mode 100644 index 0000000..02bbfa2 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/Form1.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/Form1.vb b/Code/Chapter 7/VB.NET/Exercise 7.2/Form1.vb new file mode 100644 index 0000000..c835026 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/Form1.vb @@ -0,0 +1,22 @@ +Imports System.Data +Imports System.Data.SqlClient + +Public Class Form1 + Private userData As New DataTable + + Private Sub buttonFillData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonFillData.Click + Dim connectionString As String + connectionString = _ + "Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI;" + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = testConnection.CreateCommand() + testCommand.CommandText = "Select FirstName, LastName from UserTable" + Dim dataAdapter As New SqlDataAdapter(testCommand) + dataAdapter.Fill(userData) + End Using + End Sub + + Private Sub buttonBind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonBind.Click + datagridView.DataSource = userData + End Sub +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/AssemblyInfo.vb b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..c562585 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyApplication.myapp b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyApplication.myapp new file mode 100644 index 0000000..01cd37c --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_7_2.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyApplication.vb b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyApplication.vb new file mode 100644 index 0000000..8d2d09d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyApplication.vb @@ -0,0 +1,28 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = False + Me.EnableVisualStyles = True + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyEvents.vb b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyResources.resx b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyResources.vb b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyResources.vb new file mode 100644 index 0000000..0e5cb37 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + '

    + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_7_2.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MySettings.settings b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MySettings.vb b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/app.config b/Code/Chapter 7/VB.NET/Exercise 7.2/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.exe b/Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..f69745f09041a4715fc110c78a9eb5d1f99d6c3d GIT binary patch literal 28672 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 PK+OX+57azR^8o!Pa(1M) literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.exe.config b/Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.pdb b/Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d7f199a3157d76aa4da752c30264d3eb83ad5fa8 GIT binary patch literal 54784 zcmeHQ4|J5(m46dpAV`oP{|!1qfS@KMA&>+W$X|#O0un*p)G(P$V9I1B&PyBM* z?OEKa#Z$Y-p0%s3*n@klV%N5^rLFC;fA&<-c5!RFw8yinyKU_sd#Y!x?Ctg|nguj-K?wc#28{@ADToy-IjRd)7E5AS8jOW&^H1f zI$7H?{pO!Mb;tbi*OO;vi%07IKX&WaA6fX{PycxT#B1i>_t-maXJ&7Vzgmyf{Xg0< z<>!ySvg6zSpWf5B<<3tY8-G1{X0~{w?*F?p9{tz4&mTTgH2KFjFJGAMKQnt{{MCA- z?*D;*Ja@*Wo3F22vSjVLnLjw}-TyO0lt$|QZ+d9%lMSg0Z`x6KpzWjGd0#t2nm_KV zIa2rk_Uo30KfY-7vL^x`p1yhQk;J&~*fXR9M(Y0G*m}*eV~wBqyQdNb>8F18v5aMf zGo&lVbv4)cP4fkh>&_TQjeqxzci*6I_o+$v)3m0et}hWzCIj`s(4PLjWJhz$=DJOR z(m?A#pgtbo)6o#`4tF%{4)&$Oi9mJ7_WH8TP3^9TrhVZ=D3T0g4?$%In6@P19}I_5 z9d*fMxVI}h&=Tv3m+kFRD!is6Xo~8xMfF5t!6=IA9SC%>s1S<^IYsU5DvO0vu86R^ zC@}TeqJp-lh%IXL8r3>*bvPOCPlUorwrTX5)H{HiGFZ@PwrE>8m5Ri6je3KUu5v1> zyDO@CR)tD~D_2&RR@GM5l-5+%RFtk-SyhXenovb~bp?BPgd5%*PxR`1NBGY5NWP;| z-^OqYfEXMiqO(3`!GuobJrPXNwC z9_vV-i`a`hlY8L&pO^a%YBG@KN-68vP|cYUb- zlh@)m#gJmfw6G!5e<`X$`@1hZ@Ke$QBwEkJy$>{Bh<9!d5GqxHdLB!v8zGXI>3$Rn0a1)+>tkKyU|h7(DYH9TEo zFcq$gb+<=)aWjU=uQ?J8OOuADiv?q$NRVQq77g8w4bga4Fp5?TQzq@|M6aGpPeTX8 zJ*Yc&*fO`*w+2(Yhp*SRRDzbGxj&}CWji9V?)Xi~GMZMp-(B~#F%sMrizic&5K<^B zmZvchya^eZIJc;+m;)V^ysZKoVMvJ$V zJ97S8&>;`2Q+_*PS@uHFSYT@fs1gBtsV+#=_(t)8u$WSR|8)NyurqA1PA+Yy{Nk-?LG>`Ra1}y9mGAoZp3NE_luZELHjFg*TDc6aeQ$ z2F^PHKn-9EfV#>He|is01dGi7&)WGP_t*)D@;`|y-R-Tx2q#*|>ub7-gew zYo5f zl4shdw*#I8`0!8cihNw}12AlYeMp&Z1*Z9dmkzXjN;~yjT*J4Jrme?o+O@Ft(ldd# z0>dU%R|Dt67A}BAI78imQu6S7mV*mmb<=)iUHG7F^t?~&d=9h8fSmva->u_BqPcc6qG|>3o<6?OwK@zAy&*yBNTy(trbiLx7`zGIyS^Ww4(m zpsjw+lUnaI-3ZT1(y{+uK|E;TY>4nCVaZkp_TE<0}uW`w^OH>`ZMf?GWxxkJf&rkdff4=`+ zk#pk>=&d$(?_(|RORep4nM>Yth^(_thG%AL%MZOy zw$|G8hb*OI{6p69%?8wbHiUZMBKhc`aPdVFww z7$T^y$dvn3=dLjJc}7C+^7JZ>az55_ zF7`WpvGj`?zoAc*eTHB34{&c%f5V@drvLM8-~x3OXiMPVo$vTojZem>ZF-PpQ!S5O9xDvp6KnEZN*bjIZ z@C@K3z*_+Bk*or20_+5M;l1^M+yDQp?Kk(F0=JO=7_veabN?r|e`?!_d`Ce~T1ofj z6mL#>zvmPqi@EjB9;?ftQ?>rVx_LSu`j0x$y~j-SkLaTPXR$uvI2J#{2`Xy@=y)e! zj`3fIYaNy2p^eW`%;OdCl22$oUEt}0vDO9RXSl?9j#4Uz$Z9_WMg3BTPWu^BoxwyR zIKZbZ?qdyTxh~D5$=I_?8qANd1Yrj0knOLi(E0Gy>J>xMRO+d zWZy9AWAj(49`8+t6RmhhH@J(7H*-)2s;3GUO&G?c*xJP6D>=@JAkZ$9fb|~#9$TIo z##izx>h==&$t(2U8285bSdVe>l~g+NZpZF0zLE#5LF=|_@eJetxX8WBu6+eEem@9F zE9st`dvZS3axVH?{C&4fGaB2O2yltt{(D7+U3;@0gz)YIJ!vJ~lVMMW$6AJEEq|q> zt8v7L*+S^pC$cwdH#eRj(6=RFCgl4ek#F~A7ZC8d1CA}#4LoR77f%X)s5 zOU~WmD!N?WVci75X0Rf!e`Ala|DRm4?%taf1>r{UkX~p!IrrpztmRzv`KnAg&$&0N z3LD26-1;0#kp3egueSgn#&r+yQ@|16F9ClL z_@9AOz)u7B1AiI#Z-Ku8ydU_h!1n^PoJWD5!8K_0HPX}(T>k|4Ux0rD{54><<0$ZC z)R}x(XH;LuHP#c=H-NF8sJ;ozb+~7N`6BzbfD6<|&_NsEr{bF86&laS+c>;lh?>vG zuCv+rJ74VpJ|D0i!1ukES)P3^+9=Za{`Xp&R)oAyU8CHHx*Fe;&+%c=_sq3qhUZW( zR8M^em}{fo1?F1l_jG;tAWyD+X0BJ7XZ+mj1wXL)JrB&afERQ=gX@*-JC<#pv2w4Q z{?O*}BVhO()V~4uJ^sVyaRQk2_!)4&dI)3B1PS#BDQ@@-4F!Vjw`A+~Q!iQJ{ zC;&us8~_{wJPY7D!kYjuj7<-4{D^<}sO|SFTt#1uIh&UpS85l|R*@qQTZ1up zpc9OiHK1p}FTA9`m}lC!4|L(#Kf<5Hh4cIL=LEUVk#TYH>?!9QnU*$`={`@$J8!@{ zZ{W{4Z-Dmakm3tj6JK<|Wh;nq%J3i!R3FbrvGzpv8d13(KaHSy8sldvZ~=hhhxRt{ zB8M0IU&6h8h;r-@K3j?pWfos%MWAk$a0$jQ$0YO7oD1h+JZ%IYd4$dzQyKE(oz15|x}DJ{XY`noal>b#+W`zb^Fi!EEJ-9fc%?$UhTLK^62U_vcL33+&KdJp1*Zns)1R@8Yl0}=R`A(eR@oTOu6%@wRzxu zuJmN2UFPIbtm`4qMR*3(VIKZYgW+8c*a+wb+yb~CFxG)Z%KooeY!m{06cUP{>#7m& z*bi`Q%bPT$5!-(TXvinDp6|}{-MwGFyS1))-7T)NpK6_xeyS}ldQ8^ck54iqfx1D$ zLX3$H856F(Bl8gV66i@Q>E1Z-#=%&R1Ce3Q#XA8;C;J?|PKQoAfZ-bZPR4d%t}k*f zo(arr=zg^WxET0a;6lu)voX7I&b?gwbyr}no#(v!VPrnHFZBlSa}MbQrd_-fxB#Bw zLICG#nImQIHGQRzV{&>P@EYJ9fEPx-2iUEm>*%XxfSu)p3!&@6IdmQQ9t1sUCEfG4 zdH%LP$KRGqengka-ibatALH4;2?5CHJtCua4>J>Kn;wLWM!`dRp~+Rw>E>y-U)kl0 z_Rgty4&yHy*XPuWFL?cXuq|c1C2E~Ye1}oOMUdsMiY&LpA}M?yAaZlKA>P{;kKxNQ zq@!G?Ak(|SPhO$-CHg}t{j!WaSJe+iQ!%(+A+kSZnvwXe zBKW}Y|M))vxz@v>t3Q>B$MB7UD89Q9>} z=i)HTGD!c0Pu71Tb8Ob5zca?=G_;LpRgq6aP{%aIHC1!13v;>2mB;(J@D6n zp?}lg1BQN0zX%L{hdx@0eqIY$16U2%2AB_654aSt4zL)|3@EqPOMou{)B{QYmjNyU zECbX4n7-Uz&jY>?uobXSO~jq2ys;mQ&EeDb2jvH9Pdxx&z`fUf4|%zbazJ?@4YByw zAPeM4&jrT)NiPP5+D!8qmGXjq!|Il~H8{lg2nZ1_NF`G<9+;n*4 z@QjMI8H#c(_2qim39Yw%S}(IM69DA^2Fe|}RLdQHQ}R(x2l832^LP_+tnXGbA$&H^ z;1Zx&$hQQr9&jyy&*ldJhX6cJ_BFs13_LIV<@NyW7V-bd`7c~^m4Msl|1mBoBiY~o zI|^AKt)!pMhvL}+o-Htvwt)NFDY9SZap)Wd>RJiV!+xBDWn`FpSm{ma#|9=4&@Six zWa=#P2%RU(-n!jbuiMGHC$Psb-J9SNRm|$Pp>#nbCla}&+ z7_$BV2+1e3p1gbV{(i|jo;w_QcZ;jYyR7}(4kMbuE$^_i{g=As{hFks*B^$Ar@=#d zq4DJ0lk>5bbJ=fP;*xVKrjAY*8Q*PvZ*Cc%3K_r5E#vm<%GBj|LcY7fLwcd{WZaYS z_e;j%Gjepfd<0zdxY#Y%S_-#}LyY}bx@CMvxNBQDu{RP5C#mx(>ru#gJ9x<_w4SVc zvOd605JTv{H}Kz z^MxwHKDh;|67PbQ0?JTe39$M0H+_5Nc{TStzXQkvLrUEY%xUFAz-Hh4TKEqK_s5%O zfZTc9Ve|N?&EsQE9<>>H82c)B9(UV3?y-5?>*TQ}BM&ow<<8>~o5w+$$D>XjS7hX2 z^g`}DerfagmCfS~jSJDI4LT3{I$<(8=TFl|8h`_=2CxMX1>6pJ81M{$=OO+AFcA)h zBEaQy!h$d+@Fz5b$2|D26KV)*#0 zx|AZ;0sXVyEXA2?n?KId&lxhy=gNf%>n+yh+uym6)Gxq{as-{fiO)@tgC}QH0I?M&ubs%WOP{(I^lu8DC?wHQD>%DHMI zfb-!_0M||T0Wde{wX=i3hXL;Zcm_!Tz&WJ`&ZGu5B1J4H}`Lt@V=5rdTR5(77cZ!EQs}9JNHJQ&jV0 z0SLe6sO7Hs^3~-CmEDXt^aqh)o_^tcdobD`cIZvKrSIYT_h9}L6hCO5nfC-`Xv-@H zX`e&h6YR$bq#h>D(qd8S0-NuC=(h>#)DNZ$pGmiTRfF|sdnY@m6=v26>&d#k6e*bN9&J(Z)+jGVWu2=C9>45;`ma?85pgNV>J{+C%O0RXP=!1D{=2- z9()%4Y9oLpe1g3UR_mNS-Y~i@x7FDo<2K~lo{z1F}p{mO(n#!BYn+@IY z{WVL~U}GsmF=UFF|N0Spq0ojQ%Rp&ngw|D6*RF0T=f+rs;mew-QnL(Q32qDvNk^U- z>i!S52fy5-dv$X|ZB4c9z|)pFN4;WY?itXs%o(2??mpQ*ENkDL2nV~j1$)A6UF=lE z?~Qba6FV!^>dN}^`jz$d$cth4HqTYhKu0m$g8rpEzV`AEZDxm7sHUo>%8KUl8ddt0 zvfudB7j^&eoSf{ywlLlf;f!RaZ2;Jza7tPmVrJM_(n{d(P5@<^Av^6!#9gRUOk3f=PfoWX-7%GiEsG-uhUNKY}*CB>V<2Tae z8*5fMQqSx(o&`G;ALno> z59YBG*am)+Rrs>g=nIkZveWnt)uH(KZB&toY(B0P3{@9?k5u|Bn~&#WEU`6*3F-v4 zfoE9=Uv?VbH{ra<;Ff*z@m&zC3+j-a#&VX4g6~3bOXaoED#T$-oyX{E-RZrBv-nQ=L z&urceeYIj!B(|p|))QANV!>YQ#aWR|gjVc^)e=s0MdP78CZZ=24JTKG*K`EU!0xgG zyC)J0MlrB^2LfFj*dY$=kTbCNc9q4#DOW^zUpNtpB*S`OgQ?FLn;pSqGThr09f+VN z6h2*x(Jr)i07@#}pTHKRF)R~)5dBD!RpfhCW~0|NJv1G&sx`v5+!WF6QZu919G7_Y z4g~x9aKb<^6^X}2w}ly{hWFw~4=r4@dpO5)9IkB}v{3nrwhe8UCy+?GTY+hh6EOX& zPXTC8@TrY9%O5b0^KoDifVRtRxW;>iYBn(3KN+D2SMvaGVXVWYqP}Sj{R$L#82Md` zxZ$7#>E8$KODOm_oC77u=YC{(H!6Av@!jw}Zh;Zfh>EU9`R%9>NK_AC7XTz`Cm;yu z0)znFfG~j14s1KJ&~^;_hwWio*-loK{lPY|eQYyrOFnASPcavOs%U@30^sujY%kxH zrHxH{G61*;un4diPz+cCSPEDMVEdK>E(TlzpxsvrCv3R8=xI<4PZN92Y~nPIzR{DuK?ErJ^;7@&H4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.xml b/Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.xml new file mode 100644 index 0000000..ece7dea --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/bin/Exercise 7.2.xml @@ -0,0 +1,11 @@ + + + + +Exercise7.2 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise 7.2.exe b/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise 7.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..f69745f09041a4715fc110c78a9eb5d1f99d6c3d GIT binary patch literal 28672 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 PK+OX+57azR^8o!Pa(1M) literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise 7.2.pdb b/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise 7.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d7f199a3157d76aa4da752c30264d3eb83ad5fa8 GIT binary patch literal 54784 zcmeHQ4|J5(m46dpAV`oP{|!1qfS@KMA&>+W$X|#O0un*p)G(P$V9I1B&PyBM* z?OEKa#Z$Y-p0%s3*n@klV%N5^rLFC;fA&<-c5!RFw8yinyKU_sd#Y!x?Ctg|nguj-K?wc#28{@ADToy-IjRd)7E5AS8jOW&^H1f zI$7H?{pO!Mb;tbi*OO;vi%07IKX&WaA6fX{PycxT#B1i>_t-maXJ&7Vzgmyf{Xg0< z<>!ySvg6zSpWf5B<<3tY8-G1{X0~{w?*F?p9{tz4&mTTgH2KFjFJGAMKQnt{{MCA- z?*D;*Ja@*Wo3F22vSjVLnLjw}-TyO0lt$|QZ+d9%lMSg0Z`x6KpzWjGd0#t2nm_KV zIa2rk_Uo30KfY-7vL^x`p1yhQk;J&~*fXR9M(Y0G*m}*eV~wBqyQdNb>8F18v5aMf zGo&lVbv4)cP4fkh>&_TQjeqxzci*6I_o+$v)3m0et}hWzCIj`s(4PLjWJhz$=DJOR z(m?A#pgtbo)6o#`4tF%{4)&$Oi9mJ7_WH8TP3^9TrhVZ=D3T0g4?$%In6@P19}I_5 z9d*fMxVI}h&=Tv3m+kFRD!is6Xo~8xMfF5t!6=IA9SC%>s1S<^IYsU5DvO0vu86R^ zC@}TeqJp-lh%IXL8r3>*bvPOCPlUorwrTX5)H{HiGFZ@PwrE>8m5Ri6je3KUu5v1> zyDO@CR)tD~D_2&RR@GM5l-5+%RFtk-SyhXenovb~bp?BPgd5%*PxR`1NBGY5NWP;| z-^OqYfEXMiqO(3`!GuobJrPXNwC z9_vV-i`a`hlY8L&pO^a%YBG@KN-68vP|cYUb- zlh@)m#gJmfw6G!5e<`X$`@1hZ@Ke$QBwEkJy$>{Bh<9!d5GqxHdLB!v8zGXI>3$Rn0a1)+>tkKyU|h7(DYH9TEo zFcq$gb+<=)aWjU=uQ?J8OOuADiv?q$NRVQq77g8w4bga4Fp5?TQzq@|M6aGpPeTX8 zJ*Yc&*fO`*w+2(Yhp*SRRDzbGxj&}CWji9V?)Xi~GMZMp-(B~#F%sMrizic&5K<^B zmZvchya^eZIJc;+m;)V^ysZKoVMvJ$V zJ97S8&>;`2Q+_*PS@uHFSYT@fs1gBtsV+#=_(t)8u$WSR|8)NyurqA1PA+Yy{Nk-?LG>`Ra1}y9mGAoZp3NE_luZELHjFg*TDc6aeQ$ z2F^PHKn-9EfV#>He|is01dGi7&)WGP_t*)D@;`|y-R-Tx2q#*|>ub7-gew zYo5f zl4shdw*#I8`0!8cihNw}12AlYeMp&Z1*Z9dmkzXjN;~yjT*J4Jrme?o+O@Ft(ldd# z0>dU%R|Dt67A}BAI78imQu6S7mV*mmb<=)iUHG7F^t?~&d=9h8fSmva->u_BqPcc6qG|>3o<6?OwK@zAy&*yBNTy(trbiLx7`zGIyS^Ww4(m zpsjw+lUnaI-3ZT1(y{+uK|E;TY>4nCVaZkp_TE<0}uW`w^OH>`ZMf?GWxxkJf&rkdff4=`+ zk#pk>=&d$(?_(|RORep4nM>Yth^(_thG%AL%MZOy zw$|G8hb*OI{6p69%?8wbHiUZMBKhc`aPdVFww z7$T^y$dvn3=dLjJc}7C+^7JZ>az55_ zF7`WpvGj`?zoAc*eTHB34{&c%f5V@drvLM8-~x3OXiMPVo$vTojZem>ZF-PpQ!S5O9xDvp6KnEZN*bjIZ z@C@K3z*_+Bk*or20_+5M;l1^M+yDQp?Kk(F0=JO=7_veabN?r|e`?!_d`Ce~T1ofj z6mL#>zvmPqi@EjB9;?ftQ?>rVx_LSu`j0x$y~j-SkLaTPXR$uvI2J#{2`Xy@=y)e! zj`3fIYaNy2p^eW`%;OdCl22$oUEt}0vDO9RXSl?9j#4Uz$Z9_WMg3BTPWu^BoxwyR zIKZbZ?qdyTxh~D5$=I_?8qANd1Yrj0knOLi(E0Gy>J>xMRO+d zWZy9AWAj(49`8+t6RmhhH@J(7H*-)2s;3GUO&G?c*xJP6D>=@JAkZ$9fb|~#9$TIo z##izx>h==&$t(2U8285bSdVe>l~g+NZpZF0zLE#5LF=|_@eJetxX8WBu6+eEem@9F zE9st`dvZS3axVH?{C&4fGaB2O2yltt{(D7+U3;@0gz)YIJ!vJ~lVMMW$6AJEEq|q> zt8v7L*+S^pC$cwdH#eRj(6=RFCgl4ek#F~A7ZC8d1CA}#4LoR77f%X)s5 zOU~WmD!N?WVci75X0Rf!e`Ala|DRm4?%taf1>r{UkX~p!IrrpztmRzv`KnAg&$&0N z3LD26-1;0#kp3egueSgn#&r+yQ@|16F9ClL z_@9AOz)u7B1AiI#Z-Ku8ydU_h!1n^PoJWD5!8K_0HPX}(T>k|4Ux0rD{54><<0$ZC z)R}x(XH;LuHP#c=H-NF8sJ;ozb+~7N`6BzbfD6<|&_NsEr{bF86&laS+c>;lh?>vG zuCv+rJ74VpJ|D0i!1ukES)P3^+9=Za{`Xp&R)oAyU8CHHx*Fe;&+%c=_sq3qhUZW( zR8M^em}{fo1?F1l_jG;tAWyD+X0BJ7XZ+mj1wXL)JrB&afERQ=gX@*-JC<#pv2w4Q z{?O*}BVhO()V~4uJ^sVyaRQk2_!)4&dI)3B1PS#BDQ@@-4F!Vjw`A+~Q!iQJ{ zC;&us8~_{wJPY7D!kYjuj7<-4{D^<}sO|SFTt#1uIh&UpS85l|R*@qQTZ1up zpc9OiHK1p}FTA9`m}lC!4|L(#Kf<5Hh4cIL=LEUVk#TYH>?!9QnU*$`={`@$J8!@{ zZ{W{4Z-Dmakm3tj6JK<|Wh;nq%J3i!R3FbrvGzpv8d13(KaHSy8sldvZ~=hhhxRt{ zB8M0IU&6h8h;r-@K3j?pWfos%MWAk$a0$jQ$0YO7oD1h+JZ%IYd4$dzQyKE(oz15|x}DJ{XY`noal>b#+W`zb^Fi!EEJ-9fc%?$UhTLK^62U_vcL33+&KdJp1*Zns)1R@8Yl0}=R`A(eR@oTOu6%@wRzxu zuJmN2UFPIbtm`4qMR*3(VIKZYgW+8c*a+wb+yb~CFxG)Z%KooeY!m{06cUP{>#7m& z*bi`Q%bPT$5!-(TXvinDp6|}{-MwGFyS1))-7T)NpK6_xeyS}ldQ8^ck54iqfx1D$ zLX3$H856F(Bl8gV66i@Q>E1Z-#=%&R1Ce3Q#XA8;C;J?|PKQoAfZ-bZPR4d%t}k*f zo(arr=zg^WxET0a;6lu)voX7I&b?gwbyr}no#(v!VPrnHFZBlSa}MbQrd_-fxB#Bw zLICG#nImQIHGQRzV{&>P@EYJ9fEPx-2iUEm>*%XxfSu)p3!&@6IdmQQ9t1sUCEfG4 zdH%LP$KRGqengka-ibatALH4;2?5CHJtCua4>J>Kn;wLWM!`dRp~+Rw>E>y-U)kl0 z_Rgty4&yHy*XPuWFL?cXuq|c1C2E~Ye1}oOMUdsMiY&LpA}M?yAaZlKA>P{;kKxNQ zq@!G?Ak(|SPhO$-CHg}t{j!WaSJe+iQ!%(+A+kSZnvwXe zBKW}Y|M))vxz@v>t3Q>B$MB7UD89Q9>} z=i)HTGD!c0Pu71Tb8Ob5zca?=G_;LpRgq6aP{%aIHC1!13v;>2mB;(J@D6n zp?}lg1BQN0zX%L{hdx@0eqIY$16U2%2AB_654aSt4zL)|3@EqPOMou{)B{QYmjNyU zECbX4n7-Uz&jY>?uobXSO~jq2ys;mQ&EeDb2jvH9Pdxx&z`fUf4|%zbazJ?@4YByw zAPeM4&jrT)NiPP5+D!8qmGXjq!|Il~H8{lg2nZ1_NF`G<9+;n*4 z@QjMI8H#c(_2qim39Yw%S}(IM69DA^2Fe|}RLdQHQ}R(x2l832^LP_+tnXGbA$&H^ z;1Zx&$hQQr9&jyy&*ldJhX6cJ_BFs13_LIV<@NyW7V-bd`7c~^m4Msl|1mBoBiY~o zI|^AKt)!pMhvL}+o-Htvwt)NFDY9SZap)Wd>RJiV!+xBDWn`FpSm{ma#|9=4&@Six zWa=#P2%RU(-n!jbuiMGHC$Psb-J9SNRm|$Pp>#nbCla}&+ z7_$BV2+1e3p1gbV{(i|jo;w_QcZ;jYyR7}(4kMbuE$^_i{g=As{hFks*B^$Ar@=#d zq4DJ0lk>5bbJ=fP;*xVKrjAY*8Q*PvZ*Cc%3K_r5E#vm<%GBj|LcY7fLwcd{WZaYS z_e;j%Gjepfd<0zdxY#Y%S_-#}LyY}bx@CMvxNBQDu{RP5C#mx(>ru#gJ9x<_w4SVc zvOd605JTv{H}Kz z^MxwHKDh;|67PbQ0?JTe39$M0H+_5Nc{TStzXQkvLrUEY%xUFAz-Hh4TKEqK_s5%O zfZTc9Ve|N?&EsQE9<>>H82c)B9(UV3?y-5?>*TQ}BM&ow<<8>~o5w+$$D>XjS7hX2 z^g`}DerfagmCfS~jSJDI4LT3{I$<(8=TFl|8h`_=2CxMX1>6pJ81M{$=OO+AFcA)h zBEaQy!h$d+@Fz5b$2|D26KV)*#0 zx|AZ;0sXVyEXA2?n?KId&lxhy=gNf%>n+yh+uym6)Gxq{as-{fiO)@tgC}QH0I?M&ubs%WOP{(I^lu8DC?wHQD>%DHMI zfb-!_0M||T0Wde{wX=i3hXL;Zcm_!Tz&WJ`&ZGu5B1J4H}`Lt@V=5rdTR5(77cZ!EQs}9JNHJQ&jV0 z0SLe6sO7Hs^3~-CmEDXt^aqh)o_^tcdobD`cIZvKrSIYT_h9}L6hCO5nfC-`Xv-@H zX`e&h6YR$bq#h>D(qd8S0-NuC=(h>#)DNZ$pGmiTRfF|sdnY@m6=v26>&d#k6e*bN9&J(Z)+jGVWu2=C9>45;`ma?85pgNV>J{+C%O0RXP=!1D{=2- z9()%4Y9oLpe1g3UR_mNS-Y~i@x7FDo<2K~lo{z1F}p{mO(n#!BYn+@IY z{WVL~U}GsmF=UFF|N0Spq0ojQ%Rp&ngw|D6*RF0T=f+rs;mew-QnL(Q32qDvNk^U- z>i!S52fy5-dv$X|ZB4c9z|)pFN4;WY?itXs%o(2??mpQ*ENkDL2nV~j1$)A6UF=lE z?~Qba6FV!^>dN}^`jz$d$cth4HqTYhKu0m$g8rpEzV`AEZDxm7sHUo>%8KUl8ddt0 zvfudB7j^&eoSf{ywlLlf;f!RaZ2;Jza7tPmVrJM_(n{d(P5@<^Av^6!#9gRUOk3f=PfoWX-7%GiEsG-uhUNKY}*CB>V<2Tae z8*5fMQqSx(o&`G;ALno> z59YBG*am)+Rrs>g=nIkZveWnt)uH(KZB&toY(B0P3{@9?k5u|Bn~&#WEU`6*3F-v4 zfoE9=Uv?VbH{ra<;Ff*z@m&zC3+j-a#&VX4g6~3bOXaoED#T$-oyX{E-RZrBv-nQ=L z&urceeYIj!B(|p|))QANV!>YQ#aWR|gjVc^)e=s0MdP78CZZ=24JTKG*K`EU!0xgG zyC)J0MlrB^2LfFj*dY$=kTbCNc9q4#DOW^zUpNtpB*S`OgQ?FLn;pSqGThr09f+VN z6h2*x(Jr)i07@#}pTHKRF)R~)5dBD!RpfhCW~0|NJv1G&sx`v5+!WF6QZu919G7_Y z4g~x9aKb<^6^X}2w}ly{hWFw~4=r4@dpO5)9IkB}v{3nrwhe8UCy+?GTY+hh6EOX& zPXTC8@TrY9%O5b0^KoDifVRtRxW;>iYBn(3KN+D2SMvaGVXVWYqP}Sj{R$L#82Md` zxZ$7#>E8$KODOm_oC77u=YC{(H!6Av@!jw}Zh;Zfh>EU9`R%9>NK_AC7XTz`Cm;yu z0)znFfG~j14s1KJ&~^;_hwWio*-loK{lPY|eQYyrOFnASPcavOs%U@30^sujY%kxH zrHxH{G61*;un4diPz+cCSPEDMVEdK>E(TlzpxsvrCv3R8=xI<4PZN92Y~nPIzR{DuK?ErJ^;7@&AuL&+gIn9@TaM%WD@y_iBBoTQDwO+v__m$i08H(qPaj#Q$4 zL4KgW)c#B<^as+;ENv)`C>_CQG&}p|%{+O&=XpQL_|3NdgxqzaQfts;Mf|!{TE>?G z=h*LEfkkEV(TjM%Pro-Vbx~Rvvwt&|Yr2)5Q0^v;MbCCRfq%5R`u~pN5Ru8xe<=`5G z83pYB;})}Bmwz#8>|9h>z#<+St*JdN1LG5c9||$k;2JdPPLtg~OV_9%Ix|8}1P`(H zd$X;vSuBMG+hx$PkubI9qmp1-oVZY*ph?Tc@Ji?s(DND%F99OxbbY;DG0yeok)m_b+$;CYQ5q@)=v_7i|ObLjV8( literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise 7.2.xml b/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise 7.2.xml new file mode 100644 index 0000000..ece7dea --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise 7.2.xml @@ -0,0 +1,11 @@ + + + + +Exercise7.2 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise_7_2.Form1.resources b/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/Exercise_7_2.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYa=M2ZLmOzdUao$Au*4w=~s^%ocq z#)~J<{uOT?JbLox$@mxaeWnPNG=_8z&raWW-skyz|2sknYt2?W{X z(|kDyTil1L94Ow1r0T}wv8#j0`)QHnF`waS(u5JGTgt}u7^cWF-gZk; z2#S^JsNF|Qzl>O2aO1@$n;5(pcMe_R5dGH>uTsmB`4xuzNA_Ekruvs;dxt5m67aGf zyykHdYG;#)4%cvE+v&uW0Z}dW8~=Q|a2L^~(gev7K!P9!$A}Jke0%yN-I6JSEMCIS zfnBO1RXgueBlnyP{hq3JbE`^jQyps6F11~D6gAa6$b#O~W0Wq*Qv_Mi!ijU5;9luY zZEISx4Z;_$FNBjNmW82MU_D0G zrJ<~81cmIjc^H{6#)+sn91)9{p*TYnm7yrMg3y<{+C^tHxUy&)ikv(Pm;jsuOajgm z*l0-pu;hLJ4Fgtpn%ZjC789Ko2dkqxj)tznJ~$M}n#w VG5T!PKD{;KF(ivKhRkr%e*nYijz<6h literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/TempPE/My Project.MyResources.vb.dll b/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Debug/TempPE/My Project.MyResources.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..9bbd7367e465080c92862bcbcb64850e67455b26 GIT binary patch literal 6144 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Exercise 7.2.vbproj.FileList.txt b/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Exercise 7.2.vbproj.FileList.txt new file mode 100644 index 0000000..7e9c506 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.2/obj/Exercise 7.2.vbproj.FileList.txt @@ -0,0 +1,11 @@ +bin\Exercise 7.2.exe.config +bin\Exercise 7.2.exe +bin\Exercise 7.2.pdb +bin\Exercise 7.2.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_7_2.Form1.resources +obj\Debug\Exercise_7_2.MyResources.resources +obj\Debug\Exercise 7.2.vbproj.GenerateResource.Cache +obj\Debug\Exercise 7.2.exe +obj\Debug\Exercise 7.2.xml +obj\Debug\Exercise 7.2.pdb diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/Exercise 7.3.vbproj b/Code/Chapter 7/VB.NET/Exercise 7.3/Exercise 7.3.vbproj new file mode 100644 index 0000000..7c7e407 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/Exercise 7.3.vbproj @@ -0,0 +1,111 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {9E33E365-0EA6-4753-A58D-52B40E87528A} + WinExe + Exercise_7_3.My.MyApplication + Exercise_7_3 + Exercise 7.3 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 7.3.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 7.3.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/Exercise 7.3.vbproj.user b/Code/Chapter 7/VB.NET/Exercise 7.3/Exercise 7.3.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/Exercise 7.3.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/Form1.Designer.vb b/Code/Chapter 7/VB.NET/Exercise 7.3/Form1.Designer.vb new file mode 100644 index 0000000..07a5f2a --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/Form1.Designer.vb @@ -0,0 +1,86 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.buttonPermData = New System.Windows.Forms.Button + Me.buttonUserData = New System.Windows.Forms.Button + Me.datagridView = New System.Windows.Forms.DataGridView + Me.comboTables = New System.Windows.Forms.ComboBox + CType(Me.datagridView, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'buttonPermData + ' + Me.buttonPermData.Location = New System.Drawing.Point(135, 340) + Me.buttonPermData.Name = "buttonPermData" + Me.buttonPermData.Size = New System.Drawing.Size(143, 20) + Me.buttonPermData.TabIndex = 7 + Me.buttonPermData.Text = "Fill Permissions Data" + ' + 'buttonUserData + ' + Me.buttonUserData.Location = New System.Drawing.Point(1, 340) + Me.buttonUserData.Name = "buttonUserData" + Me.buttonUserData.Size = New System.Drawing.Size(127, 20) + Me.buttonUserData.TabIndex = 6 + Me.buttonUserData.Text = "Fill User Data" + ' + 'datagridView + ' + Me.datagridView.Location = New System.Drawing.Point(1, 35) + Me.datagridView.Name = "datagridView" + Me.datagridView.Size = New System.Drawing.Size(277, 297) + Me.datagridView.TabIndex = 5 + ' + 'comboTables + ' + Me.comboTables.FormattingEnabled = True + Me.comboTables.Location = New System.Drawing.Point(1, 7) + Me.comboTables.Name = "comboTables" + Me.comboTables.Size = New System.Drawing.Size(277, 21) + Me.comboTables.TabIndex = 4 + ' + 'Form1 + ' + Me.ClientSize = New System.Drawing.Size(282, 365) + Me.Controls.Add(Me.buttonPermData) + Me.Controls.Add(Me.buttonUserData) + Me.Controls.Add(Me.datagridView) + Me.Controls.Add(Me.comboTables) + Me.Name = "Form1" + Me.Text = "Exercise 7.3" + CType(Me.datagridView, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Private WithEvents buttonPermData As System.Windows.Forms.Button + Private WithEvents buttonUserData As System.Windows.Forms.Button + Private WithEvents datagridView As System.Windows.Forms.DataGridView + Private WithEvents comboTables As System.Windows.Forms.ComboBox + +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/Form1.resx b/Code/Chapter 7/VB.NET/Exercise 7.3/Form1.resx new file mode 100644 index 0000000..a845c83 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/Form1.vb b/Code/Chapter 7/VB.NET/Exercise 7.3/Form1.vb new file mode 100644 index 0000000..c9dc6e7 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/Form1.vb @@ -0,0 +1,52 @@ +Imports System.Data +Imports System.Data.SqlClient + +Public Class Form1 + Private myData As New DataSet + Private Sub buttonUserData_Click( _ + ByVal sender As System.Object, ByVal e As System.EventArgs) _ + Handles buttonUserData.Click + ' If there is a data source, remove it. + datagridView.DataSource = Nothing + ' Never hard code connection strings. + ' Usually you would get this from a config file + Dim connectionString As String = _ + "Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI;" + + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = testConnection.CreateCommand() + testCommand.CommandText = "Select * from userTable" + Dim dataAdapter As New SqlDataAdapter(testCommand) + + dataAdapter.Fill(myData, "UserTable") + End Using ' testConnection.Dispose called automatically. + UpdateComboBox() + End Sub + Private Sub buttonPermData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonPermData.Click + ' If there is a data source, remove it. + datagridView.DataSource = Nothing + ' Never hard code connection strings. + ' Usually you would get this from a config file + Dim connectionString As String = _ + "Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI;" + + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = testConnection.CreateCommand() + testCommand.CommandText = "Select PermissionType from PermissionsTable" + Dim dataAdapter As New SqlDataAdapter(testCommand) + + dataAdapter.Fill(myData, "PermissionsTable") + End Using ' testConnection.Dispose called automatically. + UpdateComboBox() + End Sub + + Private Sub UpdateComboBox() + comboTables.Items.Clear() + For Each tbl As DataTable In myData.Tables + comboTables.Items.Add(tbl.TableName) + Next + End Sub + Private Sub comboTables_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comboTables.SelectedIndexChanged + datagridView.DataSource = myData.Tables(comboTables.SelectedIndex) + End Sub +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/AssemblyInfo.vb b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..ba9fbf5 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyApplication.myapp b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyApplication.myapp new file mode 100644 index 0000000..006178a --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_7_3.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyApplication.vb b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyApplication.vb new file mode 100644 index 0000000..76c3852 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyApplication.vb @@ -0,0 +1,29 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyEvents.vb b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyResources.resx b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyResources.vb b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyResources.vb new file mode 100644 index 0000000..6f55c3d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_7_3.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MySettings.settings b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MySettings.vb b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/app.config b/Code/Chapter 7/VB.NET/Exercise 7.3/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.exe b/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..19acf12f0bf0bd284911df0c76a6597be8477565 GIT binary patch literal 32768 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

    l$0>E@^waG2VDjpxrnMxCWAc5ZDIzh}jF+ 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.exe.config b/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.pdb b/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..045a732896e5c9a1436c02f770353db9bdfd82ac GIT binary patch literal 56832 zcmeI54Rl@Ab?2{a@oX8J+QtUk*dT0SY=dP<{*Y|GtS^6I*#;Y97$x$P^khFQJ&E^Z z$4b+zM;1v*hD=EyYsd;+>Me*PFKo1O_jKkU719edu&Y#Uaadx)-+`p?XF)}a{ zK@boY1}9IJf+y#76^Hk74@`b9H!g15X?x(l%IcDf_H;LvKzZwq=RWu9N8jFd@1s9& zDXaU$Nzbe_K^)$DJy2}?*Gw24|8=dF7vlF`Z=8KCdg8g+8@m7cxmm{>f@2li7CrxT z^Yx#7^?yG<>z?a^!JS{2^!aoD_+z)u>iUOSPpt@oUrpWm)c!xoZ2WHLN49_M7Y#4m zk^RzVoyidV@Wi+NX-eDm4}an#gWvtekqzHG`+D-sZ1Gs#|G&6u^`)PGZQuX7{mPnK z5i!S5PW|b_FW&s^#7m!Q+I82x&!2rgd1khFtnUBYGavq+^?!2w zsfAO1^ugte@`umN-Z=YeJy!RB`j3{pUj3VAH~hh(A0OC$;Tw;heLZ<*ws@@W|DEsu zt5>`J*KL1)@XuziSoYuUis%0`L>$KI{?8u#;iBz-T6X-URaGBpTKDa?Go<-veKp7G z{@>nm)AP?a{n3AUJUb)*_#1yXY+K>1@8mO}1O9f3t)$0iK$YVvjzJH+{o32F$+!FX zIs9qf&|2S@P33as4atr}hx>A^o3`$#-(J45yk(%gp||%?Yh!O`sNz}8GxZ{?BpAV_U!P1>T` zT~S@>OtPDzdIrkdRaA$H>IjQE(q5TK^+zI7(V}4Lb44XxQE6Ay_%*6!;Ko$0_i(l& zl~bF>uSq=v+?1h$#z8qZcWA4z5U$6b9=VJQn3x6fy{MuT`a@Q=WC zTpZY~#>>Z>{`DVz@~sky(Qgx`LVO+|zRE?GQ=%dVfb#z2?>F4LkKYm@iIvh)mdyN> zn0neb{`7&DM5{Q_3P))r&Yrg7*>x|AR-!LjrA28a#-8@)le+3eD{&UB(xS8ybx-@% z|997GqLnI$R%uaMshFod^7XH66s_7WTBSv4rG}n%-Il#4MJx3btuR%uaMqQ)%HZ9!$QVwN&|ka85FYF-@#iJio$jX`BcM}KcNxFDE3OMJ(m7p+g9 z9aPNn24Gul+iI~~Ox%)aWM#_$|D9bJ1k*_0J&@~9^#tVWe^)m4c6VbpGBxCaU;*(h z{yEjkz3JTHWOqX{m+m0{rOLl(B6(zT{YeI6)njzJBdKhTvPP$CO7^GfGo5?VJ=}~@ z^4pZ|PWdK{PM1k$I?_prO|W?6c5LqMZBKU7ic!jxU7hVQbLna5Fx-=-V@EA>Z$nG6 z|KRBL+TEX(rD*SuZE)qy=}c$u2Xd7%txUg1?rBpxc_7o9>rZ!(B3W@fP1)oJ$jHV; zMMeEGDM%QoaWZ=MIf@N}Jr{b6YBxW)+WlV0@15cAS;2+yoDVDw%IJkR$!jX0IZ;9LPB~Bq>;g1a z#o@Q_0nOun{(sud|J>s+5S92USEk!rl4;G6e*PaMQM5k&baQR-M zWmt2)0yaSyFyRw-;NLbfTxm>LBg4-izjs0}TAv=vaBSlaEifv_-Nuc|@CIk&?$bm^ zINu`kmvK6A+{^IJOk+01YDD9)ENv(>Cd)S71F!fzZ7k2RJilA=Ec^6M;Hy9h|GZsM z#`RG^VLSGr#^n~U%#R&l*{8Boe-DfuoR_VqYuUBfdimMl8^GA4!HwWDY~dMLgfoMW zQpzNL&k6C2;4))BsxDe++i||cjQLVCR4UjHD3GtI3;IKzwoJKKWp6JA&jrgiz5rYU zz7Tv>a6LYZTU~j}D0?~A2f{M1hR*6@iP1}y$$S)40SdCq)qdIIlyB_utMK+HA8+@n z{qlt=$ls-aT_5Cu`+!G)LEr@NE8w>Y%FfT7FS|0r1q^AlIiY#d%$?1*<9W%2_TP)d zi`J*dV@*8PO!Qde*WFizYiqW#t(bBA<$H6ge@ilVP@CK$ z(VY4UY0tnX9#0p`c`WA>E$0_I{}S^_I6Oziwa`!cn6n`@hx)*Lm5@A}u^i?-1AU>K zKZlGz0*~lDO)TfJoKLiz`|BI6NJ4eb{14>+z3c7k6&={M_!#M@rZtv8^pZL8Vv>`1k> z8F_yIL4OQh@p;-<-eY;6Xn9}iY?tdI@?Jz_!+o-iA>GLPWY;>I{t;&lg+>vw&RROL zh()%sbDGk*zTO-v5m63kG#@;HZaf5|cs+frAF+N+w0>xR7!eHWhs%9`+kq6%d8Rv} z`@`N>(}z<^L4GP9*vm~+dbyA6b38`w-O!8Hr^j+0%lSmhxwqftiv(d6{86AW1#+3`6CxJnVX+cs(Y=qq(RQta_Yd^0$#2@VEM<-15f7(ky*i&G+`3{ z+$H>;%fAY+p0OC}OFIV^zaKonV%jhpEPwR*;2FVY@>oJ1bHe*!$Cr|DT#DY03tb-b zz-rrklgA?b_6toOZxW|?@9VDP_e?r&8L$y(1^R)zfd_#nffs;Z0eVJq4X_>955(b} z^+44B|FrA3=$wLEDDga5(ZzcHQ;&Zd+ev(b(2Lfm$8$CmNTZB z@rQl$d>P}P#z4Q<79D^5@4Mf_d;ufw=RFOrS)=|piMR>*M zY2&dV9t$RVEbxAYRpB}+2#ScT@iREP#H_op%=A2Ne_Jw}O%7N3w(yQ_@_;sP zE`UbE)7l743S-jS+QQyfazYg$$S(AO{hq`jS6(oRujCc#_5%Fk_4Kih$2vaIIxd}% z?D9+z);Nd>H&!;QtK%I{0qzH^83;tDJ|y zPjU^dxh5@mitB#{|99{&!T$rSb_{~2P-pS6&lr4@YxWa^zXr3P82k-b`*2T#<&gRo zct-FMCcDk}skEnfjluJI8%NiRsQG-JI-ASi`N7TLi-3)Q-uJ%T@f?lNc9W*}zpr&^ z3(5P`J<2WA)%u=FLLZiV&)Q2?c!qjWz2G}w?T!8&SbL#=Z|Zx9Jhk^Ze81AJ@r&;l zeAngo99Vk+-!u6P?N_SrRJL7Xm5{d$&bMeTzVGt*M=(Bz;Ge*Ux#NZV*w%h6zJGke z=#`g+<((IFM;ho_VE35JN6c@$B$heFN0N&pMVbs zU!Wd#ANx(>{GJIv&Aa&zGTv*S|7D<*j#&s)0b79mz)|2n;1S?yK>G-90&$p_9+3Wc z|L~ye_iG|WS2AboQhF5};A|CtbLN^ec3xP4qw)o&Dqab6kYK zPk&BOlQN^{3B~6P#ODqCN6s6N{W+reB5U3kT@kSryl{H;5Dh~g zZ=w3>;naO3=}!|hPoO_b!FvBy`XhT=m^eSR1RRvrM^tEsXl?1=Z=0i+SqU1OeOQJ5 zN+(18Z9LrFe>khHBcrz(b7#UQ9#0qRZS;___#83&f#6|%vNiKNe2&=Z^wzIqFOTSz zR}1f}@jA8LDU<9PAF9x)&0H9r;vm~L&rF+-1wQe3x>%=%$xnPXpZVzaus%7X zb;|3F)72CuO7IFW&rJkZfY*Sp z1Z%xT8uT-n6jxHhB-V{zV70gb(E9E|;1cH0p=VOrrv_ z&r>yq>8IM_ejM}r?kCQ%nxL`4hehZ_tJjIhvm^6}djWdU`t(>2Vm+8>J@7KDxp+Td z$K;Z5T$e*<51??9dnaQrSo@2bi)Vv%&DbB@46Xq01J7bkoy+W|IrnPg*ImV2J1>0q z!^(VdU+Vke*BsIYmR-CbJOfYhEI@O$pCkRdAM%wx#^m%I@H61oKpe)t2h^>8tdp-+ z0Xr)UmoV0)ii~yQI|jXIeR}L~i~Vi?5r11T`SD|!e|DnJ&Bv?_!cdNke#**nEd-QSk$ z&mQjRH!sWhb=9VkXsU0Uqk!h{{G&~O}SK-?`|a9 z8u?VzA*dw#eaL+&{NnZWvFyjPKi0DE-zUTO7w*4x^ky>l!!+U1V&S`DTSB^1{R)y> zb0!~h+k)IKadPf;XKTpIJMO7mKMrzNj+Oa?=duO@WN%;Lc=fE3rjBh9-cFRIzSDf4 zk!NJeXEBvyd5i02DSY<>(#_8l=;qD{ zZ!z866-ggWH~oI(Gjh%lj#y;=Qf}g>UN>**qZrwX?Y#}XN9`Jjx;+h_csyOKld(>Y zwN7fjk?nRvDAPvQ`rERpu8QqdW}ei1b>r~#Vc$X0Joz&6I*7bp2(6xJQJ#9w85Hae zdC|r8?qPG-Hg_i6T|7swu-qc^mp#M8K9^U}A??_cZ0}Cx+IFY(p}AD&)=X#WC|@?t z97uJ-p?W+^9quGA<>Pr{y@~Z^to6qGxL!xjjsn)7T4LrCE{E+kv+Os1bcTE5N0-0; z9K7;nfc)}uDM(+m$2=bpy}qNRAl<8Qz#df|n@;aruQ~vOCeSM95BE0aM~KmX_8Rp9S{tH3;49gtW44R8%uow*vUflbc{EC<(tH-NS8uk%i{@81Q! z7MufL2mSO6|A!#u;=qj!PkRpz}vys zg0W5V+rZc(`5VF54)pC(?#~7X*MipryMg(@CZGz~2wVo#0!=_PPQUAcD}n2PB|xS7 zy#jm=dUY~*l zoJ%iGVdk0P-cdM@UY|zW&SNKQ8WJ#tQl≺EuM#u3?I|0~s`Oc@bFcLq1JAF6CP7 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.vshost.exe b/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.xml b/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.xml new file mode 100644 index 0000000..808ad2a --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/bin/Exercise 7.3.xml @@ -0,0 +1,11 @@ + + + + +Exercise7.3 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.exe b/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..19acf12f0bf0bd284911df0c76a6597be8477565 GIT binary patch literal 32768 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

    l$0>E@^waG2VDjpxrnMxCWAc5ZDIzh}jF+ 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.pdb b/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..045a732896e5c9a1436c02f770353db9bdfd82ac GIT binary patch literal 56832 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≺EuM#u3?I|0~s`Oc@bFcLq1JAF6CP7 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.vbproj.GenerateResource.Cache b/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..37e106b17a6029cdbeefe981e5fb86df6cb3a13c GIT binary patch literal 844 zcma)4!D`z;5S406vE>AuL&+gMh!SWaM%WFZy_iBB+=RxE)*4}fnW--9#ACFH3BWGZb7csf=ZaAPJA4plw}$=`d*LRuJGHT|dcfXh%0 zu0fbl!2UmOG22ynk5S{vw88=w$;fC;?P(d9>A9peyL| zb+?l?1?`Ajz|o*yu7~<>Q_5-2>+I+|>2c#u+KPXL?TlP57O=UL*8+=)kt$OlA1|H3 zxxxZNl6cK`B;D9Nqj%N64yTtFzR#2$_cac9-uT;(XFq>`zwp<&oNb-Y*gAg!O1bgZ literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.xml b/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.xml new file mode 100644 index 0000000..808ad2a --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise 7.3.xml @@ -0,0 +1,11 @@ + + + + +Exercise7.3 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise_7_3.Form1.resources b/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/Exercise_7_3.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYMt}(YT1n3 zyB!hu?mE*gJ(JtuN(&hlue+XGnDac>o5__rLDW&a81hb}STK`Y>C^+!c*wi!vchCc$Hd`%&#!yKeF4RG}XT(+gnU=m4KHu z@tVg;sGSWKbhw5S+fFAg42Wv6-}vX_h1-ZOl_p4z01^Z-I7W2P6T0pWbqPq z4(w7DsoHs$8oA?S==W5$n_E%xCDox;?NZxiM^RJFgDmJxJx1x0JVuZOEu1*V3GS3` z);1TH%a1nKYWuBTzPDbhDAwlNQnhNYFrqiSId8tUn_yY7Z4o|q{UC6%#Ii6H3#`Y; zx-^tEjbI?VZ5~D@jBz3=4oAcyW++Y&MP(?8O%eKXTf69t23HnsLy?mw0TX~zfJwk< z0vip<@0YyqzhS`YPE%XW+G3*9!QQIs$-PbNVs)pR1R*tU>VQ08I;u)vGzIr34(Rxf z(2;g%%SK~nR?Z+ujM}r0?aJ3*pWeh`m>e@gQ_x}Ta_>H0H98w9UK*Uqzn-v)iN6tM z`a^PhG3j+Oub literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/TempPE/My Project.MyResources.vb.dll b/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Debug/TempPE/My Project.MyResources.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..3244d8f00f7508ea40117af394db2fb55e8515b2 GIT binary patch literal 6656 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Exercise 7.3.vbproj.FileList.txt b/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Exercise 7.3.vbproj.FileList.txt new file mode 100644 index 0000000..f32896b --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.3/obj/Exercise 7.3.vbproj.FileList.txt @@ -0,0 +1,11 @@ +bin\Exercise 7.3.exe.config +bin\Exercise 7.3.exe +bin\Exercise 7.3.pdb +bin\Exercise 7.3.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_7_3.Form1.resources +obj\Debug\Exercise_7_3.MyResources.resources +obj\Debug\Exercise 7.3.vbproj.GenerateResource.Cache +obj\Debug\Exercise 7.3.exe +obj\Debug\Exercise 7.3.xml +obj\Debug\Exercise 7.3.pdb diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/Exercise 7.4.vbproj b/Code/Chapter 7/VB.NET/Exercise 7.4/Exercise 7.4.vbproj new file mode 100644 index 0000000..9936da4 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/Exercise 7.4.vbproj @@ -0,0 +1,111 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {9B4B4F40-6E18-40AE-8E7D-C77D0A4C829B} + WinExe + Exercise_7_4.My.MyApplication + Exercise_7_4 + Exercise 7.4 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 7.4.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 7.4.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/Exercise 7.4.vbproj.user b/Code/Chapter 7/VB.NET/Exercise 7.4/Exercise 7.4.vbproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/Exercise 7.4.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/Form1.Designer.vb b/Code/Chapter 7/VB.NET/Exercise 7.4/Form1.Designer.vb new file mode 100644 index 0000000..a98cbe3 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/Form1.Designer.vb @@ -0,0 +1,78 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.buttonData = New System.Windows.Forms.Button + Me.buttonSchema = New System.Windows.Forms.Button + Me.xmlBrowser = New System.Windows.Forms.WebBrowser + Me.SuspendLayout() + ' + 'buttonData + ' + Me.buttonData.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.buttonData.Location = New System.Drawing.Point(457, 533) + Me.buttonData.Name = "buttonData" + Me.buttonData.Size = New System.Drawing.Size(75, 23) + Me.buttonData.TabIndex = 5 + Me.buttonData.Text = "Fill Data" + ' + 'buttonSchema + ' + Me.buttonSchema.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.buttonSchema.Location = New System.Drawing.Point(375, 533) + Me.buttonSchema.Name = "buttonSchema" + Me.buttonSchema.Size = New System.Drawing.Size(75, 23) + Me.buttonSchema.TabIndex = 4 + Me.buttonSchema.Text = "Fill Schema" + ' + 'xmlBrowser + ' + Me.xmlBrowser.AllowWebBrowserDrop = False + Me.xmlBrowser.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.xmlBrowser.Location = New System.Drawing.Point(0, 1) + Me.xmlBrowser.Name = "xmlBrowser" + Me.xmlBrowser.Size = New System.Drawing.Size(532, 525) + ' + 'Form1 + ' + Me.ClientSize = New System.Drawing.Size(534, 558) + Me.Controls.Add(Me.buttonData) + Me.Controls.Add(Me.buttonSchema) + Me.Controls.Add(Me.xmlBrowser) + Me.Name = "Form1" + Me.Text = "Exercise 7.4" + Me.ResumeLayout(False) + + End Sub + Private WithEvents buttonData As System.Windows.Forms.Button + Private WithEvents buttonSchema As System.Windows.Forms.Button + Private WithEvents xmlBrowser As System.Windows.Forms.WebBrowser + +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/Form1.resx b/Code/Chapter 7/VB.NET/Exercise 7.4/Form1.resx new file mode 100644 index 0000000..02bbfa2 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/Form1.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/Form1.vb b/Code/Chapter 7/VB.NET/Exercise 7.4/Form1.vb new file mode 100644 index 0000000..6a570e5 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/Form1.vb @@ -0,0 +1,38 @@ +Imports System.Data +Imports System.Data.SqlClient + +Public Class Form1 + Private myData As New DataSet + Private Sub buttonSchema_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonSchema.Click + Dim connectionString As String = _ + "Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI;" + + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = testConnection.CreateCommand() + testCommand.CommandText = "Select * from userTable; Select * from PermissionsTable" + Dim dataAdapter As New SqlDataAdapter(testCommand) + + dataAdapter.FillSchema(myData, SchemaType.Source) + End Using + ' testConnection.Dispose called automatically. + DisplayContents() + End Sub + Private Sub buttonData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonData.Click + Dim connectionString As String = _ + "Data Source=(local);Initial Catalog=Test;Integrated Security=SSPI;" + + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = testConnection.CreateCommand() + testCommand.CommandText = "Select * from userTable; Select * from PermissionsTable" + Dim dataAdapter As New SqlDataAdapter(testCommand) + + dataAdapter.Fill(myData) + End Using + ' testConnection.Dispose called automatically. + DisplayContents() + End Sub + Private Sub DisplayContents() + myData.WriteXml(Application.StartupPath & "\myData.Xml", XmlWriteMode.WriteSchema) + xmlBrowser.Navigate(Application.StartupPath & "\myData.Xml") + End Sub +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/AssemblyInfo.vb b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..ae7d910 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyApplication.myapp b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyApplication.myapp new file mode 100644 index 0000000..2909f6f --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_7_4.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyApplication.vb b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyApplication.vb new file mode 100644 index 0000000..8d2d09d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyApplication.vb @@ -0,0 +1,28 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = False + Me.EnableVisualStyles = True + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyEvents.vb b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyResources.resx b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyResources.vb b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyResources.vb new file mode 100644 index 0000000..a912d8d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + '

    + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_7_4.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MySettings.settings b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MySettings.vb b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/app.config b/Code/Chapter 7/VB.NET/Exercise 7.4/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.exe b/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..2c48b58344f87bf7f804a7c9ec3e76bedb7e4139 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.exe.config b/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.pdb b/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fb2fda98dbfb57d128b1a0e78ae49d440e44971e GIT binary patch literal 56832 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.vshost.exe b/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.vshost.exe.config b/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.xml b/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.xml new file mode 100644 index 0000000..a2855a7 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/bin/Exercise 7.4.xml @@ -0,0 +1,11 @@ + + + + +Exercise7.4 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/bin/myData.Xml b/Code/Chapter 7/VB.NET/Exercise 7.4/bin/myData.Xml new file mode 100644 index 0000000..f7f3021 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/bin/myData.Xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.exe b/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..2c48b58344f87bf7f804a7c9ec3e76bedb7e4139 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.pdb b/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..fb2fda98dbfb57d128b1a0e78ae49d440e44971e GIT binary patch literal 56832 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.vbproj.GenerateResource.Cache b/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..e23e36abf17995cf36db696e1ae3dad65feadd76 GIT binary patch literal 844 zcma)4!EVz)5Vc9{CQd7*hpLBih!8@EMpi;q!6l+XNm$?ATS^ zFX)Xkf5BJ4l@H;-AHd8CDwJA?u{0jf&c1mw&z|pj-cK@qv#s7EcQ#dtHE7Zz-Y=Dw z@rl3%_IsybQJH-7G#>EN?~O}clom!gl!X<#-#aenS|zWcIx!2#NAtl>x|=>rheNqL z5IZ8^Hjiu3AwPf%$R*^70%R&}3wSnB8gO$i5RO#70LkA6%0f~YTQ&U$^?=Jz z4z59%QNaE`ZZX?c`4^+c{aJ+tWbxQ&P3>tJ7{3yDUWmB{*Puyvn(Y2rxne)JT;okQ+;9 zaHX)okR)F79Z5Gf&$##G!>5he*Bjqw%8vUQ2R!fRkB_o%Kfc`f>s-#Z&Sz|$UpaB{ Am;e9( literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.xml b/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.xml new file mode 100644 index 0000000..a2855a7 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise 7.4.xml @@ -0,0 +1,11 @@ + + + + +Exercise7.4 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise_7_4.Form1.resources b/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/Exercise_7_4.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYapx-aB#aXYwFr_}vT&}lp0q>Wc?{{6=t5L$ zyVYPJSPJIn{RNj*nMs~*40YgafO-f~19l8ZgbbYdaXY&LUsIQbwgC3!+MQnhs$S-j;w zEDDvi&B6o}IWf&b?#hs;RtAlKK3%>`$>a+N_8379Aw!NSI(nyX|J}x$oku8r%YJyuDV6Z5D~dCOX*J{gS3bCA)}FA_n5K#u4t-Z+kl{YmFy6o8D1Z*B)$n zP04z&CuG-qP1AVGU38bcgIpSt?eXY^9W}0FGDVifu?C{7Jd&+4F*;B+-q7G4!?MZ@j1m_8+2reL))QkC}k`Md_hHU99 zc2sXD4R0Yl+)7nGT)LFDbT&YUuyNDJ%iw4TL{Nvko rEvBkzF-?lWFMjEZsg7DqeK$Vbne3BLWwn@kX?P#sY4HRlM5pivrD}y% literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/TempPE/My Project.MyResources.vb.dll b/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Debug/TempPE/My Project.MyResources.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..19780ca7167d7a4503396e0c9c1664e5541993d8 GIT binary patch literal 6656 zcmeHLU2GiH6+U-%cD>%ji+3HTF>%Zo8{{Np}W2P0uyI z+5Li;c(eP!QOnoLo;&9mC9PmMjvHvRrsmB%n&oICdndJ$TQv2SmQ-(Kdf#rM2@#{E zH%|}MW;;Xa?lmGwlm#ada+mtiYj|>a7-;B}&~ISUf9|P@2Yha!xRnTh639LxnT6I1 zyN4Lb5&b?I$7H?D5Us5f9|O^du!4F^f*z|=M0#K@2B7a{pCFTKT{S=0GrH${1&F0@ zIUu}I>+m$R9K6>(({`aKeVu`jZEe8Q&~ijW4WvY8uzqgrn?iA#xt8el79t_JA0Kon zeHfbBf*xs=+S1l9=qi{2GqVJsx>!IewUrWEs3wD}nI!<#jb9{#k<1c+>LL+Vjf17k z5`gM9)nz~O5%pA+XY!jFW4nHeF}C8bVT{LYA%c&HKKrOp20mi;j1ubun(9O9MYECg z6XQ4)GfH1uT~hNOvu93Yu+oQ(Y4DN9z#EKdU%}^Xfo~b*6x`gnEyWSrn%bJ!swy%t z><^~}yw1e3biN&H*qHb_!!5UlJ}Z6)aTYZq)nroBD6ueiH~p+y?AN?0S}nzK8w?j86uh z<;?l4k;9?}(DxjiqyRX_rDycu_z3!YLFcfxo*~PLV#t6ge> z?o_iPK~=yMJ)*Y3=I_)uz;B8F18^YT6Hm~1ybC!TddV>KYBTLbL~GP2sAfwm>&2sbdj^_Y|^k&_j?V@J4K>ZK4x!N^AyP6gvPP6~l;GRe2Ed=aokR z&nVxgeHu(qV#E8?1`~%@P&1NhOKRd1kbNbh_K03k4@ZuqP`_=26b9enGG+A z+d!R@RBZ;eo6z8a)4 z60b_>V-mh9At@|M503H)} z0KO%@40yltFyNEQPXW7PFCvFx_$k=;I3SN!FuobE71fwel@`D(PC$VbTt)NveUsjz zcj>qEXL?_JAk->Mt!Nf1AX2B^1fK(FT$ySu1#8?^>Sd94TvJu}z?s;J%Dw?At+Y}0 zM4QlWqvK*5eZ;!E@@{e7HgBeqUvNF!nx(u|@LbfdO*)3@hZb^sXQN;9?*TBd(12Zzz&(Slcu*|6-=KF9Q912IB6U) z_s+5yS_@Xu^k%k0alh%i^B$|MvaBylF6o!v;8lI91|FO@NiPI09J|!I^bs?3ukQb3 z#ShF9g-+6(8BEtjr8>HD2~w+JQYuY@TBUQ)M{wAjL`t$-rNYw2kd>xagm9I%UXaUb zoVRiC?&H`ypIjO>gE7NDI_wrrI#4N_%#i&7H#}r%7&{Y~)6?UQ9~e#n7#$!hB51_& z%PzLMQOusgOl`nrVw zj5)+{+B5z9oJW!3C=P$aw(bd&b9mkk<~?)VIpRvih?c=$ZHO0Allu+0^p9$iXc|rg z*D;*{?~G~F?xKaf8uHw`ePh-(2LoJLX7LWJ7EA_+?qx#6CN10aYJnmsJ4M4QhOgza z%`v}puk%!k2svHqO&vBBosW!1c_{WW{@Xp z2c3>Xy$c^fST}fBx~7UWnjvT)$|X#%*K$)wS_E#vwS9fkHOgZ_P#(4|6qy=7dvSSg zyHria<(u~rUkg!aQ@}ZJ;4~rb9C;xWzWZ}9DEs+@rie7UCMCNGfyM&55n|jHq=FDh zP|=lRBKjWziyX!^#x8EP|0S%HpvZe8ww*UDC%k8vW<9wtTt`}NrTP`>e;5HFzpwEh zgz8Es!gmi_e-WSc#_$}@5uFONhgrb+t9^?V!g2_Wz^Z|ow+B_xM%^1HhmN2Qa_hxAO1Q;%&~Q)@ZS(>3Tu@O>=co|dzO|s@|v=3HXItESwdY3y1bXtJNIu&7o50gIW z_XI}GNvp%KQN|g<5tyT+utf6JE=nKvMtqJA`%qgiQ~$j$12Qh*I*K^Gcpa;wvm6(W q5z(jQm_fvk&%qMbX2W~!KaRuDEA4U-Kw$a*a#arSmG*xZfqwz2L;_U+ literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Exercise 7.4.vbproj.FileList.txt b/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Exercise 7.4.vbproj.FileList.txt new file mode 100644 index 0000000..6ae3178 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.4/obj/Exercise 7.4.vbproj.FileList.txt @@ -0,0 +1,11 @@ +bin\Exercise 7.4.exe.config +bin\Exercise 7.4.exe +bin\Exercise 7.4.pdb +bin\Exercise 7.4.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_7_4.Form1.resources +obj\Debug\Exercise_7_4.MyResources.resources +obj\Debug\Exercise 7.4.vbproj.GenerateResource.Cache +obj\Debug\Exercise 7.4.exe +obj\Debug\Exercise 7.4.xml +obj\Debug\Exercise 7.4.pdb diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/DB.MDB b/Code/Chapter 7/VB.NET/Exercise 7.5/DB.MDB new file mode 100644 index 0000000000000000000000000000000000000000..b205f5036fc6db8256923aaad2433a757270115a GIT binary patch literal 139264 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 ZZuLpex9(>oXKhdIH)=ysUk*M0x<1h9rstpX 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 + + Debug + AnyCPU + 8.0.40607 + 2.0 + {29F60579-2F46-4396-8FE5-B7930B77B460} + Exe + Exercise_7_5.Module1 + Exercise_7_5 + Exercise 7.5 + Windows + + + true + full + true + true + true + bin\ + Exercise 7.5.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 7.5.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/Exercise 7.5.vbproj.user b/Code/Chapter 7/VB.NET/Exercise 7.5/Exercise 7.5.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/Exercise 7.5.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/Exercise 7.suo b/Code/Chapter 7/VB.NET/Exercise 7.5/Exercise 7.suo new file mode 100644 index 0000000000000000000000000000000000000000..06f06322743e5ee0b6b83d0ba301880d32e4310e GIT binary patch literal 2560 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4%9zsqZbt)A?Ac!F!2um0g7+e|hfOHWECL{}Z^I%^t`N*_5KXEXpnMMs zJ5Zc}*rQ-%g}|;G<@Ul&zHS>n&N27-;69bq^s|V;nZb%7hQS4xcawp6DHoV;K;=j= zutZ4&vQmI_Fi@-n2qF2a7^pg!!51hC%5~Xby{SO;*+3Qf3I1np6N(0g{Pf z2xD+!&|~le%7j4WQ-S41GEjdpP=x}6IZ)OVDB}w>AqD6PkUm48SQ$eS&_l<}YHq{I N2T<&i>c`=%9sseN7p?#R literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/Module1.vb b/Code/Chapter 7/VB.NET/Exercise 7.5/Module1.vb new file mode 100644 index 0000000..bb03ce2 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/Module1.vb @@ -0,0 +1,32 @@ +Imports System.Data +Imports System.Data.OleDb + +Module Module1 + Sub Main() + Try + ' Define a connection object + Dim dbConn As New OleDbConnection( _ + "Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin;Data Source=..\db.mdb") + + ' Create a data adapter to retrieve records from db + Dim selectQuery As String = _ + "SELECT ID AS UserID, fn AS FirstName, " & _ + "ln AS LastName, cty AS City, st AS State FROM tabUsers" + Dim usersDataAdapter As New OleDbDataAdapter(selectQuery, dbConn) + Dim usersDataSet As New DataSet("Users") + + ' Fill the dataset + usersDataAdapter.Fill(usersDataSet) + + ' Go through the records and print them using the mapped names + For Each userRow As DataRow In usersDataSet.Tables(0).Rows + Console.WriteLine("ID: {0}, FirstName: {1}, LastName: {2}, City: {3}, State: {4}", _ + userRow("UserID"), userRow("FirstName"), _ + userRow("LastName"), userRow("City"), userRow("State")) + Next + Catch ex As Exception + ' An error occurred. Show the error message + Console.WriteLine(ex.Message) + End Try + End Sub +End Module \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/AssemblyInfo.vb b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..f17be34 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyApplication.myapp b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyApplication.vb b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyResources.resx b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyResources.vb b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MySettings.settings b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MySettings.vb b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/app.config b/Code/Chapter 7/VB.NET/Exercise 7.5/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.exe b/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..0e8739bea63ad24d349558b92b5c5c53a9dae2e6 GIT binary patch literal 24576 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 bfd>K)1Re-H5O^T)K;VJE1AzyAK_2)YxO~+F literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.exe.config b/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.pdb b/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b621efa3130dd59358ddba8afce8c6557eb0702f GIT binary patch literal 38400 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.vshost.exe.config b/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.xml b/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.xml new file mode 100644 index 0000000..d06e037 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/bin/Exercise 7.5.xml @@ -0,0 +1,11 @@ + + + + +Exercise7.5 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise 7.5.exe b/Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise 7.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..0e8739bea63ad24d349558b92b5c5c53a9dae2e6 GIT binary patch literal 24576 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 bfd>K)1Re-H5O^T)K;VJE1AzyAK_2)YxO~+F literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise 7.5.pdb b/Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise 7.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b621efa3130dd59358ddba8afce8c6557eb0702f GIT binary patch literal 38400 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 ZEtp#_w*}l5a9hA_0k;L*7MQRW_(xuJs7%=2 z^cwustDRU!v4wUBab$(AS5M-BR{jwr7iI`yd(dbFTfuhFY|5>MXbG3wtf#VjXMhI~ zcHtgE38Ak5SxV6YUhOLlxHJ$5$0{6x}hCfSZsi1UhgxnWA#O&v03mr4M7Zz-V zNjpZui8T*Of-P|3Ts=aLmW%mIp<_VD$z~nbEf>;y^}e{)QZ)B|@xPw#?DD*&Qkk&m zGUN#={KW@(*1XbBswC--X20ntWSNPr59pCg;|iB^WwAiuGBnej`EB(Er6xA>=F0lp zWnB7pF=5v?0)kMCU}Y+=1x9@%RiHpFPMyJ6VT5^-HlLYzRAiAnj`MU~TYh_a&Ma_> Gqx=B^hUlaK literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise 7.5.xml b/Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise 7.5.xml new file mode 100644 index 0000000..d06e037 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise 7.5.xml @@ -0,0 +1,11 @@ + + + + +Exercise7.5 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise_7_5.MyResources.resources b/Code/Chapter 7/VB.NET/Exercise 7.5/obj/Debug/Exercise_7_5.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 ZZuLpex9(>oXKhdIH)=ysUk*M0x<1h9rstpX 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 + + Debug + AnyCPU + 8.0.40607 + 2.0 + {EA516597-743B-4B57-83DA-18700D2613CE} + Exe + Exercise_7_6.Module1 + Exercise_7_6 + Exercise 7.6 + Windows + + + true + full + true + true + true + bin\ + Exercise 7.6.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 7.6.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/Exercise 7.6.vbproj.user b/Code/Chapter 7/VB.NET/Exercise 7.6/Exercise 7.6.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/Exercise 7.6.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/Module1.vb b/Code/Chapter 7/VB.NET/Exercise 7.6/Module1.vb new file mode 100644 index 0000000..bd55881 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/Module1.vb @@ -0,0 +1,53 @@ +Imports System +Imports System.Data +Imports System.Data.OleDb +Imports System.Data.Common + +Module Module1 + Sub DoDataMappings(ByVal dataAdapter As OleDbDataAdapter) + Try + ' Define an array of column to map + Dim mappedColumns() As DataColumnMapping = { _ + New DataColumnMapping("ID", "UserID"), _ + New DataColumnMapping("fn", "FirstName"), _ + New DataColumnMapping("ln", "LastName"), _ + New DataColumnMapping("cty", "City"), _ + New DataColumnMapping("st", "State")} + + ' Define the table containing the mapped columns + Dim usersTableMapping As New DataTableMapping("Table", "tabUsers", mappedColumns) + + ' Activate the mapping mechanism + dataAdapter.TableMappings.Add(usersTableMapping) + Catch ex As Exception + + ' An error occurred. Show the error message + Console.WriteLine(ex.Message) + End Try + End Sub + + Sub Main() + Try + ' Define a connection object + Dim dbConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin;Data Source=..\db.mdb") + + ' Create a data adapter to retrieve records from db + Dim usersDataAdapter As New OleDbDataAdapter("SELECT ID, fn, ln, cty, st FROM tabUsers", dbConn) + Dim usersDataSet As New DataSet("User") + + DoDataMappings(usersDataAdapter) + + ' Fill the dataset + usersDataAdapter.Fill(usersDataSet) + + ' Go through the records and print them using the mapped names + Dim r As DataRow + For Each r In usersDataSet.Tables("tabUsers").Rows + Console.WriteLine("ID: {0}, FirstName: {1}, LastName: {2}, City: {3}, State: {4}", r("UserID"), r("FirstName"), r("LastName"), r("City"), r("State")) + Next + Catch ex As Exception + ' An error occurred. Show the error message + Console.WriteLine(ex.Message) + End Try + End Sub +End Module diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/AssemblyInfo.vb b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..e1bfa6d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyApplication.myapp b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyApplication.vb b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyResources.resx b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyResources.vb b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MySettings.settings b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MySettings.vb b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/app.config b/Code/Chapter 7/VB.NET/Exercise 7.6/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.exe b/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..0f7b46ffdaea751d36330324ab770095e7e052ed GIT binary patch literal 24576 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.pdb b/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d8bcf4fdcf016767049115a7cbe9be5168ab4ecb GIT binary patch literal 38400 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.vshost.exe b/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..87ed49ad954ce326d6b3914c6a1e9a97ee2d004c GIT binary patch literal 5120 zcmeHKeQXrR6@Pm^&c+4P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.vshost.exe.config b/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.xml b/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.xml new file mode 100644 index 0000000..5159434 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/bin/Exercise 7.6.xml @@ -0,0 +1,11 @@ + + + + +Exercise7.6 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise 7.6.exe b/Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise 7.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..0f7b46ffdaea751d36330324ab770095e7e052ed GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise 7.6.vbproj.GenerateResource.Cache b/Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise 7.6.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..75185cd6e173d13b00c89c3515ab1dbf94c16969 GIT binary patch literal 786 zcma)3%}T>S5Ke7V`=d|~;-Majcn~b1Rf=AUV2eL!q5dEqylk@*T)WMdokSX+z^CwW zd>Su4fzA{aX@fX{FUjoeH{ZR$6-30*6?y-GD`9 z!uF2W;HO^e#5#&Cv_ps^D|Efqj|W=$XOLW*A%yKgV>f68dqJ})TMe-*TyC?K%I;kP z9z)oLF@zFAUjed|q6NG?QW|h=AP~+~I0VW6U1hD8R(q|ypO~{!?Zz;?&KK$EM266(zy}xNbnGgUz;s-%xEku z*b0+&jD)^5k4l0qaN49dy>m_8FiLDRlkxP>bmvd#YK;SYo)18^OdYe*Hn|X6( z{o^vO{kWL0>)QcAC`M47$!md8&qx(0kgGFiFi{v`o}?{jrXCepB#+}XUbd?5ug{qk IPH~h!0Re#Mng9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise 7.6.xml b/Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise 7.6.xml new file mode 100644 index 0000000..5159434 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise 7.6.xml @@ -0,0 +1,11 @@ + + + + +Exercise7.6 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise_7_6.MyResources.resources b/Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/Exercise_7_6.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYlAXn4PWF^@cD3sh z_zr^a;*EELK7lXbjZdI6r?rhGNa`@ZKdRO*R{69u&hl2|dZP}xd)g7=?8+K~f@YCXRi zE`=-M;$pDmvnq2a)7;nu-b>I=A!@)LL;*y74*EPg=M?DOCKsUd3PMn50X^Ge8rFF< zfPhR5uAm=Fm1Z*bjq%{4u+-!!-N-d(%E;g=@6huUq10tD813Y0JJm4^y}A?vYegQl z_l)V+G3yC1SsaY9DT_(x;v++<{|1s*eqFMl$*BK{!x0sb|GFIRF$F41S=#(PWKgNy zZ6*@Xl*Dlg+3RDfS{n`i`C|1EHIpx($W4&QqOd73RY!KijIrm)o<~t4Pl|I%Uv8z9 zEhXPz-`!SI_pU?}Y zFjajG72DY8tG?uY5i5CJK$3#$JuJ G3V#672xe{o literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/TempPE/My Project.MyResources.vb.dll b/Code/Chapter 7/VB.NET/Exercise 7.6/obj/Debug/TempPE/My Project.MyResources.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..b738a9411c765a882c8ce0148c12fb6a82c2ae29 GIT binary patch literal 6656 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 + + Debug + AnyCPU + 8.0.50215 + 2.0 + {FA7F9A1D-4006-4E80-AF91-2F54DA85B075} + Library + CreateDataSet + CreateDataSet + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + True + True + CustProd.xsd + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + CustProd.xsd + + + CustProd.xsd + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + + MSDataSetGenerator + CustProd.Designer.cs + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/CreateDataSet/CreateDataSet.csproj.user b/Code/Chapter 8/C#/CreateDataSet/CreateDataSet.csproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/CreateDataSet.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/CreateDataSet/CustProd.Designer.cs b/Code/Chapter 8/C#/CreateDataSet/CustProd.Designer.cs new file mode 100644 index 0000000..05ffc8d --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/CustProd.Designer.cs @@ -0,0 +1,1232 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CreateDataSet { + using System; + + + [Serializable()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [System.Xml.Serialization.XmlRootAttribute("CustProd")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] + public partial class CustProd : System.Data.DataSet { + + private CustomersDataTable tableCustomers; + + private ProductsDataTable tableProducts; + + private CustomerProductsDataTable tableCustomerProducts; + + private System.Data.DataRelation relationFK_CustomerProducts_Products; + + private System.Data.DataRelation relationFK_CustomerProducts_Customers; + + private System.Data.SchemaSerializationMode _schemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public CustProd() { + this.BeginInit(); + this.InitClass(); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + protected CustProd(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == System.Data.SchemaSerializationMode.IncludeSchema)) { + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + if ((ds.Tables["Customers"] != null)) { + base.Tables.Add(new CustomersDataTable(ds.Tables["Customers"])); + } + if ((ds.Tables["Products"] != null)) { + base.Tables.Add(new ProductsDataTable(ds.Tables["Products"])); + } + if ((ds.Tables["CustomerProducts"] != null)) { + base.Tables.Add(new CustomerProductsDataTable(ds.Tables["CustomerProducts"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public CustomersDataTable Customers { + get { + return this.tableCustomers; + } + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public ProductsDataTable Products { + get { + return this.tableProducts; + } + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public CustomerProductsDataTable CustomerProducts { + get { + return this.tableCustomerProducts; + } + } + + public override System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [System.ComponentModel.DefaultValueAttribute(false)] + public new bool EnforceConstraints { + get { + return base.EnforceConstraints; + } + set { + base.EnforceConstraints = value; + } + } + + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + public override System.Data.DataSet Clone() { + CustProd cln = ((CustProd)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override bool ShouldSerializeTables() { + return false; + } + + protected override bool ShouldSerializeRelations() { + return false; + } + + protected override void ReadXmlSerializable(System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Customers"] != null)) { + base.Tables.Add(new CustomersDataTable(ds.Tables["Customers"])); + } + if ((ds.Tables["Products"] != null)) { + base.Tables.Add(new ProductsDataTable(ds.Tables["Products"])); + } + if ((ds.Tables["CustomerProducts"] != null)) { + base.Tables.Add(new CustomerProductsDataTable(ds.Tables["CustomerProducts"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + protected override System.Xml.Schema.XmlSchema GetSchemaSerializable() { + System.IO.MemoryStream stream = new System.IO.MemoryStream(); + this.WriteXmlSchema(new System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return System.Xml.Schema.XmlSchema.Read(new System.Xml.XmlTextReader(stream), null); + } + + internal void InitVars() { + this.InitVars(true); + } + + internal void InitVars(bool initTable) { + this.tableCustomers = ((CustomersDataTable)(base.Tables["Customers"])); + if ((initTable == true)) { + if ((this.tableCustomers != null)) { + this.tableCustomers.InitVars(); + } + } + this.tableProducts = ((ProductsDataTable)(base.Tables["Products"])); + if ((initTable == true)) { + if ((this.tableProducts != null)) { + this.tableProducts.InitVars(); + } + } + this.tableCustomerProducts = ((CustomerProductsDataTable)(base.Tables["CustomerProducts"])); + if ((initTable == true)) { + if ((this.tableCustomerProducts != null)) { + this.tableCustomerProducts.InitVars(); + } + } + this.relationFK_CustomerProducts_Products = this.Relations["FK_CustomerProducts_Products"]; + this.relationFK_CustomerProducts_Customers = this.Relations["FK_CustomerProducts_Customers"]; + } + + private void InitClass() { + this.DataSetName = "CustProd"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/CustProd.xsd"; + this.EnforceConstraints = false; + this.tableCustomers = new CustomersDataTable(); + base.Tables.Add(this.tableCustomers); + this.tableProducts = new ProductsDataTable(); + base.Tables.Add(this.tableProducts); + this.tableCustomerProducts = new CustomerProductsDataTable(); + base.Tables.Add(this.tableCustomerProducts); + System.Data.ForeignKeyConstraint fkc; + fkc = new System.Data.ForeignKeyConstraint("FK_CustomerProducts_Products", new System.Data.DataColumn[] { + this.tableProducts.ProductIDColumn}, new System.Data.DataColumn[] { + this.tableCustomerProducts.ProductIDColumn}); + this.tableCustomerProducts.Constraints.Add(fkc); + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None; + fkc.DeleteRule = System.Data.Rule.Cascade; + fkc.UpdateRule = System.Data.Rule.Cascade; + fkc = new System.Data.ForeignKeyConstraint("FK_CustomerProducts_Customers", new System.Data.DataColumn[] { + this.tableCustomers.CustomerIDColumn}, new System.Data.DataColumn[] { + this.tableCustomerProducts.CustomerIDColumn}); + this.tableCustomerProducts.Constraints.Add(fkc); + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None; + fkc.DeleteRule = System.Data.Rule.Cascade; + fkc.UpdateRule = System.Data.Rule.Cascade; + this.relationFK_CustomerProducts_Products = new System.Data.DataRelation("FK_CustomerProducts_Products", new System.Data.DataColumn[] { + this.tableProducts.ProductIDColumn}, new System.Data.DataColumn[] { + this.tableCustomerProducts.ProductIDColumn}, false); + this.Relations.Add(this.relationFK_CustomerProducts_Products); + this.relationFK_CustomerProducts_Customers = new System.Data.DataRelation("FK_CustomerProducts_Customers", new System.Data.DataColumn[] { + this.tableCustomers.CustomerIDColumn}, new System.Data.DataColumn[] { + this.tableCustomerProducts.CustomerIDColumn}, false); + this.Relations.Add(this.relationFK_CustomerProducts_Customers); + } + + private bool ShouldSerializeCustomers() { + return false; + } + + private bool ShouldSerializeProducts() { + return false; + } + + private bool ShouldSerializeCustomerProducts() { + return false; + } + + private void SchemaChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(System.Xml.Schema.XmlSchemaSet xs) { + CustProd ds = new CustProd(); + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any = new System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + return type; + } + + public delegate void CustomersRowChangeEventHandler(object sender, CustomersRowChangeEvent e); + + public delegate void ProductsRowChangeEventHandler(object sender, ProductsRowChangeEvent e); + + public delegate void CustomerProductsRowChangeEventHandler(object sender, CustomerProductsRowChangeEvent e); + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class CustomersDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnCustomerID; + + private System.Data.DataColumn columnFirstName; + + private System.Data.DataColumn columnLastName; + + public CustomersDataTable() { + this.TableName = "Customers"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal CustomersDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected CustomersDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn CustomerIDColumn { + get { + return this.columnCustomerID; + } + } + + public System.Data.DataColumn FirstNameColumn { + get { + return this.columnFirstName; + } + } + + public System.Data.DataColumn LastNameColumn { + get { + return this.columnLastName; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public CustomersRow this[int index] { + get { + return ((CustomersRow)(this.Rows[index])); + } + } + + public event CustomersRowChangeEventHandler CustomersRowChanged; + + public event CustomersRowChangeEventHandler CustomersRowChanging; + + public event CustomersRowChangeEventHandler CustomersRowDeleted; + + public event CustomersRowChangeEventHandler CustomersRowDeleting; + + public void AddCustomersRow(CustomersRow row) { + this.Rows.Add(row); + } + + public CustomersRow AddCustomersRow(string FirstName, string LastName) { + CustomersRow rowCustomersRow = ((CustomersRow)(this.NewRow())); + rowCustomersRow.ItemArray = new object[] { + null, + FirstName, + LastName}; + this.Rows.Add(rowCustomersRow); + return rowCustomersRow; + } + + public CustomersRow FindByCustomerID(int CustomerID) { + return ((CustomersRow)(this.Rows.Find(new object[] { + CustomerID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + CustomersDataTable cln = ((CustomersDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new CustomersDataTable(); + } + + internal void InitVars() { + this.columnCustomerID = base.Columns["CustomerID"]; + this.columnFirstName = base.Columns["FirstName"]; + this.columnLastName = base.Columns["LastName"]; + } + + private void InitClass() { + this.columnCustomerID = new System.Data.DataColumn("CustomerID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnCustomerID); + this.columnFirstName = new System.Data.DataColumn("FirstName", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnFirstName); + this.columnLastName = new System.Data.DataColumn("LastName", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnLastName); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnCustomerID}, true)); + this.columnCustomerID.AutoIncrement = true; + this.columnCustomerID.AllowDBNull = false; + this.columnCustomerID.Unique = true; + } + + public CustomersRow NewCustomersRow() { + return ((CustomersRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new CustomersRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(CustomersRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.CustomersRowChanged != null)) { + this.CustomersRowChanged(this, new CustomersRowChangeEvent(((CustomersRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.CustomersRowChanging != null)) { + this.CustomersRowChanging(this, new CustomersRowChangeEvent(((CustomersRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.CustomersRowDeleted != null)) { + this.CustomersRowDeleted(this, new CustomersRowChangeEvent(((CustomersRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.CustomersRowDeleting != null)) { + this.CustomersRowDeleting(this, new CustomersRowChangeEvent(((CustomersRow)(e.Row)), e.Action)); + } + } + + public void RemoveCustomersRow(CustomersRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + CustProd ds = new CustProd(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "CustomersDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class ProductsDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnProductID; + + private System.Data.DataColumn columnProductName; + + private System.Data.DataColumn columnPrice; + + private System.Data.DataColumn columnTaxPercent; + + public ProductsDataTable() { + this.TableName = "Products"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal ProductsDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected ProductsDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn ProductIDColumn { + get { + return this.columnProductID; + } + } + + public System.Data.DataColumn ProductNameColumn { + get { + return this.columnProductName; + } + } + + public System.Data.DataColumn PriceColumn { + get { + return this.columnPrice; + } + } + + public System.Data.DataColumn TaxPercentColumn { + get { + return this.columnTaxPercent; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public ProductsRow this[int index] { + get { + return ((ProductsRow)(this.Rows[index])); + } + } + + public event ProductsRowChangeEventHandler ProductsRowChanged; + + public event ProductsRowChangeEventHandler ProductsRowChanging; + + public event ProductsRowChangeEventHandler ProductsRowDeleted; + + public event ProductsRowChangeEventHandler ProductsRowDeleting; + + public void AddProductsRow(ProductsRow row) { + this.Rows.Add(row); + } + + public ProductsRow AddProductsRow(string ProductName, decimal Price, decimal TaxPercent) { + ProductsRow rowProductsRow = ((ProductsRow)(this.NewRow())); + rowProductsRow.ItemArray = new object[] { + null, + ProductName, + Price, + TaxPercent}; + this.Rows.Add(rowProductsRow); + return rowProductsRow; + } + + public ProductsRow FindByProductID(int ProductID) { + return ((ProductsRow)(this.Rows.Find(new object[] { + ProductID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + ProductsDataTable cln = ((ProductsDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new ProductsDataTable(); + } + + internal void InitVars() { + this.columnProductID = base.Columns["ProductID"]; + this.columnProductName = base.Columns["ProductName"]; + this.columnPrice = base.Columns["Price"]; + this.columnTaxPercent = base.Columns["TaxPercent"]; + } + + private void InitClass() { + this.columnProductID = new System.Data.DataColumn("ProductID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnProductID); + this.columnProductName = new System.Data.DataColumn("ProductName", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnProductName); + this.columnPrice = new System.Data.DataColumn("Price", typeof(decimal), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnPrice); + this.columnTaxPercent = new System.Data.DataColumn("TaxPercent", typeof(decimal), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnTaxPercent); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnProductID}, true)); + this.columnProductID.AutoIncrement = true; + this.columnProductID.AllowDBNull = false; + this.columnProductID.Unique = true; + } + + public ProductsRow NewProductsRow() { + return ((ProductsRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new ProductsRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(ProductsRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.ProductsRowChanged != null)) { + this.ProductsRowChanged(this, new ProductsRowChangeEvent(((ProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.ProductsRowChanging != null)) { + this.ProductsRowChanging(this, new ProductsRowChangeEvent(((ProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.ProductsRowDeleted != null)) { + this.ProductsRowDeleted(this, new ProductsRowChangeEvent(((ProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.ProductsRowDeleting != null)) { + this.ProductsRowDeleting(this, new ProductsRowChangeEvent(((ProductsRow)(e.Row)), e.Action)); + } + } + + public void RemoveProductsRow(ProductsRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + CustProd ds = new CustProd(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "ProductsDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class CustomerProductsDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnCustomerProductID; + + private System.Data.DataColumn columnCustomerID; + + private System.Data.DataColumn columnProductID; + + public CustomerProductsDataTable() { + this.TableName = "CustomerProducts"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal CustomerProductsDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected CustomerProductsDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn CustomerProductIDColumn { + get { + return this.columnCustomerProductID; + } + } + + public System.Data.DataColumn CustomerIDColumn { + get { + return this.columnCustomerID; + } + } + + public System.Data.DataColumn ProductIDColumn { + get { + return this.columnProductID; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public CustomerProductsRow this[int index] { + get { + return ((CustomerProductsRow)(this.Rows[index])); + } + } + + public event CustomerProductsRowChangeEventHandler CustomerProductsRowChanged; + + public event CustomerProductsRowChangeEventHandler CustomerProductsRowChanging; + + public event CustomerProductsRowChangeEventHandler CustomerProductsRowDeleted; + + public event CustomerProductsRowChangeEventHandler CustomerProductsRowDeleting; + + public void AddCustomerProductsRow(CustomerProductsRow row) { + this.Rows.Add(row); + } + + public CustomerProductsRow AddCustomerProductsRow(int CustomerProductID, ProductsRow parentProductsRowByFK_CustomerProducts_Products) { + CustomerProductsRow rowCustomerProductsRow = ((CustomerProductsRow)(this.NewRow())); + rowCustomerProductsRow.ItemArray = new object[] { + CustomerProductID, + null, + parentProductsRowByFK_CustomerProducts_Products[0]}; + this.Rows.Add(rowCustomerProductsRow); + return rowCustomerProductsRow; + } + + public CustomerProductsRow FindByCustomerProductID(int CustomerProductID) { + return ((CustomerProductsRow)(this.Rows.Find(new object[] { + CustomerProductID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + CustomerProductsDataTable cln = ((CustomerProductsDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new CustomerProductsDataTable(); + } + + internal void InitVars() { + this.columnCustomerProductID = base.Columns["CustomerProductID"]; + this.columnCustomerID = base.Columns["CustomerID"]; + this.columnProductID = base.Columns["ProductID"]; + } + + private void InitClass() { + this.columnCustomerProductID = new System.Data.DataColumn("CustomerProductID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnCustomerProductID); + this.columnCustomerID = new System.Data.DataColumn("CustomerID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnCustomerID); + this.columnProductID = new System.Data.DataColumn("ProductID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnProductID); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnCustomerProductID}, true)); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint2", new System.Data.DataColumn[] { + this.columnCustomerID}, false)); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint3", new System.Data.DataColumn[] { + this.columnProductID}, false)); + this.columnCustomerProductID.AllowDBNull = false; + this.columnCustomerProductID.Unique = true; + this.columnCustomerID.AutoIncrement = true; + this.columnCustomerID.Unique = true; + this.columnProductID.Unique = true; + } + + public CustomerProductsRow NewCustomerProductsRow() { + return ((CustomerProductsRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new CustomerProductsRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(CustomerProductsRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.CustomerProductsRowChanged != null)) { + this.CustomerProductsRowChanged(this, new CustomerProductsRowChangeEvent(((CustomerProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.CustomerProductsRowChanging != null)) { + this.CustomerProductsRowChanging(this, new CustomerProductsRowChangeEvent(((CustomerProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.CustomerProductsRowDeleted != null)) { + this.CustomerProductsRowDeleted(this, new CustomerProductsRowChangeEvent(((CustomerProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.CustomerProductsRowDeleting != null)) { + this.CustomerProductsRowDeleting(this, new CustomerProductsRowChangeEvent(((CustomerProductsRow)(e.Row)), e.Action)); + } + } + + public void RemoveCustomerProductsRow(CustomerProductsRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + CustProd ds = new CustProd(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "CustomerProductsDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + public partial class CustomersRow : System.Data.DataRow { + + private CustomersDataTable tableCustomers; + + internal CustomersRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableCustomers = ((CustomersDataTable)(this.Table)); + } + + public int CustomerID { + get { + return ((int)(this[this.tableCustomers.CustomerIDColumn])); + } + set { + this[this.tableCustomers.CustomerIDColumn] = value; + } + } + + public string FirstName { + get { + try { + return ((string)(this[this.tableCustomers.FirstNameColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'FirstName\' in table \'Customers\' is DBNull.", e); + } + } + set { + this[this.tableCustomers.FirstNameColumn] = value; + } + } + + public string LastName { + get { + try { + return ((string)(this[this.tableCustomers.LastNameColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'LastName\' in table \'Customers\' is DBNull.", e); + } + } + set { + this[this.tableCustomers.LastNameColumn] = value; + } + } + + public bool IsFirstNameNull() { + return this.IsNull(this.tableCustomers.FirstNameColumn); + } + + public void SetFirstNameNull() { + this[this.tableCustomers.FirstNameColumn] = System.Convert.DBNull; + } + + public bool IsLastNameNull() { + return this.IsNull(this.tableCustomers.LastNameColumn); + } + + public void SetLastNameNull() { + this[this.tableCustomers.LastNameColumn] = System.Convert.DBNull; + } + + public CustomerProductsRow[] GetCustomerProductsRows() { + return ((CustomerProductsRow[])(base.GetChildRows(this.Table.ChildRelations["FK_CustomerProducts_Customers"]))); + } + } + + public partial class ProductsRow : System.Data.DataRow { + + private ProductsDataTable tableProducts; + + internal ProductsRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableProducts = ((ProductsDataTable)(this.Table)); + } + + public int ProductID { + get { + return ((int)(this[this.tableProducts.ProductIDColumn])); + } + set { + this[this.tableProducts.ProductIDColumn] = value; + } + } + + public string ProductName { + get { + try { + return ((string)(this[this.tableProducts.ProductNameColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'ProductName\' in table \'Products\' is DBNull.", e); + } + } + set { + this[this.tableProducts.ProductNameColumn] = value; + } + } + + public decimal Price { + get { + try { + return ((decimal)(this[this.tableProducts.PriceColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'Price\' in table \'Products\' is DBNull.", e); + } + } + set { + this[this.tableProducts.PriceColumn] = value; + } + } + + public decimal TaxPercent { + get { + try { + return ((decimal)(this[this.tableProducts.TaxPercentColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'TaxPercent\' in table \'Products\' is DBNull.", e); + } + } + set { + this[this.tableProducts.TaxPercentColumn] = value; + } + } + + public bool IsProductNameNull() { + return this.IsNull(this.tableProducts.ProductNameColumn); + } + + public void SetProductNameNull() { + this[this.tableProducts.ProductNameColumn] = System.Convert.DBNull; + } + + public bool IsPriceNull() { + return this.IsNull(this.tableProducts.PriceColumn); + } + + public void SetPriceNull() { + this[this.tableProducts.PriceColumn] = System.Convert.DBNull; + } + + public bool IsTaxPercentNull() { + return this.IsNull(this.tableProducts.TaxPercentColumn); + } + + public void SetTaxPercentNull() { + this[this.tableProducts.TaxPercentColumn] = System.Convert.DBNull; + } + + public CustomerProductsRow[] GetCustomerProductsRows() { + return ((CustomerProductsRow[])(base.GetChildRows(this.Table.ChildRelations["FK_CustomerProducts_Products"]))); + } + } + + public partial class CustomerProductsRow : System.Data.DataRow { + + private CustomerProductsDataTable tableCustomerProducts; + + internal CustomerProductsRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableCustomerProducts = ((CustomerProductsDataTable)(this.Table)); + } + + public int CustomerProductID { + get { + return ((int)(this[this.tableCustomerProducts.CustomerProductIDColumn])); + } + set { + this[this.tableCustomerProducts.CustomerProductIDColumn] = value; + } + } + + public int CustomerID { + get { + try { + return ((int)(this[this.tableCustomerProducts.CustomerIDColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'CustomerID\' in table \'CustomerProducts\' is DBNull.", e); + } + } + set { + this[this.tableCustomerProducts.CustomerIDColumn] = value; + } + } + + public int ProductID { + get { + try { + return ((int)(this[this.tableCustomerProducts.ProductIDColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'ProductID\' in table \'CustomerProducts\' is DBNull.", e); + } + } + set { + this[this.tableCustomerProducts.ProductIDColumn] = value; + } + } + + public ProductsRow ProductsRow { + get { + return ((ProductsRow)(this.GetParentRow(this.Table.ParentRelations["FK_CustomerProducts_Products"]))); + } + set { + this.SetParentRow(value, this.Table.ParentRelations["FK_CustomerProducts_Products"]); + } + } + + public CustomersRow CustomersRow { + get { + return ((CustomersRow)(this.GetParentRow(this.Table.ParentRelations["FK_CustomerProducts_Customers"]))); + } + set { + this.SetParentRow(value, this.Table.ParentRelations["FK_CustomerProducts_Customers"]); + } + } + + public bool IsCustomerIDNull() { + return this.IsNull(this.tableCustomerProducts.CustomerIDColumn); + } + + public void SetCustomerIDNull() { + this[this.tableCustomerProducts.CustomerIDColumn] = System.Convert.DBNull; + } + + public bool IsProductIDNull() { + return this.IsNull(this.tableCustomerProducts.ProductIDColumn); + } + + public void SetProductIDNull() { + this[this.tableCustomerProducts.ProductIDColumn] = System.Convert.DBNull; + } + } + + public class CustomersRowChangeEvent : System.EventArgs { + + private CustomersRow eventRow; + + private System.Data.DataRowAction eventAction; + + public CustomersRowChangeEvent(CustomersRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public CustomersRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + public class ProductsRowChangeEvent : System.EventArgs { + + private ProductsRow eventRow; + + private System.Data.DataRowAction eventAction; + + public ProductsRowChangeEvent(ProductsRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public ProductsRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + public class CustomerProductsRowChangeEvent : System.EventArgs { + + private CustomerProductsRow eventRow; + + private System.Data.DataRowAction eventAction; + + public CustomerProductsRowChangeEvent(CustomerProductsRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public CustomerProductsRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} diff --git a/Code/Chapter 8/C#/CreateDataSet/CustProd.xsc b/Code/Chapter 8/C#/CreateDataSet/CustProd.xsc new file mode 100644 index 0000000..b974c93 --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/CustProd.xsc @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/CreateDataSet/CustProd.xsd b/Code/Chapter 8/C#/CreateDataSet/CustProd.xsd new file mode 100644 index 0000000..f102d91 --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/CustProd.xsd @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/CreateDataSet/CustProd.xss b/Code/Chapter 8/C#/CreateDataSet/CustProd.xss new file mode 100644 index 0000000..0f68e27 --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/CustProd.xss @@ -0,0 +1,38 @@ + + + + + + + + + + + + 188 + 113 + + + 188 + 190 + + + 242 + 190 + + + + + + + 318 + 123 + + + 318 + 173 + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/CreateDataSet/DataSetFiller.cs b/Code/Chapter 8/C#/CreateDataSet/DataSetFiller.cs new file mode 100644 index 0000000..0969cea --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/DataSetFiller.cs @@ -0,0 +1,28 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; + +#endregion + +namespace CreateDataSet +{ + public static class DataSetFiller + { + public static DataSet FillDataset(string xmlFile) + { + DataSet ds = new DataSet(); + ds.ReadXml(xmlFile); + return ds; + } + + public static CustProd FillStrongDataSet(string xmlFile) + { + CustProd ds = new CustProd(); + ds.ReadXml(xmlFile); + return ds; + } + } +} diff --git a/Code/Chapter 8/C#/CreateDataSet/Properties/AssemblyInfo.cs b/Code/Chapter 8/C#/CreateDataSet/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..938bc6c --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CreateDataSet")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CreateDataSet")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 8/C#/CreateDataSet/Properties/Resources.cs b/Code/Chapter 8/C#/CreateDataSet/Properties/Resources.cs new file mode 100644 index 0000000..c69a670 --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CreateDataSet.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 8/C#/CreateDataSet/Properties/Resources.resx b/Code/Chapter 8/C#/CreateDataSet/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/CreateDataSet/Properties/Settings.cs b/Code/Chapter 8/C#/CreateDataSet/Properties/Settings.cs new file mode 100644 index 0000000..cf1210e --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CreateDataSet.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 8/C#/CreateDataSet/Properties/Settings.settings b/Code/Chapter 8/C#/CreateDataSet/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/CreateDataSet/bin/Debug/CreateDataSet.dll b/Code/Chapter 8/C#/CreateDataSet/bin/Debug/CreateDataSet.dll new file mode 100644 index 0000000000000000000000000000000000000000..850acea7074a7dd4cbcf568b15d3449ad84c69c9 GIT binary patch literal 40960 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/CreateDataSet/bin/Debug/CreateDataSet.pdb b/Code/Chapter 8/C#/CreateDataSet/bin/Debug/CreateDataSet.pdb new file mode 100644 index 0000000000000000000000000000000000000000..35224e2496db9f9ed9380cea2cc29748d13f7313 GIT binary patch literal 87552 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/CreateDataSet/obj/CreateDataSet.csproj.FileList.txt b/Code/Chapter 8/C#/CreateDataSet/obj/CreateDataSet.csproj.FileList.txt new file mode 100644 index 0000000..3145c48 --- /dev/null +++ b/Code/Chapter 8/C#/CreateDataSet/obj/CreateDataSet.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\CreateDataSet.dll +.\bin\Debug\CreateDataSet.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\CreateDataSet.Properties.Resources.resources +obj\Debug\CreateDataSet.csproj.GenerateResource.Cache +obj\Debug\CreateDataSet.dll +obj\Debug\CreateDataSet.pdb diff --git a/Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.Properties.Resources.resources b/Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY6xyQ}Goc{$JX-YNLaF*QMOeWD_3(8Mm-NtKqtrNACG>Q`V< znWVEGH2G=NyQy}mg-!ygvqCrOr)j8FbOggo(}ScFHrw$=ycxGza-%8Q!sj+Cne4$i z;65a~Fn~lt5-C8IQnrBCdrAY&g#zJNB|VV*zpE@n&e&lgx0FpdPBo&-6KBO|{KqX; zJ0*W8$}e6F(Lq1x8m*~4EdzrCfwxYC8b%EYbf>`ZXXzvrRE~|1dxD3U{M>A*Yx)CW z!Pc0xYb2anbEhQO5+^Ry0~BbvSiBNC1@ydp-t+xxDXZ7v7uRxz=EGn7uV-7^Ja45^ zB`o_4MS>cC@j;O_&y$`3SV!*MkYOgZ5nw&hhppP`lQ%WtFCC^a&f_g2;4 z9^>4%heP&!Ehb1r9~Q>)TA({IQpF17?ARIHD|A>SY16rpLuD4p!!%!>!qvCu$J`93 GII16dJ?VY` literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.dll b/Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.dll new file mode 100644 index 0000000000000000000000000000000000000000..850acea7074a7dd4cbcf568b15d3449ad84c69c9 GIT binary patch literal 40960 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.pdb b/Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.pdb new file mode 100644 index 0000000000000000000000000000000000000000..35224e2496db9f9ed9380cea2cc29748d13f7313 GIT binary patch literal 87552 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.refactor.dll b/Code/Chapter 8/C#/CreateDataSet/obj/Debug/CreateDataSet.refactor.dll new file mode 100644 index 0000000000000000000000000000000000000000..09102643a7ca3ebb0733efb62c28221752879fa5 GIT binary patch literal 32768 zcmeHQ37AyXl|JuPb=T{a?&^g_kU~HqLW7EeMzJ@RR*+TDj0CE?AJDP7x~-~4+Mu?G zEv|8exMW5h$0Xlm85L0zHO4`rPK+jM6cg0AB`(o07|l3Nod2Br?tQPit4Y3OzL|Vu zJ-&DP{O6o|&b{Z|d*0g3!Y^D!AtDN6|MXL$`|y*udZ7m7VGS4ck9Z^iYIuk7tbMDV1=k< z%8`va+ACB(uEcVP7DEzK()U_DzK?Oel2@pHvxNIE+ryxc^M-Lj3?NwlG-|QA1%6Lv zu8-&yTSVF97NXK@$)AT}L>PhD9N_r|5!GefjTzt%8bP3wv3mUmk}XEGrY@CEwE;=r z`oOTw8tj3s9to*Sxrr_qN?&h*lI^;&2ex`5j+Wo@8OUcKpMiV^@)^iyAfJJJ2J#um zXCR+}d(Xp-`)qaVI)2`%EzQ6?fNu`LrZLgwb(JgxSUG%$ zRm2_s*gA@8RexiE6S22oUy1?5u%oGri=PiLAHxoFT7doQ*m<0+i(w}!7EDw~t3vZb z#dKb%AyiIRhb{ttgYf?>{9~beAbD0KFNtJwctp6ER)ibE<+MM{_Uj8yE-0pRK+Ea- z1sB23i=a{JENm@|($@+vD=eg$k#UhIt&UsZm|?&hI>+BIF}X7g!av zgjNF;;CTgGb^?_F6_X7Y8{nf7{5V0^duXDdyFD}+8Lpr`KsB(OD!O+?H-f$>x*~WQ zLnEkFbcX;{(nwk-y4j)|NoR^~h3H1%(FOZFOLU_sBWNp74IMu>w2mco$7TxjS{pQUdB-ajTQ8a zphh}e(943F=<|a1OT1<}Nl*zU_86K=3k4k_Xg)2rD(Owkib{G9Go+G^4UY$H4IhT1 z{BU>)=u_cSLHCAF2c?2lpc948aH3dZbA+BMwB4zNWWO^FbY>CLjYY?T-Y@i{q9*W1 z7c=cHUI==xP^*Ob`9epQ-32~KzgWgml0y50UM^I{dbjMqpq*OI^vv=I(t4NB56dgT zA3lufs$mC#-YWFfVH3e0TEVna=$%4?5rh2sl^k7-RP{u~y}R=J@K73My5D&ebY>CL zcgvmvom$ScHM$4%A)#ZcnC}%D^so5Ad49Hbamb=~YEK1ywl)#q&+&LH9BkX1{|r^~ zagpun5e4B|gZf95hDRB6VHVovB*TXr-8N@)czOU`89v%abX#~1X13b4(RacpONC^t zB5+;gZ3`mArAjjDcP=aFK!sFWzjH%DGJx(VNC(hU1selsU%|Nn^l8E70IDtQH)uCa zExe2(UW8qARN>|TYRN)p7hV<6eZ6p-dFpy0Jyu7uAo90~ zNVTgmx_yziNy<4S-0t5|H`S)vjq#9bcd*gzi~Nyd230wQ)*%LQJe+!EQ%CwR5Aj?Y zX=$X6`y{P%HacUi&lz+@7P>Wn`kful1Y_CnJmgFYpdUG#>2S|Wzq8lr51_)LqpT@L zHwI{`K`lUa2CW8~X3(WYCs@-Bx&`P6gPs67(x8`tjxxw8o@dQ4XbjNN2F(FF#-P)I z$r9^$gQfzVV9+WcT*JDyHP=JD#?CTm7dfRqQY%MW zs81c$SbCu~&x^2&x=ObO&?X@L24ojq3dGlGyzQdxKqo0c{q#?z zt1NjZ1IaeJuk<##T4S}EHInG92Jt%b(WJ8H0_eE1 zJwB4?ZC*Pb`>U2~P?htxway@pex{BfV^3%#(K`*|b?YOJ?jw$F5WI|{q}NW>35`^p z=+ZjpYh`1tvkba33;ieyJs&`-YUp-cH9j<6`W>zsDbs7N8b10XF0|z40s4NYy4!)oj=8&nIl$)H(4 z=Ni-kbe=)o!^Ya@8+0*HpFwv6U0~4TK${Kv{jkaQg$9*YOt!ZebR5t{1}z2ZH>eNj zVuQ8=Z8hjopi2ze3v{W6RJFOxAg(r-YfJh=#Weeh06NCL(x73LA6i#?NL8C_Jfy0P zMylFqq^gZZs@iDOPh%?^Y>jpiR~sL3wYk=dpsJ0JxY}H2bX;w&H;AjvHV^evUF9@; zyN6V@`Ks2*io3x>yy8x=Z!)OLSz&+8AYO5|2HLH(Zqo=WuEG9CgLrlLh^vi{xY`&b z(Qh{q_C?m)cNkRVblcxBh@*c?N09aYZH*-QcMRgy=p$b5KH~LmkVOBkiLfuS$-dK| zDrbv*w?Q2JUL8TA-=~p8zuzEU{XUvhc9rd;Rn9l;hYaHA zkLU;z{a-bb=(`N!YU3l0?jw$F5WI}S9iiG(tYB($PgefGe!}S90s1$CCPsf?|Ja~LpeGF~EPCAji9ut4o-(Kf z=xKvi1O3#XKbAdX|IDE3@@MR444Mt}tU=3wo-^p&=wAEh2Hgzwyg@Glyz#xv!&tiB}S7gN+N%Rtfc-{Jlqx*=XYs8hIDO76OEv}wml^L|U zdS?J7tDm#Vjc!x*o&dTOx?x7Q9Xf;P_Ug@4p>?#QdQ<>Cnx%U-OZR$pOGvj<{nV)6 z8C5gEs?S zv1U{NeLG8cf0k}{mhSm19gk1@RO8dA->ImbVAbk)&Y`tC1Bj2&aHHd6?6Fyv2Ep?DkU=u%$7NYEvS`h4rfUN<3Erl(NR;-=!fzIO zxoEEy{(7Nb70EvcAJqDMi0*(kOl)b5uc*qQqVGt5A~l@( zN>GbFsb>1V$b*(aUbXsbj>1QQJp5%x_e=tvS;TZ>5kF79 zU+70gv%nu+%(S~0!SQ~Jsa3*szR-8en!!&kXL@G&0?@mJeptR7{Nclxt{TSA2X7Vn z>afw^53OL@DfCXEcUP{5q%_KOztasmvxw=tWg9`KmNRXQ#y}quI;M*GUQioj34s>i zyjn!X7*z${<5tlyyzl0mL@9>14C8?g#hcj4kW9h5)Fbic@Ms!Kv!MMvjicFg2sOfL z9! zN%rVi670_>)jaA*4Ue=^=vy@`*)RO3HQb+qTBeWGvRv6Kn`dn9=Wd&GsPbkHUkCrH z|C;BB%vazT+js*u6I9I=hmOTusi5OPdEOL&KOS%49L$75NDA?0&B7jm9PhUA?*!~N z-f9&=Qja<2(21Zn=2;2&252g%5!A-Jt}^h=_~}p+sEv6z43fFn9hw8m@69X0&%?~D z!1pIn#EN3R;(70P7u3!XgE(WzRlSe|bm2ihd zmw?)I6y|pYT}GoJzZBG_8JO)3T}}r>eg&v4bKjz4umT*ql46j51=OZCtObXz!fL3X zt3hpQ$EtAX8mx;7x)v1I$XFjXxu6bRhgDTU*Mr)Wpu-^9Mw1}f4r=3@ipk(_pwB`6 zRZxq%@Yc)5^Yp_Zxe+U|f^Gt}sR!RrIJ6gEBvjB#pfi=23VKgw!EZq=x)4X+rp=%Zy^pz2LB9jFX$NM3 zP50oK+q4tM8Q%hc+VmifvrP}-s9N+es)|iN5W1Tdg8vaM0(}f$qF8tiwgmiBv<&oV zyuq>PXS5RhPlf)RP6z)y{T=8Fvs9c`sS$5=g(9}H?!%sLzVI8d7ov3kLe2eoN} z^=0rAL2a61oeO>{s7-a&`QWF4V%}O8fIk8h^V7Nz{86Ab9dBI({sd5)W?L77KM~ZX zdg~JK4WKqPT9<)u0=22xx&r(hP@7J+z5==cPugud1<${2T7+lYHZ8HXgD$mhpl}~b zYu45x=S_V1Q?A5_fvSMIfZdn%VXbE<%4rSQOu@A#u z0bM01uktGFysB%k^I2&)c3#0FVKWN!Anc>DkHLO0_OaMw(2c`>2=?*VCt#n59oz8> zyV`pa?rdsGx$%tK9M8m;xf%Q_)Y^DkrYlv~o=6Y`8Tq&@+h%d9tJ_UwI@~lZb<viy)79yw(o4I}ZdxBtu5;&XaFdz&@nk!G2-OCg`1Kj7cT)0~(56%LYuZV7tJ`a=8eqm-VJIZYQZ9bxmE#wH@nvQt?bjSCSgK zyAvI4!s{i}7*D&@nQrS!B|2JZQR|o7wv2Af$6l`=TG*4wplv$S>?YiGSec?x6WIjA z8f)W7X=<61?7^Clc`j=SX;F)j)6ltkMLf}iz^j+_CfmHI>)ebdu506^PIW?+r5D0q z*P2@xPsZ0_jjm3)>4oc3y6^MwX=yysagG{z6FT3Ma$AyXyTs7L#32VdVwu*b1H6`T zCE?6KhqahU;6vB0z>LX>lMU z-72j!v9u?d>F9Lpmbs}8KO1bReiQLLP_Aho&w) z52TgIykqZ;Zh(azy^1miM+xg0-AHFr@s4CBO?(`3h?^2!Ntc$b@9Igk>jAl5xB*f> zgg28;>r4>#rEa_(vxk2GX(uvmeZ#tCZR_36INN*NJU64btQIZFj?9X93bP+fQzD+m zLCEf0;OJy4OcsY|;Ok|5V_|o8WAMogPM2 z35=1ku-%)`-gp=Hv?e;z>la|3Xm1bp1CuP--q@=}Sg86cfzS3RJl-_} zBXwopf>S^|+2+zI?%BGTTr+W}a3Rsy(~;ov4K>i*R9B~#NMVCZh=uhU3?2dul(3x^ zB{kr23)1QI0jrkEI?U=2LP^<_lIImoZD8t&zZ_J3F>_QwRYRnH46YLH1}W!USkOy- zI_~aDyIjU_EycwJl{X+^yKG6D1oG;$DU=@O>u|4B%5}EK`!|i4gw`n zU99_+)OX|=nSPiF#C315)SI1y71+te_Q_YD?bWF`sN*S{zNuqEwvjoa%{3>2{uT={AZTGGBNtsNlod||8sui&|BzG?2l zBb^RG-rTd7I=|n`4T~JHi)1lt-ZE1>wXWAn8f%NW+>7`+Z!pl{4AL};9Z0^ z$TKn}_IU2P$9g~X126CC4d1VK;8`@DH*7$PFj+((H?Mquy-~PyLk7Qg-P(hvbJ>r^ z_2YBeAlHg`kby^6E_Lt&u{Q5{4<7&UwR8ubUC31|@|R?ROB>VFrJf9Sx|#KOUf!nf z&GFEUZ`gHb-L>8WK%BtV#-Um0cDA}HzgHP~vVz+HcO#{ckyh^lKF&`EyW=S&%F7!c zkH+2uKL%^1xJo5{|9k!~9(q1<^P<}$lO8!@+Jm=~bMHB4tQa}tl}kc}QO7PE9VUu8 zc=2I{Vq}FK28Gdy*eA1QB9qDZWoio;%85)EN6X5YR+qza0`_|B?bxSAVzw1MqVni) zjG_~m)H7*kax9Y*5XTP3EDMC9Wd-1(4b09dM9b09mO{8)7+r!c+2Kj-1EiiwJCkFX zoDjl`#sW4U!QnZ+C)Nn^u zp@&Xk%!>B)aV{o_W)isR!c7M^OSoC!MhK^99F4dYqJWl{von`TO#w(>ANw2^?O;i# zG&_q2vkHT83MWZ8?q765bc*zk8P&fy=gTR8u{dXw8QNq9o5TpgEUO%@$~_;)YlGuq zAfwsBqiL4F&EOUYw*cI7;g*9tL%1`*sU&hkbZkp;ECgC!*;CmgL)jwz-Qq~B`sjQW z3k+gOH@A42#ago%8c%kbmYoI}lEFSLtFi~lsO<4<)@YkGy7ybT_v@v9>%nyk*9~r? za2vtJgo~*@Z!O}Zu+>4orOR8T%Ue~K+oK5;0F3VPRteo6&1g+Vcey>fNy|2|HRq(G zFh*nGKU|1o5-P0hb@wq>XdZK>`zmAX=`jmlH2juuxa*(Ho#b!Fb zxmN#X;P2NV2lAb^W$c>~J&iAp*-v*?oEU7U<3`rET>;w^to^=B$2Z>ojy&QUSW8Be z5!)pCoj!_EZs9*WNFjbZzINxn4$O+5 z56%sKr$X8^Aa7~(zY|9xfu6_yWIG;re#>VdpMiV^@)^iyAfJJJ2J#umXCR+}dmGvCZNJBDc(#&7=c$5%YV@M<;as7ObC z>^x2a={XxhcXg$_NlFJ%Si9r6PIb<89k)`hCo)bH)j~>QC1j<%p0s7qc}D$>s7qn3 z?Nr4TM*IB@*6}K>s5LBPy`|^{BTa6sas&n!#Jj zuuYB5kQu~1Tm_^eX2})pTm8gp#)FF*|1+) zSJ4ism?zreAxDYg5js5Ay;7QtU2;W+65^4~9%Wdp-*0U#uQi@;HCsnBU0d8}Eh*8X zH<9YLcJUVPx^wP)>!6b@YCBC*y8$RXDeZHdYT;C=5PhDbADk+ByC+lr5@)ELDnmoW z0x3#R6td*T0ONoQfQt+kgqu0iXJBK8EYvj1pDq*973ARp>B+N-uG z>ZF?x=xB@tLC7!yBX9*i1bmIr5e3D$pbQQU`o&Kj!SMm24tP=V?I_~?*V_9$s=D%; znS1YdwF+w0{?}T2?Y-At`+2H5J#V{>0z?$V`_F$SdJLcZS|aq=WEA4~sh^G0r|P~k z^)X}hSEg>sAo0 zHUiXt{%y;g(q5$a)Nw|XXb_x~;$HABoxYFp62)&)^=1y&UtTYQg3m9s3v2+v&ZjFD zomch~^>XSyqUTLvm6Iol>dQGNhEhamf%}RAU*sa9&Qf-`1iU;80-3Z`*BeM)DWWSn zi*~UONa}VU609?dx9_zC4(Tjr^A;4Pu1`Y9dbi>2do3Yyee7e`k~I(1JW%sM%>y+L z)I3o0K+OX+57azR^FYl5e+3>$@wpl=KAV~pqSsdv{r-F+L%1hTn&$@Nx0Oe1u9lKcx7`R?bJ|SfArn>`X_kBzk>iMMOtB zudFNt0P;%Imhn+#=CebDKNB|7=;avAyc~RpIoQ=`NK2T{ly;#DAd$Rjq)KRniNPT* z43C>d5nU(Lhop>FF)w+?@`BU@@1R3amq2<345|no7ddA-$FFI@Tug;=EF7?A0Zk8& z4c>8)IZo(SO8ud$WhloD`>{D)sXuUaPB$ULFX({0zPPjI7Jc^Sh2NA-v7KJYanJ8G88{SvR=((T;HOG7f+<(cZlnib2#$ zxOci-48)+cJxo7B<1ppJ$;Gcju4kX(k2tL+pW?rBTFpJJdUCNbWrW2q%42F0P!p(W zuVNv$%MnT&Wp*{~91FS9j!+sPLaBG#Ef|ytzE(AXSZ{^?0}&rr^b5kZ7od$XbC0kV zA|19CfuirNx5#Ikb(a1-n?H-}0-q`FSPPw1rGSC|Q~~BmH=)&DjGC!_l5R5haGzP{ zaDB~_uCO-89jtoY+{0;QPK_Ib#?DhG$}5$>Erd5fU3`V{;R$H^bHi__QtrnQkuuZKzXIg|!p_3-B_0)LC6Dk3_BI%#1V# zXHg-W9hS2iw4#slOEUgb+ZMm9!OQbfVBqcfVCD> zW+WNajhL%NkVYd=Qovfz@(rG9%E9Sgq}0qHxmYp15rlJHf=_K*=D`YG7N<9fF3Q`? z=u$=iTNu1eL^Id$-skO-Hq&aJnTa+zYb};8jNLux((*M`^D%!^*Yu|R$+=B)O1LTvrl2vMUx+7@^qIwAN#l%M{f=fr(sm0fQZ*v1*K(d_xJO)_JK3*5XCRvw60{jO!+ zMoHgtpI{<%d~Ri-qIMdp?|Gks0l@MrIX5p-sN%}VVs5O-(U@Kg8GQ1Biu6C#gA{}DPLQa zqExh6SAh#{F2URLJK9p3*5SE^u>ep8uyDS`(m6p5)`m+avaWM72}Jr z$R+3qDkxK>>dxkQAws9={YM~esd9Pzs5Sm{jBZAl76u`cVHdEjLDGH{1z4Dn(f8mhtWyev6USjQl1?~Cuygo?C?PI>@Yfx9dA$$u?4gr6e)O=H%UB2FlSYH6u!wRa(lwVQ3#wY0Rfw%WtY7!k$<>stPd_!l6130Qop zEq>lLlL)r?>?DF^`4U03a@l)0V<-_SCQOun9a~O>qOvEp_A&}v*W)7*^6Q5a;o|9@ zez>@lfnPnW)WZ?AFov5WSQsPzg>lB%g%LBeZ(&5d{pGEVSd@4mNZZu;RIh>9hInfo zLYFijA65Ans#WZ@l|ZV#hOR=4d21+k zXzJyxi#vF%${NZs=WuZmqPZM#4)=DK%kk!LKj3mX+7QgVw$@>4(`zf2Fm`Q~()4P{ zX=kCqB+FaAI+FWaACFb<8R${JcTyQ_waD^)+|QOn#I}mTKpIa zuy9B|##+pS(zC}lh_^VrsA4SZc(9?F2F{!EC*xBp#)wISAZ$0EC*xBp#)wISAfN`EC*xBp#)wI z5qQJUU2{Y7<-(M2&6QTW=TzsYiNk6uUlzuWb!2td+o_%}kFwsnzIEqgOh=CYtDad; zQ*v2vaj@g{R)VGadYeNWdF$<%GwTaH9%a4dxN_D|?9qvP^tikVy**rpyVx?&$6j*}TXolD1!NgE_plxJbnLCkdJM{%>_rI6%g)CSIh|X+ zCUcJCuE{)Hy|s&xvvzTIy(WJS1z6M6R8+aP7u6cbgVwXd=p^mvHJOL9XNS>A+R_Y>Q6D2SUxUP^vb+Ju{88-Bs$&0#CupDZdiHsIVthN#!c;S*`tL$b zrTJHuRqgr%;Jek6@jWKLRIf^Y=8wrApy?>TL)Hk@OV+zlggge32U_VH0ZW*-CrWk3 zb}FCY_To^-oyzU;_bIdGc~Z4Lb%n?2Q_;J)iqHFl$L&)$ujg|oW=?lvMs!v?_CJWJ z%@`*!^Xf6}OI*5n19GZ%dZv0AJypucgpSn)uMEyxUPfi?xJ^x$_r1#>)A!}E=QgEU zes<4^;|MK5lGC8JxGg4E|mck83Q8*c<9`eUQhs=i8fjT=V2C z;7ujU{V}#MFS9L7RpqwO9`wN;7FV;y`odq<`_^TK{&pMJVb__R^EwyJJ9GXb z0DS)q!-Fp(MRXw+gX_4r(M!ZpE_Ip%xc=IOS+ds z_B8Oq5M;~p7B-&pGBI~8A*yYeFBy{K;yKbX>n7W20)W^ zchmKtp9McgEeS4VlF(A(szjXjC4L!*(XB|ws5$v&B1~J7T<5z%WAyPP>pYQUoi8ID zqwglamWSbIiAxkLKh3|22Ik= z@m&8sLLU_RG-!-sEx#WhqqQyE>i4y9S%*Pm^fhpBiPy^fhF0cx3OxrjPWQBODgOc* zri+}F+!AHYdxd^n=;wq^th>-KXq(W7g#JY6V=>lO_Ep~3Vpl=)qH#djudU@mbed+(D)9X@j2_2ZQ-<*O{J}PKG&}l%AohGvAm(7_N;YT!j-kb~c zibg*&7XtC7o#>h9AI!x-6EtcKTmaM|=s2#i;1JNIZ zUZyl{)aZAD@*0f`vuwXcQ^KzRJ*ZJS{2I`gfKqfIx+45rtPd}0bQ#c0`VWn60h&cg zoOD?8A)whbOQU}UnnTMq`Wa9sU8d2L$Zu&b?b7Hhpm}sF5ZXt*kvC{Q-RC0HIFo*; zQD5XWT1XRSv*t6#Xr#_qL}x36sEY$#A?Rs(Z-mjXAQelC=${3t=vhRE=cw}TjWk2^ zh@hwGiO2+?S2X&1`eVHz#L5*G%bfZSU z6?C6Q;X2lQOe5~w3+Z`{(&5F%h4e=t?y=6gE@KIeKU4QK&{CSCkqxwrR%-Mfpf1{` z(c?hNX;`BpKr85wMsEVGqz`M<8tXDv(HDWZZ|BFljf?0TE?R4JQ+k1tT@+hvtfsAk zRNwZ{bqYz}_RxcZRNwZ{6M|IV_E5({wxasBht8Az)&aUSw#De7t%6kF_E1S9?%OqV zn?~HXYv_56xNp}|>Md;ZY2v{p*zFkj;1s$LrXwe3GQjqG~UV7my&Zp+G#bvTO;nx&9qvhbhzKxOcoIL zW@KE!xRh?xXgbgqx?iJyptsRyHQEpKcKW(TUjW)luW9rW&}9_Dvd=b8tuGjt(-e&^ z1lmSt@sdk(dElBld zKV2tC^=3aEIZu^$sQw*BKfNwU^=3as&sSEsH?!2C5%*@6@)~h(UP+(QhzNO@*vLw<$!O4Qt4vf6(ZHhABWtG+HaNUukr?$eNZC zUI(bqaKB;EGC``I7G0ra(FYq|!5@FPQKL^b+-?lggBm@Fx?DrAX>P)acic*>qT=K>RS!a|%%s_j@J!xkerFDM0mIs-9F-lV~A23aUboXof>f;?V|k} zv0rx6a~iQ>bgsx6R!Rwotgjf?Qd*(tzQ$(bI$EO9!NzX_UFvGS3{-M8w;0zG zf5np9&YIWLgRbV!fu3|V-(if>^FGZ{dcpkE06znN=p3zzF}-MS|5x={-N^L`;TFRnPU9?f!k$?qxyJUw z(fCU9*ixm#{x|7|V!v8CjLVz|-ch_?p#A3U#!H}6=vB~rj9-9mp#PAxVKApoQPHWR z!%b5t0nVK`JMejF3w^8Ut!5qZX(^-AKZQ;m^iKmd6PwM)sWY+7?4~7&9nkDf6wDc7 zb3W*9aNeKT3OniW_2w3OB=KG3`e@=VqmG_Ppmcgp(%+Kw4vOYiL??Ado@bS^@{bnHXrNt(AH&F6rA0(3E2y%hS7 zBzgiPbg*%2V4wKyaVe!v&UgnQ-5z*KI8PbemS>H*<8y(p!KMZMw~yZycootO^b63x z2^c1)>p<@@+QnKsO>N;c_eDFgx7%q^%U$5GAKIy_Wiu#yqn+4G33C%mjcqMoMg7@h z?ZlpJCoa8RJlsy~;dUBmc?G%lwcL(0_h36c-10(Ts>wUAb~7D*IWWWgcFWH|e*oHU zK9cwYZ2q)`f-~sXEummLewa8uIMw9SNxSTI+Uc~`1;NG0yEu41Y+i`;BZ;>LyV0U` z;9T6gf$pcvgbskV%Sq!Y+Sf?Ir{KeH!Vd3Y+GQu&PP}JnN9lhEJPT`xUSqWNu)*nE z@FnBDNIzwKrnMN{0{c^Fi}}6QdyFmSzk}|h-?rugGtir#L~VITGlR}DjQM5r zMYAE$8`vB8M&SE_R|Dg4>v&r5j9_PQOK@ATKR6OR6ucw&f#5^Ij|D#yd@}f@;LE{3 z2ScHT(6mq(Gg|~V6;X^CqWR%^&|#rp5Ly>u&cr$_q_`bo`jF6{2z@Pv1rT>ZOdl2+ zsK-xLVKWSi__jA_Gb~TQ{li4~?o`}7bbvb@cMg12aYkqebbjbs&~rjJfcBdEK`#y+ z1lH0y+CtwE<)0DX7+nB55@YE>p?3>?Sg50OIiz2xXB}ln={wSQ zgMXlbtsQE381!zTcAPnTYaeC#NqxG4yN6GU$`A*$GeXM*yt%OglH#Jhqs8ew4^Xp}aA+k{hB6ZkV^-MEI5 zKt)g!w;|2YvGH4$ChT>&UuRJZI78G5&Mr_Bw<2vw52J^p*mX_-XAVZWNpD4en{+X5 zLQPtYemC*!_Nkz2Fj7q1$m6FGIAxpxI)IW*D!{ghQ^6e2LGjId;1vV+`t!lL1^zJT zy`U!D3LhBw6K(jRI^Bui_!x8-s7ZfEi;;dmD0Va$i3Z&RYU1wpe5C&es7VjwzQCYI zKu!7(Ek*jnpeB8Ux{&@Ts7W8A6-fU*s7W8k9j`%$`KFgXP2HfML7Vs+e?6d|MLSG- z0=_r#ETWhG7z~agRLfr9mwklCGH5g6fLC$vWzf}Cc)tvc)l+xc0p#XL3E|E05y3l( zH^&4=!8p9R?;G&u9+%g7Jy!ovK6?Rm4cVo2MXSGadDhPDC}fMBeRgMmKJN;stC-D{ zvdc52OmDU%Y-=D}v^QA0yLM&@JF+WwWecT?GKKzpwn%JhsIPPsDHq0>PfW|^GB;+n z=d-R^k5g%Ctc2^}X5@5b7C*0|!v1`|R#r3N7x#|XrR+c_*M*p{!v^d=tC-JiCncnw zp?oRVm$6IBv-#`}cvdu3Gj;whE1%Eym2y_WrtTGmA$Ux@z$UrU;_;*RLtZGC7Za|D(vn;t|Y$9 zE{9WhW&53o>dIS%EcNcRhVuQ6hqAgJ6H)V>5RV2Fd85_Y+UO8WslndN$IZ6gku0~duH86vmU}t&+ClT3fqktAyeqf(wgjUC!4HcGGkl2mks6eJZK??vsV_a0f!^u z43l6>QfH_f6Ke~;PVxXZOpxOf53p#1^k!LwP?QW73H^$p;>KEKoK?h_iZ6*R70G%) zxsk20FSgeebMTJR-k2F)m&H7)W7N&;i(sFDGA@kxuxCg!bv8FbbzD_p>#(XKsbo1p zRgHfXE1bor?(_|hxhm|jMw|?l%2lf3hVW6Wa27UYaYy55wvSQu%0M}m3Ey<+t6s&d=ysKV&hx9Q0IE_>rEA=2hnF}< z9|6gGD<5R3J28pSLo9P9DG|A#+jh0q4B=>m4MRDj+jevvc^Srh>D0m3INNOl>gn1e zC#Qces~h6Ei|eY9Opx46KUQ*{E|r8+%<~462z;>H_T_h4QORN@nDWF9=(asmjl1PF}iIBb}x78UBPi3<7v1}kt~kB z%cU%zh_TkHQ-QU6shs5$Tc^2dtihj}#ZV{p9^5$;@vb$8(>3<#yWlPajxgkm#rw`- zN!d$F_=4s3A)F|=N?aZPq24=8VbAWVI>-JloJ4n6#Su@k(X#T}tzllGJ*NM3;6Lhl zyJ?iWD~ElGmxs?AmR0f?+DQ3kUe}c_%H{_z&W`N1iv3;=y*PW{pH-#f zl5hSwjv|KMl^MjWj6=`7C3UBP zY-uO{7!yKRov(}P(5)kXL-tC2!RA;&gl+fFSsWqK@iOE}ax=p5@9`LM4EG{twKFza zdJ3@yw{;ibc0^WbM7-C7NE#R#=*nO?GLP+7^4J;{feOEa!#694^+G1kDxO?=4adyv zFq)w+6EUf7$8@BRZ3O@81EUlvlX)h3C9Av8hfOCR$b^&6Tf3JplLeBo%0}Du8CExcZC~FI?u`UxhBb1- z6or&v4+{#`Jf2lVQ9~{CMWh!4Y|ou4SLTMZ{c5u2E_1bP8q5@xdFRG@*~qc)LAQ%n z)O^5Yus3-Evcxy2;EG`$-#n>!DO~071cPa^tGdjWs4=!j^g@t?ZheHyG&Yz zt)p-_3RsSz#hVL#)oAmys#)miUO&jFT?c-wdnul(VAo20v=dXt0G{4ca~Gc5;KCTs zSO&l=B29^P__U}Wl0HblnOdneMq}|xJOSB;Cne?9D)qMExm1Pib5As9rERXM!*i_S zvCM@#QRfn#7M+9VMRSqjmJXs`MSK^(6YVO}4)7~;cH(K3jW$z@BXK;^&3{>~c_nhQ zcS?9xl@VW2Vl`4_oVG65F9@#)Sq|wEo>bA&@;dFtGqK&M%Wgcm@@jM@p7hOw_FTFY z&yiM__fs#|zkoK`zTUI(Tx4vEx`~#st=x`i6x}ABNsN~_@>t&KHc`7Ug;TJcSD6f%c>N7Kr4RxNQ_WxdMts2Wu3nKSW6c&hOi5G^>i&8qbn-M3K& zRtoOTz=cC-L<(-_kV{FYFmC`2OW_gc*nm0%d=8nExKwolYgSgp29Gsu(B=3u5o=&I zkN-N!xZz}KP#M1e4dsu%^JFSe-cL?c9IYDV+Q)Fh?vt&9iopMJxhL2E)x!P1UWG#^ z)Aq{1;*oN+Dpcy8aBqy>dNNfiH~W92LQiF9XCAunZ&p6`(zkA!`kQaOkD{NscI&40 zg)bfqgp(8So`iP_@5zC1Vrn2oMkHk#$tX*LBiiAf3sMv$7rWPTt`W{CACs9f`6sbI2u zQgU9hXOfugR{VvUzYu)IIa_ni1_w=8FWL=Uf%T|a6foHlg`i#pigqAtvLha6txK4Q zKDb7*CAozemx*?U>$Vjit z;n(EsXfn-;vsrOAD;iv;VMI}1RLL;np%hI{&PKUh!$g)qJ}g4`e-FpYO2CtcN% z$gyUQb#joTg`1W%7m9*Jn4FDY+XZn*%;LAI{PRCL#h@1Kq~xiF-qh=(BL9iXsB@o! zKjdmq<1Tzb0{d`z%#R%xelyCIA3Yd~Fhw~g2TcSWepzDl5S%hsR)!uKbBm~)tVfS zp(gRk$@TbOYWS?u{|bL3M!%*$zBw)xbhHq)aKYp#TlpuID>3>4^k5z~(a2W;qRG*p za^B?VFXCun6a!-PyUEd)l1tGGcqzMoisJW}@+B1{)N6u4%})2o_S@+k?nl{$6Tbao zB9!40sq(%CI7Y&+CCbbWdiT~d>hyP#7%4x1jI+<2=&>xdj@w3r&lcKCJJ2_h^=#Lav4YSO8o(z)fCvmLD zllvBN-S;g@1c0SZCzGzc|PBh$raRBVzOEJnh|UK`E*Jx@lmAEyy^HX^^gg2N)ZvF&NG}B4ggfDF zpeyiOj$ZukU@flxw&8OPE)&;^-sgiqf0KWeSoxA4YJ(ZX+h?VeY76=`qpaJ8t#gLfkXM z2l%ZB|1!uac{xhwJ8rf!SXNF7y7O=Z@pLyqm+$1gy3E5RsQ1R-p2DwA3~3EN2jClY zzL<4x8p*v{b*`N{aRbKX=g@+JiTa*LVjm zfN>EZ$DyrK_FBznudue$PDcF1y+L)I3o0K+OX+50ragRQ(;{C5y`0HB|FJ%>y+L h)I3o0K+OX+57azR^FYl5H4oH0Q1d{|1AjRl_}@7q)}sIb literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/EditData/EditData.csproj b/Code/Chapter 8/C#/EditData/EditData.csproj new file mode 100644 index 0000000..39413d3 --- /dev/null +++ b/Code/Chapter 8/C#/EditData/EditData.csproj @@ -0,0 +1,68 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {63AF024A-0100-444E-8FC4-B9DBEE1FC6C6} + WinExe + EditData + EditData + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + + {FA7F9A1D-4006-4E80-AF91-2F54DA85B075} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + CreateDataSet + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/EditData/EditData.csproj.user b/Code/Chapter 8/C#/EditData/EditData.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/C#/EditData/EditData.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/EditData/Form1.Designer.cs b/Code/Chapter 8/C#/EditData/Form1.Designer.cs new file mode 100644 index 0000000..999069a --- /dev/null +++ b/Code/Chapter 8/C#/EditData/Form1.Designer.cs @@ -0,0 +1,224 @@ +namespace EditData +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + this.dgCustomers = new System.Windows.Forms.DataGridView(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.dgCustomerProducts = new System.Windows.Forms.DataGridView(); + this.label3 = new System.Windows.Forms.Label(); + this.dgProducts = new System.Windows.Forms.DataGridView(); + this.btnLoad = new System.Windows.Forms.Button(); + this.btnCreate = new System.Windows.Forms.Button(); + this.btnSave = new System.Windows.Forms.Button(); + this.btnClose = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgCustomers)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgCustomerProducts)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgProducts)).BeginInit(); + this.SuspendLayout(); +// +// dgCustomers +// + this.dgCustomers.BackgroundColor = System.Drawing.Color.Gainsboro; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.DarkGreen; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Courier New", 9F); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.White; + this.dgCustomers.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Courier New", 9F); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.DarkSlateGray; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgCustomers.DefaultCellStyle = dataGridViewCellStyle2; + this.dgCustomers.Font = new System.Drawing.Font("Courier New", 9F); + this.dgCustomers.GridColor = System.Drawing.Color.DarkGray; + this.dgCustomers.Location = new System.Drawing.Point(13, 34); + this.dgCustomers.Name = "dgCustomers"; + this.dgCustomers.RowHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgCustomers.Size = new System.Drawing.Size(451, 200); + this.dgCustomers.TabIndex = 0; +// +// label1 +// + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(13, 5); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(83, 22); + this.label1.TabIndex = 1; + this.label1.Text = "Customers"; +// +// label2 +// + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(13, 241); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(138, 22); + this.label2.TabIndex = 3; + this.label2.Text = "CustomerProducts"; +// +// dgCustomerProducts +// + this.dgCustomerProducts.BackgroundColor = System.Drawing.Color.LightGoldenrodYellow; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.Maroon; + dataGridViewCellStyle3.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle3.ForeColor = System.Drawing.Color.LightGoldenrodYellow; + this.dgCustomerProducts.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle3; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle4.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle4.ForeColor = System.Drawing.Color.DarkSlateBlue; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgCustomerProducts.DefaultCellStyle = dataGridViewCellStyle4; + this.dgCustomerProducts.Font = new System.Drawing.Font("Tahoma", 8F); + this.dgCustomerProducts.GridColor = System.Drawing.Color.Peru; + this.dgCustomerProducts.Location = new System.Drawing.Point(13, 270); + this.dgCustomerProducts.Name = "dgCustomerProducts"; + this.dgCustomerProducts.RowHeadersDefaultCellStyle = dataGridViewCellStyle3; + this.dgCustomerProducts.Size = new System.Drawing.Size(451, 200); + this.dgCustomerProducts.TabIndex = 2; +// +// label3 +// + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(15, 481); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(69, 22); + this.label3.TabIndex = 5; + this.label3.Text = "Products"; +// +// dgProducts +// + this.dgProducts.BackgroundColor = System.Drawing.Color.Gainsboro; + dataGridViewCellStyle5.BackColor = System.Drawing.Color.DarkGreen; + dataGridViewCellStyle5.Font = new System.Drawing.Font("Courier New", 9F); + dataGridViewCellStyle5.ForeColor = System.Drawing.Color.White; + this.dgProducts.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle5; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle6.Font = new System.Drawing.Font("Courier New", 9F); + dataGridViewCellStyle6.ForeColor = System.Drawing.Color.DarkSlateGray; + dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgProducts.DefaultCellStyle = dataGridViewCellStyle6; + this.dgProducts.Font = new System.Drawing.Font("Courier New", 9F); + this.dgProducts.GridColor = System.Drawing.Color.DarkGray; + this.dgProducts.Location = new System.Drawing.Point(15, 510); + this.dgProducts.Name = "dgProducts"; + this.dgProducts.RowHeadersDefaultCellStyle = dataGridViewCellStyle5; + this.dgProducts.Size = new System.Drawing.Size(449, 200); + this.dgProducts.TabIndex = 4; +// +// btnLoad +// + this.btnLoad.Location = new System.Drawing.Point(225, 732); + this.btnLoad.Name = "btnLoad"; + this.btnLoad.TabIndex = 6; + this.btnLoad.Text = "Load XML"; + this.btnLoad.Click += new System.EventHandler(this.btnLoad_Click); +// +// btnCreate +// + this.btnCreate.Location = new System.Drawing.Point(307, 732); + this.btnCreate.Name = "btnCreate"; + this.btnCreate.TabIndex = 7; + this.btnCreate.Text = "Create New"; + this.btnCreate.Click += new System.EventHandler(this.btnCreate_Click); +// +// btnSave +// + this.btnSave.Location = new System.Drawing.Point(389, 732); + this.btnSave.Name = "btnSave"; + this.btnSave.TabIndex = 8; + this.btnSave.Text = "Save XML"; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); +// +// btnClose +// + this.btnClose.Location = new System.Drawing.Point(13, 732); + this.btnClose.Name = "btnClose"; + this.btnClose.TabIndex = 9; + this.btnClose.Text = "Exit"; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); +// +// Form1 +// + this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(478, 767); + this.Controls.Add(this.btnClose); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.btnCreate); + this.Controls.Add(this.btnLoad); + this.Controls.Add(this.label3); + this.Controls.Add(this.dgProducts); + this.Controls.Add(this.label2); + this.Controls.Add(this.dgCustomerProducts); + this.Controls.Add(this.label1); + this.Controls.Add(this.dgCustomers); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Form1"; + this.Text = "Edit Data"; + this.TopMost = true; + ((System.ComponentModel.ISupportInitialize)(this.dgCustomers)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgCustomerProducts)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgProducts)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgCustomers; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.DataGridView dgCustomerProducts; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.DataGridView dgProducts; + private System.Windows.Forms.Button btnLoad; + private System.Windows.Forms.Button btnCreate; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.Button btnClose; + } +} + diff --git a/Code/Chapter 8/C#/EditData/Form1.cs b/Code/Chapter 8/C#/EditData/Form1.cs new file mode 100644 index 0000000..d524ff7 --- /dev/null +++ b/Code/Chapter 8/C#/EditData/Form1.cs @@ -0,0 +1,63 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; +using CreateDataSet; +#endregion + +namespace EditData +{ + partial class Form1 : Form + { + private CustProd myDataSet; + + public Form1() + { + InitializeComponent(); + } + + private void btnCreate_Click(object sender, EventArgs e) + { + myDataSet = new CustProd(); + dgCustomers.DataSource = myDataSet.Customers; + dgCustomerProducts.DataSource = myDataSet.CustomerProducts; + dgProducts.DataSource = myDataSet.Products; + } + + private void btnLoad_Click(object sender, EventArgs e) + { + OpenFileDialog dlg = new OpenFileDialog(); + dlg.Filter = "Xml Files (*.xml)|*.xml"; ; + dlg.ShowDialog(); + if (dlg.FileName.Length > 0) + LoadXML(dlg.FileName); + } + + private void btnSave_Click(object sender, EventArgs e) + { + SaveFileDialog dlg = new SaveFileDialog(); + dlg.Filter = "Xml Files (*.xml)|*.xml"; ; + dlg.ShowDialog(); + if (dlg.FileName.Length > 0) + myDataSet.WriteXml(dlg.FileName); + } + + private void LoadXML(string fileName) + { + myDataSet = new CustProd(); + myDataSet.ReadXml(fileName); + dgCustomers.DataSource = myDataSet.Customers; + dgCustomerProducts.DataSource = myDataSet.CustomerProducts; + dgProducts.DataSource = myDataSet.Products; + } + + private void btnClose_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/EditData/Program.cs b/Code/Chapter 8/C#/EditData/Program.cs new file mode 100644 index 0000000..27bc257 --- /dev/null +++ b/Code/Chapter 8/C#/EditData/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace EditData +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/EditData/Properties/AssemblyInfo.cs b/Code/Chapter 8/C#/EditData/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..85f85b7 --- /dev/null +++ b/Code/Chapter 8/C#/EditData/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EditData")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EditData")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 8/C#/EditData/Properties/Resources.cs b/Code/Chapter 8/C#/EditData/Properties/Resources.cs new file mode 100644 index 0000000..179b475 --- /dev/null +++ b/Code/Chapter 8/C#/EditData/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace EditData.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 8/C#/EditData/Properties/Resources.resx b/Code/Chapter 8/C#/EditData/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/C#/EditData/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/EditData/Properties/Settings.cs b/Code/Chapter 8/C#/EditData/Properties/Settings.cs new file mode 100644 index 0000000..9a11362 --- /dev/null +++ b/Code/Chapter 8/C#/EditData/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace EditData.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 8/C#/EditData/Properties/Settings.settings b/Code/Chapter 8/C#/EditData/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 8/C#/EditData/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/EditData/bin/Debug/EditData.exe b/Code/Chapter 8/C#/EditData/bin/Debug/EditData.exe new file mode 100644 index 0000000000000000000000000000000000000000..838e265060f61eb8d5bfe8f3bd25d0b7f4ed39e7 GIT binary patch literal 24576 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 F_#bX7?o9vy literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/EditData/bin/Debug/EditData.pdb b/Code/Chapter 8/C#/EditData/bin/Debug/EditData.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6c55cd3e89c6ac5713e8977fc9529874ed3b438a GIT binary patch literal 30208 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/EditData/bin/Debug/EditData.vshost.exe b/Code/Chapter 8/C#/EditData/bin/Debug/EditData.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 E1a*GtLjV8( literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/EditData/obj/Debug/EditData.exe b/Code/Chapter 8/C#/EditData/obj/Debug/EditData.exe new file mode 100644 index 0000000000000000000000000000000000000000..838e265060f61eb8d5bfe8f3bd25d0b7f4ed39e7 GIT binary patch literal 24576 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 F_#bX7?o9vy literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/EditData/obj/Debug/EditData.pdb b/Code/Chapter 8/C#/EditData/obj/Debug/EditData.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6c55cd3e89c6ac5713e8977fc9529874ed3b438a GIT binary patch literal 30208 zcmeI53wV^(na95gA%vSH2#BCCK)6FlkW0K2A(L$z(5=7{2u&!F$ zbt!V4B>uUS7wkXxgqHC3IU2C7m?xWSU>UPyypDk`(-QWM5@63Fe+#nfL zNDg`D|9$7Y=YGz6&UxQ6LwUTqp}w(xLsK|1BQkYrxV&Ovcy2*q;lO?)N-I2Emgj|l zv!Q8vz@25G=ko+;f#EMxiC*5}k9%CVY=Q6~s{LWNta?wSX@UMv7ln!?#|HTXjPO4G zI2-Jh;G@T#;4Ltg`t^ZMVRi2Zih4s|hH@b}jfTq!?+@ldIZ%%~5nABz`jzJ%==1Bm zT@~K`<#%W8`9;~%+unTr-|}{yYv22S=bDT2HvBqo-xSX~oV#RS)%WV=KUZ_rvLC%$ z^8C(*dvBB2klRtaaogOvciwW|qSs!UbNWB7=!Ks~jYi6NXaY158VH>PeGby7(+KMe zY1C@?Ye6Zrt>l4xAsSUbwSu@rDb8DZt zbjsOFZhvOod!x$ko&B}$+@{A<-80qyYrj44FWF^Nh&47=mahq4w0zal%E+bBElsh8@VMg2NPSJLGBPgdRa{wC6K^Vw zHbpB}G}Ld2H8jOzjg_lnjrCg_s$-1>)s3E4eO6`ECb)Tfcw2qLrpoG6g4If}dR)@0 zxH3k9HA-+xDnW{qO0cs9Tv*?*xkx4IY=Jho1Ug#+nrLG~baPkAK%=-Mx=;$&Q5CVK zrg+^((@&jkl|VN&29oP+>1;2R#v0=r>tYREX)4=YHG!0*PkJ?Nimv2+G2{LwjeXx~ zF68sE5n9Fb{on`k#N7o+M|C2(k-skt6;i+b`^F#s?j=u#{Hh*t6{RVb?oRRUkvydXui9L^3Jdb8{~Yh`YfrjIyy_G2DlEvW zK6Sj$t?Ru_yy|Q5DlEvWzIME~Ui88t@oEf+S7AY3yiO>Wsr5g7|2N9Z&%2;vdt*~< zb3vrOwl-GX6tAyqELap{YR9Y5-KN4Xir3ZDZ)+^j{AbbN%0Z4d&&$q!>fE;uJhbM8 zB|jVAH|wY0f4E8wU+$H9Gr?^7P&!KKih0C@Ex-M}r9Y<2a+Jn_o6&W@l~eUcg*+Fz(`oB1_Fx3P4!JBAE@q#+hE#b=lHy7%m`~<{s0uW)&A&=JXd<@ z^KPEs5A#((+_c=A@6L< zOTVxvL>SJ9uA!ZTWlpsfE{Rre+PbB&a^aHm7c2`;50`Hbm(1}DrVuo5xSp+OS+v`;c@!6 zyLdi_jmlfv90Z)!IIZ)}>Fh0?%#k>)^Kv(k?tg0&l;(7&te;l}t%a6B%b~?S&I2!m zmO?Y23D7N2#DD%gI1ZWwiAV7(AjMw^UFJW_Zv|8dxx7kw7Qb*2Q~;e1DeZ}n_999* zADRq_SA5eTm18=jG+X17-xO#(BwnQ}Kh;ON423Bj;bfzu8^9*@(4&(_Jpam*A?;U> z#!2_bo=sa7?+;np$=SYE|4aYp^mG~n>JN>Bn3#O0K6kuM_ogu*UWEmDH4YqaCiRLM zr!HNmgOoi)Wl&hK46g>t;OeHaD_(^Kc{SEux=shFIUrtz1$i|-9j~jK#;tf27UVrv zy3OawOYQ;-=93=HIbif>yl#v&t-CN|O--(Vi9Q9^=x_iUs~zvDlXt{_)1}a&FBTiH8X)sIG3RZ#b&+y4u9)7l)9D zt$QfhZjvjxe!iS#%s!oas|lT*bso^US?3frkj^QbNz6G#{jYHL^5(pv{kzU7?B#X0 zH8B_Deruu_6ravBV|dqhv&Mo8!ExXsKYX!|OTc{m&jZJUOF^AODnRw2YpWM|meV=L zIhrZw5!e6a(RdvJuJ3Q=S-dVBdF6DzlsEbO3F?1u%pO2_X!>OTs10oSGN=D_Yg8_2 zhoM=}@#@t7P8W30uS9VEt1aaXwmbhFkDLGSw>$sS!kf+inMa}{B}1owQr?=6ZXCPs zDKd7GPIF%MGW9sBIe$ZoF{L>#r?a_htK(_TPh{@*LwhrjeSq9RZsZU07DCcgs9p1z z*F%`+#RlbP-_WZL0oX{_|qP@OgZ-Mo<HfV3x|H{Qo2V;&tJjmH$a4?Pu2h^OcJS*fua@t3CS_5nloF%UOM{WOUy`NjN|1ei`_PTsJW&dfOm#foW z2>_gAlyk_AoCjTArSZlsn3@!(ecxdkwT3w2cRX&*$Gg@3INCiuJp*pyCK^wcZR^!B-gR00wq_xSdAFw8$8NaNpnX&&^`FiZ_KUQ9TdiEbH?~bkg zr@8&9Ai3|UrSGg<3wg44Ypf#`cAcY#fP;9~9v;8M7;rE+7UX=Jm;%D%=VeP{_s?U^zN#NPN4H;mmj%tr zl~B??eG~CtGp8tfo>#l+Jg@fDd0u*fFsQRMd7E}5?*xA4JUOPrxE@Kd65E6{vpv z9jJc%GpK(27-Z+37!WeQ1(O&Gs&B@C>YKTs`X&NuFS;B&7hDU@2dlva;1;k1{00~S zcY~#%`mYRp99#%K2QC8N0;zN2FW@pzcfiWQvEcdO9B?_f2wVYHf-Au|xC-0>UI<0Ne#W3El|405V4suYunJ zKL&3Gbx-3~a3XjcSPb3{mVw^}F9dgkb>N-g*TFsD?ciPDz2M#8kHLGuL*QQUzrg#z z55fDvzI{CJ```%h2jEQbpTP6L2f?-AKZ9}bA#exyFnAOAV{k9{6Yx>+5%3WBQ}FlT z&%pP=ePB+m=RFDz2Ok5cfcwF7z@LNXgO7t%;1gg2_zQ3c_#}80cmTW}{1@;R@E~{> z_!M|Q_%!$<@L$2l!Dql{!C!(efX{-z0}p{#c77EZ)*8uXaHdbPKj^s>IvbMhLwF8! z0VLbT7ogFQcty?@vWn;SY$3|091_aLQ3%Nnqr7ATadwvl{TG1&kdv)PZa&0((irz%gbqW4LiTsWO2I1VN@y3Pb^jprGISUkl!aauat<#~_w3gB z9(s39&wKdj>wBb!-H*rAHo|lV%-thPkEeUXC;RaNMe)QZo&N=Xm|tDN2PQ zLDm>Y)sk)id;DMGVTzrm|4G0lUKbwJ|C|)i|1V)t9u{~{-Vq}1(Vh)^(IRr$S?6Q3Q!)ci*Agul-jfHLGV`Mp94C6r)yxT$P=HhD`{rW zQun2WC-vDnGv|`#&Cpo*{@|Bmgn#Bt#q&Jw%CpSdHc`7A*}cx?+vp?R$7`l5YVyaF z8;45wBzR87!!(iFA+ohrao>RE!CwrzF*u86mOgMbe(9uiz@Ga4JJXKaYq#u{gI_R>`Hl1c{B3S7>}Olt1tMDVgt22!?l4&HZR!8bjmo`2g; zAnh2Cn3MRlC%c~Ce=<$c%|4p8HpEnA$*DsOkNL;}$qXkaoNkXTY^(C`$mNvP38%}c zmwh><5$fFM5G$jcoMLWBPPuX(nM|~6gUjnZ5|&K2>r~flL3UmEY}kTqA9c+ZWZOAp z^gC*Q35P;G;1+O3ki;l4X9askw|b8;to!|w--psY6}d39jQ*^Gu7q|&4?~BbHz1v( zd)#NM1+?Ce=sV+2?@}!F8G0YHKlr(iQT#Lpq%#tZ@$o)h^j_|VKj8aIn8<&&?;rK~ zdeisvf5m^l(Z@U=Kk(yy$B#GN_y3juzTL-ipAY?oN$)A2Z@Wv!$KU$lW&XPq@jQAz z^zls}%_au_wp_?R)3g;X|FJGm8IW$!bripO_@H1^^QpShn|66gkFO*k3NL7=hr=vFr@n^x`(DS?+U0A`mDH7-brR%*IJ2$ zUtT_SU0GdI!}fJ6>f?1y(u0pT;p+Ncp1lAz%$pqWE1aXR-4(9a9wNmX3S1Tp@`pU1 zzbM78_6vFbr5v6ezxB8LMRZEAELrgD-k#%C`LbNvXGp(p%QB0$&hlCs;$1u&?w4tn z?%~;Z_qccggSv}j!~8f1OczJrRWx}8jMy%Y4fErmRCjHak6g_1Qify4Z~c9Kl<%%S z-!%Mb2H-%O*>FEzaVj6_kh8p$G1uio)E?K3TOiDs)!a!rCMK>7iRbnP+M7#9C9(Ax z5?w0hv39{@$+6DsQ%T>-1z%pAslAMqfBK$mme=}43MV@(j~_SMTs~*FBA>IJe6CLA zbC6nRo3)~)QqJXLdHj58Qu0>kRU0>TKy-0zm>-8tsgu##<7Ru!50x&C4fEq{_*A;% z6VFt0d|Th55Y3|BR=#eyH}Sx!SdXu!ZKac+hQIkSXTM~_z*Eih+xvYlG9`Hx_O&_VnojPzadqS`VMJ9h5uVZ-kdpQXU>ewjo5^e>9(HFP_ISPg?@PZX%F*WQ$cZ;`fao2|F*X*bD(Y9ENS#g7MxKyD>4glJ^hh_KdD@D z&L&~s?5D!yAJhfAaD`Pt+WX46blkJ{y{q(sOAmV*KkWR*rHAS6N=X}Gx>wSc9YpnpmTs+dYE)Cu07Mkq*HMVM=-3b z_MgWn)ai_uE1=Ch9{@A(P2l8^(l2gxHa#<~3W8tW>{?1)C}Fz%w(tnZOt3)PKQ7ec3-&|)1B{h(3j>;`{boeZVYY7|JFyF zAniP_M-nLh+n|j4)=ZrG?}29EkFwA^K;p_{ETkNykawFN9(&yJ(E=kVCP!-T0>%dF zLhlqeT0s3Sz-s(DqEdJ!L5mp@d;K_f4&u%#XMpU#OT%y`gu2#z zhZa?8oBz*`ilyPDvw?=H_TCzXWMhW(U{HH}4at$vY0&AAhBSArbO-l rG#;7&O@yXEQz4ysr$eZm%{L+oK&utw;RJK`1bl*3s;4?f+yeg(wmqlP literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/EditData/obj/Debug/ResGen.cache b/Code/Chapter 8/C#/EditData/obj/Debug/ResGen.cache new file mode 100644 index 0000000000000000000000000000000000000000..fdc428ee6f231cbf96f3d2597300a3b1a1fbeb71 GIT binary patch literal 1535 zcmbVMOHUI~6rO53^o14_D^X)3YD^%L!OBBpeYI8zPbs0Ov$^e@!cC`hn|o)3x-c${ zf5Ejs#Ena%OIQ8@SH``bb3rJiF{HEjdh^|TzVogTF%07me)LOU`UJwuMP8ReiAG>O z3c2T6YfLrOL~b3V;=(W7v}`LsZQGVTkt>E?5K1Wc5C)QY6SMghjmb%O%4T^MBTqMaIm1Zce4LP=Hp<)sm6Xr`i8r9KHKt&J z`%Q4^s>CJK10g%nXyi(7@org4@|e%)X+nn)#Zxjy$77gMmT9*;lZ%y(3ZP{bh38?c zSVv_&Woj#6H4n6x7}`Y0i*{$?AxhML4e3>KK`^(>DF1=I7NxNMMbT zkyPe7^FmPMBo<4>FZYOQuG{$Mv)TKUOfrR#7$ArvM948kNB24ieV?HFBtnK>lATHX z=!z6=kO6ko!6u7PVhb(o>rO_C;gdufAw%}0W)31eDBf|Zb4#V=YQ;I|>C)phrz}|u zwuNjuuV@x;+0*unvzJLpvTg2fTCV4rr%+|KFBP&rjn;SjvfgNU+J6QWHc;VV8*^38 z;`3Z}d3D|?Zn1U%GB-Bs6om^;acrMLMgj|*&eiw;RE?0X;dsvNjHvTV)bhle`*Uy0)nr-9zs(C$+9wJmIT`?L~&24kg+DMSq|O-pXlnsH5! zTsRlFPz5*c{0VOG57-VY2bKd#j%@z{-Zvh}GqDQC;pTFy^wh7Xm$!WH>yf5wn)VMh z{GydIBsNz?EAW-y4y#vsLb}!KOx;kGi47ho;d_f0s?+#XCTcwy_5!}>@m?4(S(#Yt zHKk}>+!?!(KB>!hrbCsRf!~z2Y->nYBVcD8%j*Ykqf|1w0tXrZwN? zYk|KbTpkoLP!~73K_03629rImG%cIea=DS>u(MYBdz~L*^U8t!|9*Y`c{poXBP2}& zB1d8zJv_+gNo>{@8cW*&SE{l4=ENJXtzT=@w%B&agNe!c1`KZ0CI>?_5^xIQRTi>3 z4;xM4HLmhzuah3Hx>AngtSHzBO%7t}(Bw=l_Y(snOOmN@)ptc(aJR&i;@zg)eU){2 z$>rPJbGg?NT$NOdg=8?+D$OwRqm{c4s&7#a-0D(dix=Muxd+4{$e&)`qa zLBcI(Q2pioZbSqnCuWKjukD)-AbW)=UUcFT9CJ__OS0n!BHZdel2(`fpyqpF;LFnv z#oPBfIF3qkjfvo){vJ`~g`z2>2zT?&vSb}qjyBp~uNMlMo{d@|lPQkHNsFzR8`P}V z7M)(eKsEg|5{UcV-ITHSw`%erUJkhS+`ZZp+nJ49(lAJ#FG3JK~`9I5^0BkWMlFqATeB z0txym?0}gaM=Kg1P%->Tn_)wGqFKft)caqNOrHSF_?`B=mjI`iqP8p@1s8GAnMg(H zMe3uGiXx2E$08L=BK0iPGE#$KQ^ zjGGITU@OMWW>;F~>;N_w0h@0VNYTGZD3<e0^Ie`^8f$< literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/EditData/obj/EditData.csproj.FileList.txt b/Code/Chapter 8/C#/EditData/obj/EditData.csproj.FileList.txt new file mode 100644 index 0000000..48a01e7 --- /dev/null +++ b/Code/Chapter 8/C#/EditData/obj/EditData.csproj.FileList.txt @@ -0,0 +1,9 @@ +.\bin\Debug\EditData.exe +.\bin\Debug\EditData.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\EditData.Properties.Resources.resources +obj\Debug\EditData.csproj.GenerateResource.Cache +obj\Debug\EditData.exe +obj\Debug\EditData.pdb +.\bin\Debug\CreateDataSet.dll +.\bin\Debug\CreateDataSet.pdb diff --git a/Code/Chapter 8/C#/Example 8.4/Exercise 8.4.csproj b/Code/Chapter 8/C#/Example 8.4/Exercise 8.4.csproj new file mode 100644 index 0000000..3d69ccd --- /dev/null +++ b/Code/Chapter 8/C#/Example 8.4/Exercise 8.4.csproj @@ -0,0 +1,62 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {01B1A923-12E7-4D12-BF72-8EEF584B48FC} + Exe + Exercise_8_4 + Exercise 8.4 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + True + + + True + Settings.settings + + + + SettingsSingleFileGenerator + Settings.cs + + + + + + {FA7F9A1D-4006-4E80-AF91-2F54DA85B075} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + CreateDataSet + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Example 8.4/Exercise 8.4.csproj.user b/Code/Chapter 8/C#/Example 8.4/Exercise 8.4.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/C#/Example 8.4/Exercise 8.4.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Example 8.4/Program.cs b/Code/Chapter 8/C#/Example 8.4/Program.cs new file mode 100644 index 0000000..309bdb4 --- /dev/null +++ b/Code/Chapter 8/C#/Example 8.4/Program.cs @@ -0,0 +1,42 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using CreateDataSet; + +#endregion + +namespace Exercise_8_4 +{ + class Program + { + private static string dataFilePath = @"..\..\..\..\..\Data.Xml"; + static void Main(string[] args) + { + DataTable myTable = DataSetFiller.FillDataset(dataFilePath).Tables[0]; + myTable.PrimaryKey = new DataColumn[] { myTable.Columns["CustomerID"] }; + myTable.AcceptChanges(); + DataRow janeRow = myTable.Rows.Find("5"); + janeRow["LastName"] = "QueenOfJungle"; + DataRow[] drs = myTable.Select("", "", DataViewRowState.ModifiedOriginal); + if (drs != null) + { + foreach (DataRow dr in drs) + { + ShowDataRow(dr); + } + } + } + + static void ShowDataRow(DataRow dr) + { + foreach (DataColumn dc in dr.Table.Columns) + { + Console.Write(dr[dc] + " "); + } + Console.Write("\n\n"); + } + } +} diff --git a/Code/Chapter 8/C#/Example 8.4/Properties/AssemblyInfo.cs b/Code/Chapter 8/C#/Example 8.4/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b1ac46f --- /dev/null +++ b/Code/Chapter 8/C#/Example 8.4/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Example_8_4")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Example_8_4")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 8/C#/Example 8.4/Properties/Resources.cs b/Code/Chapter 8/C#/Example 8.4/Properties/Resources.cs new file mode 100644 index 0000000..95267be --- /dev/null +++ b/Code/Chapter 8/C#/Example 8.4/Properties/Resources.cs @@ -0,0 +1,61 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_4.Properties { + using System; + using System.IO; + using System.Resources; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager { + get { + if ((_resMgr == null)) { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Exercise_8_4.Properties.Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture { + get { + return _resCulture; + } + set { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Example 8.4/Properties/Resources.resx b/Code/Chapter 8/C#/Example 8.4/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/C#/Example 8.4/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Example 8.4/Properties/Settings.cs b/Code/Chapter 8/C#/Example 8.4/Properties/Settings.cs new file mode 100644 index 0000000..2501ecc --- /dev/null +++ b/Code/Chapter 8/C#/Example 8.4/Properties/Settings.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_4.Properties { + + + sealed partial class Settings : System.Configuration.ApplicationSettingsBase { + + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + [System.Diagnostics.DebuggerNonUserCode()] + public static Settings Value { + get { + if ((Settings.m_Value == null)) { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) { + try { + Settings.m_Value = new Settings(); + } + finally { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Example 8.4/Properties/Settings.settings b/Code/Chapter 8/C#/Example 8.4/Properties/Settings.settings new file mode 100644 index 0000000..ba52087 --- /dev/null +++ b/Code/Chapter 8/C#/Example 8.4/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Example 8.4/app.config b/Code/Chapter 8/C#/Example 8.4/app.config new file mode 100644 index 0000000..1b99773 --- /dev/null +++ b/Code/Chapter 8/C#/Example 8.4/app.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Example 8.4/bin/Debug/Exercise 8.4.exe b/Code/Chapter 8/C#/Example 8.4/bin/Debug/Exercise 8.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..e570f9c88feeee54e1b85f9809339083d4b1edf6 GIT binary patch literal 20480 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 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Example 8.4/bin/Debug/Exercise 8.4.pdb b/Code/Chapter 8/C#/Example 8.4/bin/Debug/Exercise 8.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d9dcf90934d20b90691b51ac5f7dc0564f01af14 GIT binary patch literal 22016 zcmeHPeQ;D)6~7yn5JI6O1q`9!gCu-svjIXPRv?6=M2H}P3e2`-**qX5>}GbCCQQe6 zL2CVj>7Z5zYU>O#+K$+;T0+rCEV46h)RfgMSYR|X))|#Pzkhsg;p#>K$P&T> zvH;l4G+>@Z+`l7W26EcP8S$T97w*v+@E`77agPq&9X4iQ+%L*KRkULh6@p9_y}e%0 zQ3?EUVMNcs^&OvGac<1pc}E(>ne`{Kj-Rbvd+g7D`gPus6;^uOi(lN9xAX11*XIjy zJ*WQlrtgGT{<8Vtx*vV8s_Q`XrDIeZ!ilFNhui-3_|>Tg3jg-=u0NDMh`i~*`+(zt z6M$oYIl!^NT;Mq1{Xojd1LgxC08Ro<22KHf3|Ii11}p?l1-jte3^=y_7ktmm{_Ulr zjVB)2_R+bm-*v8suB1CT1AW~bq1VT zf3J62bIIjb#$9-)wa9q>+Bb*VFSq{i%z#ttf5P?u!?R!xx8l_LyZhhag&9V1yx+w& zuNVa!4a^2+p4Au+^1SB4$eMv0S8iP4`gikB&9Xpsd(@1@0u5V@&#m9MHc+!W*d8~d zMp0FuCemyMYKoFsRe{>h;NJE&)2Q+-32cZ)c144GeW92Tp=E)fC1&q_qazY+4TMr+ zLKG7!N@i6BOq-bYl$fD)rrnIjTg+IX(TvAi!nuO`ygW`^P|k#NlSuo*U^Eg{_XCV73E%+5H)*z;BgaT%_6-Voxw^Zj5wb-i$oPS@yE#XiU!M66Bvo0l%{!vUnsv_g6YU zW3_CFi-gyEVZ~q0{b1{F>R&4voAuL^r<=eo8pLYBad=UY>%{wYw#zwT-KAo_?Eifb zZmfz#T9t2CP8zO$5MJKYPTtrN47KiSj|FzNgoABHsR5_IgF-D&pA>U9v>u>Y2OsvUNkdv&zix`i}vdq>7#4`Uo1f{y=ks3=1VXWaPj76WFjK4}W- zOprQgjnsXxN45OUM!#CB-v01xK)>A|90cEcG%z;-`e*uS`t}}R9c<4_KzJ!YClxB!&jO7UGY!Pti7 z^Z`sS1jSk;NnveXM(N; zodwGGU5wEJ=wMTBcR|;?Z+He+M$||L`cZz%Xw$P<4Wor`@k}LAE@V=SNDNBPhOVUc}H3d%6+8w$_HFTz$uH!zsTYeTYJTg|3+N= z$F<$VKMJ7k*<63A3XQuX9gMmeyaE{aUqeARm{>>iG2SLWvT4!)G9It6$Kxo=EKk~e z)~6lMs4wGr#<6U7Aqu;I4eB;^V>D^z|KlqXKzpexsco0@(cq z>|FLVFtTlNOMc@iue}ZW4MPf{EKhR3@x2TE2>}C3@Mk_Kdz`EV?}O6cyb4NxGX}4Ea>WMVM&K;qVxS+m35c42T+HNn^uAckk!h?Q(i3ntu_!ZV ziXvG?UdrS=od%u)a-OuF(vQ9jB+NqloF~*wKs_YIT*-dZ4>NxzXfY^wc}J1>1n6wg zWvaXyl;eC<(Z@j1%R~z({DK-^9%S&8#1~9#hI9^){)d3|ghU}*UI)4xm;fFHIssk?S)^j6E+tUMF-)Q_*-xP_ zvOBxX`1VJFZTp~b`VQa-c*w7LxR+UPbh<4lx7z~B$|z6Tg4>V(p4?{NW7?0@{Yof@HcS?4ftIdU;I?2ocKdX(0=C53%QLa- zrem+`H0w=JD zfK9+QU?=bp@Cfi_;A!9);F~}f`kn#qf4x`EDi+!#4JgmH&Ns;M$)i$o?Y9wdy%^DOP+U8_ty8jr5N6EML95cPsn{mXp3$aflqc;Og_TYO&>*4!HZTPRzJdaR@Qv^|IXKF7~C z2N!3hpPh9-dsIJj*a-z=(9aItPh3pc`#HF_EZxv^LR-W&)#r4r-_#`95(48Hv@0q5 z!nkItD8<;y@LoAr+WJGtxAejz$I82Avd3D^mw?tc$> z9(b35T`ljjt`DxeeA8Pvw(Kf><{GRcV_q)PM~co=lm|TKL$4$~rs&sH{sl!#6b&l+ zDMcF;|0zY^RrG+O7ZlyE_+L@fgH1eCFzf=9uIj9T5_!f{JnS6*$WmL$>BL*Cj1wj2< z2gE&cU+MM#9T%8+eXKwC-CW>n==N!pw_`Y$K^ZglV92aWc^vJ7K=ndC9eC}svxMSZ!kuf)&3VYqk_RenuTuw0UDx7KbrD4Ax#F42s+&5D={i=Ks)ImY z*XhK5%M$4aBVETTQ*{vZyWq~i&1S%WE^*JKpj`f}#cdh`37!q;m2$ubRh5|H9r3?7 z^brkQndv%kCw;2GE1ke;)%(( zC%Yk>^8LSmqF?zcR`+R39TWcA>gwuBziLd&?z^q~<-G>mZB}h1dOts4Tl!oeDk|$% zFR5J2JD<{@_^z_Agi{tt`^z%s?@7zG5-j6)CHvi;W@8!exfop%nAX7GyuaeviI7>w z`y?$hvyAsddNX8}@%snA0TFDfBIS3XOv|*FWr1_N6y!;sIW8hiJ3~m#e{b(78CiNz zgI@tX;;$$_4&If(p`EkzleM8q8K(1}qYn%9$Q>2h*F@Zr29mp1{(F-_oQucfz)F=O zNd0pESTpdPuiSHS`H@xJcJKH+Kl{g}{BDP+YC0F(H(7(P^*>U#Bp7#q~k~Q;XD7^y6)&J-9DzqQTck~rd?*-sln*R?90Ln zkqJP0gb(?C1Mn;obYuSpr3;w_M(E!lCP&2J%Z5?}Lhf#lR9E7ic1oi^sL* zqB6Fi5-^zJ0&~Ine*;YdvX6{A`3|Z8$oP{l5%6XydC$adQ$c0|4WJ8yn}NB5V{^IO M8E|J{1kS*J0hN=pssI20 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Example 8.4/bin/Debug/Exercise 8.4.vshost.exe b/Code/Chapter 8/C#/Example 8.4/bin/Debug/Exercise 8.4.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Example 8.4/obj/Debug/Exercise 8.4.csproj.GenerateResource.Cache b/Code/Chapter 8/C#/Example 8.4/obj/Debug/Exercise 8.4.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..2021050e900a7daae31910b2d129a01968f83954 GIT binary patch literal 784 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 M8E|J{1kS*J0hN=pssI20 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Example 8.4/obj/Debug/Exercise_8_4.Properties.Resources.resources b/Code/Chapter 8/C#/Example 8.4/obj/Debug/Exercise_8_4.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYc(%fuGFEY@oreh* zfwRd}OHG!yKq?+b)tip%RAyY)aVN`OB6K358bP8Z6O-ljq#<~73A&qc3!-Ynt%TFz zY&bO)OuMYYEQ)laZvbZl)MJQh(19p`sL4T{M&q0WwKLBJsJw&_Bx*p7Hkg8C9R5I&8S_ei@?Kgh@;}YUG?%84!B^g*=YP0TmBpa9l8g1O($IFiSP0A&`>31+ zrgk-J2uPz?=wnipG@Ol(42k~fNLKmfm<98U>L1u2Q33n!#qAE0AhQ&u&R;_Yh05My zA^}A~EUS>c+$XEWUgz&m=I&E5`2s?2fFO%tQeeuC^l4{OeU9{bgc4bjpH1?ybs2X+ zYMiK#Lyi-PBXn@Cd!>{NO>#wq68RIGJ%}*p-SM{nOXaUTEpM-FEcxCp>u8YW@j2g% z1Mt1^0})CjFby@PSsk?B;E`X0M)KmQJY_E-d-X*55j#ab-!N8IPeCU7F@eGy$j9Nd%|Jvf;z-PlBk5Mkpl9Fq&C^hzA?kV7zXOb2^hX=URk z44UbZk5H1d6W78j&1y}oLdz6jtBKtRsVsBXcPn^Rrv_HnBuV1cJFoH?# uN&7^LVch=waW)lG!%{I#`|W5j_U0#9Qwviujmh|MZ}>V{4^igy6@CNlWpF_N literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Example 8.4/obj/Debug/TempPE/Properties.Resources.cs.dll b/Code/Chapter 8/C#/Example 8.4/obj/Debug/TempPE/Properties.Resources.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..f287537f413c340568a05bc386b56a90e55695b3 GIT binary patch literal 3584 zcmeHJO>9(E6#njXXs3l%ItqaZ`U;d(z~=;t5<{@RluBz$hgPD*_RY-gFy_s?$$M|G zWkDKcp>d%Lqi!_DxG^z?1&suwVZoN@%8eTq7?wjzwt4e03O{wR* ze6rPFX_@HZDYbdru`OUJ+S;0z#1h7S<9@UlKT14Ge4Q7Gl5P9ZyziOBlF-x-WM3Un zam14H`Ga=G?#;ZIc}X(Z0GId^dfk1I1lQaaIve_>N-+?N+YCYS-#wkhfv97!dt`ca zh_a*PtD+lly&Pu&#m!#d^0jIe<}Y;!TcdgjPxoeUnTbf+m+p;>+nQPUIxV#lS{mRC zP7zlzOZ)}iCw@ZRAs$g8A2aw}RaI@cqP`@)Nh~X)^-%>jV=pqyS-4It(R(MpMF%D= zv3zgaGSbwXHQcAE9~rvBH!=4Mo+fuK=6;7oPP~7vy0A>It;A_Ohqu&W;t$nP`d&sq zf6JJrmfs8OcE!Ts9FOraEa7$b4Mgr@y%H) zJJncoblfY{Tzw3azE{C2}@;d4|?Tl$<=;V`{zr{7m>j1KBZk} z!B9be$cE3=Lj6xg!s*4TM(kDS6HcYzYK-VmxZ}Q8jwST~^t{XZNRs_QpvyUT(d4tj zoOj%su2)5(@+!I#@~pIr;X;Y|5BT0Yfs=D}Bf52pZ0Im#!r(9#py4Br5&}}QIKt7( zj+>;^V~>e8q*haJW6I1PYG#ed1g3iq{j^&X0;lkOO?Y*}?XlhQk zatNbhX65~?G;v!$ge-I{JqBwJ{{ zfkvI(DP_8t&$Vj2*q?WsFbw)$Xsf}mrt0r9Fgxh^L#{jSlqyk&YHj*itnYQh>RY|+ z5osk~OKbxljx`XyEt&hs#Z2DLGkw4%xu7vzO7xPNL6&DUgJGUVmaoDDUL!wBe4Mnv zPsuxX>o1rQ#ORfH<{`vYY-oo_DtdKzvd4MeE>C(C70j~>1orS<0ZvovP#RG0n7;7H zMQ}MO-vGs!LRyt5FW$$~bz_s^%NPB6ks}2hU_@%ge#rD$-uS7m*~g-7hDYD9ouRGI zh)Rq!iY3ENZ4A~CJ7_Q2gvPeQ*j?7kL76-ry4P*q6S)Niu9oj#kBNDVK8nWUpt&)N zCh8*2aW|M&oHP4R#B!;O>|d|4aE}&8uc=3LV+*{SdG5TvDvf$bZNPgjHSA|Ta_`GL f1s98q_Cf2o^f5fB0#@{I;`PH1GJLH6KUUyx6au69 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Example 8.4/obj/Exercise 8.4.csproj.FileList.txt b/Code/Chapter 8/C#/Example 8.4/obj/Exercise 8.4.csproj.FileList.txt new file mode 100644 index 0000000..87ef878 --- /dev/null +++ b/Code/Chapter 8/C#/Example 8.4/obj/Exercise 8.4.csproj.FileList.txt @@ -0,0 +1,10 @@ +.\bin\Debug\Exercise 8.4.exe.config +.\bin\Debug\Exercise 8.4.exe +.\bin\Debug\Exercise 8.4.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_4.Properties.Resources.resources +obj\Debug\Exercise 8.4.csproj.GenerateResource.Cache +obj\Debug\Exercise 8.4.exe +obj\Debug\Exercise 8.4.pdb +.\bin\Debug\CreateDataSet.dll +.\bin\Debug\CreateDataSet.pdb diff --git a/Code/Chapter 8/C#/Exercise 8.1/Exercise 8.1.csproj b/Code/Chapter 8/C#/Exercise 8.1/Exercise 8.1.csproj new file mode 100644 index 0000000..95c36ad --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.1/Exercise 8.1.csproj @@ -0,0 +1,60 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {04CDF560-7A5E-409F-B3B0-DDE913F0A0FA} + Exe + Exercise_8_1 + Exercise 8.1 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + + {FA7F9A1D-4006-4E80-AF91-2F54DA85B075} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + CreateDataSet + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.1/Exercise 8.1.csproj.user b/Code/Chapter 8/C#/Exercise 8.1/Exercise 8.1.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.1/Exercise 8.1.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.1/Program.cs b/Code/Chapter 8/C#/Exercise 8.1/Program.cs new file mode 100644 index 0000000..7944d72 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.1/Program.cs @@ -0,0 +1,48 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; + +using CreateDataSet; +#endregion + +namespace Exercise_8_1 +{ + class Program + { + private static string dataFilePath = @"..\..\..\..\..\Data.Xml"; + static void Main(string[] args) + { + // Base DataTable + DataTable myTable = DataSetFiller.FillDataset(dataFilePath).Tables[0] ; + // Set Primary Key + myTable.PrimaryKey = new DataColumn[] { myTable.Columns["CustomerID"] }; + DataRow dr = myTable.Rows.Find("2"); + if (dr != null) + { + Console.WriteLine("Find a row using a base DataSet"); + ShowDataRow(dr); + } + + // Strongly typed DataSet + CustProd.CustomersDataTable myStrongDataTable = DataSetFiller.FillStrongDataSet(dataFilePath).Customers; + CustProd.CustomersRow cr = myStrongDataTable.FindByCustomerID(2); + if (cr != null) + { + Console.WriteLine("Find a row using a strongly typed DataSet"); + Console.WriteLine(cr.CustomerID + " " + cr.FirstName + " " + cr.LastName); + } + } + + static void ShowDataRow(DataRow dr) + { + foreach (DataColumn dc in dr.Table.Columns) + { + Console.Write(dr[dc] + " "); + } + Console.Write("\n\n"); + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.1/Properties/AssemblyInfo.cs b/Code/Chapter 8/C#/Exercise 8.1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f776240 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.1/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_8_1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_8_1")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 8/C#/Exercise 8.1/Properties/Resources.cs b/Code/Chapter 8/C#/Exercise 8.1/Properties/Resources.cs new file mode 100644 index 0000000..e04a517 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.1/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_1.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.1/Properties/Resources.resx b/Code/Chapter 8/C#/Exercise 8.1/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.1/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.1/Properties/Settings.cs b/Code/Chapter 8/C#/Exercise 8.1/Properties/Settings.cs new file mode 100644 index 0000000..9233b06 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.1/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_1.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.1/Properties/Settings.settings b/Code/Chapter 8/C#/Exercise 8.1/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.1/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.1/bin/Debug/Exercise 8.1.exe b/Code/Chapter 8/C#/Exercise 8.1/bin/Debug/Exercise 8.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..c20d55e2f42cecdfd249b9680ed076e6293b4fbb GIT binary patch literal 20480 zcmeHNZEPIH8Gh$(@6LAYBX>@mgg9Xn6L7u`=ZhqeG`7z+xY&u~bL;@FoV~k^v&r4= zWp^)$`+-a&QXxXyNG&BuEfs3{(@G7kC1@#yQmO(i6xyn^6r%iqAC)T6R?tF0(C3}K zbb1Q}p8ID@At#Ml`syWRxEmzIzs$Di!!&JNWWYnUS*HaA*byrqG4|Egti7@RS zDy03^E>K*|6E#FCG<>0)-vFZGYRAPy#cjTqH#nI;-)RyT^jy#{bPIx%{rj|8`kY4G zJFP9)I8hvVX{hu9!!@S$Tv<)L@8H4;X-~b0Ro%fA8^w}B|4C@ z9Xkh&%&i>^_XW9Bmv&^Ivh{)mN6wWF;9|daTver=sIy88*Z_e5fdGL3fdGL3fdGL3 zfdGL3fdGL3f&U`}p5WirDE!+rL=n2Tg=l{Rk$@Z_ie6ZG@l1gI{!>{KYDMijxUHea zwlM7ghgb=^4OCh1zG!-1)Yq(ENjBut3n8@H8b<}|G7twpTI=eflkDnMn75WI_zO-2US{=9I_Fl$yy*|F1j1P-bJI5P@1CFLa1zz zlGOz6frMf$!kwblVm7R0!xC`wV#v2Kl8CHdK=w7zwqDL|vDPSnA-YYrv=k}}vFqw< z7F)}3Z>aTajgW0k*IIfvdL zJyq)p+`aaJEYZ@o5FN%H2OKy-2w5v(mi@92wr<|qRWS=kEOjpTx{g9oYZW9Jw)HA- ztyhB(#jIA`F&;0TUlc1tCuH_e#A>b8?D7iPzu-Pde>5yGL?LRVO+5t6aE@U=2lFID zv1Yk9_G>t|eXwEvV7!oFW!&e*)?ZJzL94VPQr#>Q`tBg5=pBTOIU;qbJZ zgSwX2?R9F=$ys*6$gWd|b=xs4bLYlX8~4yJ7pL&3fCm?JaW~E1RxS)cw{ox{Db+T?RV3_&?{|nfYX=kWZm^ zrgMyw*wVIj<5u>LPyuuRNVVKX^kdxLM$cO^u5Fm(4tq=iG_KyVFGEv!c=$M|<%WH| zUAR95`73PeELd5{T#$wsS@?jcWuX2gHW8i-W-&i_j`3K^XAlET09T$fv5wPc9s97q zf9FwSnV*y+l!x>MvcaFD`$1o&r!j2(qC-UKUU3TaAxWQ=^mR!o#QG(YZj^Mdq^6|z zhVBUMqVJ;lDE%q)XedhWN_tf|56xOh_k>Sj?%y6h60W2BK$G-jcq$yH7s4GPPOnKC zR+w*+bcLjQL8Ek3$y1U}DpTQ;^bK_CBs~rqrN2NQrG`iz`L{;cb2yTYMCmSQqV#a& zK?bGLb8r0S(^6Um{CsIAbwdhE&3qb!trn=&;!$}5C?)96h@7BnL>s6kc7YlqO#>>& zJ-PTTWF=@+O83;fi(wMrf+(&<;Yn5*TzXs*o;5(J?faa9%)8D9|JWTJ{k!rqC`DeT6=Ff;JguhXk$=)^k&V1Z8$>A*5~~q8D%e^t-l5M%9)te#k)+rz zz7|PRhj=`46=w9$K@&3b)pQq~q7-d{UkbB;X$x%yT}!(`Z;~{JS7D0M(t5q589D&X ztr+)S8Ns2?&}-Br)`}2NR^;<`jG;+dv^hJas;lu2(kj?^gf zXqadTMk$0^ei3Mi%S>JV61oogKrigmu!DE1SPKleeg=T@Xt z+Adfrzh-LVx=mxY?(~n_zT*v8CAEU_X)kK! z9nfnYw4`H2rc}r@=eOqjU}2HcFN_UQDx=U@R4NkAM&FJ=o9mG@eQi`PZA?CR7}F;p^| zYZ$WeZY*l{k-4U{RhqDk@k8!h6NWNh&RxQgwu&XqoS0i<#sJPWcj->fHcH%?xyB*G zE$A23mF{;L+PG;su90)7OV5_a$F*#=o2SFv!j#4A^Fi}o)0j}j5=O?(==L!Kn+5U| zawZJw1?`07oQtgvdKF~{T_bB047aMA)sF)WO_cCFc>c`asG0eKPB-W-OFgz#tZ4kv zk&|m$I3{O6C0}mOGIi7CUKFT1Z(uTZ+SYMrW^ZR1GOmWv*KBMV(zXtsCm5a;Iq7i6 ztVHL1iCAP0Ok$}U;^1iuKHmJ|87Ost8g7!6N%vyMB~@@P7tJbmR&CGj5I-gZwt*Qp zfz6fl$1^a?85##UnR$$g=~%#S#5P>L&oFgLmmQayraFr-C9wXQlC~4ygeDGh^2_~-V)(KgSxtH zY7*0neXCxhE@~a>?KaCuTjOO0lcY-WQnGD~zXt*JTgUX>{DHBz%Wz7ToCV~uI#w#V zR8^+V&>@U`9uEL2nLKT%o72MjYq&EO;i^S?de7|Ovtwl+&F_H5LDI<~i^|yRaopLP_2U(N7FGu}Rn*fEN23fRd^^p2 zwEEmO$L5Fynm`;Ew1gPk@~oI)65=k3UBUFT$iSPy%g<7zj!xJbnc74xo~3n zOYJ{=JiT-A@Jqu~^YEufhnH-=aA!E0Y`~R3cG6lp2;n5}|0ERm&tz zE<}a-p=dL^&S(34MHM0*0ZDW)TN5Rb>`&}fR7&oPsv!|i?u*63$%bS@NQoh`bp2F~ zsJz+{JE_On+khomtYNmy?9q4>@s=fzvSxxc3(+hZ;}#}wN1K$KyaPVT$vbP%2fjGT z__F3?ES4-L7s3o1B7~MTbC9B}au$Bg2-loEiv38uxfyb3UQ9_IO-`N-B`3em8%A!Z zIT8z@vk}2CHVH~hzg5(BRo&Ruwgo>W1=aftC~q3@eO*vY)&Nt(HEB6-vWG%VBequB zZJFICa=Lt5V3K38kiPKp|JEP`9zUO`9ww?nt@hjP~^I?&wq3tNjydr)3=(O=H;|O&`)qcyiQjqv@6^!OxlZ zK%-Xn@Th#{j8>~trF<6cOd$`yJkPx9OEd5OnT@9%OItRA$&G{D9_e~2U+`w+2dhYJ zpIJGO0t5mC0t5mC0t5mC0t5mC0t5mC0t5mC0tE2mnZFa_EBNG0FuZS9ZI{rqAOG#Z z{&u1_`NwjlycyaIZWw1ZW1!vm&XvK*&mP(hxfis@`>T6;OnKvd?+XRKTGWr=XS{dc zRf&Vs4`^nVE~y*FNsx^=22Nje#5Cz3PIM-N9)W$0^Ndr<+c|#wTHhJi!{HZRoxC zBYy|Qt6~gGKR);3b1E(yaPHKGYa_T#v<2KI$Xn@J*?t0bxyP=oXQF=vV5-RzHk?88ZDP_F2=nWr$dNL_$D=5r&2o(B~)a^sNhhB`tW^H zU@X0Qj3npcW5W`k`hB#Vc1T!K;w<*p)m4;FUfCu9MMC&M z<^a#}9WYCg!tYHWfwCTPN?f^CfLl}ob%(AkzeR^$7&as@@>lh~2HLSP8bQX3Yu8FZ zi&OY1z)dZI58Br+e|7ko%EN8q)Y=~wegEa=)kpsJm)}+%UasCpe&>m;l{?NkVJYr_kT4U^laAZ;q}Q@{$~ zDBy5l8E^!!95@m<8b}_Mz}tXhf#ZPVffInA22KRt4x9{}1T27e67XvNhd=qoxG6uM zaeU+GNB>&)#eZG&u7?FqgDHVr_MaQ0ZU6bsK4jCu>{o&J&`7|m^`CA3ho<+1R`QjA zSM&eWw`1YOKMCJ`p>+7d_fMA`%eP;J`a>fDujaq7{}0W4dEJUv^Ius1UeCISa!NBx%QbVwLpBoQH60XzWuMe(^$9mj&GU6tJ8{9-}Pdw}<{NaQU z;ibWlV%ojm*&B;@2E!SqVKNO*PbW15U7Kl7hAFz0Vd_yw+uUR_65T2L=}|Wm7Rx+) zxicQ>rUdisnPJ1#`(NPwKm+SA>)+(e14tf_PeQx^%GFB`@#Fq zJot)FD?`7B%{_yA1?%0ZYf;N)0?GTuxi34L@l1`P<}uF&8lc9RvP&<{?q*r?Vp-7=>Px>Rd1PJ&WZ4cld(9@Ws586C!~Np$0abo zT+~$F-?l%Ibh~lhn|}7MTFW|__w@dNIz`Z)`J$xc_2uupdUVV0R-KqJqUe`DI<_5I zqE)O!9()ooXL~#+E|y-3s<%wc=CQFjB|9g?J$%uC;gqs(GHa)s+-4eW4MjscU5rAF z;{@m-6k=UdewuJ9Sq~`rv-Ln*O?^!r0O`!9xU%vWFuxw@l+P8=gD6l9%5!V-n~ZuO zRy`pgs~)CN4n%){WZ~Pkm*?u>S;{(#v>bNnIkf#Wtk2RGRaOYfA+V<_xhF1{3j4Xn zndh|bcba0cPQAnH%^4g1fcJXWZ1qliDBQWHClTBciH5q+1h)QmHlgS zHW2(W`+;IoQgoaA)@W>^U)#h6HVm+BBJ6zWkC7&`{9(DN_0R6AHil`t`yP0V1CuS1 zmrsrhkMi4PnQnIiwn;wXJ7$XGyLjnpiu>3^ymK?a_srB3P{=t&--h{fK=HjZH5YU$ z=seJApo>B80Brzexuu|0c>fG&H7M=;bkKWs{(YLR0Ogj6=S9}odfS?qm&AxeB&nfjF+fSo@aNe0``)PyaD^ll7AB|nkvtv;D*NV3^W&N5J|F?MI>kQ2R`;^+ zu-VeS`$1{XYe5+spzYLrP&`ZfjptN3q+dbH4X8lmG)6oDyhA=$h$(1)q%h-AbL30! zXZCnL3tsHYGEnw$d78J=i-(f4FD-wYN2BJ^1WMTi(mbjpkAEVKvZ5^|I2sp#t^qQb zIS70jcmjA1xEn~|{`b6mk~UQKbr$$j9Y}fihx^)i{ayt+8|j!ADd#1ilr#4|mPcP@ z`7dbtASmS?0j1nIkL6I|8o}Q2Zjq8h1!_~KRa)lED@Pv7Q_j?nGIWZ1!*xMmA8X{3 zyt9;|POz`T1$SE^j9lpZ5GDfo+yVR&@LRwafv*Aop8)GFZU0Z}zFn|7I1KAj`8P;x z4Mn0LCjMu9%d#flj{m1w@qQrI)#Zkhkyte0zt@er@kkhVy)x$k8{K_LHfg7=3?)P9 zv_RYqC0!;V_)+$W{f6FFvW$+;>+JX({m#x$$LF-)+|+W_=h`%JdM00p?)@7>?OiU$ zuFeMRypA~iDRm}br+4pfOU7f-o$R=(P1!k>C}Xva6LQoasNYL{2r>ssHQs*XA@TEh+j%-ZHN)^q9e zx^0|u4Im~^`;KYjJ@De$k6IHxxjx9Bw(VU$05C9V`;eAGT)=oC#l4ELLMtd^1^VW+ zFPlJNOH!LbCxJo)GFIRmF-GVFWo+;;C}V@iKpoJpg0lXTpjCMP8fZ1>5zy(NZ-Lf; z{uy)zsIryoA%_h>KM<_})ZWwt+dWl2my0;)>a6@V$loOMjSW49x=M$9X&w9|*?*-A z1GoQ-a|pEmoNu08P609w<$kaW$YaF1#hk|(QpdUOibd}QIYG>_^6D1JIt|njRp;+$ zr`RYe+A-x-x-Q?2j6MMC5@)PxU7Xcr86z3MUSE0?{lkBCe)vGBYmckeE$bczvb-rn zdx2NlCP}%1v(HY+D=R;3F9vD{i`f_;+YXwTCRhBAbziFXcU1fsYn?J-Ke^T!|EsZo zGUNZdu=dp&hi3&){$~sPPk5|=F_^}&xRE_UG)T%c^}ag&ZpyK41+0njSNrm#pde`5 z_)$y9CgVrxi5-J98p|8xKVhnGZs48X$s=kna~-_U)Hor(}kKw zbh#y({$8gK)9>8R@F=G0_XC=~q^a5OkLY*qTX+;FHTBWRd<3v;U*OmUw0$;7Uhp@( za?!r}XXTgVrECsb&mpU<;pXb%pr$!8a>~C6`ncRvYk;&X^q1}fZUk-zb^-SR9|uyG zp90bcIR!iol($&=d1b|;&mi`Pnmk#WPXR)h?=@0yEaj1x^SPMuCtWbW>PcPO$LOyQ zw7--S*B{)A^d0|cP@Hpk-)te(i)NXz6X%2e+$bQ=38=dxfSzCVsZGSgwL2nRZlX5N z4K?bJMLzRC>#ovbMpw0Ku?J21Pbv@Aca*8r0`fC4v{zj%*zO%{r~~7gIrf; z{@>L5Zm#*~x|<2?z!(@OCedfcnJa+jF>V zpA~&Xe3q`WsCRr;WP%IuHEl3HOP3F2%CqfaIc^nTner-K_X!5t#DBESx#B;SuFJQh zPyq@O_y`F&&`0W62C$F;&G4q^L@+ksmSo~(EQMPMhIls~deL%@_l~IdK@I4p92_g| zdUYJWy2x`AO!i!)&t#?soKfnN!HcI%nsGD9i)rRv<&P5QbbX$EQGZr^V=uiO3FZ#@ zwuWu>{>&Y6fBFuQXb8-ozqq*>wwqvh=Wc7XykEj{Mqi!RuHP12Hqq4B*b-=7qD~+B z;y*^*qZdGj9!uGzeSMC_1OlSIrKx^pV!E?Yo11l2~q}7cV?mgmZrriUUCb-Cb zhwJ0se#|*|Z<`q0j@uH3PV^%-u0TLS)gn;MZh82+zutF#+2JNGyD$HH)0Qj#-ObM) zsyn*%jWgkHB-XBpL_1eScf>?(G}P@Tgp8PXxuFg>-rf}pcd7(W1N6B4r#{|A=tkWK zH~zQ!oB!?HT(>i?CmnBFGYfanhhxtM&qR2j#C_o{d<7-cZ@xCtfjKc(B%i2wiq literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.1/bin/Debug/Exercise 8.1.vshost.exe b/Code/Chapter 8/C#/Exercise 8.1/bin/Debug/Exercise 8.1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 H#ZmqQbs6b6 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.1/obj/Debug/Exercise 8.1.exe b/Code/Chapter 8/C#/Exercise 8.1/obj/Debug/Exercise 8.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..c20d55e2f42cecdfd249b9680ed076e6293b4fbb GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.1/obj/Debug/Exercise_8_1.Properties.Resources.resources b/Code/Chapter 8/C#/Exercise 8.1/obj/Debug/Exercise_8_1.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYfrEr_#)w-pReU%D6Bt z{SWT_A8uUhAJ9MG%DC5aD#Ab}hS0^=oAdb2+b|8o_>CX^=_{T=c(D>SrBEW&&Z8va zfwRd}OHGxxK&nW@)mx71RAyb*ai_{&!gV5{8bhKb<5T7Jq`{-+5_C633*u_St%Nh- zTsS=)%($$=EQ)lqZvbZl)Dwtn(1AFBxEX;ui^e$#YG)zhpz;zzkf;GQ+F%NnqqqeD zscMmgrWUfB$(YyrllRh6ktZ}G(_ETH248uLo+ognDvLpHC70`6rJ?P3f^*Cj`>33! zOzmpc;E+bK(8r`GX*e4n84~^1k*xB|f&~kV>L1u2Q33n!iFSuckXedSkKRBAh05My zJOM>PEUS>c+9#{UUgsar<{wZo`2s?2fFO%tQeeuC^l4{OeU9{bgc4bjpH1?ybtyU^ zHBQvWA&W%f2pyd3UMVF*lUxy@ME=BP4f=p+L9#Zy7P95P zqFuc0&bo8{ekB3t_Br&vcPj6lHg|~OJTmMc!@~|{sr;4aDE4d6NM0V5r|czUubwJDVke3cHJLh<8zLAcxIl0b!J=MH zAGWOLi2K~wBu*r~FQO~(gPT&L2Pe~|8=DLfVr=}SV{*=vUJ*eQMi7h~)4^V(w6bv% z2F-NIM<_|!iPFb!6RSTzzc($aV4{DvN7?8uvj4Iu_J+0p#yJc_`(s@B{`GnVBbd~l tv`@4c#+@&p=29^=EEUtV-;D-iZ-0?BwJ;Uan2Znihi{Pe5M@qZ;Sa9aZ|eX6 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.1/obj/Exercise 8.1.csproj.FileList.txt b/Code/Chapter 8/C#/Exercise 8.1/obj/Exercise 8.1.csproj.FileList.txt new file mode 100644 index 0000000..b283698 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.1/obj/Exercise 8.1.csproj.FileList.txt @@ -0,0 +1,9 @@ +.\bin\Debug\Exercise 8.1.exe +.\bin\Debug\Exercise 8.1.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_1.Properties.Resources.resources +obj\Debug\Exercise 8.1.csproj.GenerateResource.Cache +obj\Debug\Exercise 8.1.exe +obj\Debug\Exercise 8.1.pdb +.\bin\Debug\CreateDataSet.dll +.\bin\Debug\CreateDataSet.pdb diff --git a/Code/Chapter 8/C#/Exercise 8.2/Exercise 8.2.csproj b/Code/Chapter 8/C#/Exercise 8.2/Exercise 8.2.csproj new file mode 100644 index 0000000..8ecb9e3 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.2/Exercise 8.2.csproj @@ -0,0 +1,60 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {EC1B69C9-51D6-4456-AE4D-3812130EA45E} + Exe + Exercise_8_2 + Exercise 8.2 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + + {FA7F9A1D-4006-4E80-AF91-2F54DA85B075} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + CreateDataSet + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.2/Exercise 8.2.csproj.user b/Code/Chapter 8/C#/Exercise 8.2/Exercise 8.2.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.2/Exercise 8.2.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.2/Program.cs b/Code/Chapter 8/C#/Exercise 8.2/Program.cs new file mode 100644 index 0000000..367c618 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.2/Program.cs @@ -0,0 +1,38 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using CreateDataSet; + +#endregion + +namespace Exercise_8_2 +{ + class Program + { + private static string dataFilePath = @"..\..\..\..\..\Data.Xml"; + static void Main(string[] args) + { + DataTable myTable = DataSetFiller.FillDataset(dataFilePath).Tables[0]; + DataRow[] drs = myTable.Select("FirstName Like 'Jo%'"); + if (drs != null) + { + foreach (DataRow dr in drs) + { + ShowDataRow(dr); + } + } + } + + static void ShowDataRow(DataRow dr) + { + foreach (DataColumn dc in dr.Table.Columns) + { + Console.Write(dr[dc] + " "); + } + Console.Write("\n\n"); + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.2/Properties/AssemblyInfo.cs b/Code/Chapter 8/C#/Exercise 8.2/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ba91139 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.2/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_8_2")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_8_2")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 8/C#/Exercise 8.2/Properties/Resources.cs b/Code/Chapter 8/C#/Exercise 8.2/Properties/Resources.cs new file mode 100644 index 0000000..86fd9de --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.2/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_2.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.2/Properties/Resources.resx b/Code/Chapter 8/C#/Exercise 8.2/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.2/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.2/Properties/Settings.cs b/Code/Chapter 8/C#/Exercise 8.2/Properties/Settings.cs new file mode 100644 index 0000000..fea1311 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.2/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_2.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.2/Properties/Settings.settings b/Code/Chapter 8/C#/Exercise 8.2/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.2/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.2/bin/Debug/Exercise 8.2.exe b/Code/Chapter 8/C#/Exercise 8.2/bin/Debug/Exercise 8.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..d9b40be044cad97ec0caaa7d55cd43ea8d55e48b GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.2/bin/Debug/Exercise 8.2.pdb b/Code/Chapter 8/C#/Exercise 8.2/bin/Debug/Exercise 8.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3d55d6faf37d5beb5ff9388d28c90bb5e721175f GIT binary patch literal 22016 zcmeHOdyJIT6~D8)3=6o(!XocwU>89ivk!T!R)O6C1Yyg{qN16Kv%?1r?9OawhOo4T zjEz!lnuatq)yBp&twPg3`XZ)jr6EQQ5>2U+O8*gTjkZmS(wfwy6#Dz!d(X_bli6jL znMGXYWY3)MzRtb(+;h)4_kQ2DM#Aw}BDOv03)BS`Ebz6qukkJO*Vk8!p1P`C0ZNqe zfGhx>VH$9oA;sTeAc693bzEJ%T!b4`0`=d%yy6C(dU4v2z?hQ_o+jF{aTY-)s>_$l zKuc5jDZ;Rpz-Jxzt$2OpJCz69)$xr#F8R@`tJgpK_YdE$Jh;N7$NccX!M6QR2xG5+WA|ae)2K@zwbW%*|_@uJwF|JGk`Y% zD}ZBxBZ1|>QNYo_F~FOF3Y-EgLg6G(sP#Yp(d6~< zvp>C1^3Ag|N5232lZ6{$k<(C0Aea58V|3epra6XeI+Wuo^1e0_DAfKxbn>q=x;mqi zMpWGY_R}Xl-?=uUFZPnJ1PZnOMf;!cN_;-;3$^~)@!#h&n_{nnl|Z4^zi9slEBWiE zKJRyN&8td*BY<9D_F0YbAkS+>7+w;%^zo&Sx&H6*Cva!5xjXJ862aDod=GBiv_2Tv z8R||tabHbSFc9131Oqkctft`V9w#1-BphFpzcJVrk99loWW-4X+nr=G65WyThZ9PL z?+k_v&#ryGy|MW2U^v4wOrGJIbXHT)ar5lX@JzUP7HF88oJ4F-JnZOk7HF6dUWR9$ z{xJ5R7an=d zlS3K$6#;z){RP|A*qYR`c|h_$|Mt=qTkuScqUN#80SZtHrS9`PUYg6g-yd(+SUbsO0xlTI66v?+o1ELUY^Z>;#o>%V^JPwQTuGpgiwKRZg6s#UF0 zji6-+PS_vsiA!~q!n~i4;N3F%^%@@Yd4;UrwDY)&2@7cJ-Gygew8Keml>xMdqM;oQ zW@P4c0`wVFVq2+St$dYihaqVG97&+PwxPBjfP9uScFHPW%<=~0Q�*a0oaX>8}CF zZz|e>xY{WNxpkX7ua=AdN^$|CGSAk%lmqsmmcvqIJI* z!gaL-BEA;Ob+e-aY^RdIvm8L)^D+#}34 zdJ&$*_zzL}RYlPK@2PbB-bbv>cW$|W=Y_?vG2a6I6PO)I($CZ96KHSf%LVAK1=?V^ zeg!1(Jt1v*<3Q{l>KcE*mZqKG+P;O_!1cC$@KaunK^OVM+K~;+zK+-LFwsui*MEUW zmF4dNH<{N&7bBpit!A~7l7g&XKEoR z-kYWtfmVYq1Dy%l1j>4Mg3dzvOQ5qs*MQc5-eb$xTDlIj7Wwyr&H-HydMhZu>6!~V z8lIs-Ez~hu5Q9B@WVqUiD7ELh7}&@n3RJT&pbO)Ke%}2_0t4DD^mhBo+AQoIm>5AxY{v9PPd(aRu_MS{F@`7jU=z`=wyhk?Y@MEl zTaa>%mi&ewr9fTHhIBPgD=UB|Pv z%QeWQKO74mcK|q3KUb*f82cC{^D%4WNyqr^`P>a&9LsW0es8lP&D+p42xu)R*Jw1c z_FwmKKV)Rcseq>je4CV_E#z27s(W;v%$e~H0X|*FKHHFf49N52FMub2Uj!(_AjSS4 zwPW7m8aT4(;vpeGYbX*0k@G+2D|K1!w*S?x^L`-K+3AFnkyte0zsHF>@kkiodS&hd zHak5@vUlgL3ME77yg=LuB^_qrXkpIW)Km27wn^INa!qNoIIpborE(@`IebEP`7)Ms zKZl56)H6g-DYY$Nq36V^wzTc%3}de6c3T$8N! z^&(UD`w2RD1{G-gb_3ZTyZP=sDK$HN?8K4UG zZmv#aEv(Nml$l~XS(iLG@1sDYH=eZKRUq#Okic^b=S|y<<-YE0zFGgl+x+*m(iof1 zwJ$?@IJNQc+;^CG}0dt>1xyD*(sYXwS{3ZC#$T1mNGjw_<$wGk1m$ggW;iViX^65ZSCR zb!Z1z6?RI~T=%8ql~taOm$~N$cOT5&&`Zhwhu!A^u>o8gg4+h**=zhh3a-KiP$nEF z_X6(%%-p~DcL9`>i88w?0E=~tYSNT>CcQqLmU?Vkf!hX&QE9{ai?5&{ zDcECeuSP0HeM)@_gnSjx>V$DX8k1*$pF>>5p$u!_H@#Cw)m`8|UJILY2jq-D^@gPv z@XYiqOGnuJh@~&s{6AYtf5rM=wY1gJ8Mgl8mj2Sx`z(Fd(x+|xW0rbopz;KtyFKRU zhAZ*Mu=<4pmY3zFY(5M#hpe)u+wWY4qR^)bGXmOn#69|KM!Ui|Xf1Fv@KInVum|`A zkh=UFka5a!;G01G6-(crtn_*{Gz70f@?N*+Fa`!#o-y*KLn zn+NR1n2$g|f*AAPKvx3KVXACOew^ZTAl_s2sVAH=V=~;aXdh3}@a)99p(@}+AkH&9 z^XT#645LpiIP(;tfD))yV<~#7E0!&=v30@L)zM^p-`2KRB%17fo++^}0OYJe)h$u> ztg)DPcIIqyLg(kcXqUF8j%|yeLC!*_Fpv`YIKf`}N*hyV+bqqr>4E;0sNNUF(#Dk8 zHaK&+&u5+-=QEGYry;|i_a&Y_&S$2~@^8$X&rV}Z9ywe<9x@)2Z|jFL^(o6zJ#TZs zlKLj!)`x+X^B-+^Ag^Yxt;ox(!o&tstl`efsS&mWgO^WUMF*iq7^ z{ASf;V~UH~jv}U<(!*#+gM352wP|akAK#EOj8aSL8}DeieNBt4Bm6j4W=YxVd;8>XqdghmR+w?73oJcxj=( zhgXfunwpn1tb(gli+=0BU|FT_j>%VmWsJRdNrsEE>=mHX=ex-`CqhOlw#Hc*@~oXuc@yHPXU%F|-4BuNw4W z0B7S097w2I1ghB$4~P5>o^#6&ws70+pVYGOmHQ5@O{H%7sht{>k`9H>;&~as&IY>gSmZ9H0quCP zP=uTk;5|zlkl!xic&Ywt4+955gAg5KkZg3{1GQldj-oB^fmm-P=sC3GJiMjk-QZ6l*n0G_D?t&P9@(nicgyfz{RA3hJe83_MOak); QR;^g8D1o8`hM@%h4@UCQ$^ZZW literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.2/bin/Debug/Exercise 8.2.vshost.exe b/Code/Chapter 8/C#/Exercise 8.2/bin/Debug/Exercise 8.2.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.2/obj/Debug/Exercise 8.2.exe b/Code/Chapter 8/C#/Exercise 8.2/obj/Debug/Exercise 8.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..d9b40be044cad97ec0caaa7d55cd43ea8d55e48b GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.2/obj/Debug/Exercise 8.2.pdb b/Code/Chapter 8/C#/Exercise 8.2/obj/Debug/Exercise 8.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3d55d6faf37d5beb5ff9388d28c90bb5e721175f GIT binary patch literal 22016 zcmeHOdyJIT6~D8)3=6o(!XocwU>89ivk!T!R)O6C1Yyg{qN16Kv%?1r?9OawhOo4T zjEz!lnuatq)yBp&twPg3`XZ)jr6EQQ5>2U+O8*gTjkZmS(wfwy6#Dz!d(X_bli6jL znMGXYWY3)MzRtb(+;h)4_kQ2DM#Aw}BDOv03)BS`Ebz6qukkJO*Vk8!p1P`C0ZNqe zfGhx>VH$9oA;sTeAc693bzEJ%T!b4`0`=d%yy6C(dU4v2z?hQ_o+jF{aTY-)s>_$l zKuc5jDZ;Rpz-Jxzt$2OpJCz69)$xr#F8R@`tJgpK_YdE$Jh;N7$NccX!M6QR2xG5+WA|ae)2K@zwbW%*|_@uJwF|JGk`Y% zD}ZBxBZ1|>QNYo_F~FOF3Y-EgLg6G(sP#Yp(d6~< zvp>C1^3Ag|N5232lZ6{$k<(C0Aea58V|3epra6XeI+Wuo^1e0_DAfKxbn>q=x;mqi zMpWGY_R}Xl-?=uUFZPnJ1PZnOMf;!cN_;-;3$^~)@!#h&n_{nnl|Z4^zi9slEBWiE zKJRyN&8td*BY<9D_F0YbAkS+>7+w;%^zo&Sx&H6*Cva!5xjXJ862aDod=GBiv_2Tv z8R||tabHbSFc9131Oqkctft`V9w#1-BphFpzcJVrk99loWW-4X+nr=G65WyThZ9PL z?+k_v&#ryGy|MW2U^v4wOrGJIbXHT)ar5lX@JzUP7HF88oJ4F-JnZOk7HF6dUWR9$ z{xJ5R7an=d zlS3K$6#;z){RP|A*qYR`c|h_$|Mt=qTkuScqUN#80SZtHrS9`PUYg6g-yd(+SUbsO0xlTI66v?+o1ELUY^Z>;#o>%V^JPwQTuGpgiwKRZg6s#UF0 zji6-+PS_vsiA!~q!n~i4;N3F%^%@@Yd4;UrwDY)&2@7cJ-Gygew8Keml>xMdqM;oQ zW@P4c0`wVFVq2+St$dYihaqVG97&+PwxPBjfP9uScFHPW%<=~0Q�*a0oaX>8}CF zZz|e>xY{WNxpkX7ua=AdN^$|CGSAk%lmqsmmcvqIJI* z!gaL-BEA;Ob+e-aY^RdIvm8L)^D+#}34 zdJ&$*_zzL}RYlPK@2PbB-bbv>cW$|W=Y_?vG2a6I6PO)I($CZ96KHSf%LVAK1=?V^ zeg!1(Jt1v*<3Q{l>KcE*mZqKG+P;O_!1cC$@KaunK^OVM+K~;+zK+-LFwsui*MEUW zmF4dNH<{N&7bBpit!A~7l7g&XKEoR z-kYWtfmVYq1Dy%l1j>4Mg3dzvOQ5qs*MQc5-eb$xTDlIj7Wwyr&H-HydMhZu>6!~V z8lIs-Ez~hu5Q9B@WVqUiD7ELh7}&@n3RJT&pbO)Ke%}2_0t4DD^mhBo+AQoIm>5AxY{v9PPd(aRu_MS{F@`7jU=z`=wyhk?Y@MEl zTaa>%mi&ewr9fTHhIBPgD=UB|Pv z%QeWQKO74mcK|q3KUb*f82cC{^D%4WNyqr^`P>a&9LsW0es8lP&D+p42xu)R*Jw1c z_FwmKKV)Rcseq>je4CV_E#z27s(W;v%$e~H0X|*FKHHFf49N52FMub2Uj!(_AjSS4 zwPW7m8aT4(;vpeGYbX*0k@G+2D|K1!w*S?x^L`-K+3AFnkyte0zsHF>@kkiodS&hd zHak5@vUlgL3ME77yg=LuB^_qrXkpIW)Km27wn^INa!qNoIIpborE(@`IebEP`7)Ms zKZl56)H6g-DYY$Nq36V^wzTc%3}de6c3T$8N! z^&(UD`w2RD1{G-gb_3ZTyZP=sDK$HN?8K4UG zZmv#aEv(Nml$l~XS(iLG@1sDYH=eZKRUq#Okic^b=S|y<<-YE0zFGgl+x+*m(iof1 zwJ$?@IJNQc+;^CG}0dt>1xyD*(sYXwS{3ZC#$T1mNGjw_<$wGk1m$ggW;iViX^65ZSCR zb!Z1z6?RI~T=%8ql~taOm$~N$cOT5&&`Zhwhu!A^u>o8gg4+h**=zhh3a-KiP$nEF z_X6(%%-p~DcL9`>i88w?0E=~tYSNT>CcQqLmU?Vkf!hX&QE9{ai?5&{ zDcECeuSP0HeM)@_gnSjx>V$DX8k1*$pF>>5p$u!_H@#Cw)m`8|UJILY2jq-D^@gPv z@XYiqOGnuJh@~&s{6AYtf5rM=wY1gJ8Mgl8mj2Sx`z(Fd(x+|xW0rbopz;KtyFKRU zhAZ*Mu=<4pmY3zFY(5M#hpe)u+wWY4qR^)bGXmOn#69|KM!Ui|Xf1Fv@KInVum|`A zkh=UFka5a!;G01G6-(crtn_*{Gz70f@?N*+Fa`!#o-y*KLn zn+NR1n2$g|f*AAPKvx3KVXACOew^ZTAl_s2sVAH=V=~;aXdh3}@a)99p(@}+AkH&9 z^XT#645LpiIP(;tfD))yV<~#7E0!&=v30@L)zM^p-`2KRB%17fo++^}0OYJe)h$u> ztg)DPcIIqyLg(kcXqUF8j%|yeLC!*_Fpv`YIKf`}N*hyV+bqqr>4E;0sNNUF(#Dk8 zHaK&+&u5+-=QEGYry;|i_a&Y_&S$2~@^8$X&rV}Z9ywe<9x@)2Z|jFL^(o6zJ#TZs zlKLj!)`x+X^B-+^Ag^Yxt;ox(!o&tstl`efsS&mWgO^WUMF*iq7^ z{ASf;V~UH~jv}U<(!*#+gM352wP|akAK#EOj8aSL8}DeieNBt4Bm6j4W=YxVd;8>XqdghmR+w?73oJcxj=( zhgXfunwpn1tb(gli+=0BU|FT_j>%VmWsJRdNrsEE>=mHX=ex-`CqhOlw#Hc*@~oXuc@yHPXU%F|-4BuNw4W z0B7S097w2I1ghB$4~P5>o^#6&ws70+pVYGOmHQ5@O{H%7sht{>k`9H>;&~as&IY>gSmZ9H0quCP zP=uTk;5|zlkl!xic&Ywt4+955gAg5KkZg3{1GQldj-oB^fmm-P=sC3GJiMjk-QZ6l*n0G_D?t&P9@(nicgyfz{RA3hJe83_MOak); QR;^g8D1o8`hM@%h4@UCQ$^ZZW literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.2/obj/Debug/Exercise_8_2.Properties.Resources.resources b/Code/Chapter 8/C#/Exercise 8.2/obj/Debug/Exercise_8_2.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY36_2CpUB`7QGp_5nlVvXvI+0L~AkmVE$?{s#5WKkv-Ho^fQMKV#!s&1} zoSF)zT~=WhMY_{BfU^$jIYc$+KomgKJ9h~c4DJ4UbToIu}{={YvBFuRY{H=wR+Ui!_Kbq;vvkiYw>?LHco+&?KCyEj^nL3plA{ZvPL~t3wqFzoN zwXEle``p+BP9(iAqAQ5Qn^L2PC)1@Hn+OpiZ2XlIa>0~djsqTY2u4omV2>-UY}|xF zGhOl#N|JWswb#@IshGxOe10^1o2-W@bNUK@0Qr@0Qvd(} literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.2/obj/Exercise 8.2.csproj.FileList.txt b/Code/Chapter 8/C#/Exercise 8.2/obj/Exercise 8.2.csproj.FileList.txt new file mode 100644 index 0000000..133a2a3 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.2/obj/Exercise 8.2.csproj.FileList.txt @@ -0,0 +1,9 @@ +.\bin\Debug\Exercise 8.2.exe +.\bin\Debug\Exercise 8.2.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_2.Properties.Resources.resources +obj\Debug\Exercise 8.2.csproj.GenerateResource.Cache +obj\Debug\Exercise 8.2.exe +obj\Debug\Exercise 8.2.pdb +.\bin\Debug\CreateDataSet.dll +.\bin\Debug\CreateDataSet.pdb diff --git a/Code/Chapter 8/C#/Exercise 8.3/Exercise 8.3.csproj b/Code/Chapter 8/C#/Exercise 8.3/Exercise 8.3.csproj new file mode 100644 index 0000000..af1beb7 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.3/Exercise 8.3.csproj @@ -0,0 +1,60 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {7FA5482A-BEB4-4D4B-A09F-EC4BEE5F3D3F} + Exe + Exercise_8_3 + Exercise 8.3 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + + {FA7F9A1D-4006-4E80-AF91-2F54DA85B075} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + CreateDataSet + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.3/Exercise 8.3.csproj.user b/Code/Chapter 8/C#/Exercise 8.3/Exercise 8.3.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.3/Exercise 8.3.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.3/Program.cs b/Code/Chapter 8/C#/Exercise 8.3/Program.cs new file mode 100644 index 0000000..1f161ce --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.3/Program.cs @@ -0,0 +1,38 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using CreateDataSet; + +#endregion + +namespace Exercise_8_3 +{ + class Program + { + private static string dataFilePath = @"..\..\..\..\..\Data.Xml"; + static void Main(string[] args) + { + DataTable myTable = DataSetFiller.FillDataset(dataFilePath).Tables[0]; + DataRow[] drs = myTable.Select("LastName Like '%OfJungle'","FirstName ASC"); + if (drs != null) + { + foreach (DataRow dr in drs) + { + ShowDataRow(dr); + } + } + } + + static void ShowDataRow(DataRow dr) + { + foreach (DataColumn dc in dr.Table.Columns) + { + Console.Write(dr[dc] + " "); + } + Console.Write("\n\n"); + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.3/Properties/AssemblyInfo.cs b/Code/Chapter 8/C#/Exercise 8.3/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9410579 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.3/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_8_3")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_8_3")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 8/C#/Exercise 8.3/Properties/Resources.cs b/Code/Chapter 8/C#/Exercise 8.3/Properties/Resources.cs new file mode 100644 index 0000000..8650f07 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.3/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_3.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.3/Properties/Resources.resx b/Code/Chapter 8/C#/Exercise 8.3/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.3/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.3/Properties/Settings.cs b/Code/Chapter 8/C#/Exercise 8.3/Properties/Settings.cs new file mode 100644 index 0000000..2182128 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.3/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_3.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.3/Properties/Settings.settings b/Code/Chapter 8/C#/Exercise 8.3/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.3/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.3/bin/Debug/Exercise 8.3.exe b/Code/Chapter 8/C#/Exercise 8.3/bin/Debug/Exercise 8.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..fac444bea8aecf90adabb66d16387386b24028ba GIT binary patch literal 16384 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 UBh$c~k+J2u@*2o%U>s`T{}pw?RsaA1 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.3/bin/Debug/Exercise 8.3.vshost.exe b/Code/Chapter 8/C#/Exercise 8.3/bin/Debug/Exercise 8.3.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 UBh$c~k+J2u@*2o%U>s`T{}pw?RsaA1 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.3/obj/Debug/Exercise_8_3.Properties.Resources.resources b/Code/Chapter 8/C#/Exercise 8.3/obj/Debug/Exercise_8_3.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY>0L ztp-;eHCx;Usr)dg+_r41Ja5~UJzI2Q5ycWJ0mPByVz#&$w}jtbfqo(xm@q72)dRN3W2#|AC>it ztKEpV1SC-m^wB9w63)a&ibVf)B&+Od$lV&J`bYLhl*9fzVYkO6$TUT%`)?tILS=4q z5rd*2hLKBO9g@}Zp!1LCiw~%nYz`qaLXbw#DKKS6`lK_7K12E}LV+yF&m{TOrVM)^ zBb+G1A&0TV5n4Fcy+T5UCYd}!f&7Wh97R}k?y;Ta_3Fk>ogL0}{Yit>B=5qTP;+`6oGL$JCyD|!nL3pjBN!*RKyVSkpk9^^ zTQ+dSLvCyaCz9M3(dER!O{vL)lj+lq&3Fg_HvZBvx!@{V3tivy!JRm!gFRnG%EV0= z)srQkpd@K09xm0sv!9UH_3X8GN&*12dsr}=>Px# literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.3/obj/Exercise 8.3.csproj.FileList.txt b/Code/Chapter 8/C#/Exercise 8.3/obj/Exercise 8.3.csproj.FileList.txt new file mode 100644 index 0000000..01799b8 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.3/obj/Exercise 8.3.csproj.FileList.txt @@ -0,0 +1,9 @@ +.\bin\Debug\Exercise 8.3.exe +.\bin\Debug\Exercise 8.3.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_3.Properties.Resources.resources +obj\Debug\Exercise 8.3.csproj.GenerateResource.Cache +obj\Debug\Exercise 8.3.exe +obj\Debug\Exercise 8.3.pdb +.\bin\Debug\CreateDataSet.dll +.\bin\Debug\CreateDataSet.pdb diff --git a/Code/Chapter 8/C#/Exercise 8.5/Exercise 8.5.csproj b/Code/Chapter 8/C#/Exercise 8.5/Exercise 8.5.csproj new file mode 100644 index 0000000..05639da --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.5/Exercise 8.5.csproj @@ -0,0 +1,68 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {90B3A001-0F9E-4121-BFB4-4F68FD7E8DA4} + WinExe + Exercise_8_5 + Exercise 8.5 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + + {FA7F9A1D-4006-4E80-AF91-2F54DA85B075} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + CreateDataSet + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.5/Exercise 8.5.csproj.user b/Code/Chapter 8/C#/Exercise 8.5/Exercise 8.5.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.5/Exercise 8.5.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.5/Form1.Designer.cs b/Code/Chapter 8/C#/Exercise 8.5/Form1.Designer.cs new file mode 100644 index 0000000..f4987fe --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.5/Form1.Designer.cs @@ -0,0 +1,77 @@ +namespace Exercise_8_5 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); +// +// dataGridView1 +// + dataGridViewCellStyle1.BackColor = System.Drawing.Color.Silver; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridView1.DefaultCellStyle = dataGridViewCellStyle2; + this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView1.Font = new System.Drawing.Font("Tahoma", 8F); + this.dataGridView1.GridColor = System.Drawing.Color.Silver; + this.dataGridView1.Location = new System.Drawing.Point(0, 0); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.RowHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dataGridView1.Size = new System.Drawing.Size(546, 137); + this.dataGridView1.TabIndex = 0; +// +// Form1 +// + this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(546, 137); + this.Controls.Add(this.dataGridView1); + this.Name = "Form1"; + this.Text = "Exercise 8.5"; + this.Load += new System.EventHandler(this.Form1_Load); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dataGridView1; + } +} + diff --git a/Code/Chapter 8/C#/Exercise 8.5/Form1.cs b/Code/Chapter 8/C#/Exercise 8.5/Form1.cs new file mode 100644 index 0000000..fb6c3ef --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.5/Form1.cs @@ -0,0 +1,34 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +#endregion + +namespace Exercise_8_5 +{ + partial class Form1 : Form + { + private static string dataFilePath = @"..\..\..\..\..\Data.Xml"; + + public Form1() + { + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + DataSet customerProducts = CreateDataSet.DataSetFiller.FillStrongDataSet(dataFilePath); + DataTable productsTable = customerProducts.Tables[1]; + + DataColumn totalPrice = new DataColumn("Total Price"); + totalPrice.Expression = "Price + Price * TaxPercent"; + productsTable.Columns.Add(totalPrice); + dataGridView1.DataSource = productsTable; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.5/Program.cs b/Code/Chapter 8/C#/Exercise 8.5/Program.cs new file mode 100644 index 0000000..1d18559 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.5/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_8_5 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.5/Properties/AssemblyInfo.cs b/Code/Chapter 8/C#/Exercise 8.5/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ffe4628 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.5/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_8_5")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_8_5")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 8/C#/Exercise 8.5/Properties/Resources.cs b/Code/Chapter 8/C#/Exercise 8.5/Properties/Resources.cs new file mode 100644 index 0000000..efa5905 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.5/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_5.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.5/Properties/Resources.resx b/Code/Chapter 8/C#/Exercise 8.5/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.5/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.5/Properties/Settings.cs b/Code/Chapter 8/C#/Exercise 8.5/Properties/Settings.cs new file mode 100644 index 0000000..31fcc0d --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.5/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_5.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.5/Properties/Settings.settings b/Code/Chapter 8/C#/Exercise 8.5/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.5/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.5/bin/Debug/Exercise 8.5.exe b/Code/Chapter 8/C#/Exercise 8.5/bin/Debug/Exercise 8.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..714694b1ba8c60d7aecc47dfa4200618fe268550 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.5/bin/Debug/Exercise 8.5.vshost.exe b/Code/Chapter 8/C#/Exercise 8.5/bin/Debug/Exercise 8.5.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74@DQ_Kn=Q1=U??ou z3X`^sgfnaIl>}Sh#HD(K94!~~*Fq-@9p!vrBa!& z=riOAD*VLJk6| literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.5/obj/Debug/Exercise 8.5.exe b/Code/Chapter 8/C#/Exercise 8.5/obj/Debug/Exercise 8.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..714694b1ba8c60d7aecc47dfa4200618fe268550 GIT binary patch literal 20480 zcmeHN3v3+Mb-izPcXmZe40ml&-`GP_idPi1rYP%g*(7&Ki4iH$T$-{II`nXNv>Iu5 zW;HV_kxA{W`g4`kM&zbRjlzcIrfFTIXx!L{ogfYZA7!qxJ%M?ivj@xbcUQe_uhBkefOPr-^_b6JMoSWP=tu0IDhstq8D)GV^GpJCv_Be z-2ABydTz~EyI&CFU+tbgW4c<^u}h9#(F(d{*`79UXim-2OiRn1%xe|9Xk^x{Yunav zJvl-&E+RBDUCsury-FRTT_lJ!X!ykO0==o5j8iJIA z>r%0_IR?LZ<_3u-8Hkm~14L_~``BKhtt-pkOxB3dgQX(@`Ph;~l<|xO5AsL4Ku{L+ z2i(%35j~J`T&DnyjBOAM_oW|a%Q1-PGmcTVVaT!4131}k5NFFVNHp9chHQvHh(L%y zh(L%yh(L%yh(L%yh(L%yh`|3N1nRu6#=(12g<|vqHs-Hk?i? zNuydD%zEjD{s`Rx4!)A~5NPzq>!RzrSew{&3ptRhuV9O=q&rZ-ehY|;hTGcII-B|x z+ILdC_lAB!?eGI*_yLW!?IgAL7ES8C}wl?AH0&i~sPjP!AE(v=R3(9+9s2sO9v%q~*Xea!l z-6Tc&+LiZk1nA#Rv7t@f)d71}*jw0~lt>yc5Bz#j`aARw&XVN570NbA+ZFdF2oG{2 zepB|%Tti7~d{NWgxY)Nyo?i%5!P1c1!`f}W#dhZ3#=P%9wQpr1esiatmP~pFTSy=A zH}nxtH+{s@fUnI)AK@b1$2^b$zroJ%HNfMxrm)4vi;19QWdpmLMSfofnu@M2cMl}{ z_NK}?&%=P1E`dMQMy3XWb_)hxy9@~2{ao=tv#85HCs*A@>jz>BCaHqGB59 z37_dBxHM3|Q)-+?(0tl&-g%ruxl8Jm>najUbq67(honm8g*`0!u5^~Ky&2~ds8i>3 z1BzRaEB7E))I<(~Hs(QleAi)mC=NND<7&%`F#ImEUafNl`gTXda)d4En{X%14f)7E>FWcJMXow7OKr_C6SYueV4flNRD^=a8!*{eCm5zDA~ zj$ZE5CTsI$vvAy4oVL#y){*)B`}Mtrz58|_+;h9pf8b!x>c(o8XI6}$^}OL>pqGxx zp&b8n%)|M&4-0vh^51z~;2`$)?;k)u@a!ssK8JqxJcL96f*Wy5=*fGIX_Z{IH~^Hs zi)+t4dD@D558$JoqxXzqAgB-W%K)TjxNOfu<^y4fQ|q4=YZ$2i6nhAF3uckBJeLVT z^Zka>L(o}q7W#+9 zdC^8MiUnvomFq&K9g+@9dcUL#l3tPYk0kxFq~DjcGxEA}oVFntmGY525tUp?pNyP^ z=JzE1Qslbmpudlt2mL8%iqg@|(G=|i?V|gmcY_*|{;H%Omh@Rrm99m(7e9$|FOo5i zHWOQ*&6JPjVw=eUZKF>~%{9rtU0s0vCD6_Ew8}Q$lJq}7+vqywg=iy{lnUy7rk-xSAbQsX9nW#f9FB4}1hA4+TyU64M~kZu!O zAbq+a9Tpm-&r9joWj%#nmC_|TjTBPoKsVv|JUt=qM21wQbcuc+EyQT1hs&;Pyd1w5 zQc+4DO8iKifb?A{`95RxH_I&l$(QKIg6na%eJjE=iPThRBdDP7MaO8pn5DZVy-!kI zQd83Nk}gVmNz%)bUIEqVDrkwG0Zjp6rq9yzkuvBj5tq85S)eb2{w9#)(!ZssTNmQ#=q&x1z8L)&@c)bGpVAQhRrEzliYHJjDN)%3%M|oXyT!Ix zigt*7pu5F=v9Hr6QH*_q4#MU;;4j902z_1Z-v|8={Z8x}^nV@ucj&(d{h0WvENxT2 z0lr&h4|~9G5_9V7urI6E;Q#$h`Bu8Z-`%Tp zU!fc)xjeZ3Kk$v1k2@ypVy$f4Nh1q}Q!rgaJCNC%F%}F89xm=u(cFQ#y_reJt{RSK z8ZM36PG$G9Qo@tSlg|#A@z*U19)sjR!|3GvS)<@Jq|7PPD%uy_414nZ1tnSAI&GF} zj_%>nNki2t9*~j`S{T+{BQS1;8gLW3rI!qc<{ZPFC^>=QQ9P;iviWY`YvVaQW}UXB zVMC@&!LuDI8Q$DVcdQGn+!j926?IP^HOt1N?wz5L3x?$lIe3stpytMHy%+?NwJTNI zLOI|!$~1=Vdb(*L;zCg3QqFX%HhMW`nV!jE8%xzFhn9{yW^u+eE)q8z2)n5=H=~zp z2Cn%qi2lH%szg86FJssoh8WxtXWKh;IAaj~w#>sTU6}gSBQnu!LJaWV`R*SY(3Je2G zQ7@<@uhZOi)<$(d(KsKa4w%DMvNHNHEUTpo#ON5e+Rv{=T_TIg(<@-?># zoW}Jr=$s3K~ zX@<*nmyD+QV?2kpWQaRkBjVP0rX4fLCbaD6Rh~Jr;_7bLg>ydg>^BEV+Huc(BqnXM z(V=nMe*#E@6MDt>IAve_?;y(Kj_HRRFi5j8f)ynjlC?d3vQUgJ-{WKYJ_K!a zcm;7=2G?1fZ%lIy{~5X$o_OE;8#4o68~DL*O+0G9_FDT7o*baWC*M6gv+4F%FGti= z66gAeMgmKz6z>UA>#?pAsrAtW%OL9&wL{euu{E^`wr`DULMULmads-|R<6>?cAdPf z;L?s5NOFSNgi0cHU-JH_Mk$@0bfolnJd#SLl1em=R-~z!5RHW$nogbXVCzMcq#jJf zz}A0Fg{xHk5_{ab2Gwh+2O&n{LP>o5uDSOnzutBTtG;CYaW=#y#x1S&Ydzs#9`TE= z`j=|+4+tVThG4tAa z)}B8*E0+wjt?Ep*IFEL!jrYi4=~3o2=2joU`{rf|9tRE_%5|GuR2xR7Smr#&FVeP? zHYmA}gb0KPgb0KPgb0KPgb0KP{5%lgFD3X^MpR$!-T$V7ue+=CY=@7EbnhU3H^2+d z#_^iMU&dze+xj`s5t;%wMknb6!1%>&Y^V|`$gV0R+qK2az{6Z9o-!7=y2RY9W6d)>z`%gIJP69{uG0X8iC?_;_{ z;>vq&n~K<<7Z63WSF8Kgiszujb9vpBsJ=O-JRUkz!sr}-K9W{ z>vifn9#1kMF_}&}PG&M5C!|egGOg=LTzf`tZIA6Clh&aP>9lE*I(3to1l)03XX1hW z{`ax_?II(DmX0O%3`gg?_nz-Q&OP_sd(Zin&SX5D%A|H=qwVwC=gf(AZt93GZft6r zF#d*>n*yLJ2qKWh;8Z;T3oWVq9R(7Y+8+s;g8s7=xI85gZ8~%I2bbs2E2BmNSH0OB zX_XzD=n!&4aQ199bWDyv6&U3b(5C+LMRt&nlDLY;@!%C;4jc;#q!G1X4OkCe2{ywo z-nYPUUAQrl5cQGgV)EW!2g*|MEZHsy(vIrmyHa?w#$M?oXSy<- z|0Xs)wfgR7pS|<@yS}|~-y{FIt0LQxA%Swu|HB*pzWtWD5B>7jfAGi)pSgd_yCY-t zm0p%>{wwQ$Wa?76=D%|OADQ!i=G2)}IPrpNIcwVQ=vuKioycUmI=4peUw_})uJ&EA zz1c)M+R)n7p6W?-wKwFmTDw*qOr+z3MV8*1s-Z)g@k)g?TkEp7-@X z|Jz;Sm8`|9vM{ga%JV)l?t81mt2q>}%EG*wOV4}s7xUf_?=eukDhun}}zVslH6(Jqea=GLGNAP=0^1uP1dN(Z<^6OqX{52J&4vy-X-NNDsLuV^R{5Hx#wj+_d2!+^j>2y z+q5}X4FF*qj9%2po|vM>cs!d*!#{|Qsh!9q6OZCCuTzs<{Sj(YodWbF80+$hQRVbV zoGPa{)^ARo$w^PAl2!+aTjdn5B6gLV<;v$kiDTvFLWy7H=0S;N<@DVZajje{RQ22e zts{LWv>w_4C8n0U$Ca;kbPaR{`S(I^fv$xTlgn*_&V-IfIuio5W@VCJL!_?&6|?iP zIoWr~Qe#n^PHRjsktv=)G;abes6MSX&9RkpBrku}OBVeqKos{FZ>5?JOIlBcC@nYn2+%Z3>2m|CsBlOQ@B90yfCzF^bQ-GY4|%>K8h z_UujdCHk_RTnBn(lMC;zjAdg~U7VMW9pHXZ_B}*8UtLwa-WNEVaWCuiXEJcWJKN|1QYQU~i(A z?*6yRyFj9CvH0%&dox`fYd*1JU36Zw^H8)cmD=t6AkK$@TjWAKB1My%@E(!qcGtv? zWM8b8Ch(AKR}IWl3AG>WOk}sU z@9&k5MrWJ;b%&;&_}Qxw_nLoYP^z>1WKebf^bOmZWTp91-GljbBwNqxeJ_%^7mi&iZ(+!@^GqTJe!iHhDI^HlOx<1NnlioQLiU zlI^qgTDv0u*9LHx$sPQU=1IPZ8K8Vp^7qP?c7wg(LGUq9`uj9^415mk2akhqgQvj{ zK<(e&=SOl>fyC_B%E#SWk=#67fv#^Q;ns@Wrunshl6>*{^3mb{DYhftHeT)auCV_H z8&`Qu7YfWUc8-W|Ohr@)u(nk|Z({FneOS=}zZjsaPb+{M7e?2^kr$r4_ zI|spipyDW6SJZ1z_E|uCIkh_t%J@vYglGNMCpQDCIEnN~agw{Cijyeb5rx{eVzjpm zT<&NS^!B3mt*%Cl-tuZu`;5i3&scI&0L5Rl15PB(n4}cBI_M;5JyheK4b`}9`|6$i z;)=D@8#*4UGL2v7WUFhDyv{a|{~Zk)(D?MI@kzcKpJFgksOF*$Dml=0PV4SgsNzL4 zp`FlKP|f3Q&>c|vmPI23;hCg9`q~FM(8)8?EJaEhSK}oOVDQMo6rT&A3<-2 zs{bv}F?4VtbPALo5$0w>=|ips+6r9{T>|ZbGDo>IbSd-+=rZV^L6<|n4qXBLOK2PP zRcJf(AD}CtKZbTdty~{Lmco0$`@x&RHQ*<})!=6E_uaG4>muC^{vN3J#CI>a%B5SN z8^I26HmLlipmb(Bs2G>@XbaeopF_>?%T-o~wH~FzB+a=4VsvFZRJwB|?F!xl(IMlT zP+E6F0rM5)z@y-|z}LZ_g71S98NXz@4(tKT1=UpK?aE14DSDg-##A$x{+T8_W63^B z{Mldq6t6G8*!{nJ@qc?hr?2_*`RaWC$`}8ae?p+SK1^dr+V>dDy*hXz_l#SnS!s-dp=k=j=X2Hw+-J8uiT-$=Br@?Tq!sb|%tdk{-+ce-;vcCVKpBm<@r0T>ivLn*|>VBexs`Tyw9)j9%qh=^7*YdK0oR)dhUIG z-XE%Y^?uP04v$CstNNn-RejX{YU_>`)nVlvG4j{B z>R-V7m=pHv{BL}_s94_xK0sb6%KWKa*$x>8&PnI}J+}?)UEH_6^E2uA{2j^OL}val zKZ^B{g!0wsqd`TXw=z|4qc!nNP}cgw(I06%R+_(+|Np@V;j;Y`wjnE=4QYeQHn!(& zNU_h~{9b_aC^(qUUpAr+#J=iVwL$HLY?5rL?B^sBiLP=qqD|>M@L}cQ*P`L~sW%L2>wHjLu3KI) z6qgs5DfMCf^PHjg!(H~p7fz$F4p2kMaL=i4u<~bGU?9UM}=Kk`pk1qG+IZ^Pz0ejHczt_}Hv ztAc?Y#{ON)?j3>w{+(WKa@r-B2>w0IP z$d5g2pZRs?_{_ia#fO}?9-HQVTWDs1&Y7uF?aUif$I*9W0U*c zdVtrzrTzAm?WTso+L~;9a$@ZU)z<6N_J3$w@@xfd%}tA&mn`Xk*ZTi?0KDJRrtDwU zr~JFZneJI-sw3<}_G~KK2o7WvRkjtJ3JR3=pyz$yT9;8;CL1Ilsi3s%9rAoUzqIUS z^vd_Mv`pV*DaIji>SvzCr*D${d!=QHW%>9Qk9nw~mIz+4_R7oKVXUCnr!w}mU|YM2)QiREf6L~Usg|P!Elvxy z1XldBFTJek(Z=S;zb!q|CNuWC;}4$t_1ynn_vB}0p83fa_x1fN_HF*UWZ&*JeLGUY z{Jz+pgo{V)O2m2+>FvF#`0jEADE8*#vGMHy>!v6>8aN-X~atzdhDyat* z5YoX>C(&m3^gJ0Op#bn(pn}ditSM0Q4J?Z4*T*Z@LRXWPQ#J<yJoPAV#Ol8Q-1!*N3Y|H0oxKHpC2yU8F5)`3#p ldawb!6`TpG?{mP};BBDpyq619Trro+OjpKPk-)hU_&*QK#4Z2; literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.5/obj/Debug/Exercise_8_5.Properties.Resources.resources b/Code/Chapter 8/C#/Exercise 8.5/obj/Debug/Exercise_8_5.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYtVE5Cs4;;|1}hJZ_0?J-Jf(zUoXu_L6mB}5+uS=N)P-?r z{0pxAA#PZ>(xof^fICfG>NyvLLK;Ili?27|z2`gc8WF=V{@_Qy^!1-Yc)7@HQYcXm ztS2G&Tx*S~h8oYVgH&Aj`P-Il<)&=gvd6Q9&`E4n}_zAXn>!u z+PV5LBq3RHn)l zEO5U8E?pJ5gjyhEI~t8#>n`3YOG%#a89hztFrs)$#^`tgQ_8a6?abtIxvc_dS_R>G z7%SFMS+h)S1+40U_7X#z2zk-&Ogu!1`mZ6qN-hZImKf#Vx8I@^*1sT{Eha(6$xE5P zhA5KCTxVVgik!q^src0{QO$K4|9C$0kdjHJ5E6X^afAptrs(Ki2chp1be}{>(@U~5 zi62>!q6IR*jyl+65lU>Kg?-&gYcYJ1=toGCJ*k-k2#*T)oXXr%ak)}<4tu)vbj>MA z)`V>#8_p}5#XI(tJ?-pgQj~0)`RhhppcQk0w}V8l_7Ad+;@sl4L6VST73}J^F75! z>RMt5B}zR>RJiYoZDo~&Y%0=9Q`@O`iE{+!35E$S5M&50BE+cA6Nl~W_=D-P|6@2U zdiQB9Qr^M7tIWYVw`u>!>Igm##ie7s$5gN=Twdqk4j;RN9j*dp;*<_V^a74hkTkF9 z&%3{8f9}4E#3+~R-J?CKMmrn-7e#-kTXWCPp&OcQY(@Yp29t`biQ^7S&eKwqr?=?M0dD55q E3$@Uu;Q#;t literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.5/obj/Exercise 8.5.csproj.FileList.txt b/Code/Chapter 8/C#/Exercise 8.5/obj/Exercise 8.5.csproj.FileList.txt new file mode 100644 index 0000000..57042c7 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.5/obj/Exercise 8.5.csproj.FileList.txt @@ -0,0 +1,9 @@ +.\bin\Debug\Exercise 8.5.exe +.\bin\Debug\Exercise 8.5.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_5.Properties.Resources.resources +obj\Debug\Exercise 8.5.csproj.GenerateResource.Cache +obj\Debug\Exercise 8.5.exe +obj\Debug\Exercise 8.5.pdb +.\bin\Debug\CreateDataSet.dll +.\bin\Debug\CreateDataSet.pdb diff --git a/Code/Chapter 8/C#/Exercise 8.6/Exercise 8.6.csproj b/Code/Chapter 8/C#/Exercise 8.6/Exercise 8.6.csproj new file mode 100644 index 0000000..86fe24c --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.6/Exercise 8.6.csproj @@ -0,0 +1,68 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {6DC163D6-AA07-4B18-A669-33CCD33BAD9B} + WinExe + Exercise_8_6 + Exercise 8.6 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + + {FA7F9A1D-4006-4E80-AF91-2F54DA85B075} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + CreateDataSet + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.6/Exercise 8.6.csproj.user b/Code/Chapter 8/C#/Exercise 8.6/Exercise 8.6.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.6/Exercise 8.6.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.6/Form1.Designer.cs b/Code/Chapter 8/C#/Exercise 8.6/Form1.Designer.cs new file mode 100644 index 0000000..5875bbc --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.6/Form1.Designer.cs @@ -0,0 +1,83 @@ +namespace Exercise_8_6 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.btnSumPrices = new System.Windows.Forms.Button(); + this.lblSumPrice = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); +// +// dataGridView1 +// + this.dataGridView1.Location = new System.Drawing.Point(2, 0); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.Size = new System.Drawing.Size(545, 135); + this.dataGridView1.TabIndex = 0; +// +// btnSumPrices +// + this.btnSumPrices.Location = new System.Drawing.Point(459, 142); + this.btnSumPrices.Name = "btnSumPrices"; + this.btnSumPrices.TabIndex = 1; + this.btnSumPrices.Text = "Sum Prices"; + this.btnSumPrices.Click += new System.EventHandler(this.btnSumPrices_Click); +// +// lblSumPrice +// + this.lblSumPrice.AutoSize = true; + this.lblSumPrice.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblSumPrice.Location = new System.Drawing.Point(275, 146); + this.lblSumPrice.Name = "lblSumPrice"; + this.lblSumPrice.Size = new System.Drawing.Size(0, 0); + this.lblSumPrice.TabIndex = 2; +// +// Form1 +// + this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(546, 169); + this.Controls.Add(this.lblSumPrice); + this.Controls.Add(this.btnSumPrices); + this.Controls.Add(this.dataGridView1); + this.Name = "Form1"; + this.Text = "Exercise 8.6"; + this.Load += new System.EventHandler(this.Form1_Load); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.Button btnSumPrices; + private System.Windows.Forms.Label lblSumPrice; + } +} + diff --git a/Code/Chapter 8/C#/Exercise 8.6/Form1.cs b/Code/Chapter 8/C#/Exercise 8.6/Form1.cs new file mode 100644 index 0000000..d0ee55f --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.6/Form1.cs @@ -0,0 +1,41 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +#endregion + +namespace Exercise_8_6 +{ + partial class Form1 : Form + { + private static string dataFilePath = @"..\..\..\..\..\Data.Xml"; + private DataTable productsTable; + + public Form1() + { + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + DataSet customerProducts = CreateDataSet.DataSetFiller.FillStrongDataSet(dataFilePath); + productsTable = customerProducts.Tables[1]; + + DataColumn totalPrice = new DataColumn("Total Price"); + totalPrice.Expression = "Price + Price * TaxPercent"; + productsTable.Columns.Add(totalPrice); + dataGridView1.DataSource = productsTable; + } + + private void btnSumPrices_Click(object sender, EventArgs e) + { + string price = productsTable.Compute("Sum(Price)", "Price < 500").ToString(); + lblSumPrice.Text = "The total price is : " + price; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.6/Program.cs b/Code/Chapter 8/C#/Exercise 8.6/Program.cs new file mode 100644 index 0000000..a121007 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.6/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_8_6 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.6/Properties/AssemblyInfo.cs b/Code/Chapter 8/C#/Exercise 8.6/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..cdeb6d2 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.6/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_8_6")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_8_6")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 8/C#/Exercise 8.6/Properties/Resources.cs b/Code/Chapter 8/C#/Exercise 8.6/Properties/Resources.cs new file mode 100644 index 0000000..c43c713 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.6/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_6.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.6/Properties/Resources.resx b/Code/Chapter 8/C#/Exercise 8.6/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.6/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.6/Properties/Settings.cs b/Code/Chapter 8/C#/Exercise 8.6/Properties/Settings.cs new file mode 100644 index 0000000..eb8ef89 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.6/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_6.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.6/Properties/Settings.settings b/Code/Chapter 8/C#/Exercise 8.6/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.6/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.6/bin/Debug/Exercise 8.6.exe b/Code/Chapter 8/C#/Exercise 8.6/bin/Debug/Exercise 8.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..e7048c8563888925b59671340db738d88557c625 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.6/bin/Debug/Exercise 8.6.pdb b/Code/Chapter 8/C#/Exercise 8.6/bin/Debug/Exercise 8.6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a86ece87752a91c841805598a267874263205bbc GIT binary patch literal 28160 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 HSOWh8?$<^c literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.6/bin/Debug/Exercise 8.6.vshost.exe b/Code/Chapter 8/C#/Exercise 8.6/bin/Debug/Exercise 8.6.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.6/obj/Debug/Exercise 8.6.exe b/Code/Chapter 8/C#/Exercise 8.6/obj/Debug/Exercise 8.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..e7048c8563888925b59671340db738d88557c625 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.6/obj/Debug/Exercise 8.6.pdb b/Code/Chapter 8/C#/Exercise 8.6/obj/Debug/Exercise 8.6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a86ece87752a91c841805598a267874263205bbc GIT binary patch literal 28160 zcmeHQdvKK175_E~NkD=mAa7xLzhsj@2oVL6Y!ZkNp+w}-jIeAL+#%VGyBmQ{v7ZjL z*ixHXoaz*(SbVh7b~+Wn8?N z0i15)PbyvJ65yi#{#e<`2v9a)0H7b>1fV~Fi5ig$$OKFPWC8L~nY6oruK-S^-X?+b z8^5yXXx1CKEw#px<@?hfexY*dgCBkHdTz@i`F_PicdyIc^hWOC8HRB_yZZ2k$3msA z*59@4sk7xL?~FYDAk7BTkA~lO<$#qf=byUqJI}oIPVo~{ke3di)=*={1E@6<0fPWn z0$7(?M2(}CQIn`e0|7YzYFi#)2w*7SD!?$naKH$_NWdt-Xuuf2H~R&Xt)1-XG@8=v^|Lc;c52e{b5WYhK^@Tu<+Jia#j&{=#KGYx2NRWJ0#%L_-8+Vqk>xwOuEtFI{* zh`1+~)Oo}8fjaL*E32fga$6wc4@Lv-5>IhmRXEaE=<#FW_s_5M$yOS-ySIiTTk8Dr zR{U(mKher6sSDU!*`!KKC1>4XtSR0m1Qc)6AwFvZ zu~;y)*-18|wkEs7r5xCbKs2~H6o_?18@N?MlLX(@Y6YYadBHfcE~ zq-B|%_B87Q$iu?g+21BD$B?wA0d`uBv!*>0tnNozupnqzW~asLWtE&-{}a#ugN#YJ zt7^ALV}V9b^>X^{&4Ji@%|MMWBk!GT-L+)Mf-g6)=ny%RDgthmZRy!@*V?bFFUGC50hnf@4rO}{FymKe zKE7a5XJ_G^gY5wZjgb#b-N3g^>NlRv`M`KK2Vlf50Vu28 z04BGBBH(2JD)TPDBY;DIQ-D>ri-y8y(MO-&k;=0d00nY=E z0bKZxYdKRkpg}x|y|dU8;0~PF18}Y8{WhExOtyi2fr)jUci&8`>%9MF&Hx6D$@9nn zb!w4kg$ZImKL9%bmht3&i2+_J5W^Vil2ruZQ8d;VW< z6|6xy$Cb1!v(s{%HLdnnQ9nq_GCM8zR+_dWUr|?lTV3&)QQtKW+7HHgKz>4a zX|;ci`b%1t*=bK9j|uu_C5&k1187sIPK_@ZLW$n{@4+)^b@_m}j|aLH_xE_i4GjT* zEEo<&J&OZyA_x80@5akl2SfGYtx*q6N)+vN^$b9r1&eKbLYxar0FpnK)h`Ucb$;g@ zW8XN(vVb|qkjFi|nrkyLzov@0bq@L20NM;DKJUWw-mXp>QM+gSp)B-S=>^3S=d@1f zS|-O>jK4=5m8|hMkxyD(ZXf?I-~V@S2CWVF>d^lO-N@vfV9|$8`u{Y&_Wz-7yXRRB ze?qx+o=x=s@hnF^wEr(&?^6AL%Z2}s>>T9Bh6y^7$H=DMdr{?`S%G zo=0}l{&(I_DbLP{d?xe%!8~QwYd$Z@|0i`re~Wg2{y(Xw-ShuRz33VKKRHI-^Z!XX zyM!%+h+6qX%am;_SGLg$EcYDa#hydkL$23MZUsfa%K*vzf5VLFLXVE2Jk2O5rW?Hg zj*U^qWRXuDOw-P3<@D8cWSOc1Cy1`I4FjEKv{n>dN0zBN*K+NW-@#l!Uug`aLrc@k zd`0hz({pW1*Uln5YkHZl=&_jQ+1hu3p1vhb%eL`rOWEhbIREq^xeT$PUcW5tb2|7lTYV=PqL+_(Y@Y9PAa+Yt0`vDcL}s_vY4Uv@)YE~6qCZ3;)pleYiI zSs97*L??U(y98;ojCR(4U2eDk-Ch4@cP93M4`a`av6p&FTg17}HJ^$5U)>k>lQw_} z>${15v8>Z;zPKNOI$ZP50y5aZWsvOSuYcb?!qzVger5ySMRya{f9gJIb@`=^zc<|2 z6b=PKu^L7 zn6E)hbn1I&V}q^ZVDnX9S~y{lXs308UT40G7txm_W`%wFI|}Pim-RHQ-p4?XtUfi- z9)adk`P4G6Q0t05Lz7p=2J^s&;8U6~afBg%dz2v{y{6Io7wjn%e2aV2<_uC7_jh?Gif9Z|nZxQN&RA{mE#L zF`FsCbAYE>?XO0A3#|6oAE}4`KR=MvyN>-plqcneIF*pw1YpX|1B_=OSN4}OVt*;u zX}~dH$lkmY7-t)EFEHwuzW`>O`&nSjGxN8=*z%Zv2F4hfTtkb22SK3N{+ZK(OMvGC zW1D8y0M7?r2fPrt379eLyMarA>B}kuege20_z&74`A6?z+?bvRskjg##y>TTO{YJ+|N_@z#?@{q`}~oXKnflv)B`)a{%NEewtZLrvcnYb3LQqZxY~oKu6a*+i_WU=klIdF+KK+h23w>AMI8U z6TQ^I706J>Mj#$i}*KZQrA|S28P0lxO53o4Y`X+G= z+I~ycp@tz9t>CmU@Y3OL>fe75Lg-rxVr>zVG!!FqO+pX?PvaN)2%U{YpXIJ*)v_njZ=Qi!rXz%{dKHaBF*c($OdT&hsjO=^w zy#K?!ob>5kBjhOW99Cgpf!!O@U<~6B?BIuCbs%Pv?@O(B=8=wdbHpA;-cjT}M9Mkt zqr@^}?P;JOwml7YeMsEX&@wUp#>D;2O{mlW*a_&(u@=#x9`=Wumr?!mKY0y&)kD5K zKXHCG;+gn1^ahJd zqwyzQxhvQW;v_93bhk~59hJAKkR+otNuJJfi&Kz(>ojg7Xzp`I044zn0Q6DZ1lRy* z0Bi&71hfEnhW#nvAm9k#IN%iEEa1O@Yz!Lhz8i2&M*|4@o}9)SgTy+GZeU6FF0Yxn zzA_YxY+t`391O+ica6tO(vrk8tQd|hHgOCcmNA^RKeW)X5J?k{P3Tw-&!(M<{}jdJ zC!LP}z_{7_<5B?)%@ft%9-pz(GWL@g%SqR<95^yG|I~@}c49fQO!XN~4;{;)Up3uG z;&cT+nm0+K>XyV~IrMp^t5{CJMlbUfJ(gDettHs^q#JQ3B&wuRAC`a{`qSF%7Yb=q z!XoOu0rz9spo5wU=tJUS*Dvd24?<{LBW;AT9lp4&IV5a{Ixs;hnqKBB`uaFM^(v#C z7<-1cog3ryTw^oZiLqPsG;*orm;^Y-xAre|VS4l5Ropegn0j<1{M~yn*_!}76>h`0 z>%{oYNbz#!h|ZJ$I$+#)sNZGz5aTsPxB-|pq_kzLI^DrXuYUc%zGQu|N4Z~(x#cB= z-lD1sRZq7^UYVueWpSSIKAA_l6^*m~^FL_6eRc2Jqjx4zV{TbhS;ahWnP|dlJNdVU z8g6AQ4?-sV?5T-6lJ`Y;w~d1GIfZkI=9P=aHQ&kG9%fum=8@>H=i}3z=tr&kmA~Pw ztg0$1DXT)gSwBaLr_jk2n8aO{$9vH8Sv**k!zrx_1KRgZ_trzX7@*3h8Nq z75$3`Yv%D^ZRk!nVJ&o?ghi#@j~d9AsHG4jpi?O`D|c zDuEf-iCA7PoQ<5SOq{lTBJJ@My53#bQchF#I4A4eh7bM#87#9v5icHCn7u3O__L}0>A!7drdz^2+m&X5W zf(Yn1tD`?p{L((4t$uss>R@-0X{CeB+my5&EpqT1&zj_sY*GEFa#TU864i^UL{-fL z@JurlfO~=B{|CTx4DJN-UYp?tj0a2rOaxGcrvRn`$UE+^iL)-x6Egs_0DU3BC7w!s HSOWh8?$<^c literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.6/obj/Debug/Exercise_8_6.Properties.Resources.resources b/Code/Chapter 8/C#/Exercise 8.6/obj/Debug/Exercise_8_6.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYD?Fj*HvQDcp2Ax4Cyls0-uL z_!nIJC)~MltxH$_0e8AJdd>x*kj4;Z@%84r_k8DFBVriFAN=T-zVr!%=L@_pg%XXx zdKhxgwN{yGsRnNj|IyDds#{fna2W)ftayj1ur zh$5-XHRgq&$Vn`gieK&#)oi!%kEhc!luR;(kmw_bBSgqCMMw8K2z{TR`y@h!UXqY1p=qWeWwJqaN{7a)dx_$aIE-9 zT}uq2MEO_}RqnfDOIc+hTZ*(Y)OPA!;tauAf+2!)1X+Uf2r=sO_Kbmp3@LLx=8Qo2x*XIHmm&y@10MB+YB? z^X#3+}my`w#-Mmrn-7e%_;t-0f8-wn;S@omMto<|Q6DwM7m4XbhK``2rl zrqXGerqH + + Debug + AnyCPU + 8.0.40607 + 2.0 + {9E7EF96F-57FA-4B0D-85A5-67B492B2CE24} + WinExe + Exercise_8_7 + Exercise 8.7 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + + {FA7F9A1D-4006-4E80-AF91-2F54DA85B075} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + CreateDataSet + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.7/Exercise 8.7.csproj.user b/Code/Chapter 8/C#/Exercise 8.7/Exercise 8.7.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.7/Exercise 8.7.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.7/Form1.Designer.cs b/Code/Chapter 8/C#/Exercise 8.7/Form1.Designer.cs new file mode 100644 index 0000000..39e399b --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.7/Form1.Designer.cs @@ -0,0 +1,105 @@ +namespace Exercise_8_7 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lbCustomers = new System.Windows.Forms.ListBox(); + this.btnFilter1 = new System.Windows.Forms.Button(); + this.lbCustomerProducts = new System.Windows.Forms.ListBox(); + this.btnFilter2 = new System.Windows.Forms.Button(); + this.lbProducts = new System.Windows.Forms.ListBox(); + this.SuspendLayout(); +// +// lbCustomers +// + this.lbCustomers.FormattingEnabled = true; + this.lbCustomers.Location = new System.Drawing.Point(1, 2); + this.lbCustomers.Name = "lbCustomers"; + this.lbCustomers.Size = new System.Drawing.Size(141, 238); + this.lbCustomers.TabIndex = 0; +// +// btnFilter1 +// + this.btnFilter1.Location = new System.Drawing.Point(149, 105); + this.btnFilter1.Name = "btnFilter1"; + this.btnFilter1.Size = new System.Drawing.Size(101, 23); + this.btnFilter1.TabIndex = 1; + this.btnFilter1.Text = "GetChildRows >>"; + this.btnFilter1.Click += new System.EventHandler(this.btnFilter1_Click); +// +// lbCustomerProducts +// + this.lbCustomerProducts.FormattingEnabled = true; + this.lbCustomerProducts.Location = new System.Drawing.Point(257, 2); + this.lbCustomerProducts.Name = "lbCustomerProducts"; + this.lbCustomerProducts.Size = new System.Drawing.Size(133, 238); + this.lbCustomerProducts.TabIndex = 2; +// +// btnFilter2 +// + this.btnFilter2.Location = new System.Drawing.Point(397, 105); + this.btnFilter2.Name = "btnFilter2"; + this.btnFilter2.Size = new System.Drawing.Size(108, 23); + this.btnFilter2.TabIndex = 3; + this.btnFilter2.Text = "GetParentRow >>"; + this.btnFilter2.Click += new System.EventHandler(this.btnFilter2_Click); +// +// lbProducts +// + this.lbProducts.FormattingEnabled = true; + this.lbProducts.Location = new System.Drawing.Point(512, 2); + this.lbProducts.Name = "lbProducts"; + this.lbProducts.Size = new System.Drawing.Size(157, 238); + this.lbProducts.TabIndex = 4; +// +// Form1 +// + this.AutoScaleDimensions= new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(671, 242); + this.Controls.Add(this.lbProducts); + this.Controls.Add(this.btnFilter2); + this.Controls.Add(this.lbCustomerProducts); + this.Controls.Add(this.btnFilter1); + this.Controls.Add(this.lbCustomers); + this.Name = "Form1"; + this.Text = "Exercise 8.7"; + this.Load += new System.EventHandler(this.Form1_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListBox lbCustomers; + private System.Windows.Forms.Button btnFilter1; + private System.Windows.Forms.ListBox lbCustomerProducts; + private System.Windows.Forms.Button btnFilter2; + private System.Windows.Forms.ListBox lbProducts; + + } +} + diff --git a/Code/Chapter 8/C#/Exercise 8.7/Form1.cs b/Code/Chapter 8/C#/Exercise 8.7/Form1.cs new file mode 100644 index 0000000..5cee507 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.7/Form1.cs @@ -0,0 +1,61 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +#endregion + +namespace Exercise_8_7 +{ + partial class Form1 : Form + { + private static string dataFilePath = @"..\..\..\..\..\Data.Xml"; + private DataSet customerProducts; + + public Form1() + { + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + customerProducts = CreateDataSet.DataSetFiller.FillStrongDataSet(dataFilePath); + foreach (DataRow dr in customerProducts.Tables["Customers"].Rows) + { + lbCustomers.Items.Add(dr["CustomerID"] + ":" + dr["FirstName"] + " " + dr["LastName"]); + } + } + + private void btnFilter2_Click(object sender, EventArgs e) + { + DataRow custProdRow; + DataRow ProdRow; + DataTable custProdTable = customerProducts.Tables["CustomerProducts"] ; + lbProducts.Items.Clear(); + foreach (object item in lbCustomerProducts.Items) + { + int custProdId = (int)item; + custProdRow = custProdTable.Rows.Find(custProdId); + ProdRow = custProdRow.GetParentRow(customerProducts.Relations[0]); + lbProducts.Items.Add(ProdRow["ProductName"]); + } + } + + private void btnFilter1_Click(object sender, EventArgs e) + { + if (lbCustomers.SelectedIndex == -1) + return; + DataRow selectedRow = customerProducts.Tables["Customers"].Rows[lbCustomers.SelectedIndex]; + DataRow[] childRows = selectedRow.GetChildRows(customerProducts.Relations[1]); + lbCustomerProducts.Items.Clear(); + foreach (DataRow dr in childRows) + { + lbCustomerProducts.Items.Add(dr["CustomerProductID"]); + } + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.7/Program.cs b/Code/Chapter 8/C#/Exercise 8.7/Program.cs new file mode 100644 index 0000000..dbd9096 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.7/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_8_7 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.7/Properties/AssemblyInfo.cs b/Code/Chapter 8/C#/Exercise 8.7/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..2e8f7c2 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.7/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_8_7")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_8_7")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 8/C#/Exercise 8.7/Properties/Resources.cs b/Code/Chapter 8/C#/Exercise 8.7/Properties/Resources.cs new file mode 100644 index 0000000..0c10ba7 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.7/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_7.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.7/Properties/Resources.resx b/Code/Chapter 8/C#/Exercise 8.7/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.7/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.7/Properties/Settings.cs b/Code/Chapter 8/C#/Exercise 8.7/Properties/Settings.cs new file mode 100644 index 0000000..1227aa2 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.7/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_7.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.7/Properties/Settings.settings b/Code/Chapter 8/C#/Exercise 8.7/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.7/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.7/bin/Debug/Exercise 8.7.exe b/Code/Chapter 8/C#/Exercise 8.7/bin/Debug/Exercise 8.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..527209d1730b944ea60d676efc1ac3cca6a927ea GIT binary patch literal 20480 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 VT*E~u_CT=*iak*5fdSY9{|^QAw-o>Y literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.7/bin/Debug/Exercise 8.7.vshost.exe b/Code/Chapter 8/C#/Exercise 8.7/bin/Debug/Exercise 8.7.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 E1AB$(oB#j- literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.7/obj/Debug/Exercise 8.7.exe b/Code/Chapter 8/C#/Exercise 8.7/obj/Debug/Exercise 8.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..527209d1730b944ea60d676efc1ac3cca6a927ea GIT binary patch literal 20480 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 VT*E~u_CT=*iak*5fdSY9{|^QAw-o>Y literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.7/obj/Debug/Exercise_8_7.Properties.Resources.resources b/Code/Chapter 8/C#/Exercise 8.7/obj/Debug/Exercise_8_7.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYi1+ z;C>Tax+-x2^)L{fSWLgtTfAGAlKjtS^faNuh~X(|(D6S^Da*9moyo;YM~2X{ih<{0 ztXM~BJ!Nt$WHk?z7Xxi{@}k_Cc!&}8PeXc@TnLz3W|aTHev49A|61pWIdCGqV6*f@eVHZL2qHH&>l6bQoZ{F4g^U0eLWzZ}0-;mmzEgr)w0V?Q>O-hr=qo-_ zR}#Z0QSM8k%6&K3mR30sElFA#YCH8VafaY5!3e=Qf-J##1cUlKdDzabKbRi-KaSI) zcAwTFxZ| zN~dU=Lhbg~FEfg!Vk(+O>s{6zeM@2LR9;2XOlTkP4ex1F!4*w?)|^it6g@ + + Debug + AnyCPU + 8.0.40607 + 2.0 + {4072281C-1078-429C-A597-F532214E1660} + WinExe + Exercise_8_8 + Exercise 8.8 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + + {FA7F9A1D-4006-4E80-AF91-2F54DA85B075} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + CreateDataSet + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.8/Exercise 8.8.csproj.user b/Code/Chapter 8/C#/Exercise 8.8/Exercise 8.8.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.8/Exercise 8.8.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.8/Form1.Designer.cs b/Code/Chapter 8/C#/Exercise 8.8/Form1.Designer.cs new file mode 100644 index 0000000..6ac2827 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.8/Form1.Designer.cs @@ -0,0 +1,122 @@ +namespace Exercise_8_8 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + this.dgView = new System.Windows.Forms.DataGridView(); + this.btnLoad = new System.Windows.Forms.Button(); + this.btnSort = new System.Windows.Forms.Button(); + this.btnFilter = new System.Windows.Forms.Button(); + this.btnFindRows = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgView)).BeginInit(); + this.SuspendLayout(); +// +// dgView +// + this.dgView.AllowUserToAddRows = false; + this.dgView.AllowUserToDeleteRows = false; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.Silver; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + this.dgView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgView.DefaultCellStyle = dataGridViewCellStyle2; + this.dgView.Font = new System.Drawing.Font("Tahoma", 8F); + this.dgView.GridColor = System.Drawing.Color.Silver; + this.dgView.Location = new System.Drawing.Point(3, 47); + this.dgView.Name = "dgView"; + this.dgView.ReadOnly = true; + this.dgView.RowHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgView.Size = new System.Drawing.Size(331, 277); + this.dgView.TabIndex = 0; +// +// btnLoad +// + this.btnLoad.Location = new System.Drawing.Point(13, 4); + this.btnLoad.Name = "btnLoad"; + this.btnLoad.TabIndex = 1; + this.btnLoad.Text = "Load Data"; + this.btnLoad.Click += new System.EventHandler(this.btnLoad_Click); +// +// btnSort +// + this.btnSort.Location = new System.Drawing.Point(95, 3); + this.btnSort.Name = "btnSort"; + this.btnSort.TabIndex = 2; + this.btnSort.Text = "Sort Data"; + this.btnSort.Click += new System.EventHandler(this.btnSort_Click); +// +// btnFilter +// + this.btnFilter.Location = new System.Drawing.Point(177, 3); + this.btnFilter.Name = "btnFilter"; + this.btnFilter.TabIndex = 3; + this.btnFilter.Text = "Filter Data"; + this.btnFilter.Click += new System.EventHandler(this.btnFilter_Click); +// +// btnFindRows +// + this.btnFindRows.Location = new System.Drawing.Point(259, 2); + this.btnFindRows.Name = "btnFindRows"; + this.btnFindRows.TabIndex = 4; + this.btnFindRows.Text = "Find Rows"; + this.btnFindRows.Click += new System.EventHandler(this.btnFindRows_Click); +// +// Form1 +// + this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(336, 327); + this.Controls.Add(this.btnFindRows); + this.Controls.Add(this.btnFilter); + this.Controls.Add(this.btnSort); + this.Controls.Add(this.btnLoad); + this.Controls.Add(this.dgView); + this.Name = "Form1"; + this.Text = "Exercise 8.8"; + ((System.ComponentModel.ISupportInitialize)(this.dgView)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgView; + private System.Windows.Forms.Button btnLoad; + private System.Windows.Forms.Button btnSort; + private System.Windows.Forms.Button btnFilter; + private System.Windows.Forms.Button btnFindRows; + } +} + diff --git a/Code/Chapter 8/C#/Exercise 8.8/Form1.cs b/Code/Chapter 8/C#/Exercise 8.8/Form1.cs new file mode 100644 index 0000000..74d210b --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.8/Form1.cs @@ -0,0 +1,50 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; +#endregion + +namespace Exercise_8_8 +{ + partial class Form1 : Form + { + private static string dataFilePath = @"..\..\..\..\..\Data.Xml"; + private DataTable CustomersTable; + private DataView CustomersView; + + public Form1() + { + InitializeComponent(); + } + + private void btnLoad_Click(object sender, EventArgs e) + { + CustomersTable = CreateDataSet.DataSetFiller.FillDataset(dataFilePath).Tables["Customers"]; + CustomersView = new DataView(CustomersTable); + dgView.DataSource = CustomersView; + } + + private void btnSort_Click(object sender, EventArgs e) + { + CustomersView.Sort = "FirstName ASC"; + } + + private void btnFilter_Click(object sender, EventArgs e) + { + CustomersView.RowFilter = "LastName like '%OfJungle'" ; + } + + private void btnFindRows_Click(object sender, EventArgs e) + { + DataRowView[] drvs = CustomersView.FindRows("Tarzan"); + foreach (DataRowView drv in drvs) + { + MessageBox.Show(drv.Row["FirstName"] + " " + drv.Row["LastName"], "Selected Item"); + } + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.8/Program.cs b/Code/Chapter 8/C#/Exercise 8.8/Program.cs new file mode 100644 index 0000000..46ba532 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.8/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_8_8 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.8/Properties/AssemblyInfo.cs b/Code/Chapter 8/C#/Exercise 8.8/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d935e86 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.8/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_8_8")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_8_8")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 8/C#/Exercise 8.8/Properties/Resources.cs b/Code/Chapter 8/C#/Exercise 8.8/Properties/Resources.cs new file mode 100644 index 0000000..04cb058 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.8/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_8.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.8/Properties/Resources.resx b/Code/Chapter 8/C#/Exercise 8.8/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.8/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.8/Properties/Settings.cs b/Code/Chapter 8/C#/Exercise 8.8/Properties/Settings.cs new file mode 100644 index 0000000..4a6f190 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.8/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_8.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.8/Properties/Settings.settings b/Code/Chapter 8/C#/Exercise 8.8/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.8/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.8/bin/Debug/Exercise 8.8.exe b/Code/Chapter 8/C#/Exercise 8.8/bin/Debug/Exercise 8.8.exe new file mode 100644 index 0000000000000000000000000000000000000000..f980787fb9e7ede644dac8e9a5d03c0ebb5b8842 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.8/bin/Debug/Exercise 8.8.vshost.exe b/Code/Chapter 8/C#/Exercise 8.8/bin/Debug/Exercise 8.8.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.8/obj/Debug/Exercise_8_8.Properties.Resources.resources b/Code/Chapter 8/C#/Exercise 8.8/obj/Debug/Exercise_8_8.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYtVE2Bs4;x*kj9YC;_Jv70E*IH+)p(e5$AQcyW{GjGu^4%}+0}uy2I?vJMQDNVf?wmHPUGW*1hrY>9;l>*I!L?$m8miX zi`;L3OIJlMp%w_)jz%L_yNh?qQj#ZpMo$wuj3}OxF*=^Wl(Ou1J2M$Aw^aa5s~|iN zW5qfu>lstq0jqkTy~NNaLSD2x6Aw|M{%c6Dl8b`5B}V!8?YAg}^)HBKi%F1i@>1rn zA&R6jH<%ZKA}6s}Dt@I)RP&w2KcCM&q-2sQghU@f93euEDLT5>LFoGg-6s*!^pfmM z;zw4cXn_o{qYgG%gc4h5VPALCS`42g`VrD(Pip1>!lS}Hr!v1>T&a|u!=5fbS$9g3 zHDO1{hVzPM@s2%h&p7*;6eZi?{+8u>o_PjUW_wa0>$7NmzbEU>rl?$2Sa<>RB%mGpAF~Zdrc2gp7f>u E0!YWDO8@`> literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.8/obj/Debug/ResolveAssemblyReference.cache b/Code/Chapter 8/C#/Exercise 8.8/obj/Debug/ResolveAssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..ea5a9bd12026e1c4acdf1c6da2974d65d569c5d6 GIT binary patch literal 4491 zcmeHKNpl-T6rPbr%Zz2q2}=&24kg+DMSq|O-pXlnsH5! zTsRlFPz5*c{0VOG57-VY2bKd#j%@z{-Zvh}GqDQC;pTFy^rl~{m$!WH>yf5wn)VMh zJkd%S5}T`{75K_;ht(@RA>HbArf#Up#0C$P@V&(g)oFYx6SbZUdjVhccrOf?tW2!+ zno_i`@!jkG4el*Ar)S%9?aS?%8Fy})&9WShd2;CP)%vaqdAA<2kYkqF7LrF=_UztI z)tWCQZ-r!ms=mb3R>+!?!(KB>!hrbCsRf!~z2Y->nYBVcD8%j*Ykqf|1w0tXrZwN? zYk|KbTpkoLP!~73K_03629rImG%cIea=DS>u(MYBdz~L*^U8t!|9*Y`c{pHMBP2}& zB1d8zJwzd&C$U*uXe@09T&c$Dn-g!mwtlTq+hW@x4<;t(8!)(0n;Z<$NWdwGS6RsF zJZvPk6|v!Y-lG&zW=Lz6SL+)oUQEJ>!qRo@kD!QB#5ig%lG_f^*A zC6{k=&*ffAa8*(*7LvhOt2D#Nk5=wJsJ=xxaH~s+Ena*t(BFFg>iI-Cu z+OMk_s;Zf1FU?oyE?=5Eyt=%elm&Pc+O3TbKh%&@DiBkv=ngNRs@eKat z93hBR%UMQMEif}jYEKAl=Dj0iGMVC7oV3`Axk1f( zZPDok3{=xkBZ0Wz-Ax&Lf2$@B;^lyA&)us%vHhtC3^^bP-6%Yn{3*)bXbO#%d78%F zr*HlN67PV97i`&6 zFOZ7&}Uo^}3gL?lflIatm8Nbt>_Y&arQq-2Equ?SgIuofV zy-0mDQc;AF`dFl5Nu-{IT1INnG6te{7kohgd1sZq>j(4@9v;#4Z940GM}SAMwnzr5NtVag`PPnbfU?)&>yD+=lA%;GS88M3b)KBNa}YI^`hTSD3*SUG!zg3 zqyI)7AfNhFSHSBDWTN+-<9Ronrvw+fs^te#G%fQfQujdfH1+gf2?%|X)qhDSmi{wo z1JL|L%06hoYA2vM#-N#^1dqh;E%*mwnUw) + + Debug + AnyCPU + 8.0.40607 + 2.0 + {40D974A5-5A8C-4651-A1C9-85F7898DBEB7} + WinExe + Exercise_8_9 + Exercise 8.9 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + + {FA7F9A1D-4006-4E80-AF91-2F54DA85B075} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + CreateDataSet + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.9/Exercise 8.9.csproj.user b/Code/Chapter 8/C#/Exercise 8.9/Exercise 8.9.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.9/Exercise 8.9.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.9/Form1.Designer.cs b/Code/Chapter 8/C#/Exercise 8.9/Form1.Designer.cs new file mode 100644 index 0000000..65194ae --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.9/Form1.Designer.cs @@ -0,0 +1,69 @@ +namespace Exercise_8_9 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgView = new System.Windows.Forms.DataGridView(); + this.xmlViewer = new System.Windows.Forms.WebBrowser(); + ((System.ComponentModel.ISupportInitialize)(this.dgView)).BeginInit(); + this.SuspendLayout(); +// +// dgView +// + this.dgView.Location = new System.Drawing.Point(6, 2); + this.dgView.Name = "dgView"; + this.dgView.Size = new System.Drawing.Size(381, 185); + this.dgView.TabIndex = 0; +// +// xmlViewer +// + this.xmlViewer.Location = new System.Drawing.Point(6, 194); + this.xmlViewer.Name = "xmlViewer"; + this.xmlViewer.Size = new System.Drawing.Size(381, 298); + this.xmlViewer.TabIndex = 1; +// +// Form1 +// + this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(389, 494); + this.Controls.Add(this.xmlViewer); + this.Controls.Add(this.dgView); + this.Name = "Form1"; + this.Text = "Exercise 8.9"; + this.Load += new System.EventHandler(this.Form1_Load); + ((System.ComponentModel.ISupportInitialize)(this.dgView)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgView; + private System.Windows.Forms.WebBrowser xmlViewer; + } +} + diff --git a/Code/Chapter 8/C#/Exercise 8.9/Form1.cs b/Code/Chapter 8/C#/Exercise 8.9/Form1.cs new file mode 100644 index 0000000..c0f4749 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.9/Form1.cs @@ -0,0 +1,42 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; +using System.Xml; + +#endregion + +namespace Exercise_8_9 +{ + partial class Form1 : Form + { + private static string dataFilePath = @"..\..\..\..\..\Data.Xml"; + private DataTable CustomersTable; + private XmlDataDocument xdd; + + public Form1() + { + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + CustomersTable = CreateDataSet.DataSetFiller.FillDataset(dataFilePath).Tables["Customers"]; + xdd = new XmlDataDocument(CustomersTable.DataSet); + dgView.DataSource = CustomersTable; + xdd.Save(Application.ExecutablePath + "_xdd.xml"); + xmlViewer.Navigate(Application.ExecutablePath + "_xdd.xml"); + CustomersTable.RowChanged +=new DataRowChangeEventHandler(CustomersTable_RowChanged); + } + + void CustomersTable_RowChanged(object sender, DataRowChangeEventArgs e) + { + xdd.Save(Application.ExecutablePath + "_xdd.xml"); + xmlViewer.Navigate(Application.ExecutablePath + "_xdd.xml"); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.9/Program.cs b/Code/Chapter 8/C#/Exercise 8.9/Program.cs new file mode 100644 index 0000000..2386327 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.9/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_8_9 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.9/Properties/AssemblyInfo.cs b/Code/Chapter 8/C#/Exercise 8.9/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3fcc5bd --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.9/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_8_9")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_8_9")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 8/C#/Exercise 8.9/Properties/Resources.cs b/Code/Chapter 8/C#/Exercise 8.9/Properties/Resources.cs new file mode 100644 index 0000000..019a5df --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.9/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_9.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.9/Properties/Resources.resx b/Code/Chapter 8/C#/Exercise 8.9/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.9/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.9/Properties/Settings.cs b/Code/Chapter 8/C#/Exercise 8.9/Properties/Settings.cs new file mode 100644 index 0000000..e1430b5 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.9/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_8_9.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 8/C#/Exercise 8.9/Properties/Settings.settings b/Code/Chapter 8/C#/Exercise 8.9/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.9/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.EXE_xdd.xml b/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.EXE_xdd.xml new file mode 100644 index 0000000..99f63c0 --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.EXE_xdd.xml @@ -0,0 +1,91 @@ + + + 1 + Chill + Gates + + + 2 + John + Williams + + + 3 + Steve + Ballmer + + + 4 + Tarzan + KingOfJungle + + + 5 + Jane + PrincessOfJungle + + + 1 + Dagger + 10 + 0.10 + + + 2 + Computer + 2000 + 0.095 + + + 3 + Hamburger + 5 + 0 + + + 4 + A Nice Suit + 300 + 0.15 + + + 1 + 1 + 2 + + + 2 + 2 + 3 + + + 3 + 2 + 2 + + + 4 + 3 + 4 + + + 5 + 4 + 1 + + + 6 + 4 + 2 + + + 7 + 4 + 3 + + + 8 + 5 + 1 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.exe b/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.exe new file mode 100644 index 0000000000000000000000000000000000000000..ee5b130fd8a436228fb700f51190b841d49c3046 GIT binary patch literal 20480 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 b5r`3p5r`3p5r`3p5r`3p5r`3Z1ql2bODs4* literal 0 HcmV?d00001 diff --git "a/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.exe\303\235.xml" "b/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.exe\303\235.xml" new file mode 100644 index 0000000..99f63c0 --- /dev/null +++ "b/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.exe\303\235.xml" @@ -0,0 +1,91 @@ + + + 1 + Chill + Gates + + + 2 + John + Williams + + + 3 + Steve + Ballmer + + + 4 + Tarzan + KingOfJungle + + + 5 + Jane + PrincessOfJungle + + + 1 + Dagger + 10 + 0.10 + + + 2 + Computer + 2000 + 0.095 + + + 3 + Hamburger + 5 + 0 + + + 4 + A Nice Suit + 300 + 0.15 + + + 1 + 1 + 2 + + + 2 + 2 + 3 + + + 3 + 2 + 2 + + + 4 + 3 + 4 + + + 5 + 4 + 1 + + + 6 + 4 + 2 + + + 7 + 4 + 3 + + + 8 + 5 + 1 + + \ No newline at end of file diff --git a/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.pdb b/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6430b519d7a2529c7b30c1aef3f2fcec40aae4fc GIT binary patch literal 28160 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 OdImBY$Y@}YYT$oc$;;~i literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.vshost.exe b/Code/Chapter 8/C#/Exercise 8.9/bin/Debug/Exercise 8.9.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise 8.9.csproj.GenerateResource.Cache b/Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise 8.9.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..e0d9a9d14859f7da7a57650bef3d4d95df46e72b GIT binary patch literal 784 zcma)3O-sW-5KV2L*E0tMCX$7p4z!yVqQgHlod_)sh=cu`YaWvy#dloB{4b zybD8!CB&fuWGN*Jc(tcAV67(*x+?C2-xfHc~|jG5`Po literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise 8.9.exe b/Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise 8.9.exe new file mode 100644 index 0000000000000000000000000000000000000000..ee5b130fd8a436228fb700f51190b841d49c3046 GIT binary patch literal 20480 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 b5r`3p5r`3p5r`3p5r`3p5r`3Z1ql2bODs4* literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise 8.9.pdb b/Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise 8.9.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6430b519d7a2529c7b30c1aef3f2fcec40aae4fc GIT binary patch literal 28160 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 OdImBY$Y@}YYT$oc$;;~i literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise_8_9.Properties.Resources.resources b/Code/Chapter 8/C#/Exercise 8.9/obj/Debug/Exercise_8_9.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/C#/Exercise 8.9/obj/Exercise 8.9.csproj.FileList.txt b/Code/Chapter 8/C#/Exercise 8.9/obj/Exercise 8.9.csproj.FileList.txt new file mode 100644 index 0000000..f577a5e --- /dev/null +++ b/Code/Chapter 8/C#/Exercise 8.9/obj/Exercise 8.9.csproj.FileList.txt @@ -0,0 +1,9 @@ +.\bin\Debug\Exercise 8.9.exe +.\bin\Debug\Exercise 8.9.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_9.Properties.Resources.resources +obj\Debug\Exercise 8.9.csproj.GenerateResource.Cache +obj\Debug\Exercise 8.9.exe +obj\Debug\Exercise 8.9.pdb +.\bin\Debug\CreateDataSet.dll +.\bin\Debug\CreateDataSet.pdb diff --git a/Code/Chapter 8/Data.xml b/Code/Chapter 8/Data.xml new file mode 100644 index 0000000..687dbac --- /dev/null +++ b/Code/Chapter 8/Data.xml @@ -0,0 +1,92 @@ + + + + 1 + Bill + Gates + + + 2 + John + Williams + + + 3 + Steve + Ballmer + + + 4 + Tarzan + KingOfJungle + + + 5 + Jane + PrincessOfJungle + + + 1 + Dagger + 10 + 0.10 + + + 2 + Computer + 2000 + 0.095 + + + 3 + Hamburger + 5 + 0 + + + 4 + A Nice Suit + 300 + 0.15 + + + 1 + 1 + 2 + + + 2 + 2 + 3 + + + 3 + 2 + 2 + + + 4 + 3 + 4 + + + 5 + 4 + 1 + + + 6 + 4 + 2 + + + 7 + 4 + 3 + + + 8 + 5 + 1 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Chapter 8.sln b/Code/Chapter 8/VB.NET/Chapter 8.sln new file mode 100644 index 0000000..c8335b8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Chapter 8.sln @@ -0,0 +1,80 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "CreateDataSet", "CreateDataSet\CreateDataSet.vbproj", "{21FDB488-AEA4-40A7-9F36-7107BB28BD42}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EditData", "EditData\EditData.vbproj", "{9799E017-C37A-4ABF-8515-7153211AA1AE}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 8.1", "Exercise 8.1\Exercise 8.1.vbproj", "{478F47CC-E6D9-4C27-8805-2E7937632C70}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 8.2", "Exercise 8.2\Exercise 8.2.vbproj", "{B69C5C43-FEA0-4D57-B2C7-14ECBAEC185C}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 8.3", "Exercise 8.3\Exercise 8.3.vbproj", "{A4B26018-FE2B-48F8-AD9A-0857A99EEB4F}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 8.4", "Exercise 8.4\Exercise 8.4.vbproj", "{2F5FEB55-FFD6-40D9-A6B4-8674F231029C}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 8.5", "Exercise 8.5\Exercise 8.5.vbproj", "{1A0AC9A6-9DA4-42D9-90C1-435F4D40C581}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 8.6", "Exercise 8.6\Exercise 8.6.vbproj", "{DBCFEAE3-6D6F-4A18-923C-C8031CDFBD85}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 8.7", "Exercise 8.7\Exercise 8.7.vbproj", "{EA00B165-EDAE-4D48-8BBE-F45E0D8D330A}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 8.8", "Exercise 8.8\Exercise 8.8.vbproj", "{5A286038-4A61-45A1-914F-BDCA78E82E50}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Exercise 8.9", "Exercise 8.9\Exercise 8.9.vbproj", "{B34AC2FC-CE63-4A57-A27B-E71529AE7D28}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {21FDB488-AEA4-40A7-9F36-7107BB28BD42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {21FDB488-AEA4-40A7-9F36-7107BB28BD42}.Debug|Any CPU.Build.0 = Debug|Any CPU + {21FDB488-AEA4-40A7-9F36-7107BB28BD42}.Release|Any CPU.ActiveCfg = Release|Any CPU + {21FDB488-AEA4-40A7-9F36-7107BB28BD42}.Release|Any CPU.Build.0 = Release|Any CPU + {9799E017-C37A-4ABF-8515-7153211AA1AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9799E017-C37A-4ABF-8515-7153211AA1AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9799E017-C37A-4ABF-8515-7153211AA1AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9799E017-C37A-4ABF-8515-7153211AA1AE}.Release|Any CPU.Build.0 = Release|Any CPU + {478F47CC-E6D9-4C27-8805-2E7937632C70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {478F47CC-E6D9-4C27-8805-2E7937632C70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {478F47CC-E6D9-4C27-8805-2E7937632C70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {478F47CC-E6D9-4C27-8805-2E7937632C70}.Release|Any CPU.Build.0 = Release|Any CPU + {B69C5C43-FEA0-4D57-B2C7-14ECBAEC185C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B69C5C43-FEA0-4D57-B2C7-14ECBAEC185C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B69C5C43-FEA0-4D57-B2C7-14ECBAEC185C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B69C5C43-FEA0-4D57-B2C7-14ECBAEC185C}.Release|Any CPU.Build.0 = Release|Any CPU + {A4B26018-FE2B-48F8-AD9A-0857A99EEB4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4B26018-FE2B-48F8-AD9A-0857A99EEB4F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4B26018-FE2B-48F8-AD9A-0857A99EEB4F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4B26018-FE2B-48F8-AD9A-0857A99EEB4F}.Release|Any CPU.Build.0 = Release|Any CPU + {2F5FEB55-FFD6-40D9-A6B4-8674F231029C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F5FEB55-FFD6-40D9-A6B4-8674F231029C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F5FEB55-FFD6-40D9-A6B4-8674F231029C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F5FEB55-FFD6-40D9-A6B4-8674F231029C}.Release|Any CPU.Build.0 = Release|Any CPU + {1A0AC9A6-9DA4-42D9-90C1-435F4D40C581}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A0AC9A6-9DA4-42D9-90C1-435F4D40C581}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A0AC9A6-9DA4-42D9-90C1-435F4D40C581}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A0AC9A6-9DA4-42D9-90C1-435F4D40C581}.Release|Any CPU.Build.0 = Release|Any CPU + {DBCFEAE3-6D6F-4A18-923C-C8031CDFBD85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBCFEAE3-6D6F-4A18-923C-C8031CDFBD85}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBCFEAE3-6D6F-4A18-923C-C8031CDFBD85}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBCFEAE3-6D6F-4A18-923C-C8031CDFBD85}.Release|Any CPU.Build.0 = Release|Any CPU + {EA00B165-EDAE-4D48-8BBE-F45E0D8D330A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA00B165-EDAE-4D48-8BBE-F45E0D8D330A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA00B165-EDAE-4D48-8BBE-F45E0D8D330A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA00B165-EDAE-4D48-8BBE-F45E0D8D330A}.Release|Any CPU.Build.0 = Release|Any CPU + {5A286038-4A61-45A1-914F-BDCA78E82E50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5A286038-4A61-45A1-914F-BDCA78E82E50}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A286038-4A61-45A1-914F-BDCA78E82E50}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5A286038-4A61-45A1-914F-BDCA78E82E50}.Release|Any CPU.Build.0 = Release|Any CPU + {B34AC2FC-CE63-4A57-A27B-E71529AE7D28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B34AC2FC-CE63-4A57-A27B-E71529AE7D28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B34AC2FC-CE63-4A57-A27B-E71529AE7D28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B34AC2FC-CE63-4A57-A27B-E71529AE7D28}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 8/VB.NET/Chapter 8.suo b/Code/Chapter 8/VB.NET/Chapter 8.suo new file mode 100644 index 0000000000000000000000000000000000000000..1b3b17ff7418b76501a3baa715f243b37d9b386b GIT binary patch literal 88064 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 z xE`>`%&ri8EQiCs&$iG39q?mv9`-VaRWlejm6S4WFYt{F@G8xV;ry)5d@c$reDGmSt literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/CreateDataSet.vbproj b/Code/Chapter 8/VB.NET/CreateDataSet/CreateDataSet.vbproj new file mode 100644 index 0000000..16109dd --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/CreateDataSet.vbproj @@ -0,0 +1,115 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {21FDB488-AEA4-40A7-9F36-7107BB28BD42} + Library + + + CreateDataSet + CreateDataSet + Windows + + + true + full + true + true + true + bin\ + CreateDataSet.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + CreateDataSet.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + True + True + CustProd.xsd + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + CustProd.xsd + + + CustProd.xsd + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + MSDataSetGenerator + CustProd.Designer.vb + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/CreateDataSet.vbproj.user b/Code/Chapter 8/VB.NET/CreateDataSet/CreateDataSet.vbproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/CreateDataSet.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/CustProd.Designer.vb b/Code/Chapter 8/VB.NET/CreateDataSet/CustProd.Designer.vb new file mode 100644 index 0000000..cc58998 --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/CustProd.Designer.vb @@ -0,0 +1,1221 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System + + + _ +Partial Public Class CustProd + Inherits System.Data.DataSet + + Private tableCustomers As CustomersDataTable + + Private tableProducts As ProductsDataTable + + Private tableCustomerProducts As CustomerProductsDataTable + + Private relationFK_CustomerProducts_Products As System.Data.DataRelation + + Private relationFK_CustomerProducts_Customers As System.Data.DataRelation + + Private _schemaSerializationMode As System.Data.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema + + _ + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + _ + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Me.DetermineSchemaSerializationMode(info, context) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + If (Not (ds.Tables("Customers")) Is Nothing) Then + MyBase.Tables.Add(New CustomersDataTable(ds.Tables("Customers"))) + End If + If (Not (ds.Tables("Products")) Is Nothing) Then + MyBase.Tables.Add(New ProductsDataTable(ds.Tables("Products"))) + End If + If (Not (ds.Tables("CustomerProducts")) Is Nothing) Then + MyBase.Tables.Add(New CustomerProductsDataTable(ds.Tables("CustomerProducts"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public ReadOnly Property Customers() As CustomersDataTable + Get + Return Me.tableCustomers + End Get + End Property + + _ + Public ReadOnly Property Products() As ProductsDataTable + Get + Return Me.tableProducts + End Get + End Property + + _ + Public ReadOnly Property CustomerProducts() As CustomerProductsDataTable + Get + Return Me.tableCustomerProducts + End Get + End Property + + Public Overrides Property SchemaSerializationMode() As System.Data.SchemaSerializationMode + Get + Return Me._schemaSerializationMode + End Get + Set + Me._schemaSerializationMode = value + End Set + End Property + + _ + Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Public Shadows Property EnforceConstraints() As Boolean + Get + Return MyBase.EnforceConstraints + End Get + Set + MyBase.EnforceConstraints = value + End Set + End Property + + Protected Overrides Sub InitializeDerivedDataSet() + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Public Overrides Function Clone() As System.Data.DataSet + Dim cln As CustProd = CType(MyBase.Clone,CustProd) + cln.InitVars + Return cln + End Function + + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader) + If (Me.DetermineSchemaSerializationMode(reader) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Me.Reset + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXml(reader) + If (Not (ds.Tables("Customers")) Is Nothing) Then + MyBase.Tables.Add(New CustomersDataTable(ds.Tables("Customers"))) + End If + If (Not (ds.Tables("Products")) Is Nothing) Then + MyBase.Tables.Add(New ProductsDataTable(ds.Tables("Products"))) + End If + If (Not (ds.Tables("CustomerProducts")) Is Nothing) Then + MyBase.Tables.Add(New CustomerProductsDataTable(ds.Tables("CustomerProducts"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXml(reader) + Me.InitVars + End If + End Sub + + Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema + Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream + Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing) + End Function + + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + Me.tableCustomers = CType(MyBase.Tables("Customers"),CustomersDataTable) + If (initTable = true) Then + If (Not (Me.tableCustomers) Is Nothing) Then + Me.tableCustomers.InitVars + End If + End If + Me.tableProducts = CType(MyBase.Tables("Products"),ProductsDataTable) + If (initTable = true) Then + If (Not (Me.tableProducts) Is Nothing) Then + Me.tableProducts.InitVars + End If + End If + Me.tableCustomerProducts = CType(MyBase.Tables("CustomerProducts"),CustomerProductsDataTable) + If (initTable = true) Then + If (Not (Me.tableCustomerProducts) Is Nothing) Then + Me.tableCustomerProducts.InitVars + End If + End If + Me.relationFK_CustomerProducts_Products = Me.Relations("FK_CustomerProducts_Products") + Me.relationFK_CustomerProducts_Customers = Me.Relations("FK_CustomerProducts_Customers") + End Sub + + Private Sub InitClass() + Me.DataSetName = "CustProd" + Me.Prefix = "" + Me.Namespace = "http://tempuri.org/CustProd.xsd" + Me.EnforceConstraints = false + Me.tableCustomers = New CustomersDataTable + MyBase.Tables.Add(Me.tableCustomers) + Me.tableProducts = New ProductsDataTable + MyBase.Tables.Add(Me.tableProducts) + Me.tableCustomerProducts = New CustomerProductsDataTable + MyBase.Tables.Add(Me.tableCustomerProducts) + Dim fkc As System.Data.ForeignKeyConstraint + fkc = New System.Data.ForeignKeyConstraint("FK_CustomerProducts_Products", New System.Data.DataColumn() {Me.tableProducts.ProductIDColumn}, New System.Data.DataColumn() {Me.tableCustomerProducts.ProductIDColumn}) + Me.tableCustomerProducts.Constraints.Add(fkc) + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None + fkc.DeleteRule = System.Data.Rule.Cascade + fkc.UpdateRule = System.Data.Rule.Cascade + fkc = New System.Data.ForeignKeyConstraint("FK_CustomerProducts_Customers", New System.Data.DataColumn() {Me.tableCustomers.CustomerIDColumn}, New System.Data.DataColumn() {Me.tableCustomerProducts.CustomerIDColumn}) + Me.tableCustomerProducts.Constraints.Add(fkc) + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None + fkc.DeleteRule = System.Data.Rule.Cascade + fkc.UpdateRule = System.Data.Rule.Cascade + Me.relationFK_CustomerProducts_Products = New System.Data.DataRelation("FK_CustomerProducts_Products", New System.Data.DataColumn() {Me.tableProducts.ProductIDColumn}, New System.Data.DataColumn() {Me.tableCustomerProducts.ProductIDColumn}, false) + Me.Relations.Add(Me.relationFK_CustomerProducts_Products) + Me.relationFK_CustomerProducts_Customers = New System.Data.DataRelation("FK_CustomerProducts_Customers", New System.Data.DataColumn() {Me.tableCustomers.CustomerIDColumn}, New System.Data.DataColumn() {Me.tableCustomerProducts.CustomerIDColumn}, false) + Me.Relations.Add(Me.relationFK_CustomerProducts_Customers) + End Sub + + Private Function ShouldSerializeCustomers() As Boolean + Return false + End Function + + Private Function ShouldSerializeProducts() As Boolean + Return false + End Function + + Private Function ShouldSerializeCustomerProducts() As Boolean + Return false + End Function + + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim ds As CustProd = New CustProd + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + xs.Add(ds.GetSchemaSerializable) + Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any.Namespace = ds.Namespace + sequence.Items.Add(any) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub CustomersRowChangeEventHandler(ByVal sender As Object, ByVal e As CustomersRowChangeEvent) + + Public Delegate Sub ProductsRowChangeEventHandler(ByVal sender As Object, ByVal e As ProductsRowChangeEvent) + + Public Delegate Sub CustomerProductsRowChangeEventHandler(ByVal sender As Object, ByVal e As CustomerProductsRowChangeEvent) + + _ + Partial Public Class CustomersDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnCustomerID As System.Data.DataColumn + + Private columnFirstName As System.Data.DataColumn + + Private columnLastName As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Customers" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property CustomerIDColumn() As System.Data.DataColumn + Get + Return Me.columnCustomerID + End Get + End Property + + Public ReadOnly Property FirstNameColumn() As System.Data.DataColumn + Get + Return Me.columnFirstName + End Get + End Property + + Public ReadOnly Property LastNameColumn() As System.Data.DataColumn + Get + Return Me.columnLastName + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As CustomersRow + Get + Return CType(Me.Rows(index),CustomersRow) + End Get + End Property + + Public Event CustomersRowChanged As CustomersRowChangeEventHandler + + Public Event CustomersRowChanging As CustomersRowChangeEventHandler + + Public Event CustomersRowDeleted As CustomersRowChangeEventHandler + + Public Event CustomersRowDeleting As CustomersRowChangeEventHandler + + Public Overloads Sub AddCustomersRow(ByVal row As CustomersRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddCustomersRow(ByVal FirstName As String, ByVal LastName As String) As CustomersRow + Dim rowCustomersRow As CustomersRow = CType(Me.NewRow,CustomersRow) + rowCustomersRow.ItemArray = New Object() {Nothing, FirstName, LastName} + Me.Rows.Add(rowCustomersRow) + Return rowCustomersRow + End Function + + Public Function FindByCustomerID(ByVal CustomerID As Integer) As CustomersRow + Return CType(Me.Rows.Find(New Object() {CustomerID}),CustomersRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As CustomersDataTable = CType(MyBase.Clone,CustomersDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New CustomersDataTable + End Function + + Friend Sub InitVars() + Me.columnCustomerID = MyBase.Columns("CustomerID") + Me.columnFirstName = MyBase.Columns("FirstName") + Me.columnLastName = MyBase.Columns("LastName") + End Sub + + Private Sub InitClass() + Me.columnCustomerID = New System.Data.DataColumn("CustomerID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnCustomerID) + Me.columnFirstName = New System.Data.DataColumn("FirstName", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnFirstName) + Me.columnLastName = New System.Data.DataColumn("LastName", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnLastName) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnCustomerID}, true)) + Me.columnCustomerID.AutoIncrement = true + Me.columnCustomerID.AllowDBNull = false + Me.columnCustomerID.Unique = true + End Sub + + Public Function NewCustomersRow() As CustomersRow + Return CType(Me.NewRow,CustomersRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New CustomersRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(CustomersRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.CustomersRowChangedEvent) Is Nothing) Then + RaiseEvent CustomersRowChanged(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.CustomersRowChangingEvent) Is Nothing) Then + RaiseEvent CustomersRowChanging(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.CustomersRowDeletedEvent) Is Nothing) Then + RaiseEvent CustomersRowDeleted(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.CustomersRowDeletingEvent) Is Nothing) Then + RaiseEvent CustomersRowDeleting(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) + End If + End Sub + + Public Sub RemoveCustomersRow(ByVal row As CustomersRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As CustProd = New CustProd + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "CustomersDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + _ + Partial Public Class ProductsDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnProductID As System.Data.DataColumn + + Private columnProductName As System.Data.DataColumn + + Private columnPrice As System.Data.DataColumn + + Private columnTaxPercent As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Products" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property ProductIDColumn() As System.Data.DataColumn + Get + Return Me.columnProductID + End Get + End Property + + Public ReadOnly Property ProductNameColumn() As System.Data.DataColumn + Get + Return Me.columnProductName + End Get + End Property + + Public ReadOnly Property PriceColumn() As System.Data.DataColumn + Get + Return Me.columnPrice + End Get + End Property + + Public ReadOnly Property TaxPercentColumn() As System.Data.DataColumn + Get + Return Me.columnTaxPercent + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As ProductsRow + Get + Return CType(Me.Rows(index),ProductsRow) + End Get + End Property + + Public Event ProductsRowChanged As ProductsRowChangeEventHandler + + Public Event ProductsRowChanging As ProductsRowChangeEventHandler + + Public Event ProductsRowDeleted As ProductsRowChangeEventHandler + + Public Event ProductsRowDeleting As ProductsRowChangeEventHandler + + Public Overloads Sub AddProductsRow(ByVal row As ProductsRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddProductsRow(ByVal ProductName As String, ByVal Price As Decimal, ByVal TaxPercent As Decimal) As ProductsRow + Dim rowProductsRow As ProductsRow = CType(Me.NewRow,ProductsRow) + rowProductsRow.ItemArray = New Object() {Nothing, ProductName, Price, TaxPercent} + Me.Rows.Add(rowProductsRow) + Return rowProductsRow + End Function + + Public Function FindByProductID(ByVal ProductID As Integer) As ProductsRow + Return CType(Me.Rows.Find(New Object() {ProductID}),ProductsRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As ProductsDataTable = CType(MyBase.Clone,ProductsDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New ProductsDataTable + End Function + + Friend Sub InitVars() + Me.columnProductID = MyBase.Columns("ProductID") + Me.columnProductName = MyBase.Columns("ProductName") + Me.columnPrice = MyBase.Columns("Price") + Me.columnTaxPercent = MyBase.Columns("TaxPercent") + End Sub + + Private Sub InitClass() + Me.columnProductID = New System.Data.DataColumn("ProductID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnProductID) + Me.columnProductName = New System.Data.DataColumn("ProductName", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnProductName) + Me.columnPrice = New System.Data.DataColumn("Price", GetType(Decimal), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnPrice) + Me.columnTaxPercent = New System.Data.DataColumn("TaxPercent", GetType(Decimal), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnTaxPercent) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnProductID}, true)) + Me.columnProductID.AutoIncrement = true + Me.columnProductID.AllowDBNull = false + Me.columnProductID.Unique = true + End Sub + + Public Function NewProductsRow() As ProductsRow + Return CType(Me.NewRow,ProductsRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New ProductsRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(ProductsRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.ProductsRowChangedEvent) Is Nothing) Then + RaiseEvent ProductsRowChanged(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.ProductsRowChangingEvent) Is Nothing) Then + RaiseEvent ProductsRowChanging(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.ProductsRowDeletedEvent) Is Nothing) Then + RaiseEvent ProductsRowDeleted(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.ProductsRowDeletingEvent) Is Nothing) Then + RaiseEvent ProductsRowDeleting(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action)) + End If + End Sub + + Public Sub RemoveProductsRow(ByVal row As ProductsRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As CustProd = New CustProd + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "ProductsDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + _ + Partial Public Class CustomerProductsDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnCustomerProductID As System.Data.DataColumn + + Private columnCustomerID As System.Data.DataColumn + + Private columnProductID As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "CustomerProducts" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property CustomerProductIDColumn() As System.Data.DataColumn + Get + Return Me.columnCustomerProductID + End Get + End Property + + Public ReadOnly Property CustomerIDColumn() As System.Data.DataColumn + Get + Return Me.columnCustomerID + End Get + End Property + + Public ReadOnly Property ProductIDColumn() As System.Data.DataColumn + Get + Return Me.columnProductID + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As CustomerProductsRow + Get + Return CType(Me.Rows(index),CustomerProductsRow) + End Get + End Property + + Public Event CustomerProductsRowChanged As CustomerProductsRowChangeEventHandler + + Public Event CustomerProductsRowChanging As CustomerProductsRowChangeEventHandler + + Public Event CustomerProductsRowDeleted As CustomerProductsRowChangeEventHandler + + Public Event CustomerProductsRowDeleting As CustomerProductsRowChangeEventHandler + + Public Overloads Sub AddCustomerProductsRow(ByVal row As CustomerProductsRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddCustomerProductsRow(ByVal CustomerProductID As Integer, ByVal parentProductsRowByFK_CustomerProducts_Products As ProductsRow) As CustomerProductsRow + Dim rowCustomerProductsRow As CustomerProductsRow = CType(Me.NewRow,CustomerProductsRow) + rowCustomerProductsRow.ItemArray = New Object() {CustomerProductID, Nothing, parentProductsRowByFK_CustomerProducts_Products(0)} + Me.Rows.Add(rowCustomerProductsRow) + Return rowCustomerProductsRow + End Function + + Public Function FindByCustomerProductID(ByVal CustomerProductID As Integer) As CustomerProductsRow + Return CType(Me.Rows.Find(New Object() {CustomerProductID}),CustomerProductsRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As CustomerProductsDataTable = CType(MyBase.Clone,CustomerProductsDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New CustomerProductsDataTable + End Function + + Friend Sub InitVars() + Me.columnCustomerProductID = MyBase.Columns("CustomerProductID") + Me.columnCustomerID = MyBase.Columns("CustomerID") + Me.columnProductID = MyBase.Columns("ProductID") + End Sub + + Private Sub InitClass() + Me.columnCustomerProductID = New System.Data.DataColumn("CustomerProductID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnCustomerProductID) + Me.columnCustomerID = New System.Data.DataColumn("CustomerID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnCustomerID) + Me.columnProductID = New System.Data.DataColumn("ProductID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnProductID) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnCustomerProductID}, true)) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint2", New System.Data.DataColumn() {Me.columnCustomerID}, false)) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint3", New System.Data.DataColumn() {Me.columnProductID}, false)) + Me.columnCustomerProductID.AllowDBNull = false + Me.columnCustomerProductID.Unique = true + Me.columnCustomerID.AutoIncrement = true + Me.columnCustomerID.Unique = true + Me.columnProductID.Unique = true + End Sub + + Public Function NewCustomerProductsRow() As CustomerProductsRow + Return CType(Me.NewRow,CustomerProductsRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New CustomerProductsRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(CustomerProductsRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.CustomerProductsRowChangedEvent) Is Nothing) Then + RaiseEvent CustomerProductsRowChanged(Me, New CustomerProductsRowChangeEvent(CType(e.Row,CustomerProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.CustomerProductsRowChangingEvent) Is Nothing) Then + RaiseEvent CustomerProductsRowChanging(Me, New CustomerProductsRowChangeEvent(CType(e.Row,CustomerProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.CustomerProductsRowDeletedEvent) Is Nothing) Then + RaiseEvent CustomerProductsRowDeleted(Me, New CustomerProductsRowChangeEvent(CType(e.Row,CustomerProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.CustomerProductsRowDeletingEvent) Is Nothing) Then + RaiseEvent CustomerProductsRowDeleting(Me, New CustomerProductsRowChangeEvent(CType(e.Row,CustomerProductsRow), e.Action)) + End If + End Sub + + Public Sub RemoveCustomerProductsRow(ByVal row As CustomerProductsRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As CustProd = New CustProd + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "CustomerProductsDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + Partial Public Class CustomersRow + Inherits System.Data.DataRow + + Private tableCustomers As CustomersDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableCustomers = CType(Me.Table,CustomersDataTable) + End Sub + + Public Property CustomerID() As Integer + Get + Return CType(Me(Me.tableCustomers.CustomerIDColumn),Integer) + End Get + Set + Me(Me.tableCustomers.CustomerIDColumn) = value + End Set + End Property + + Public Property FirstName() As String + Get + Try + Return CType(Me(Me.tableCustomers.FirstNameColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'FirstName' in table 'Customers' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableCustomers.FirstNameColumn) = value + End Set + End Property + + Public Property LastName() As String + Get + Try + Return CType(Me(Me.tableCustomers.LastNameColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'LastName' in table 'Customers' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableCustomers.LastNameColumn) = value + End Set + End Property + + Public Function IsFirstNameNull() As Boolean + Return Me.IsNull(Me.tableCustomers.FirstNameColumn) + End Function + + Public Sub SetFirstNameNull() + Me(Me.tableCustomers.FirstNameColumn) = System.Convert.DBNull + End Sub + + Public Function IsLastNameNull() As Boolean + Return Me.IsNull(Me.tableCustomers.LastNameColumn) + End Function + + Public Sub SetLastNameNull() + Me(Me.tableCustomers.LastNameColumn) = System.Convert.DBNull + End Sub + + Public Function GetCustomerProductsRows() As CustomerProductsRow() + Return CType(MyBase.GetChildRows(Me.Table.ChildRelations("FK_CustomerProducts_Customers")),CustomerProductsRow()) + End Function + End Class + + Partial Public Class ProductsRow + Inherits System.Data.DataRow + + Private tableProducts As ProductsDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableProducts = CType(Me.Table,ProductsDataTable) + End Sub + + Public Property ProductID() As Integer + Get + Return CType(Me(Me.tableProducts.ProductIDColumn),Integer) + End Get + Set + Me(Me.tableProducts.ProductIDColumn) = value + End Set + End Property + + Public Property ProductName() As String + Get + Try + Return CType(Me(Me.tableProducts.ProductNameColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'ProductName' in table 'Products' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableProducts.ProductNameColumn) = value + End Set + End Property + + Public Property Price() As Decimal + Get + Try + Return CType(Me(Me.tableProducts.PriceColumn),Decimal) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'Price' in table 'Products' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableProducts.PriceColumn) = value + End Set + End Property + + Public Property TaxPercent() As Decimal + Get + Try + Return CType(Me(Me.tableProducts.TaxPercentColumn),Decimal) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'TaxPercent' in table 'Products' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableProducts.TaxPercentColumn) = value + End Set + End Property + + Public Function IsProductNameNull() As Boolean + Return Me.IsNull(Me.tableProducts.ProductNameColumn) + End Function + + Public Sub SetProductNameNull() + Me(Me.tableProducts.ProductNameColumn) = System.Convert.DBNull + End Sub + + Public Function IsPriceNull() As Boolean + Return Me.IsNull(Me.tableProducts.PriceColumn) + End Function + + Public Sub SetPriceNull() + Me(Me.tableProducts.PriceColumn) = System.Convert.DBNull + End Sub + + Public Function IsTaxPercentNull() As Boolean + Return Me.IsNull(Me.tableProducts.TaxPercentColumn) + End Function + + Public Sub SetTaxPercentNull() + Me(Me.tableProducts.TaxPercentColumn) = System.Convert.DBNull + End Sub + + Public Function GetCustomerProductsRows() As CustomerProductsRow() + Return CType(MyBase.GetChildRows(Me.Table.ChildRelations("FK_CustomerProducts_Products")),CustomerProductsRow()) + End Function + End Class + + Partial Public Class CustomerProductsRow + Inherits System.Data.DataRow + + Private tableCustomerProducts As CustomerProductsDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableCustomerProducts = CType(Me.Table,CustomerProductsDataTable) + End Sub + + Public Property CustomerProductID() As Integer + Get + Return CType(Me(Me.tableCustomerProducts.CustomerProductIDColumn),Integer) + End Get + Set + Me(Me.tableCustomerProducts.CustomerProductIDColumn) = value + End Set + End Property + + Public Property CustomerID() As Integer + Get + Try + Return CType(Me(Me.tableCustomerProducts.CustomerIDColumn),Integer) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'CustomerID' in table 'CustomerProducts' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableCustomerProducts.CustomerIDColumn) = value + End Set + End Property + + Public Property ProductID() As Integer + Get + Try + Return CType(Me(Me.tableCustomerProducts.ProductIDColumn),Integer) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'ProductID' in table 'CustomerProducts' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableCustomerProducts.ProductIDColumn) = value + End Set + End Property + + Public Property ProductsRow() As ProductsRow + Get + Return CType(Me.GetParentRow(Me.Table.ParentRelations("FK_CustomerProducts_Products")),ProductsRow) + End Get + Set + Me.SetParentRow(value, Me.Table.ParentRelations("FK_CustomerProducts_Products")) + End Set + End Property + + Public Property CustomersRow() As CustomersRow + Get + Return CType(Me.GetParentRow(Me.Table.ParentRelations("FK_CustomerProducts_Customers")),CustomersRow) + End Get + Set + Me.SetParentRow(value, Me.Table.ParentRelations("FK_CustomerProducts_Customers")) + End Set + End Property + + Public Function IsCustomerIDNull() As Boolean + Return Me.IsNull(Me.tableCustomerProducts.CustomerIDColumn) + End Function + + Public Sub SetCustomerIDNull() + Me(Me.tableCustomerProducts.CustomerIDColumn) = System.Convert.DBNull + End Sub + + Public Function IsProductIDNull() As Boolean + Return Me.IsNull(Me.tableCustomerProducts.ProductIDColumn) + End Function + + Public Sub SetProductIDNull() + Me(Me.tableCustomerProducts.ProductIDColumn) = System.Convert.DBNull + End Sub + End Class + + Public Class CustomersRowChangeEvent + Inherits System.EventArgs + + Private eventRow As CustomersRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As CustomersRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As CustomersRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class ProductsRowChangeEvent + Inherits System.EventArgs + + Private eventRow As ProductsRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As ProductsRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As ProductsRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class CustomerProductsRowChangeEvent + Inherits System.EventArgs + + Private eventRow As CustomerProductsRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As CustomerProductsRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As CustomerProductsRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class +End Class diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/CustProd.xsc b/Code/Chapter 8/VB.NET/CreateDataSet/CustProd.xsc new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/CustProd.xsd b/Code/Chapter 8/VB.NET/CreateDataSet/CustProd.xsd new file mode 100644 index 0000000..f102d91 --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/CustProd.xsd @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/CustProd.xss b/Code/Chapter 8/VB.NET/CreateDataSet/CustProd.xss new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/DataSetFiller.vb b/Code/Chapter 8/VB.NET/CreateDataSet/DataSetFiller.vb new file mode 100644 index 0000000..0c9ffa3 --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/DataSetFiller.vb @@ -0,0 +1,16 @@ +Imports System +Imports System.Data + +Public Class DataSetFiller + Public Shared Function FillDataset(ByVal xmlFile As String) As DataSet + Dim ds As New DataSet() + ds.ReadXml(xmlFile) + Return ds + End Function + + Public Shared Function FillStrongDataSet(ByVal xmlFile As String) As CustProd + Dim ds As New CustProd() + ds.ReadXml(xmlFile) + Return ds + End Function +End Class diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/My Project/AssemblyInfo.vb b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..7c656ad --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyApplication.myapp b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyApplication.myapp new file mode 100644 index 0000000..f5ae68a --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 1 + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyApplication.vb b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyResources.resx b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyResources.vb b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MySettings.settings b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MySettings.vb b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/bin/CreateDataSet.dll b/Code/Chapter 8/VB.NET/CreateDataSet/bin/CreateDataSet.dll new file mode 100644 index 0000000000000000000000000000000000000000..d4e6baec4587abb7ab8240d1fdb17dc732c03121 GIT binary patch literal 53248 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 J!cJEa{stO7MFju= literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/bin/CreateDataSet.xml b/Code/Chapter 8/VB.NET/CreateDataSet/bin/CreateDataSet.xml new file mode 100644 index 0000000..61f6c15 --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/bin/CreateDataSet.xml @@ -0,0 +1,11 @@ + + + + +CreateDataSet + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/obj/CreateDataSet.vbproj.FileList.txt b/Code/Chapter 8/VB.NET/CreateDataSet/obj/CreateDataSet.vbproj.FileList.txt new file mode 100644 index 0000000..16e0a33 --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/obj/CreateDataSet.vbproj.FileList.txt @@ -0,0 +1,9 @@ +bin\CreateDataSet.dll +bin\CreateDataSet.pdb +bin\CreateDataSet.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\CreateDataSet.MyResources.resources +obj\Debug\CreateDataSet.vbproj.GenerateResource.Cache +obj\Debug\CreateDataSet.dll +obj\Debug\CreateDataSet.xml +obj\Debug\CreateDataSet.pdb diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.MyResources.resources b/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 J!cJEa{stO7MFju= literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.vbproj.GenerateResource.Cache b/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..f420155bb1d67045d2eb3413e4a20b54871453a0 GIT binary patch literal 786 zcma)3O-sW-5KV1U`z6$ac+f);4?;_5m7e89~??HaCKHuo<*kvfUIL!sRw=sqEev z;68-Aa08))&{u#grDy>MdrAW?4h6!o3P&LMe^*)XBV&_XW+k0)nrcFqCC-w|_>Wtx zwjzHh$}XQL7{S=<8m*~4Ed#v+fme|jYM3<0(VZN_pQW=@P&zh3?g<`Z_H(m^t{LA5 z3%1InT_fSdnp-8o7C3RP?jc9Z#e84r7|?ODS;uwDg|uFWUtFsxnh$^Rzn*Sw^Sq@} znXu?GN%1Vb|*cK`6$sG?mu^qn?o}P#_nk&frdAgn5!Smzj7}WRW~h^U-~Jd3%1y J%yWvP`~eok>F@vm literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.xml b/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.xml new file mode 100644 index 0000000..61f6c15 --- /dev/null +++ b/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/CreateDataSet.xml @@ -0,0 +1,11 @@ + + + + +CreateDataSet + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/ResGen.cache b/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/ResGen.cache new file mode 100644 index 0000000000000000000000000000000000000000..8fda49f514eeb6c2527591f4fec5b65363d5d922 GIT binary patch literal 1316 zcmbVL&2G~`5Vj$9^H)d zd7K2&b2fzT>Y4H;DIG*%^^W5@m3h~7+?jGMk#VA^8d4G~A!o|#Nm~Y;XVl+_x)fI1 zZpEMT7yQ{-Z_X7JVS(xPPy**A=_eG{X@^3O!cIW?JO}3#>Fwn}lFlpgN%0No$+pn6 z8iZZ)a8(Z!b>c|%Ga2*xaPUD`G7Z_^sOi;+a$k`9hl)c@PDSwF(s%Ju| zi&y}n1Wh4JZVYA|<`T?hHWq}NJ=SMnXNRoRG|Qi^6W|K+Xod9T(T4P~Qqw-0kX4>K z;g>?kjmQi9fV_zlceEGiSlc}KQ8Rth6DSf-!2MwD|M>Ogy=kF?8^f#p7Y%EW{aZzG zkk&rnIi|s5F^Zo)FI1SpggmKE7`$=y`?s5^8-k^7Ow_pdb^jn55~gm9$@uti{1&3e IP&vNBAG=LxVgLXD literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/TempPE/CustProd.Designer.vb.dll b/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/TempPE/CustProd.Designer.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..46c4dad53ac4c4d09767e8e4fb829054cc559594 GIT binary patch literal 45056 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/TempPE/My Project.MyResources.vb.dll b/Code/Chapter 8/VB.NET/CreateDataSet/obj/Debug/TempPE/My Project.MyResources.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..9c69ec0ed4e89c2bf66c1a4008795e13909f9920 GIT binary patch literal 6656 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/EditData/EditData.vbproj b/Code/Chapter 8/VB.NET/EditData/EditData.vbproj new file mode 100644 index 0000000..91dff21 --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/EditData.vbproj @@ -0,0 +1,115 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {9799E017-C37A-4ABF-8515-7153211AA1AE} + WinExe + EditData.My.MyApplication + EditData + EditData + WindowsForms + + + true + full + true + true + true + bin\ + EditData.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + EditData.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + {21FDB488-AEA4-40A7-9F36-7107BB28BD42} + {F184B08F-C81C-45F6-A57F-5ABD9991F28F} + CreateDataSet + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/EditData/EditData.vbproj.user b/Code/Chapter 8/VB.NET/EditData/EditData.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/EditData.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/EditData/Form1.Designer.vb b/Code/Chapter 8/VB.NET/EditData/Form1.Designer.vb new file mode 100644 index 0000000..13f1ef2 --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/Form1.Designer.vb @@ -0,0 +1,212 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle3 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle4 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle5 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle6 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Me.btnClose = New System.Windows.Forms.Button + Me.btnSave = New System.Windows.Forms.Button + Me.btnCreate = New System.Windows.Forms.Button + Me.btnLoad = New System.Windows.Forms.Button + Me.label3 = New System.Windows.Forms.Label + Me.dgProducts = New System.Windows.Forms.DataGridView + Me.label2 = New System.Windows.Forms.Label + Me.dgCustomerProducts = New System.Windows.Forms.DataGridView + Me.label1 = New System.Windows.Forms.Label + Me.dgCustomers = New System.Windows.Forms.DataGridView + CType(Me.dgProducts, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgCustomerProducts, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgCustomers, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'btnClose + ' + Me.btnClose.Location = New System.Drawing.Point(2, 730) + Me.btnClose.Name = "btnClose" + Me.btnClose.TabIndex = 19 + Me.btnClose.Text = "Exit" + ' + 'btnSave + ' + Me.btnSave.Location = New System.Drawing.Point(378, 730) + Me.btnSave.Name = "btnSave" + Me.btnSave.TabIndex = 18 + Me.btnSave.Text = "Save XML" + ' + 'btnCreate + ' + Me.btnCreate.Location = New System.Drawing.Point(296, 730) + Me.btnCreate.Name = "btnCreate" + Me.btnCreate.TabIndex = 17 + Me.btnCreate.Text = "Create New" + ' + 'btnLoad + ' + Me.btnLoad.Location = New System.Drawing.Point(214, 730) + Me.btnLoad.Name = "btnLoad" + Me.btnLoad.TabIndex = 16 + Me.btnLoad.Text = "Load XML" + ' + 'label3 + ' + Me.label3.AutoSize = True + Me.label3.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.label3.Location = New System.Drawing.Point(4, 479) + Me.label3.Name = "label3" + Me.label3.Size = New System.Drawing.Size(69, 22) + Me.label3.TabIndex = 15 + Me.label3.Text = "Products" + ' + 'dgProducts + ' + Me.dgProducts.BackgroundColor = System.Drawing.Color.Gainsboro + DataGridViewCellStyle1.BackColor = System.Drawing.Color.DarkGreen + DataGridViewCellStyle1.Font = New System.Drawing.Font("Courier New", 9.0!) + DataGridViewCellStyle1.ForeColor = System.Drawing.Color.White + Me.dgProducts.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle1 + DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle2.BackColor = System.Drawing.Color.White + DataGridViewCellStyle2.Font = New System.Drawing.Font("Courier New", 9.0!) + DataGridViewCellStyle2.ForeColor = System.Drawing.Color.DarkSlateGray + DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.dgProducts.DefaultCellStyle = DataGridViewCellStyle2 + Me.dgProducts.Font = New System.Drawing.Font("Courier New", 9.0!) + Me.dgProducts.GridColor = System.Drawing.Color.DarkGray + Me.dgProducts.Location = New System.Drawing.Point(4, 508) + Me.dgProducts.Name = "dgProducts" + Me.dgProducts.RowHeadersDefaultCellStyle = DataGridViewCellStyle1 + Me.dgProducts.Size = New System.Drawing.Size(449, 200) + Me.dgProducts.TabIndex = 14 + ' + 'label2 + ' + Me.label2.AutoSize = True + Me.label2.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.label2.Location = New System.Drawing.Point(2, 239) + Me.label2.Name = "label2" + Me.label2.Size = New System.Drawing.Size(138, 22) + Me.label2.TabIndex = 13 + Me.label2.Text = "CustomerProducts" + ' + 'dgCustomerProducts + ' + Me.dgCustomerProducts.BackgroundColor = System.Drawing.Color.LightGoldenrodYellow + DataGridViewCellStyle3.BackColor = System.Drawing.Color.Maroon + DataGridViewCellStyle3.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle3.ForeColor = System.Drawing.Color.LightGoldenrodYellow + Me.dgCustomerProducts.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle3 + DataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle4.BackColor = System.Drawing.Color.White + DataGridViewCellStyle4.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle4.ForeColor = System.Drawing.Color.DarkSlateBlue + DataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.dgCustomerProducts.DefaultCellStyle = DataGridViewCellStyle4 + Me.dgCustomerProducts.Font = New System.Drawing.Font("Tahoma", 8.0!) + Me.dgCustomerProducts.GridColor = System.Drawing.Color.Peru + Me.dgCustomerProducts.Location = New System.Drawing.Point(2, 268) + Me.dgCustomerProducts.Name = "dgCustomerProducts" + Me.dgCustomerProducts.RowHeadersDefaultCellStyle = DataGridViewCellStyle3 + Me.dgCustomerProducts.Size = New System.Drawing.Size(451, 200) + Me.dgCustomerProducts.TabIndex = 12 + ' + 'label1 + ' + Me.label1.AutoSize = True + Me.label1.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.label1.Location = New System.Drawing.Point(2, 3) + Me.label1.Name = "label1" + Me.label1.Size = New System.Drawing.Size(83, 22) + Me.label1.TabIndex = 11 + Me.label1.Text = "Customers" + ' + 'dgCustomers + ' + Me.dgCustomers.BackgroundColor = System.Drawing.Color.Gainsboro + DataGridViewCellStyle5.BackColor = System.Drawing.Color.DarkGreen + DataGridViewCellStyle5.Font = New System.Drawing.Font("Courier New", 9.0!) + DataGridViewCellStyle5.ForeColor = System.Drawing.Color.White + Me.dgCustomers.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle5 + DataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle6.BackColor = System.Drawing.Color.White + DataGridViewCellStyle6.Font = New System.Drawing.Font("Courier New", 9.0!) + DataGridViewCellStyle6.ForeColor = System.Drawing.Color.DarkSlateGray + DataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.dgCustomers.DefaultCellStyle = DataGridViewCellStyle6 + Me.dgCustomers.Font = New System.Drawing.Font("Courier New", 9.0!) + Me.dgCustomers.GridColor = System.Drawing.Color.DarkGray + Me.dgCustomers.Location = New System.Drawing.Point(2, 32) + Me.dgCustomers.Name = "dgCustomers" + Me.dgCustomers.RowHeadersDefaultCellStyle = DataGridViewCellStyle5 + Me.dgCustomers.Size = New System.Drawing.Size(451, 200) + Me.dgCustomers.TabIndex = 10 + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(456, 756) + Me.Controls.Add(Me.btnClose) + Me.Controls.Add(Me.btnSave) + Me.Controls.Add(Me.btnCreate) + Me.Controls.Add(Me.btnLoad) + Me.Controls.Add(Me.label3) + Me.Controls.Add(Me.dgProducts) + Me.Controls.Add(Me.label2) + Me.Controls.Add(Me.dgCustomerProducts) + Me.Controls.Add(Me.label1) + Me.Controls.Add(Me.dgCustomers) + Me.Name = "Form1" + Me.Text = "Edit Data" + CType(Me.dgProducts, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgCustomerProducts, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgCustomers, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Private WithEvents btnClose As System.Windows.Forms.Button + Private WithEvents btnSave As System.Windows.Forms.Button + Private WithEvents btnCreate As System.Windows.Forms.Button + Private WithEvents btnLoad As System.Windows.Forms.Button + Private WithEvents label3 As System.Windows.Forms.Label + Private WithEvents dgProducts As System.Windows.Forms.DataGridView + Private WithEvents label2 As System.Windows.Forms.Label + Private WithEvents dgCustomerProducts As System.Windows.Forms.DataGridView + Private WithEvents label1 As System.Windows.Forms.Label + Private WithEvents dgCustomers As System.Windows.Forms.DataGridView + +End Class diff --git a/Code/Chapter 8/VB.NET/EditData/Form1.vb b/Code/Chapter 8/VB.NET/EditData/Form1.vb new file mode 100644 index 0000000..5d7b48b --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/Form1.vb @@ -0,0 +1,40 @@ +Imports CreateDataSet + +Public Class Form1 + + Private myDataSet As CustProd + + Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click + Dim dlg As OpenFileDialog = New OpenFileDialog() + dlg.Filter = "Xml Files (*.xml)|*.xml" + dlg.ShowDialog() + If dlg.FileName.Length > 0 Then + LoadXML(dlg.FileName) + End If + End Sub + Private Sub btnCreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCreate.Click + myDataSet = New CustProd() + dgCustomers.DataSource = myDataSet.Customers + dgCustomerProducts.DataSource = myDataSet.CustomerProducts + dgProducts.DataSource = myDataSet.Products + End Sub + Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click + Dim dlg As SaveFileDialog = New SaveFileDialog() + dlg.Filter = "Xml Files (*.xml)|*.xml" + dlg.ShowDialog() + If dlg.FileName.Length > 0 Then + myDataSet.WriteXml(dlg.FileName) + End If + End Sub + Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click + Me.Close() + End Sub + + Private Sub LoadXML(ByVal fileName As String) + myDataSet = New CustProd() + myDataSet.ReadXml(fileName) + dgCustomers.DataSource = myDataSet.Customers + dgCustomerProducts.DataSource = myDataSet.CustomerProducts + dgProducts.DataSource = myDataSet.Products + End Sub +End Class diff --git a/Code/Chapter 8/VB.NET/EditData/My Project/AssemblyInfo.vb b/Code/Chapter 8/VB.NET/EditData/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..719333c --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 8/VB.NET/EditData/My Project/MyApplication.myapp b/Code/Chapter 8/VB.NET/EditData/My Project/MyApplication.myapp new file mode 100644 index 0000000..312af8e --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + EditData.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 8/VB.NET/EditData/My Project/MyApplication.vb b/Code/Chapter 8/VB.NET/EditData/My Project/MyApplication.vb new file mode 100644 index 0000000..f416d13 --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/My Project/MyApplication.vb @@ -0,0 +1,28 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = False + Me.EnableVisualStyles = True + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/EditData/My Project/MyEvents.vb b/Code/Chapter 8/VB.NET/EditData/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/EditData/My Project/MyResources.resx b/Code/Chapter 8/VB.NET/EditData/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/EditData/My Project/MyResources.vb b/Code/Chapter 8/VB.NET/EditData/My Project/MyResources.vb new file mode 100644 index 0000000..5662adb --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("EditData.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 8/VB.NET/EditData/My Project/MySettings.settings b/Code/Chapter 8/VB.NET/EditData/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/EditData/My Project/MySettings.vb b/Code/Chapter 8/VB.NET/EditData/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 8/VB.NET/EditData/app.config b/Code/Chapter 8/VB.NET/EditData/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/EditData/bin/EditData.exe b/Code/Chapter 8/VB.NET/EditData/bin/EditData.exe new file mode 100644 index 0000000000000000000000000000000000000000..bea8632ff0c15b33b4f685715d8ccf7e0a15f0b4 GIT binary patch literal 36864 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 Nlp|1%z< + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/EditData/bin/EditData.pdb b/Code/Chapter 8/VB.NET/EditData/bin/EditData.pdb new file mode 100644 index 0000000000000000000000000000000000000000..5e68d19c853459412ed7e45fdb0033226cb473cb GIT binary patch literal 58880 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 b7HFrM9Ydq4aV_H(h+80Tfw%=CE%5&USrW1l literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/EditData/bin/EditData.vshost.exe b/Code/Chapter 8/VB.NET/EditData/bin/EditData.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/EditData/bin/EditData.xml b/Code/Chapter 8/VB.NET/EditData/bin/EditData.xml new file mode 100644 index 0000000..d5e3052 --- /dev/null +++ b/Code/Chapter 8/VB.NET/EditData/bin/EditData.xml @@ -0,0 +1,11 @@ + + + + +EditData + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/EditData/obj/Debug/EditData.MyResources.resources b/Code/Chapter 8/VB.NET/EditData/obj/Debug/EditData.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 b7HFrM9Ydq4aV_H(h+80Tfw%=CE%5&USrW1l literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/EditData/obj/Debug/EditData.vbproj.GenerateResource.Cache b/Code/Chapter 8/VB.NET/EditData/obj/Debug/EditData.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..5c903eef4e2b89ab5f8ce1b79f99370fc33c462e GIT binary patch literal 786 zcma)3O-sW-5KV1U+eV=t#6vw4@gTH>Rw;TZf-Qca1-}pvUbfi@uH9y3ClTW>@aV7d ze|Y!mS!arh)F4jaC7GRl^Jbota~$WLg5Ml-GX$3d6sSmmOd1sEPJ!Xi(pf5~92p^Z1rIU%x!F?BjBkYn zTV>Lok#KCyoswWnoH$btP@v^v@j~bX&~fs4$926@RT`y%7>bVhpvZycQS_j8vflxj1zO_X=YylC=5U#G^8c + + + +EditData + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/EditData/obj/Debug/ResGen.cache b/Code/Chapter 8/VB.NET/EditData/obj/Debug/ResGen.cache new file mode 100644 index 0000000000000000000000000000000000000000..bee97baf5a003ea6b81acb184f41cdec7fa3906c GIT binary patch literal 1542 zcmbVMOHUI~6rRy`=nE|B_iw>l)9wAQaLN(ph{n`R+O2dEPNh!!UO7p*KCLGYGFsye@?jjnH1~ zaNn~xnQE%(Oa-LkBFNpd9XmVcIJPsL$#?v)BOw<+CzQ;e&a8K8KCdrBcT+SW$km)| zW41Bhn3?fr9hPNLigdSc0DA+}GYAUMhQNcM&Ox0;?bg zJ}Ub;Q(Gac`Jkgj(Z{4HI-G?c5u#3XB&)=VU|x|?{X_dBN@D->qSa;+WQ?Me`Fn^U zsjLd~JD?~?G@6Xv=#$k_uk)W53y-LnL=quBL=ZzTDKKS6=Q;^}9;fpJLYgee&mw-J z)Xl6*@fPcLOI;kZ=tvx*jg#F;YdJKErx4PlKzi0NLM8veebPoN<(6J$s%sm|Zhnik zLy(!93vOO`;8qsx)u)>WG_n#{2n80hGK6l82S*v(^L^_aYA>L6b!oM*RxP`S8$((} z$y%^2WYc{|n||M!bLQRsK9To%^v)0DjXUUzZVQ4?r;$dX$Abw;w#|b#T4e-Pa)YU0 zleEMrN)!i@sPe!Q+sZBq*;1sHrs>lF;}-}n5{waCA{ZyQj1Z+^&m8u>=RecuH!y`O zqkjQ(JCgpvwO8W@x4KKefvE;UfYX~e#`{c#CE@V~2XE}y8SHQsDhro&*wpv%3MENv z`ze>4`u+Fo2Qx~w-0Gk0Q8l`{vHw}5dc#_KaSp@Kf`9jRCv^mq8l^i%yJ=ki_2YIH z1Dn)3P1DjD{OY$onwqI;S|Q`-hIL0 + + Debug + AnyCPU + 8.0.40607 + 2.0 + {478F47CC-E6D9-4C27-8805-2E7937632C70} + Exe + Exercise_8_1.Module1 + Exercise_8_1 + Exercise 8.1 + Windows + + + true + full + true + true + true + bin\ + Exercise 8.1.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 8.1.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + {21FDB488-AEA4-40A7-9F36-7107BB28BD42} + {F184B08F-C81C-45F6-A57F-5ABD9991F28F} + CreateDataSet + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/Exercise 8.1.vbproj.user b/Code/Chapter 8/VB.NET/Exercise 8.1/Exercise 8.1.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/Exercise 8.1.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/Module1.vb b/Code/Chapter 8/VB.NET/Exercise 8.1/Module1.vb new file mode 100644 index 0000000..a0cc4cc --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/Module1.vb @@ -0,0 +1,33 @@ +Imports System.Data +Imports CreateDataSet + +Module Module1 + Private dataFilePath As String = "..\..\..\..\Data.Xml" + Sub Main() + ' Base DataTable + Dim myTable As DataTable = DataSetFiller.FillDataset(dataFilePath).Tables(0) + ' Set Primary Key + myTable.PrimaryKey = New DataColumn() _ + {myTable.Columns("CustomerID")} + + Dim dr As DataRow = myTable.Rows.Find("2") + If dr IsNot Nothing Then + Console.WriteLine("Find a row using a base DataSet") + ShowDataRow(dr) + End If + + ' Strongly typed DataSet + Dim myStrongDataTable As CustProd.CustomersDataTable = DataSetFiller.FillStrongDataSet(dataFilePath).Customers + Dim cr As CustProd.CustomersRow = myStrongDataTable.FindByCustomerID(2) + If cr IsNot Nothing Then + Console.WriteLine("Find a row using a strongly typed DataSet") + Console.WriteLine(cr.CustomerID & " " & cr.FirstName & " " & cr.LastName) + End If + End Sub + Sub ShowDataRow(ByVal dr As DataRow) + For Each dc As DataColumn In dr.Table.Columns + Console.Write(dr(dc) & " ") + Next + Console.WriteLine("") + End Sub +End Module diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/AssemblyInfo.vb b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..b07baa6 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyApplication.myapp b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyApplication.vb b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyResources.resx b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyResources.vb b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MySettings.settings b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MySettings.vb b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/app.config b/Code/Chapter 8/VB.NET/Exercise 8.1/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.exe b/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..c67e946e14215628b628d248f7d45bd66cdd7ee8 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.exe.config b/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.pdb b/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ce3c39269c63197b84866a8381a1c225d604aa4c GIT binary patch literal 40448 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.vshost.exe b/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.vshost.exe.config b/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.xml b/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.xml new file mode 100644 index 0000000..0156346 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/bin/Exercise 8.1.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.1 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.exe b/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..c67e946e14215628b628d248f7d45bd66cdd7ee8 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.pdb b/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ce3c39269c63197b84866a8381a1c225d604aa4c GIT binary patch literal 40448 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.vbproj.GenerateResource.Cache b/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..7471a8357cb4715a4cf18bcb23590bfff63da297 GIT binary patch literal 786 zcma)3O-sW-5KV2cjk_*#^u-$8}2OGg=&}zwzrdSs)w^>PL_s#(K zA>4%_gc3qu0kV{m1-#l*8nD(A2*)bygXI5RWx&u~bizrhFtJ=p6{WjYLnwxIvEYsE?sy$-*)mQyqz{^EZ*-P-1P%jF7T z$z{kBRQZb!@~nBjo773t9nF5-O~^76TOZIPmqt}C=gLx%z-4HqJM-J>RZ5L*=FL^~ zx64@jb}?bsR|A4j3}AjDuLVY3BUPY4&P|-bNMVF|k~WhWdsJePJkHJHTk`z+^q86D H6i4L)9%|}f literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.xml b/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.xml new file mode 100644 index 0000000..0156346 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise 8.1.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.1 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise_8_1.MyResources.resources b/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Debug/Exercise_8_1.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYo#H$dXc#h z``k4*m~6|bQUiqa!=Q54w9N9XWtrAg$&Psx3#bGTM}qOG(puc)erpMmjj#JD z8E?*;o_1#}R%RM`y3^NzxeoFf1Xbul;6l*yL7qotLx9{`^f}0!01pJdfE;Zy3Cn)a z2A7_yzJOK~iX@X!C;F53(o&MAR3lX*4I_iMoJQAEm{OJnw>Oh(^+ZO{G3}6Zj1}uB z&F4&RN36*q^`fDTN?uZTI$km)`mZ5r<(5O{E;7o0;Gji$tiK(0x=et`l9#&w0Wv6* zdV}#8BstNve0ID~R4;msf4!W4Ov&W(2*vdWH(kz zN^2r~i+MY>1lt_O0-I=JXLpJz9V!_Ggd#BzpFW7tupc;2x~L_c+N;v$>iUvnZ?kR$ zqI6^4u|pS}#)7%>bmLHrQUNT2DvMYhBB$vG$0erAxqbn;=aGB!#Y%N`v+f*C3~?
    wef9xh-)8$0PC1X$>? z6LQXER100-^T8cC@di7-jHHfpHK?X5GfF|yguNO6ll=Vs<)f-m8aMk#dz_87Ec-8t zLa$qW-_Ma7n#EmrZ{i1eP^m^~v1p8x>)*fKDwCM1mWpXUl>57%=Tb4%F%?tO760nj XeQm02Dy9}HpB@e0ChZ|gh)(`54!(@v literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Exercise 8.1.vbproj.FileList.txt b/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Exercise 8.1.vbproj.FileList.txt new file mode 100644 index 0000000..510e2cf --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.1/obj/Exercise 8.1.vbproj.FileList.txt @@ -0,0 +1,13 @@ +bin\Exercise 8.1.exe.config +bin\Exercise 8.1.exe +bin\Exercise 8.1.pdb +bin\Exercise 8.1.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_1.MyResources.resources +obj\Debug\Exercise 8.1.vbproj.GenerateResource.Cache +obj\Debug\Exercise 8.1.exe +obj\Debug\Exercise 8.1.xml +obj\Debug\Exercise 8.1.pdb +bin\CreateDataSet.dll +bin\CreateDataSet.pdb +bin\CreateDataSet.xml diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/Exercise 8.2.vbproj b/Code/Chapter 8/VB.NET/Exercise 8.2/Exercise 8.2.vbproj new file mode 100644 index 0000000..f1e5f2c --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/Exercise 8.2.vbproj @@ -0,0 +1,105 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {B69C5C43-FEA0-4D57-B2C7-14ECBAEC185C} + Exe + Exercise_8_2.Module1 + Exercise_8_2 + Exercise 8.2 + Windows + + + true + full + true + true + true + bin\ + Exercise 8.2.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 8.2.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + {21FDB488-AEA4-40A7-9F36-7107BB28BD42} + {F184B08F-C81C-45F6-A57F-5ABD9991F28F} + CreateDataSet + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/Exercise 8.2.vbproj.user b/Code/Chapter 8/VB.NET/Exercise 8.2/Exercise 8.2.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/Exercise 8.2.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/Module1.vb b/Code/Chapter 8/VB.NET/Exercise 8.2/Module1.vb new file mode 100644 index 0000000..f54aa1f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/Module1.vb @@ -0,0 +1,21 @@ +Imports System.Data +Imports CreateDataSet + +Module Module1 + Private dataFilePath As String = "..\..\..\..\Data.Xml" + Sub Main() + Dim myTable As DataTable = DataSetFiller.FillDataset(dataFilePath).Tables(0) + Dim drs() As DataRow = myTable.Select("FirstName Like 'Jo%'") + If drs IsNot Nothing Then + For Each dr As DataRow In drs + ShowDataRow(dr) + Next + End If + End Sub + Sub ShowDataRow(ByVal dr As DataRow) + For Each dc As DataColumn In dr.Table.Columns + Console.Write(dr(dc) & " ") + Next + Console.WriteLine("") + End Sub +End Module diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/AssemblyInfo.vb b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..a89f157 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyApplication.myapp b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyApplication.vb b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyResources.resx b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyResources.vb b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MySettings.settings b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MySettings.vb b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/app.config b/Code/Chapter 8/VB.NET/Exercise 8.2/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.exe b/Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..20a591b4abc259906926e550a3a050f9f0f92872 GIT binary patch literal 24576 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.pdb b/Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..4bc5838069f81aef3825d14ad46d08d208bcafe1 GIT binary patch literal 40448 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 NoEC6eV9HwH{{avFhWP*h literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.vshost.exe b/Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.xml b/Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.xml new file mode 100644 index 0000000..ead0d46 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.2/bin/Exercise 8.2.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.2 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/Exercise 8.2.exe b/Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/Exercise 8.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..20a591b4abc259906926e550a3a050f9f0f92872 GIT binary patch literal 24576 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 NoEC6eV9HwH{{avFhWP*h literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/Exercise 8.2.vbproj.GenerateResource.Cache b/Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/Exercise 8.2.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..8cbe2f595730861b4c360d4e492402bb6623cc6b GIT binary patch literal 786 zcma)3O-sW-5KV1U`=L+|;z18ZJP4N1Dn&0vu%Z?%R4d}a%Qic~wcD)hBx3vp{xbiF zR}Wr1>rBxiZ4f8$lFZJ&c{9(+IF9p4!EcU*IfCo1@~uG=MBYKHwDc|o4zX6f0*lIo zt!=N)Pp#UHbrf4@g%C$p=vuWG547@6A-Oa|2wQ{tPS6Z?gGNI(>taW^+-5VC-Mauh zhVT&XA(RmM3Xr7~E#UQ$(ts-ifpDh6AxQo|R2KZm*d&)(PbZwF8q;Nov*a@V;})x3 zkiQgV*ZK)YF!I_)Yidu+K<`B0Z6pR7#tm|GC&%z-={yyb&Ww;pf`^#@-fW?5M)$&k ztuSfZNa$Jfpd{D=C;I9Mar}OJDUBbn~-HDwmzUoEE4oqrwRDByBM>_Nd4rd7Ss#QRnsJ + + + +Exercise8.2 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/Exercise_8_2.MyResources.resources b/Code/Chapter 8/VB.NET/Exercise 8.2/obj/Debug/Exercise_8_2.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYo#4;wZ_YjEcm7vV6-C*@Lti?D3kYv(eoKTh^dfUU z_PJ|rFxi%qr3MJ;he73mX_@62%QCIWk{$CX7ElQwjs)YArM0-p{nipB8(|xQO4BNP z)84E%HRVoQtjsj>bic0ya~;B$~U0Uii^0Xf=a5|;g- z4K6)ZeF3c~6iFtdj`t_;rKKd#s79(r8b$_hIgPGoFr_RDZf_WPe?W7;9-7%SFM zny;ALj#!gJ>P15vmAs_xbi8CpbgCg~<(5O{E-=b};Gji$tiK(0x=et`l9#&w5i%&0 zdV}#8BstNveD+qKs1|#Tf4`o4M#<#z2*vdWH(kz zN^2r~hj}}-1lt_O0-I=JXLpJz9V!_Ggd#BzpFW7tupc|myQn3d+MCkm>iUvnZ?kR$ zqI7%Cu|pS}#=N=mV&hPZQUNT2DvMYhBB$vG$0erAxqb<`=a74IaizMtS$B>mhPW04 z>%fOlw4L`f=?|?LYt}ia6IowI>nG>3-s + + Debug + AnyCPU + 8.0.40607 + 2.0 + {A4B26018-FE2B-48F8-AD9A-0857A99EEB4F} + Exe + Exercise_8_3.Module1 + Exercise_8_3 + Exercise 8.3 + Windows + + + true + full + true + true + true + bin\ + Exercise 8.3.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 8.3.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + {21FDB488-AEA4-40A7-9F36-7107BB28BD42} + {F184B08F-C81C-45F6-A57F-5ABD9991F28F} + CreateDataSet + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/Exercise 8.3.vbproj.user b/Code/Chapter 8/VB.NET/Exercise 8.3/Exercise 8.3.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/Exercise 8.3.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/Module1.vb b/Code/Chapter 8/VB.NET/Exercise 8.3/Module1.vb new file mode 100644 index 0000000..ef0a00e --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/Module1.vb @@ -0,0 +1,22 @@ +Imports System.Data +Imports CreateDataSet + +Module Module1 + Private dataFilePath As String = "..\..\..\..\Data.Xml" + + Sub Main() + Dim myTable As DataTable = DataSetFiller.FillDataset(dataFilePath).Tables(0) + Dim drs() As DataRow = myTable.Select("LastName Like '%OfJungle'", "FirstName ASC") + If drs IsNot Nothing Then + For Each dr As DataRow In drs + ShowDataRow(dr) + Next + End If + End Sub + Sub ShowDataRow(ByVal dr As DataRow) + For Each dc As DataColumn In dr.Table.Columns + Console.Write(dr(dc) & " ") + Next + Console.WriteLine("") + End Sub +End Module diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/AssemblyInfo.vb b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..4fa5b80 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyApplication.myapp b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyApplication.vb b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyResources.resx b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyResources.vb b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MySettings.settings b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MySettings.vb b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/app.config b/Code/Chapter 8/VB.NET/Exercise 8.3/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.exe b/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..f0408435eee381ec963c20f23466dc3b680ab700 GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.exe.config b/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.pdb b/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..730b07c17e7e83bbf39bcd52c6a956658e634531 GIT binary patch literal 40448 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 VTEJ-mrv;oAa9Y4=fpKer{|7GYp*sKo literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.vshost.exe b/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.xml b/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.xml new file mode 100644 index 0000000..8b8c6f0 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/bin/Exercise 8.3.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.3 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise 8.3.exe b/Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise 8.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..f0408435eee381ec963c20f23466dc3b680ab700 GIT binary patch literal 24576 zcmeHPdvILUdH>G2yLVTzEVL^>v23ofFfx`FNtUq<2K2NnYRQfz+aaSwUahXAh26dD zdv|RM2C`r};4vk*Lo#uamRCtr`hZMH^Q2V=*T_8@6Q6heIeeWI@+<UHk)>gylu_c$*hq|=5kiSm^2N$m^0Ejqkr$Hk+r7G#L}g;&0f{} z28i~E5ZyeM>GNAVPxWGnh!Po)w7b&8bx4`-Mr2|jX>k2UPWjI%J%R{12lNZw0;708 zEvuEykFF&;#JR($5=~wZN?UgB^n(V2sIs~!_}vv{69w~l0esgQ5a|5=AXg3s zyh=Dz$wHFok6GG{$bD%?tO(si^9kFrQ;?}X97cxix)CcvHzWz$%vdl~eJVl8cKZ-3 zLN`%w1sh}o1OfyC1OfyC1OfyC1OfyC1OfyC1Ofy;1PCkFI+x>T8qijLZTB57?pKJ+x%#%(8xe|0C2lvIbCCRxO&hc%!gA%nR+^vUD zs0b;F(pjJmuR=g(~!?AGd6?$W6#nR2OSg7W6bx}rBr<#>NUP?8w&;wt6FT_S| zKU33$*1-28XbXcC1Blk;+|ULln0&QMHaADCE08Iy#k8!Ix`lq$+P905P}8mimy`_a2v2!j2N|COr~{8`;16aF`-3TS{he&>PS*}LuFx68mFgw7emzbV zmYr;Q4%I1Z&rJ`5tElc8wG_lNFnIZUZ~ZN11)WCBjLta)Gn?3NI#$t6nNB&k-%L)K zcB_$fQkI=bPqrEdP1{LZx$8Ri5jKG3!<{ zcm3qHZON^vt=Dwy*wSUTZ{M-u!p4fZLON^ut&f@o%;<91*VE7c*yrBSn|g)Xz1(M9 zN7;$3?b|xHv2~a-pgRHlhC7MAg!FCBj~487ZpLAYM=%5Dk#0CJN{6u#@Z+%!g9nEC zk>km#V9z5+s}Zp~(DjHr5nBLY|R2y(GT{ z`i}g$j8jtEgI(jVw9kTmN6}wv=QN$xg_eYLx(>9KZVQcq{$Z#Q!~UJnlaRj~ItO}b zxD&1109s3j!i{LdV`5Pl`5uK(Z2S9IE^nu8d(Bt$NR+CO&j<7$kDEgMN ztc$WImqxkNRz>$InpX5~MIQ!b)LiWR8L^4BVI+KR5L^v79>WIO4{j+qjlw82j_&z6XR9ftm0y;y2VQ99#ULmbWp4T z_q4}lMGLs^d)#NlR&Z~6+%uvVTxdNZ?2_+@6u4%O)8s7B*r~V^v`l8eebm!6$s^$M zii^<|@;JCJC{9qHECIJ~DbDpeMBi1M7Cj_SVYa_prHfw9t-E~)(JIBQpoip2Sl;7t ze<{BJZW%Umq7~7&_9RB*u*YrGo&tB=<2toxz}=%bw@#ftt2oyeo&LnLd_d#%!owzb z(COL=`gN7RL94-tH_}HyU!^4IKT%pqVu~J7v{}(sMY|N;>B+gbt;DoT(VdFUDeYZ~ zo&?<{PScX`-C{Mij1=|<#(fjDhCc-fL(!ocl|!OT0|p_6cY`R`{jDU?QWvoku!1!T6tJ@h-_pf4XGA)h!c?$a)&qx+5^ky z_s=4cb6bY@$;%B@*; zbMaG1UKHCPc|&PGFa92q$Hh-T{~F6RLEjWhL0=;-`y6b#X$$J?rbfv6Ji3N{0sl|Y zPH|YZn8Fe27nD-kG~`85Ql(BP`3X9K8cxvdpeLc-CmvDSN9mW4JW6kXK91e^Sx|0e zUTL3G`R9};FChPnJg?+$sCxcINl377B)F7@7NpPww^Ab*2SaHMrR`SvZk0c*@`qKv zr1Fm_IfseDR4 zD-UZ^+N_q*@|vR^)y~ju$lazrNO|o}?F3|Zg1=Wg1^OxNF-RZ7uJ=6B5LS_{_DP)Y z)RkUVOr zgkvc}wcQ!TR?9k7<<%{m=gYMUEdLSO3!^VOBA*)SXgjKCfVZ6TfqlEYnw}6>(?+-I zox|2tF=O69{<(>U(<$3>tm#7HVA?4rGrdVCouc8no_rpMrDOp|DjGO$+Nrc-PHdmp zk{F(Yw$IAuiv`n0cAstCVx|hn9Wp0JP5WpX=QJ9dwQ)ilO-`G8Cs_@vqiLMj4tJ32 zLPu4tDD9uJoGJyHE1&rsSm6v-P^YGg`kkooy6j4Y44pG6kt$el{9^r1^qa2x<^H*6 zLUKESqN?nSS(qqWWXsv=o)TMCv`ty&7TFwdfFT>IOjad}OjuiqY<8jw=|$F+4OW&K zID)Zt$f7~Busi9@_Th~D$~X?A;6u<)$rV=M zW2W}n)-fkJnK63`xM7&Ys#~lW14x@LOmB>M}F(&MF<~rQ%QTuUHl8hQJv|^Mv~bJ z-Q#)|5J~i#PI@LsyUk1mq-kQ;Ic>kn5cGl%FcD@Ys*U>vg3SQf+9QFDa9dKq$eE`^h~iMb|w(mAZ2 zu^t!q1z7zFWlnpeNGEMc!+@$0G~M z!D6~%_4uY^HlC|wllH9(hQ6xL%Fo&9nc2dHDqP*Cim8hzlw-MzxP+CQveWtM#p1U# zmM&Cnci!>C*q+!@J{&NUFppz1tUjFho4JE;j=YCPI0$V@Py%- ziPtqln?y;I^02h%7UWWBCFix$3=f8B4$lKjSX!vxhMw~rUOn`c_K*GZE8Tzbi8sza zdgzgp6#eRL;|EuFoj)0U`o@V*#$K(x7VQWPP2nIIuZ!r*d8`66vfX{ShbLKVuwGc;w+xtn>ss z7KJLJd_#sGOA@W)SuiG79I}&n97hI@r%bh1V3WmZNbpc}_)}pMo+O#m9qneSeX=bz zHNB;+YdV!|OKzFGrmb_!q`9NLYsYlgR2LrT2#S?=F{9fsI@{Z~;)#%;y2@Pyi&l@< zAx05nh|8odrOw=PO~=48PGC$#PUjGd^e(>X^us!Szh(Gbb?U$Ss+Qs=!iEp(Fs$y) zOfxZ+;pfKqLiP$Wx>YV90RjO60RkTe1pIIB`J!+)VpBIF-ahUh?H@hb@%p(RBwic& zbltb*A03}~m@f_k*N*q(ai(*O-el_5V%{0wH8j$*$7nN#=Zs#Jf)_CcylxXI)Jx9qxgPoFWyB>ARVDy$a8o$^wxW>KYrzIdZW_1-}(9)PelF5 z2-KRynH;E&tkKb2vSlq8l47(JD)nykWxfsXos!R{YgGVHb5zPPr1G9-oYGDKxm&2Nd z6#)yLH$1wsSX13BPvUuC%GLj3mlVdUkPhYI=7_bbEmSg4hu`?ns=DtExlW4e|8@1lnK zBb9CPJm+hcf#}ckdE_r1N<6uFV!H__vcJ_lk9gD7Lv3)ca^~&-ak|?bzQH~2una!$ zRy+?cs{${zQkCQbFoM^p8yOu*hS8u<;wz=3h6b18>m*;-gAgDPAP^uBAP^uBAn+kY y05^nn=vuq?cK|-5y$re)AP^uBAP^uBAP^uBAP^uBAP^uBAP^uBAn^Yhf&T>1ab;xy literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise 8.3.pdb b/Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise 8.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..730b07c17e7e83bbf39bcd52c6a956658e634531 GIT binary patch literal 40448 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 VTEJ-mrv;oAa9Y4=fpKer{|7GYp*sKo literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise 8.3.vbproj.GenerateResource.Cache b/Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise 8.3.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..8a10869ecfba0d7850e287e5e89f6b638080ae4a GIT binary patch literal 786 zcma)3O-sW-5KV1U`=L+|(t{p~cn~b1Rf=AUV8su#;1}w_%Qic~wcD)hB+~c`{2TgX z{3BjHc=4<=MMY{5C-9QY&c1mw&&fEB^G?BUj;RTPi>~smK@&vYW~{XIP6hU{UONMe z%7pC|ufb2f)`@i#TWE(6M^@;1?J(|XODS5wi*2O=t382mpu#>#{@+p-{K(iOmsv + + + +Exercise8.3 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise_8_3.MyResources.resources b/Code/Chapter 8/VB.NET/Exercise 8.3/obj/Debug/Exercise_8_3.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYo#kt?Q(CY)KB1d z@JYXkFTR=JCoslWAAIo{&nXClEQW9&e!V&OoZtChMO74K4-b9mNd ze$WD!p31&}W)zAzl~Tw1llRh6lBZN7RU-)_g}01G*Hf5MmN~aKlWWyjM$k6xkaLU` z>nP3VOm0W4!6EUYp^Zvj5_dXYQY8AXA!%h+Lgp?q%75UXMOm!B9kx46fJl>V&1Vs7o6IHx%zbTP>fOmEP^tNSQR3t;RnYhrpvj00lDXqyS}tqUaMD~qlqD| zMZwzeHWV%A4NdwzYu1``4(deK7t#9RnXI?kJn^4L2K!75IK@1S+Ym$v(GU`q&PId< zB8oh9iwbTG6I>#=OfW)l1wo^}Odpk~=a&hJ%j)Y zJ$6FQnT#r->w7-9BPZTq$Cr`Rajpi{WMxJvNSd(UAM2lf{`vA=)hLad{i8k3Mq8Ht z7e%hut-kN)$PLZnuDdt>gFL8Iqoi0gM#}Z?-)`xlJ6jd=h7 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.3/obj/Exercise 8.3.vbproj.FileList.txt b/Code/Chapter 8/VB.NET/Exercise 8.3/obj/Exercise 8.3.vbproj.FileList.txt new file mode 100644 index 0000000..e59dce8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.3/obj/Exercise 8.3.vbproj.FileList.txt @@ -0,0 +1,13 @@ +bin\Exercise 8.3.exe.config +bin\Exercise 8.3.exe +bin\Exercise 8.3.pdb +bin\Exercise 8.3.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_3.MyResources.resources +obj\Debug\Exercise 8.3.vbproj.GenerateResource.Cache +obj\Debug\Exercise 8.3.exe +obj\Debug\Exercise 8.3.xml +obj\Debug\Exercise 8.3.pdb +bin\CreateDataSet.dll +bin\CreateDataSet.pdb +bin\CreateDataSet.xml diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/Exercise 8.4.vbproj b/Code/Chapter 8/VB.NET/Exercise 8.4/Exercise 8.4.vbproj new file mode 100644 index 0000000..9985b19 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/Exercise 8.4.vbproj @@ -0,0 +1,105 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {2F5FEB55-FFD6-40D9-A6B4-8674F231029C} + Exe + Exercise_8_4.Module1 + Exercise_8_4 + Exercise 8.4 + Windows + + + true + full + true + true + true + bin\ + Exercise 8.4.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 8.4.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + {21FDB488-AEA4-40A7-9F36-7107BB28BD42} + {F184B08F-C81C-45F6-A57F-5ABD9991F28F} + CreateDataSet + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/Exercise 8.4.vbproj.user b/Code/Chapter 8/VB.NET/Exercise 8.4/Exercise 8.4.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/Exercise 8.4.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/Module1.vb b/Code/Chapter 8/VB.NET/Exercise 8.4/Module1.vb new file mode 100644 index 0000000..e9f7302 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/Module1.vb @@ -0,0 +1,30 @@ +Imports System.Data +Imports CreateDataSet + +Module Module1 + Private dataFilePath As String = "..\..\..\..\Data.Xml" + + Sub Main() + Dim myTable As DataTable = DataSetFiller.FillDataset(dataFilePath).Tables(0) + myTable.PrimaryKey = New DataColumn() _ + {myTable.Columns("CustomerID")} + + myTable.AcceptChanges() + Dim janeRow As DataRow = myTable.Rows.Find("5") + janeRow("LastName") = "QueenOfJungle" + Dim drs() As DataRow = myTable.Select("", "", DataViewRowState.ModifiedOriginal) + If Not drs Is Nothing Then + Dim dr As DataRow + For Each dr In drs + ShowDataRow(dr) + Next + End If + End Sub + Sub ShowDataRow(ByVal dr As DataRow) + Dim dc As DataColumn + For Each dc In dr.Table.Columns + Console.Write(dr(dc) & " ") + Next + Console.WriteLine("") + End Sub +End Module diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/AssemblyInfo.vb b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..50b2879 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyApplication.myapp b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyApplication.vb b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyResources.resx b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyResources.vb b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MySettings.settings b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MySettings.vb b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/app.config b/Code/Chapter 8/VB.NET/Exercise 8.4/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.exe b/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..5d46bdfc94f89420ff1c9b8c8e61b30bfcdd98c8 GIT binary patch literal 24576 zcmeHPeUKc*b$>mxJG)w)7VVxs(Mil9p`6fZxjRlD2!ZcYrz1K^=njdvu5#Mj9o-G= z?yP2ZB^|_gW$ZE(*p_07vM}Z=fy5#NQjoH2133p(FySM_DF}`gN)C1vwo-8=Au(VV zm4x1?u=k z--^>yb6##fDYn1dJThrIdeOEf>~vnwqzeVBq>mfAT`uTmLGRl+tmmz)k(xIzw#qZT ztDk7Q2+=1;a=m_QXDBY_iYSo|Nt-K8ZNZuOE*wmBoaVcJBPadmGd+LpA4|3I{ z!>g2&O_$O{_p!7K2lu57M@{M?noik{oqVhO?8#xOFWuGcga=BeN zYEltGN%HfznBtwR&gaYI&oMyGIJ z(R=6=wFUWDOQWwP=?~v8Yf|5`z}NV`pl1ns6}6R?g|#}agTBIM3lQ~vR7i&$J%{{G zbZ*7(L^Ym9MQ8(SM)8zv>TR>;1(egT^VsY&`^A^N*aJHph*cL@wL(v58jt%h9y zh5lU#>74+eY8zG7R#+-k5=nP_{Q4a>nlDz+MIHg}bC{mQ8GV2~7PqWGb?YLKMV1cQ z5MBHQSQL$+L}*deYKF*O3mewO$UQ`fkhKySidu*uJ|VDTb~hJ*pRu_SyB~RbFAIJ{ zmarWbFu6##S|EyPfM(GLqA`+)v|g$;YKt1fYZoN6MEIV0b9jI>N`x1`-WbLyp?&ci zAB4E%x;MFJ%YerL_>TZcU|_5@uqS=A(7V{&wW}f)oQ;*Z2QfvnTEW<5wB51}xt0_N zQN+3o=Z5II@6nqpB4zYIxE?h`TN_;7!m}8ZJT3ihX_pM+Cjgv+U*A>&Za@kCT#XEZ z4tOGBLa+ogtL-T?`YOW24Ib-qm~c8l=C-V7Ymo{UcB^>f#&L&nrVFGkR1LX`)udFI z;{n|2@W{$guE0Mj!`$4!CRxw;Tn8I?`~!awjqDG?@Tyz5v^xbha^V`CPHa@GaOpRb zR8w*jmplz~vb5)>hry-Put82Q@e~TY@|Qn*7Li8BaO8%koRX1G?KT{%Y-bFon%ixp zvxeQO=bemY=gjd|eUD)~rd7DABh|*gR=u~JE0t~Is)A82+38%XzN#rd{2A{EvO^8NQ}R$Q99j zZg!BJSl_m>0|4==kpnFP_?5RH5OCfFfL0EdY_l+dXeMgKf^rh)mDdf^kC5j_ZYu|_ z8|=gR9q^|xQ&;xnta0$1;D*?{@S!<#Fu?S_xSYK881caC29F>u#eo%vdU5a)j)27= zyU!fC4BU_&a~Z~)yM|`undrhfEMrUmMlXV{!Shy)t`Hp}M#sd9m{=Dm9U@K-E5{X$ zURIt4eP8*plBBe{9V^ivt6u?qUeb5e)2c=*LUThJT?rban?l2&zZ+`Aus#C!>2=WdOdtxiPIU-Mf6_yY&cF4jU~$@?UnS1 zq$fZ%dQJOtEly{VkC7f3Mk`w)+{&<|2PC~a^4W++&qV$R^m~&2I5Ic%D7}Z7rBO7> zzO_iYHOeJ3QTFP9%-<>LA4oba>Gvi5cTh&q#nF$BHM9|<;&TJw=78hzoKL&K%>$=W z7?nm*cOJ?{C3l0zVZc%HbMyu1u((O{_s}EYB81BhbkopX0;`LuokoNX`YEvv^nS4! z^pqGttqJ8Q=;xK=pntDmDJD&Q1awM01$spNF749MAZbg&q7fdA)^U@PODyRUi=n$q za*fdeu?*Z39+wv_;9l~$yTy8NZ+qNRq6b{4nUJajVtG!M)^h9qLoy-jJMYQ=@;Boa>85?|LP_ zsPf$5VG}&)w7G_UQ|7N$=U~Je=~~d&C=L1}GNmLT=>bVsN!luDr=(jvIrp}en089K zMbas$JtFDtpc}<8nj8L%Sc>H%gSCQjUqh|oFG0dMKS!;pMW2kCKS91- z`KFYAN7C=p1=<$nhjf|Nqx^(6YXiy)biFpD{4?^qk6LEMPK9umyI|ke(EX9`C|AIf=ap`8DzcacrB{RE?@(({oB_QSCC@5p(0@@(S?d7kMlmJn z5lL^C^q8c_C4ErRuS=@aN>aocx`VPJMRS!6N{W^#2h|jCWBLOz2lN+W475>dUlcz_ znZLngPSIPU1@x>~5BdY*y8kLRC|z_pY<5v2WW63;Mn8rBchDBGPqvuBHtwgCky;b- zvZ%;fw@Ue~bSo^}N;iYv4(%@SfYd%nXCZlz-U9tStlrOnax2qP`<%=_Cp~!q`P0f7 zDSu1a`H7T}VBbh^Efp;&LKWP~9Kkr~QmadCm&|v`{63lAC-W7Ve?Zb{DVdh}Gm?_R zmPwHaC|?$6OJ&O|MT=O6Ys}}x9pY~BRdGT*A=WB4D<_q|QvMcKm)q1k)uZZNxT<_r zy-z((40D3RF*7tY)m?=4oWAXs|$@M=W;}OT8Gmk})`CX!vYD!$Uvh6XbH=W8X_AK0W`VrzdLO_2X0qElM8lKTAwQqB{US4A z;^&6ah4chq9J38)Xrfwh09)*I&b-MDVebZFu(02f1wCG3Kid#@$JaYGdAB3J#&fyX zD(p8W%C_4~4g7wj%9zWKxs~%{!&8NfJ7%(NS6sD~FIokoP{I^3a@3zS5ve`4b;wDN z=Zx+WZZgI(>t-v40kh%b!vouAb%%$TX|2? zohg|I)4X`NQ=}TtLsJ8`RW9~gxg3@{teC&jtHA;mO{-XS3jM>fYu1f!?cA9$m8i%0r!rNeM zXQJGP+M&VzLOIVNj)CE+>p~%sE~I7uW}1_e5ko(#N^jY=G3{t4LWAu%glUb7pHaZ! z%~nVp3mEUUP0Y3->!7iNKk6BD7ep6+cWrcwY&Q#-lq22laL$aDAE(BCFIcGCag6+U zZc2JzWxR53bzJhiODYW+dCQ*aN!zxGp&YUbyhu<#2NtfJCPq?Da~hfwmC6bI#-2FL$;hbk3u?DIFCzMATqXDte=B^OCx5fZWZ-*HTtGhXLZlPOv*Tn zHMV}w<6k2jd{X5-zv2znniQVJjN+J0`*62c!jYouDbLT07WQKI=s;$HH^|1l0iFn{ zc*>L5j&iKofivr9*|jKZ;8(!cYWwLLa0Qxx73i?L)`_lMg&Jw-3@XBwMK>UqfsKM^ zV-;E+qA5IwFi_Hh1si(Kb9(vU(&z5q*4+E-U;q4B^YxcjQ1lx&jqX|6dFJ-$6Q3CS zbmFzxX0#$yG>464vLT`^OfC`024rq&%okz>9+^hkgb?#r@T~;YjillZGt`2NqQ&uqMI@K1T5>s#W^QLWlV&Mz zX4}h|G()>e(VAGdiUq5}x)6zVQUCc&SXV?mz8G8bp{WrgUqtvDkxlLcMm$a9?X=fR z_Y`$c3HP)h6yg4ZM42R*aGylHQBWM4)S4?lkteI&fYE$B#zi>}UAc3n20;-B7;gUH0EUHou7u^S3C1CLAkL#& z2I5IW4)7Fb&A5hQ%abN6KgE)zO>z{PV!FCKxilV6RE{)8qR8TBB$uKnGq6rcBMegc z90CP(L{rklomx{9hF1sFVrg zTi@Q+W~^(^X0z)$)0vKS>Gn;RuWRo}cV;`%=?$4SJS|@&C{bPJ^e$cRXlvt%FQ}n* znZa_PB^z)=aU^goP&7r+m|Li72mlS>fZ@Yn#ze*pX#fDOhrD-tvKyS&Id^XI-vPQB z+`QQEL2kn3J)vQwvN?XnjW2{RA-zlH0umq)An@@(!2kB17sb!uXzId&_nNzh`-Xq< z-l@k&8*O zQ5?k%zlbfUzG-w%Pija1NR7Z><9Kg1YK`A8DtDu!wc=DUJC3%36d({F5FijB5FijB z5FijB5FijB5FijB5FijB@V||Kif>?uT8Jw6PMQBtK!v|m-G?(yHHp7$COQl`mp^)r z9#08AP4tK7k@NF|>GQ}TrZB`!_$cAbnFSN`s=kmK1cy`90qPI~Fp{pgolO-kOK zAiCIB;=CkH^lEK+r4!OUG)!Zl{dj9KjQ2A;@kVA0=N+`w{i^}=Oz3AHxc>OY-Sa0r z+j#lldFu&q>XWiPcrRnajw#>b4B|b_e!P|8w2HXa2()QP9q9SZkqK=<>WQ8R;qz_S z9fsV7hTjF9YpFq&X~UljaDSaNjvTko-=X^D`{X;IjI>j%Yo{M0%#8kAKUS^sjYf&n+cTXUY2B8ek+xmdA|jO>)X=NRtjyUP?|NIw&8nX zLEFJi$lAR?q=+|KjKBmh02(onAdgkA3m+@ZXo=IoC(< zX^X^i7i?LS#XB{AlqS*IK0!6TB#h~|KRju_>U zni+xF^)RPVihu>j4aXNIA>!lwsp8JiN`;Wafgg)Nrl+SN`B47jKNx}>4*Xce;o#=Lc2A(l{#tP!@xs+ZZD6N#=H37Hd7C?Y z1KZtU893z{o`#ooiKkknPVx~L!E@9-7#)RleZEAAuapYSpYL*fo#g9!kOBk(1OfyC z1OfyC1U{w+;D!+YRhimqz7_hI_B7~LfIxsifIxsifIxsifIxsifIxsifIxsifWZG- G1pWijrmbfH literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.exe.config b/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.pdb b/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..52570cb767a733233b7cc1cf494aeae9d47a7abf GIT binary patch literal 40448 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.vshost.exe b/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.xml b/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.xml new file mode 100644 index 0000000..79a96f1 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/bin/Exercise 8.4.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.4 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise 8.4.exe b/Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise 8.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..5d46bdfc94f89420ff1c9b8c8e61b30bfcdd98c8 GIT binary patch literal 24576 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 G1pWijrmbfH literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise 8.4.pdb b/Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise 8.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..52570cb767a733233b7cc1cf494aeae9d47a7abf GIT binary patch literal 40448 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise 8.4.vbproj.GenerateResource.Cache b/Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise 8.4.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..3e6c773c228ed805205bfdfdd0a43b9ac2b2b2df GIT binary patch literal 786 zcma)3O-sW-5KV1U`z6$ac+f)-4}vAMis+>XR@7n(ejy&bY_k(wyUof@BF10fFZ1kw z@an;fXPqf3QiC{wmt=PK&6{~n&T*V~3Vw6crU)+jDzFAk82dYk($YT@IK+l`4i=S( z+G~E3pN7{-bevddN07u;=!SQc473UkAw4rgh}whZdbkm8hOL&|Xo_{=a+{S*cK-x$ zAEI5jfk;9WC_t7{wtyFVN(0Uh1VT?mLy-Kxt1JYuv1uWuf`^#?+-#|1MmNHO ztutxINI0_QR!OiWPMoTHDA01TcrJ7T=s5Yj + + + +Exercise8.4 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise_8_4.MyResources.resources b/Code/Chapter 8/VB.NET/Exercise 8.4/obj/Debug/Exercise_8_4.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYo#4;wZ_YjEcm7vV6-C*@Lti?@3kYv(eoKTh^dfUU z_PJ|rFxi%qMgxTO!=UoOw9N91WtrBbVaGg*1yllvBfZty=Z8ol9$w77B3kRooYy0`Q?zg3yks~IA~D;>u-mhE)yVfkKC*fW$Z7h)af#`2p1p+JbI859xKdr+tUE^&LtG1j zb>KrN+Rl5L^oQ1rHR~MIiL5W9^^~)*n_jBZiW^vcu8~;fjRH{*0EE*%_=8x}p%Os|%rDB>7<NPCD9qEq+>3+jy9 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.4/obj/Exercise 8.4.vbproj.FileList.txt b/Code/Chapter 8/VB.NET/Exercise 8.4/obj/Exercise 8.4.vbproj.FileList.txt new file mode 100644 index 0000000..5bc6d33 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.4/obj/Exercise 8.4.vbproj.FileList.txt @@ -0,0 +1,13 @@ +bin\Exercise 8.4.exe.config +bin\Exercise 8.4.exe +bin\Exercise 8.4.pdb +bin\Exercise 8.4.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_4.MyResources.resources +obj\Debug\Exercise 8.4.vbproj.GenerateResource.Cache +obj\Debug\Exercise 8.4.exe +obj\Debug\Exercise 8.4.xml +obj\Debug\Exercise 8.4.pdb +bin\CreateDataSet.dll +bin\CreateDataSet.pdb +bin\CreateDataSet.xml diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/Exercise 8.5.vbproj b/Code/Chapter 8/VB.NET/Exercise 8.5/Exercise 8.5.vbproj new file mode 100644 index 0000000..ff0a736 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/Exercise 8.5.vbproj @@ -0,0 +1,115 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {1A0AC9A6-9DA4-42D9-90C1-435F4D40C581} + WinExe + Exercise_8_5.My.MyApplication + Exercise_8_5 + Exercise 8.5 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 8.5.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 8.5.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + {21FDB488-AEA4-40A7-9F36-7107BB28BD42} + {F184B08F-C81C-45F6-A57F-5ABD9991F28F} + CreateDataSet + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/Exercise 8.5.vbproj.user b/Code/Chapter 8/VB.NET/Exercise 8.5/Exercise 8.5.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/Exercise 8.5.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/Form1.Designer.vb b/Code/Chapter 8/VB.NET/Exercise 8.5/Form1.Designer.vb new file mode 100644 index 0000000..4c89ec4 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/Form1.Designer.vb @@ -0,0 +1,72 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Me.dataGridView1 = New System.Windows.Forms.DataGridView + CType(Me.dataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'dataGridView1 + ' + DataGridViewCellStyle1.BackColor = System.Drawing.Color.Silver + DataGridViewCellStyle1.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black + Me.dataGridView1.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle1 + DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle2.BackColor = System.Drawing.Color.White + DataGridViewCellStyle2.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle2.ForeColor = System.Drawing.Color.Black + DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.dataGridView1.DefaultCellStyle = DataGridViewCellStyle2 + Me.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill + Me.dataGridView1.Font = New System.Drawing.Font("Tahoma", 8.0!) + Me.dataGridView1.GridColor = System.Drawing.Color.Silver + Me.dataGridView1.Location = New System.Drawing.Point(0, 0) + Me.dataGridView1.Name = "dataGridView1" + Me.dataGridView1.RowHeadersDefaultCellStyle = DataGridViewCellStyle1 + Me.dataGridView1.Size = New System.Drawing.Size(546, 137) + Me.dataGridView1.TabIndex = 1 + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(546, 137) + Me.Controls.Add(Me.dataGridView1) + Me.Name = "Form1" + Me.Text = "Exercise 8.5" + CType(Me.dataGridView1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Private WithEvents dataGridView1 As System.Windows.Forms.DataGridView + +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/Form1.vb b/Code/Chapter 8/VB.NET/Exercise 8.5/Form1.vb new file mode 100644 index 0000000..35e3360 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/Form1.vb @@ -0,0 +1,15 @@ +Imports CreateDataSet +Imports System.Data + +Public Class Form1 + Private dataFilePath As String = "..\..\..\..\Data.Xml" + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Dim customerProducts As DataSet = CreateDataSet.DataSetFiller.FillStrongDataSet(dataFilePath) + Dim productsTable As DataTable = customerProducts.Tables(1) + + Dim totalPrice As DataColumn = New DataColumn("Total Price") + totalPrice.Expression = "Price + Price * TaxPercent" + productsTable.Columns.Add(totalPrice) + dataGridView1.DataSource = productsTable + End Sub +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/AssemblyInfo.vb b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..29d2d29 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyApplication.myapp b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyApplication.myapp new file mode 100644 index 0000000..35d93bd --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_8_5.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyApplication.vb b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyApplication.vb new file mode 100644 index 0000000..75de51c --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyApplication.vb @@ -0,0 +1,29 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyEvents.vb b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyResources.resx b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyResources.vb b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyResources.vb new file mode 100644 index 0000000..b1c3d37 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_8_5.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MySettings.settings b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MySettings.vb b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/app.config b/Code/Chapter 8/VB.NET/Exercise 8.5/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.exe b/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..ed66186972447c1e0a22b4b10d484fdb19e4ec2d GIT binary patch literal 28672 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 Jx=DS|oWm0_K?kA9gp~zo zV!LQ%f)dyhoe8@|ZxWnKVF%7DXAOZej#?9V(!#XI-vYfEobBuaH0c1f;UKYOAIb~3 zO>R2{KKDFM>!GuqXx@gtrS3S#rI`YYjA9&_7AKLnrp35ls&{cbOEm-^P z&B0GyG<<#ZJE04B4_^1j>Tukp&Wh-9!k@-bEFAF9jV;2?DI-A-2{JO*L--dVu{j7Dr=oUtFnJ9NQUz*-9zLLp)_qn_44AT&S(g=Q2Wr!-Vpj(a7`t`xN^HGjk(*VLled0cNLxNW%G*~B&m z?c7!1u&9keJGjl7e-ZPVnZUnp(y%F}G*)<4gkiLkn_C1BTqJlO!`K2T?+BKT3Vmoe z5}Aj+rh%y;b0UwdV+Pi{2lO~*Ru~h=Vy_36=VA8|bRTow#~k-D-w5y!00bG#WiW>U zJgHO!du;)1pvZOr|4b|br26~3M63FI!X^`b;Rrd-DYDT+__ah31ouN6KYqZ#a1(Jo z0Pn_03y_L6MT>{AyfeW4$1@xVET%|o>a2*S zX;24QLN(}=o;0Bl3B(QfDiXm~?E)|TPump`lVUTs5E{I9?dsiu7dnza>4hOJf`^1j*yVi3eSE=Xeb0UT(0x45g2AARJmNkc<*^SkBP<%C#mB_= zFG@gO8x8nk#V_E$Xz`I~@lkMjG*@DjVuut)k79>>P!ucv8ajZ~vDR4e)%t)QE4~ae z$}#NBrmJ3mk>o@+>JIOrXaK@(u{IuAo>-U|=r>Oy?%ts$gm^$afP%Z-x|k=(kk-iW zc=)(1e{=9#!U0EdB)64j$x21blF8KhYu28>;k;CG-TL#^u3fYCybWo9bsLha(`H-y znl-DjGmW1?M#~Foydxf8-P($@i{0mN^@4`k?B_%g#vQ~x7xx_8^L0OG9ArIzY)bPp ztI6=gb%r0#WAG@0$C&mqgI_av6(jreejZ=7r$2qw9ZR}D^UR0N z_{E{|A9Et-X&1 zl-SxcR7EJ|1AgP(V~t+1N4^pERFf0=^eEb@T{REXJW%sM%>y+L)I3o0K+OX+57azR z^FYl5H4oH0@PF+A9lv439|aN>`7a52@x(g>b-R9%{EnjZw6!Cj(tvg;Rf8iq2XP}{|5bXs|n@AI|#pPtz7dD z5&m|if*;q`0@+1_IMdmMbF7^x_0cw*o(A(vqw>EQ?8YyARaw4UPN!0$r|O&z?fkJ5E;gYRTgeq2yX0() zPYdOY5BxTqgSD1#{@cGO^-)nYnuexq6t>@BzUW95) z<1WSdQIt=A6%o|nAg<*Bh~i%q=K(KVJ+E!qCdQojA3uBD;oH*h4$GEfuHvJxa@xgH ztvHSHIuONk)Vw4{~d7$Qjng?ngsCl5~fj6iJI^6$X tO#H$(X#Z;6s(GO1ftm+u9;kVs=7E|AY96S0pyq*^2WlRud7$P2`fnubn>zpi literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.exe.config b/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.pdb b/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e513b0342fc7e749d3cd52aabab8cd5e9564c3a6 GIT binary patch literal 54784 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 L_$@GETHyZyqNJ7~ literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.vbproj.GenerateResource.Cache b/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..3bbf3449b09b7f84f4020877a369b34018e1f90c GIT binary patch literal 786 zcma)3O-sW-5KV1U`=L+|;z18ZJP0kJRf=AUV8su#;72Jvc-dwrxOSVBokWaRFa9U* z{t}N~J?l(Sks8Dayd<-;Z{EyvGLGZCQ}CN(ZiZmcRlYT7g2>yAm6l#l;0Wv0K3G&H zY;SlCe(KdutfSaMJA^p0Lf5OO@lY%O7?PeDLD(KPHiK5M6*QZ&)exJ)c7?A|%x z0fc*S1EGY_SAZ;~XaNWNN&_wp1;U96Mf-DDz61bT_aVXKrT+5!JWbg^CWFPGx4a%B6%F=;c5Hj?fEgY Iz$uRM2Npu<=Kufz literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.xml b/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.xml new file mode 100644 index 0000000..2bfc4a7 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.5 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise_8_5.MyResources.resources b/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise_8_5.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYXyr3f?=R+ru%$rWHb!r~3FF|)hG{Mi+ z>`Y^}G2fV(ac6CoVG)XSyKew%9n=%>3(yAN1;5TgokruB1ogbgJy3B84Ul*OYP`l2 zEOWmJE*%xPgnA%kHyjR4_80G!r6NygMy4^HMi{^15&ArVD^;0vdn>t8?y3M z=8An()>Ec716K1uM~R?Mh@$9lCVqs8`mZBd#g_$hi;U_Y+8a><`=1xBHj^Nu6s64H zLKsP9R+!fTML{BwMD$vptQLEn|2)e+pkm?)gxC;46d^=`DLXpXN$B$!oyQSUWJ!J| z@e`$PdQFPgShrK^;+RE8;t(yI>~>1ap;0V}kRk=rGlvl>`FqZzHd-mC^dendU0-tY zo2(sxOkdABdEtUnS+G_fZyeCbN?-vLSis5F%g+dPp6OwF;`>(Xh2&&`; zQ^6)_iBXg&4kS_KzALtrRTQ$NNGnCtrvb*!5u7I&Be*~?PH+(+Lc^Xp?0e6Drq6F+ z3Rgz|0_b)myn}16#t&|Fmwp3N4Fn&jH*t*jmODBUsIP2=j% z?>93*BG|ky?K7G*i2-QhX F;vd&OsmK5T literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/TempPE/My Project.MyResources.vb.dll b/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/TempPE/My Project.MyResources.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..4278e8c0845f06f7accfc48bad66aeaebceca506 GIT binary patch literal 6144 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Exercise 8.5.vbproj.FileList.txt b/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Exercise 8.5.vbproj.FileList.txt new file mode 100644 index 0000000..2e82ebb --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Exercise 8.5.vbproj.FileList.txt @@ -0,0 +1,13 @@ +bin\Exercise 8.5.exe.config +bin\Exercise 8.5.exe +bin\Exercise 8.5.pdb +bin\Exercise 8.5.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_5.MyResources.resources +obj\Debug\Exercise 8.5.vbproj.GenerateResource.Cache +obj\Debug\Exercise 8.5.exe +obj\Debug\Exercise 8.5.xml +obj\Debug\Exercise 8.5.pdb +bin\CreateDataSet.dll +bin\CreateDataSet.pdb +bin\CreateDataSet.xml diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/Exercise 8.6.vbproj b/Code/Chapter 8/VB.NET/Exercise 8.6/Exercise 8.6.vbproj new file mode 100644 index 0000000..6e8539b --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/Exercise 8.6.vbproj @@ -0,0 +1,115 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {DBCFEAE3-6D6F-4A18-923C-C8031CDFBD85} + WinExe + Exercise_8_6.My.MyApplication + Exercise_8_6 + Exercise 8.6 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 8.6.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 8.6.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + {21FDB488-AEA4-40A7-9F36-7107BB28BD42} + {F184B08F-C81C-45F6-A57F-5ABD9991F28F} + CreateDataSet + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/Exercise 8.6.vbproj.user b/Code/Chapter 8/VB.NET/Exercise 8.6/Exercise 8.6.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/Exercise 8.6.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/Form1.Designer.vb b/Code/Chapter 8/VB.NET/Exercise 8.6/Form1.Designer.vb new file mode 100644 index 0000000..11f0a7e --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/Form1.Designer.vb @@ -0,0 +1,77 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.lblSumPrice = New System.Windows.Forms.Label + Me.btnSumPrices = New System.Windows.Forms.Button + Me.dataGridView1 = New System.Windows.Forms.DataGridView + CType(Me.dataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'lblSumPrice + ' + Me.lblSumPrice.AutoSize = True + Me.lblSumPrice.Font = New System.Drawing.Font("Microsoft Sans Serif", 11.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSumPrice.Location = New System.Drawing.Point(274, 148) + Me.lblSumPrice.Name = "lblSumPrice" + Me.lblSumPrice.Size = New System.Drawing.Size(0, 0) + Me.lblSumPrice.TabIndex = 5 + ' + 'btnSumPrices + ' + Me.btnSumPrices.Location = New System.Drawing.Point(458, 144) + Me.btnSumPrices.Name = "btnSumPrices" + Me.btnSumPrices.TabIndex = 4 + Me.btnSumPrices.Text = "Sum Prices" + ' + 'dataGridView1 + ' + Me.dataGridView1.Location = New System.Drawing.Point(1, 2) + Me.dataGridView1.Name = "dataGridView1" + Me.dataGridView1.Size = New System.Drawing.Size(545, 135) + Me.dataGridView1.TabIndex = 3 + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(548, 168) + Me.Controls.Add(Me.lblSumPrice) + Me.Controls.Add(Me.btnSumPrices) + Me.Controls.Add(Me.dataGridView1) + Me.Name = "Form1" + Me.Text = "Exercise 8.6" + CType(Me.dataGridView1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Private WithEvents lblSumPrice As System.Windows.Forms.Label + Private WithEvents btnSumPrices As System.Windows.Forms.Button + Private WithEvents dataGridView1 As System.Windows.Forms.DataGridView + +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/Form1.vb b/Code/Chapter 8/VB.NET/Exercise 8.6/Form1.vb new file mode 100644 index 0000000..1ca85dd --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/Form1.vb @@ -0,0 +1,22 @@ +Imports System.Data +Imports CreateDataSet + +Public Class Form1 + Private dataFilePath As String = "..\..\..\..\Data.Xml" + Private productsTable As DataTable + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Dim customerProducts As DataSet = CreateDataSet.DataSetFiller.FillStrongDataSet(dataFilePath) + productsTable = customerProducts.Tables(1) + + Dim totalPrice As DataColumn = New DataColumn("Total Price") + totalPrice.Expression = "Price + Price * TaxPercent" + productsTable.Columns.Add(totalPrice) + dataGridView1.DataSource = productsTable + End Sub + + Private Sub btnSumPrices_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSumPrices.Click + Dim price As String = productsTable.Compute("Sum(Price)", "Price < 500").ToString() + lblSumPrice.Text = "The total price is : " & price + End Sub +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/AssemblyInfo.vb b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..7de249f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyApplication.myapp b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyApplication.myapp new file mode 100644 index 0000000..f37e69e --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_8_6.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyApplication.vb b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyApplication.vb new file mode 100644 index 0000000..75de51c --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyApplication.vb @@ -0,0 +1,29 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyEvents.vb b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyResources.resx b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyResources.vb b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyResources.vb new file mode 100644 index 0000000..b9d8d38 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + '

    + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_8_6.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MySettings.settings b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MySettings.vb b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/app.config b/Code/Chapter 8/VB.NET/Exercise 8.6/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.exe b/Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..30622ba33c27b01d5894849a35d77c17fa1c8bb3 GIT binary patch literal 28672 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.pdb b/Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..5545c33ebac57dbd6635ea7b1f0f763f6d9028e0 GIT binary patch literal 54784 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.xml b/Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.xml new file mode 100644 index 0000000..040c9e7 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/bin/Exercise 8.6.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.6 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/obj/Debug/Exercise 8.6.exe b/Code/Chapter 8/VB.NET/Exercise 8.6/obj/Debug/Exercise 8.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..30622ba33c27b01d5894849a35d77c17fa1c8bb3 GIT binary patch literal 28672 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 + + + +Exercise8.6 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/obj/Debug/Exercise_8_6.MyResources.resources b/Code/Chapter 8/VB.NET/Exercise 8.6/obj/Debug/Exercise_8_6.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY}^f5e456J5G8CNAB&#&a$Rg*1kA7T-+1d(L;BcZ`r>7`yn;o1Ww;gcl`VmqLj~ zU@dmI=USUgHPuw60#b3|=k8dxm7TS1%bv>QJ6_O{kn^DvNajst);l$i*O#HYDVpHt zYIe3U)0k^aPrEZV%d!YXy4^Q`wE^le_yuT#?}A_FpiZN4OoDn=Eh{fP z4|BynD(eYTTLG(iprb_4Cqz+nI1@j@ME%#1tl}$zxkX0x5ABaAf&I^mR+~wXQHoOL zZy=1MGAqpMfTAFgNFsWzPgYC4&cC0|KcHgb353`XK@=fGfhjvW*GcH}7@fxvQe;Vf zCh_S~H?uCqE3Dfob#ct1BXNipPIf1y<6ya_mHa*DVH>TKQ+l4Mu5Bzk z`7PECKxVGbJ9*)PQ(3fDA8j7c$Vy-V6j;E@5I8mNA7w1p^UO1-J&)SerPab(wd@>j z3~3c5Yr(dVP3JXj`dxe0o^$s5MBZo7J3o*&?w}{SE${=KMhb-%1{0EOoBJ=d$_T3D z22;T%X^BykC=Mi1<-RMnl~ok7rARA9)29K(&Jmm^7$dkqFivn0Awt8RKJ0tXf2PlG zU=mkG{{rZCB)o%buf`8~Iw*6PI;3r0?M+ zN|M%gA^qvYuRovPh9XqUjsDplRimpL{g*|uH>|lA=P(Q{_*Zv#;wME2QKNLnXg7_k zKfc|}5>2hsG%cOMFMrvishOIl6*9hWn76bwwO7-$6UO`dqkA+pT+=jX!}<75(<4+T GJ&C^+;;Ie+ literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.6/obj/Exercise 8.6.vbproj.FileList.txt b/Code/Chapter 8/VB.NET/Exercise 8.6/obj/Exercise 8.6.vbproj.FileList.txt new file mode 100644 index 0000000..53e74ac --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.6/obj/Exercise 8.6.vbproj.FileList.txt @@ -0,0 +1,13 @@ +bin\Exercise 8.6.exe.config +bin\Exercise 8.6.exe +bin\Exercise 8.6.pdb +bin\Exercise 8.6.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_6.MyResources.resources +obj\Debug\Exercise 8.6.vbproj.GenerateResource.Cache +obj\Debug\Exercise 8.6.exe +obj\Debug\Exercise 8.6.xml +obj\Debug\Exercise 8.6.pdb +bin\CreateDataSet.dll +bin\CreateDataSet.pdb +bin\CreateDataSet.xml diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/Exercise 8.7.vbproj b/Code/Chapter 8/VB.NET/Exercise 8.7/Exercise 8.7.vbproj new file mode 100644 index 0000000..ae84835 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/Exercise 8.7.vbproj @@ -0,0 +1,115 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {EA00B165-EDAE-4D48-8BBE-F45E0D8D330A} + WinExe + Exercise_8_7.My.MyApplication + Exercise_8_7 + Exercise 8.7 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 8.7.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 8.7.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + {21FDB488-AEA4-40A7-9F36-7107BB28BD42} + {F184B08F-C81C-45F6-A57F-5ABD9991F28F} + CreateDataSet + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/Exercise 8.7.vbproj.user b/Code/Chapter 8/VB.NET/Exercise 8.7/Exercise 8.7.vbproj.user new file mode 100644 index 0000000..a92b626 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/Exercise 8.7.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ShowAllFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/Form1.Designer.vb b/Code/Chapter 8/VB.NET/Exercise 8.7/Form1.Designer.vb new file mode 100644 index 0000000..28a61f2 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/Form1.Designer.vb @@ -0,0 +1,97 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.lbProducts = New System.Windows.Forms.ListBox + Me.btnFilter2 = New System.Windows.Forms.Button + Me.lbCustomerProducts = New System.Windows.Forms.ListBox + Me.btnFilter1 = New System.Windows.Forms.Button + Me.lbCustomers = New System.Windows.Forms.ListBox + Me.SuspendLayout() + ' + 'lbProducts + ' + Me.lbProducts.FormattingEnabled = True + Me.lbProducts.Location = New System.Drawing.Point(511, 1) + Me.lbProducts.Name = "lbProducts" + Me.lbProducts.Size = New System.Drawing.Size(157, 238) + Me.lbProducts.TabIndex = 9 + ' + 'btnFilter2 + ' + Me.btnFilter2.Location = New System.Drawing.Point(396, 104) + Me.btnFilter2.Name = "btnFilter2" + Me.btnFilter2.Size = New System.Drawing.Size(108, 23) + Me.btnFilter2.TabIndex = 8 + Me.btnFilter2.Text = "GetParentRow >>" + ' + 'lbCustomerProducts + ' + Me.lbCustomerProducts.FormattingEnabled = True + Me.lbCustomerProducts.Location = New System.Drawing.Point(256, 1) + Me.lbCustomerProducts.Name = "lbCustomerProducts" + Me.lbCustomerProducts.Size = New System.Drawing.Size(133, 238) + Me.lbCustomerProducts.TabIndex = 7 + ' + 'btnFilter1 + ' + Me.btnFilter1.Location = New System.Drawing.Point(148, 104) + Me.btnFilter1.Name = "btnFilter1" + Me.btnFilter1.Size = New System.Drawing.Size(101, 23) + Me.btnFilter1.TabIndex = 6 + Me.btnFilter1.Text = "GetChildRows >>" + ' + 'lbCustomers + ' + Me.lbCustomers.FormattingEnabled = True + Me.lbCustomers.Location = New System.Drawing.Point(0, 1) + Me.lbCustomers.Name = "lbCustomers" + Me.lbCustomers.Size = New System.Drawing.Size(141, 238) + Me.lbCustomers.TabIndex = 5 + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(670, 239) + Me.Controls.Add(Me.lbProducts) + Me.Controls.Add(Me.btnFilter2) + Me.Controls.Add(Me.lbCustomerProducts) + Me.Controls.Add(Me.btnFilter1) + Me.Controls.Add(Me.lbCustomers) + Me.Name = "Form1" + Me.Text = "Exercise 8.7" + Me.ResumeLayout(False) + + End Sub + Private WithEvents lbProducts As System.Windows.Forms.ListBox + Private WithEvents btnFilter2 As System.Windows.Forms.Button + Private WithEvents lbCustomerProducts As System.Windows.Forms.ListBox + Private WithEvents btnFilter1 As System.Windows.Forms.Button + Private WithEvents lbCustomers As System.Windows.Forms.ListBox + +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/Form1.vb b/Code/Chapter 8/VB.NET/Exercise 8.7/Form1.vb new file mode 100644 index 0000000..a598571 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/Form1.vb @@ -0,0 +1,46 @@ +Imports CreateDataSet +Imports System.Data + +Public Class Form1 + Private dataFilePath As String = "..\..\..\..\Data.Xml" + Private customerProducts As DataSet + + Private Sub btnFilter1_Click( _ + ByVal sender As System.Object, ByVal e As System.EventArgs) _ + Handles btnFilter1.Click + If lbCustomers.SelectedIndex = -1 Then + Return + End If + Dim selectedRow As DataRow = _ + customerProducts.Tables("Customers").Rows(lbCustomers.SelectedIndex) + Dim childRows() As DataRow = _ + selectedRow.GetChildRows(customerProducts.Relations(1)) + lbCustomerProducts.Items.Clear() + Dim dr As DataRow + For Each dr In childRows + lbCustomerProducts.Items.Add(dr("CustomerProductID")) + Next + End Sub + Private Sub btnFilter2_Click( _ + ByVal sender As System.Object, ByVal e As System.EventArgs) _ + Handles btnFilter2.Click + Dim custProdRow As DataRow + Dim ProdRow As DataRow + Dim custProdTable As DataTable = customerProducts.Tables("CustomerProducts") + lbProducts.Items.Clear() + Dim item As Object + For Each item In lbCustomerProducts.Items + Dim custProdId As Integer = CType(item, Integer) + custProdRow = custProdTable.Rows.Find(custProdId) + ProdRow = custProdRow.GetParentRow(customerProducts.Relations(0)) + lbProducts.Items.Add(ProdRow("ProductName")) + Next + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + customerProducts = CreateDataSet.DataSetFiller.FillStrongDataSet(dataFilePath) + For Each dr As DataRow In customerProducts.Tables("Customers").Rows + lbCustomers.Items.Add(dr("CustomerID") & ":" & dr("FirstName") & " " + dr("LastName")) + Next + End Sub +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/AssemblyInfo.vb b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..f0a5dbd --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyApplication.myapp b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyApplication.myapp new file mode 100644 index 0000000..a6548ff --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_8_7.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyApplication.vb b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyApplication.vb new file mode 100644 index 0000000..75de51c --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyApplication.vb @@ -0,0 +1,29 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyEvents.vb b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyResources.resx b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyResources.vb b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyResources.vb new file mode 100644 index 0000000..23f3398 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_8_7.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MySettings.settings b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MySettings.vb b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/app.config b/Code/Chapter 8/VB.NET/Exercise 8.7/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.exe b/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..b1a8279ed4089e2bfa841526d16cb3c287759c59 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.exe.config b/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.pdb b/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e92dbe7384bbcef06e29fbfa48a2211c37ceee7d GIT binary patch literal 56832 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 G7WjX2w2=D% literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.vshost.exe b/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.xml b/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.xml new file mode 100644 index 0000000..5e9b947 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/bin/Exercise 8.7.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.7 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise 8.7.exe b/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise 8.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..b1a8279ed4089e2bfa841526d16cb3c287759c59 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise 8.7.pdb b/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise 8.7.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e92dbe7384bbcef06e29fbfa48a2211c37ceee7d GIT binary patch literal 56832 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 G7WjX2w2=D% literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise 8.7.vbproj.GenerateResource.Cache b/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise 8.7.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..850acee924aa85e3d8b08597c93abd35acdc531f GIT binary patch literal 786 zcma)3O-sW-5KV1U`=L+|;-Mabcn~b1RYVbrV2dAU!7s#vmu+@}Yq#05lZf#b_+$JX z{u6IrJ?l(Sks8Dayd<-;Z{Eyva*pG?Q}CN(W{Tjdrvhuxgt5PyC@uX9fdg!Kmtawu zsJ-Sl`Du8aM8}DRb_7Xmg>HB!Nnfkr2+|8PfT-PXu7?}pX4q=Ujiy)^F1K09WcSYi z_aW-S2qFnlpa5A)*#cheDGj*L7YN5H8i3^guCfrs#-@ebQa0fv)tD|%oE4YxAGcWT zjQpV}zj&Tv3`4(Tw5Im74D=5K-o&D>VceiVcM1%DmQGVa<=6i1fM#70TcS?dSapGJ(K!KKv#Y>?RK*!1F9oMavvU(kUaV=+PKK#Z1db+j4^HwTV z!m`UyB&hKh9~4=0y_b3<>6T`{?xkdzNo)YQzdOZRX8Y z^|#Bo@a + + + +Exercise8.7 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise_8_7.MyResources.resources b/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/Exercise_8_7.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY!%3-b${NyDEg1ofp23 zxnduc{e-FQkkx$9QKIN$QWPD|!jA}1|8*p*#HwIkkx~6ae@B$W{^v!j%_PVeMJe+) z5J6H|73Oz9QIKdf8N1detL0wjUr!hAQ!$AoLVSoIhG0@)%8t%;68bz&=Lv)~S(2Yc z{6wjn*^uHD*6o(MIA+n2I7AyKyPMW>XcSK&q)CDFtYL&oe$jo{Ml0o(o@c7-n=5X9 zo3%rbnd=K~UU=YEmh81hTL(0<5?BZY7P2ygZjA>=8Qb%H>kMiypmue6t*~A#yN4S? zT1ClPup?yCeNCHw*O_zX-M@Vz@3ZKgAIKYb&==hn1ffnNjY1Cw6OwF)2QRhC2&&`; zQ^6)_iBXg&4kS_KfhTs9T@q7;|&hp*s(L%>4N_UKQ)42Nm z>&-0D)H+Sm(i!~n=Y5)*scBjv;Kf5AQTRLUq!U F`~%pDsmTBU literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/TempPE/My Project.MyResources.vb.dll b/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Debug/TempPE/My Project.MyResources.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..7f364d5686bdbd998a621f75665af67e9541a7e0 GIT binary patch literal 6656 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Exercise 8.7.vbproj.FileList.txt b/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Exercise 8.7.vbproj.FileList.txt new file mode 100644 index 0000000..3f85cf6 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.7/obj/Exercise 8.7.vbproj.FileList.txt @@ -0,0 +1,13 @@ +bin\Exercise 8.7.exe.config +bin\Exercise 8.7.exe +bin\Exercise 8.7.pdb +bin\Exercise 8.7.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_7.MyResources.resources +obj\Debug\Exercise 8.7.vbproj.GenerateResource.Cache +obj\Debug\Exercise 8.7.exe +obj\Debug\Exercise 8.7.xml +obj\Debug\Exercise 8.7.pdb +bin\CreateDataSet.dll +bin\CreateDataSet.pdb +bin\CreateDataSet.xml diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/Exercise 8.8.vbproj b/Code/Chapter 8/VB.NET/Exercise 8.8/Exercise 8.8.vbproj new file mode 100644 index 0000000..aa6d61c --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/Exercise 8.8.vbproj @@ -0,0 +1,115 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {5A286038-4A61-45A1-914F-BDCA78E82E50} + WinExe + Exercise_8_8.My.MyApplication + Exercise_8_8 + Exercise 8.8 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 8.8.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 8.8.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + {21FDB488-AEA4-40A7-9F36-7107BB28BD42} + {F184B08F-C81C-45F6-A57F-5ABD9991F28F} + CreateDataSet + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/Exercise 8.8.vbproj.user b/Code/Chapter 8/VB.NET/Exercise 8.8/Exercise 8.8.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/Exercise 8.8.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/Form1.Designer.vb b/Code/Chapter 8/VB.NET/Exercise 8.8/Form1.Designer.vb new file mode 100644 index 0000000..a5756eb --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/Form1.Designer.vb @@ -0,0 +1,114 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Me.btnFindRows = New System.Windows.Forms.Button + Me.btnFilter = New System.Windows.Forms.Button + Me.btnSort = New System.Windows.Forms.Button + Me.btnLoad = New System.Windows.Forms.Button + Me.dgView = New System.Windows.Forms.DataGridView + CType(Me.dgView, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'btnFindRows + ' + Me.btnFindRows.Location = New System.Drawing.Point(249, 1) + Me.btnFindRows.Name = "btnFindRows" + Me.btnFindRows.TabIndex = 9 + Me.btnFindRows.Text = "Find Rows" + ' + 'btnFilter + ' + Me.btnFilter.Location = New System.Drawing.Point(167, 2) + Me.btnFilter.Name = "btnFilter" + Me.btnFilter.TabIndex = 8 + Me.btnFilter.Text = "Filter Data" + ' + 'btnSort + ' + Me.btnSort.Location = New System.Drawing.Point(85, 2) + Me.btnSort.Name = "btnSort" + Me.btnSort.TabIndex = 7 + Me.btnSort.Text = "Sort Data" + ' + 'btnLoad + ' + Me.btnLoad.Location = New System.Drawing.Point(3, 3) + Me.btnLoad.Name = "btnLoad" + Me.btnLoad.TabIndex = 6 + Me.btnLoad.Text = "Load Data" + ' + 'dgView + ' + Me.dgView.AllowUserToAddRows = False + Me.dgView.AllowUserToDeleteRows = False + DataGridViewCellStyle1.BackColor = System.Drawing.Color.Silver + DataGridViewCellStyle1.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black + Me.dgView.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle1 + DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle2.BackColor = System.Drawing.Color.White + DataGridViewCellStyle2.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle2.ForeColor = System.Drawing.Color.Black + DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.dgView.DefaultCellStyle = DataGridViewCellStyle2 + Me.dgView.Font = New System.Drawing.Font("Tahoma", 8.0!) + Me.dgView.GridColor = System.Drawing.Color.Silver + Me.dgView.Location = New System.Drawing.Point(3, 45) + Me.dgView.Name = "dgView" + Me.dgView.ReadOnly = True + Me.dgView.RowHeadersDefaultCellStyle = DataGridViewCellStyle1 + Me.dgView.Size = New System.Drawing.Size(331, 277) + Me.dgView.TabIndex = 5 + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(335, 323) + Me.Controls.Add(Me.btnFindRows) + Me.Controls.Add(Me.btnFilter) + Me.Controls.Add(Me.btnSort) + Me.Controls.Add(Me.btnLoad) + Me.Controls.Add(Me.dgView) + Me.Name = "Form1" + Me.Text = "Exercise 8.8" + CType(Me.dgView, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Private WithEvents btnFindRows As System.Windows.Forms.Button + Private WithEvents btnFilter As System.Windows.Forms.Button + Private WithEvents btnSort As System.Windows.Forms.Button + Private WithEvents btnLoad As System.Windows.Forms.Button + Private WithEvents dgView As System.Windows.Forms.DataGridView + +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/Form1.vb b/Code/Chapter 8/VB.NET/Exercise 8.8/Form1.vb new file mode 100644 index 0000000..96e32d8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/Form1.vb @@ -0,0 +1,36 @@ +Imports CreateDataSet +Imports System.Data + +Public Class Form1 + Private dataFilePath As String = "..\..\..\..\Data.Xml" + Private CustomersTable As DataTable + Private CustomersView As DataView + + Private Sub btnLoad_Click( _ + ByVal sender As System.Object, ByVal e As System.EventArgs) _ + Handles btnLoad.Click + CustomersTable = _ + CreateDataSet.DataSetFiller.FillDataset(dataFilePath).Tables("Customers") + CustomersView = New DataView(CustomersTable) + dgView.DataSource = CustomersView + End Sub + Private Sub btnSort_Click( _ + ByVal sender As System.Object, ByVal e As System.EventArgs) _ + Handles btnSort.Click + CustomersView.Sort = "FirstName ASC" + End Sub + Private Sub btnFilter_Click( _ + ByVal sender As System.Object, ByVal e As System.EventArgs) _ + Handles btnFilter.Click + CustomersView.RowFilter = "LastName like '%OfJungle'" + End Sub + Private Sub btnFindRows_Click( _ + ByVal sender As System.Object, ByVal e As System.EventArgs) _ + Handles btnFindRows.Click + Dim drvs() As DataRowView = CustomersView.FindRows("Tarzan") + Dim drv As DataRowView + For Each drv In drvs + MessageBox.Show(drv.Row("FirstName") & " " & drv.Row("LastName"), "Selected Item") + Next + End Sub +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/AssemblyInfo.vb b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..391a772 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyApplication.myapp b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyApplication.myapp new file mode 100644 index 0000000..69e035c --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_8_8.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyApplication.vb b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyApplication.vb new file mode 100644 index 0000000..19b7250 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyApplication.vb @@ -0,0 +1,29 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = False + Me.EnableVisualStyles = True + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyEvents.vb b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyResources.resx b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyResources.vb b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyResources.vb new file mode 100644 index 0000000..8753e7d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_8_8.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MySettings.settings b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MySettings.vb b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/app.config b/Code/Chapter 8/VB.NET/Exercise 8.8/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.exe b/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.exe new file mode 100644 index 0000000000000000000000000000000000000000..71c7ce22b329029ddf33252efc79564695ff356b GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.exe.config b/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.pdb b/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.pdb new file mode 100644 index 0000000000000000000000000000000000000000..32cefde7303690ca71547d6e23495393a933b371 GIT binary patch literal 56832 zcmeI550q5Zo#$TxcGD;cjiCJ17Fq?ArW+b)5QY9j14;`DBAT8w)z#Hdq598MRRe9@ zoHC0u#!-hP?u@@9SzYD+qy?5{L{(awj@9+NZeXrV5iA-O%uRB-OysY_(E2`Rdv{tRI zsjZzlWlqZu4>!U5_xiY;#dhhtQFHiW=xnKN)TPwSNQ2Epn&wG3FmZ$c7wRgk!yFR`3&wthQ!X25f zeZi^>-d7I&#V=<5=GEIT9!TDMaQiRb8GkK#cGh^bo`3Q)|Mb0ox-)Ud?Ykd8km&xw z@w2lv#$TyN>-isVpZt?YU%vU7vLAo8W&2&9e}4S6H9=7k!x?vW|KXg>A@|%-F-C&Iz2DBwmt4=)oHWpPW8sq zWYsfR)v2r!$|@0Lb)d7RH<=50B*R$|so!Q5w^^lZR%fnKZG$%^vwZ`ZL^7*7ow+LY z4DwKhGCGqr+L6rVQoVc6c!jc|eCk$r)zx>eOe~GBSh0F({hHMcOBTJIYV4+ogL(%G;96ruOzGGiLyDe!;s!8H{obLL)-kU}JxO zI+cj$QhmK=pe~^ip=U5&nAMrA)y4zK-rO1QKFJ`LIgHzfIGFWwc5Jq35XarXuI@j; z*E6zzo$K=n`;>NcO1MXmaR<9x@P2!dhJT5)e+y}naK?To7xA;c1?K*wHg=3>+u!+@ zb6)tz@5J<&e-|gU@gtDp)y(%}3WkfgRND7`vgz}?xfVPHD}^O}G4of@b+T{%hX;Qw zS@}s;JS-~+JK6hQFFPbzL0hs43(E?!PWJz7{L%L%D=14=VPRQy5hwfktJeQqvg$&T zRajV7UBb!EpY@;bkgV!1S%rmV)%~38!*ic%l&rd?WEB>cRTp%!zpYF?C|Pw)$to-? zi`S?*n$5e$TT-b6k5gBuTvZ!*{6RGzkYZ+veuBkv2miIqy{N#eV> zl3(IgS1xoKVMjwpLrvRYjfK7|iC9Jwqud?~e@mZ`sEE zl;Ga;rgI(6Uh=2QCmcVNXLDaVjULNXmG!(iq}%4s&DQKnWe4Kvrg%1$ApOe-TUau% zrkTjOIFp0QF|yo&WF|{qBg?hKbIHcuuAQkKz%fF4t*Laa-`v2t^&x2x}9 zwnnO+Y4^}GZAr!V_V#6SsRSXyijC8fi60~(A1h(}6u{S%rONc1YR@xV?dBluy2k>q zs*>*OT^h(t@^&>I9iSgCj%Akx zw95A18RZI59~g3V^k4PKp#L@xq;mrqGn}a3K24s}h^IJCF6y`8P961I{{?}9Hrdj9 z7WZ5AEA^1eL;cEi3)in)pW13W(_}@kZaIBw6W69sv5@U>k?~WXnni!wOgzPLa#5cu zz)v(6nwM@0+T^V6Q?B3q8q6PtEgn1a}a*2F7C#$8rvscJjd?} z8XKIOPoHRaeWE6j>thvc=6(ELKwh#gJn9G08g^b)W5KvC zgU(J!?xvVO|LuZ*lzYv^)8V>j?DuYlSHpM1E16SgGP`NcUFY4*^)lw#S;0K(V?Ji^ zPn3c=^5eu;-|K*DF5Cm3>dhzq{DL`BHb1#((9_VX&^x*}6A%}X8`T!j-0jA?hi%)V zX9ezJ#=2yQu}<+GLSC{iycmm0GlU^Gn}$vc@+`9wG!)@~iyh5dbpz%E=0KhiCQxt8~#Te|(0*EA90 z?gP8dT>_T>%3*m+Zz_j9K6P8Nxv!_cua})=$qCmvF#Rg=71zm^Dp!Q-2-j|3<8=ES zrSP-F;(B9%YcL+q#W!VAUAt1rgU!iwdPiVe z#d00lTxKAV)3%6_QP=oTGdpv= zTl?Z&9nG9iVFOnE?U(emBg9i2Cs(SyqW%{3w|`B4E5_;u9j?Hg?=$lk`)ApGA*}A` z%diJAgw+SY={n*mj+2Y98rj?aHGAQu@Z+%R?8m>-q8%5;Y7JQZQV6RUJlQ#PX!Xa| z7O?tD;wqk#EtOw1wnk&?XpF56uX|<~xSG8e|H{Ln<&_;Pz-w>UjhrBHh?Oqz7Fca3 z?hzt6*$A)E_&VC->jhT#zBbTpJ+CWsAUGFvU7>$g7}g$$%y?UaFsoOm>Z`Zb4(Zfw z#o_TxCO&9H0-gH$(lR?xyNwJ>P>(ZrVg0?}T$7t0WQW!sr*9{W8Ji)u1@>XmGWKC? z)5bn5JM=kNm@6RJo3&JyZmzx4*^uPV(@rZ+^{uwV-b?-pu2F&5&%Fq_^Nf8ujh}D- zi5XiEw;tWx+oKB{wr`U^T|2J|DSr(QT<5Fc*u?Xfz?q}+i{XS(zH2F;Zx5g9UBdN8 zp#?#nuTe06Z5|8O`0I%KvI>l2AIao-5nN@#){0Hs^Qz#gBl+bog)e}s%@@M8mrY&s ztaoJ3&))>+d|196uKn_ZaO$7G3(lG*|0i(mmwydT8u@R-SrX-c0AB%r1zrz70dIg; z#5_;?*>m99&%PY4{p<$#diXZ@2KXL$BfJOR1pgGAbzlCE;G5tNz*)EDABI!b{5Rp? zIR6YB+~$7(2c!9y;b1ZU8XUakPr|`ee#!*T+YY|~egk{~{6_c^_zw7L_)hqZaM~cB zfbW8T5`HuM9{6tf7vQ(RzY4z<{vG(o;LpQ5;QtKY121Qx8Hdk?cfzlLC*W7ZyWrd4 zNq8LI4ex>Pg%85_!S95p;P=A!!_VQVO!Yo(sDc));DkYix6;yD_%>)R)C^q-RYOal zMraYVz}{a2S6CHv8FY2g{Zj60p-s^BP%E?r+Gnqw->uw#9Qqiv4pKfUhtgACBE`K5 zx|qJP9qJ_{LNO*69E)MX{^RR2J<_}55;$sK z9xR%^*8*4Hn?$+FdBWwOvz)vq(UX5onEH*smWdfXQEAiE!8wjfo3{Gpbo^%qXDFhFjvVR8qp2h7%#YJCoo)B1CLA34T;R&V@J9f!!LZJ-X*Xp6 zGXxUC^0VOhG2$tXlZ&t%o!c4fb30nQ3AE_(hU+>6)d1_xe({i$4_p}Qc$Li$V?Fei ztz?DwV_^M31QpN8MtG0#{z2iL^=g3kFkIc(?#_N3K351X#5=lo*_C0u-;@o;^@qWD zo;bp}lZkL1;e4!d?%p@T9uwf)!ZaAu9me;uD3%M4=~KY?Rbhh?Y>ffN-AlJ_9Cv!lZYvSSI4~}|HjMF`lbt(~nFA?4uA}}Stf#^GPU0$_ zlZ~(*VSTKz?)3DU5Z1$Rb$FNEQZ`ZFJ`yvw5^f7@qSyk>J8++YW4rY3hhsa`x%d1c z_`Ddlcr5mFu;S0bQd5adbPl#;r7fGNzg~?6^F`PuI!GFHDepG8rj<{^{rBds!7e@Y zew@DsD4oWgHjO{9Y5ZZ3#+rgOeEq6)8b@pzpS5XxE=Xf-K^p%2RXUBY*)$%pX*?RF zadkl&{W4W>_5nJ;CBS7QEA^0=y_e9C3^epgm32k-@w6 z+S}y(0XvLd{xa)N`S|TO_SoS%n^154SHZQP$vg7qjKU`CzZqVI{}%Wq@N3}<;Mc(y z!gs)_OTK~~->IB3(B5SwyTO(0QtEmprJIcw<6qC?dRuU<_xPu>(>vAdJx??Hotm4q zk13~l=ex|euR`xYGc=J!?sskhHCyri-^HO+7(UCs!M$nrws@+SYpul;?>K>yb>Y!k zELw|=^;*p72M)uU>*df}1IO@C*23UnFdTYcUpoC^uja$TGPBc$z=l9 zGXg%9Q?eC=s4Qv7ALo5roVpojL%cnZ9O;^}(0@qN&l5e_=-Uh6I#Vd!m~(>W+~S4s zHJr7a!pTzQJB7Taps!BhWN1038RJ`LnFv+^`Xsn6G znh$cUQD5`17&Ex!w&0BLe%sd=2h2ML%$xM{*^C#nksn%Py1u6I;Yoo0-0#?@l<(Q% zR5hn}yn>=EH{Eo0|C)V+vRk+}UcT1R(cwM-*U=HI1z#qv;yKx9EQrQ}u^tO9v*+iQ z1$H*h&lyFz0J6p&C#cs3a`qi5{~aiOdcer2Z`2ja6ujRgyPlSt%ZHVzGwE=KT5C+H zFSugc-*VH3HW2b6g`(`<4CYn!H)l7*4rk-?t_{DNlFYR68$En|9T~kNCcOz8cp#HR zxpM1bareEE7gZ3P^d{%fvC8(_{5<>ZoWj=f*A}v~y+C}$b@EXkkNWsn_i^Y4v=6H6Wet=K{vUloJzg zg~xNwt&~0GFut?T{}whf8q2qX?^@zW-pNE5k1#&g7r(jFxnFMYb+(HAvHVthza4&z`)>H-@D%*d;h%v2 z1w03T0zLr$OZXqbzX`tw{#WqN!IjUW@F%%P*4z{3J;nWx;Qs}F0{$(y>Tw)iPMH;N zGW@T(KNtRO_<8XE3fK47pN8uLpWlJ&+a{HKbHqQpb+zHM*^Sfvd`do>-M*Rpoo&7o zKbPwb_Pp2SHqN1tY??5g|GLJ8%_HrZ{HuoR9N28Lm$sR*`nIQ7V8fD)PIiB}XDJuO z^Zo{|^X`8O*BQ6JGv(b+TKavM!ryiA*Z8IP3%+mDdk(I>fWJ5C%x9-yp4nqm+bM5< zjTIwp-&xzDx%qE4jeme+bMXEzL#@9$= zNkJOEZczH{`^z>Bp1*0EAH%1bvv`H&@W8 zUbG=6y;Se~JWD*qadHvPBb<*l&YfP0t`H2*VYn8rzm94m#)WMRoL4Fnp3PWJ)Zd5cQO&i zBaDwV#@$$cO$g&5s0KC$cP{Ig7PB~aepc6<8!bEOa9-k&i}3y+KtD=c#dER|-Xpw^ zHQwF1to0$hmw;?=-f2T1SA14#=xm2O)AX3th61GstaFySY(54Qqvwoprs)a##v?>j zTqhs(kEnl)b^mZ@ni>mnKjN9Del}C&IO-8N-sLT;akvkiX*vqP)5uHKg-1A#a6Z;J zcWYE@z}4)qZ4}U*O)zzsc`K%@qHkU$#js{l~h6R z+-ncy)V&q$LHKiE>F2?|kIA1i{^og{51-2ZPw{?=KfaXSPr1;hF$=D`%{FNa?WdI5 zKiJM*z&UA0O!D6{HOQ7kG<9GPSE}aVvPJb8OtFska}uc_5t|$RtB?{4g7* zZYa(yGfrjovHnxy_+d8Aa=nu@RL04sjBIYWcN9Z;sScApKVDrz?|b|4^t>kXal2e! zCa8<=XJxyFWR*rmk*x1$WxLfLe!7p)s1@#|s!%z6e_wt%?c~~6=OXy+o{~TM?Aq9u zv2jD~rQfHm@Ctvp*2VF|Y#i$Co{O`eQ?$s9(-x=#qrz_~=X662@RN~a$TU<+_CxBY zs(+}R88bpZAne8rjSc*+m>J8LGyb_TR=?G1;uQUmtBdD{+jtE0E}nif)5a_KK}{FW z54Z6`W2mrsj{EQ^*G}H|_vLFjMCrz~XTj+?W)2wo7hvCNw|N6jC zUVgZZ*Dy4`KMXqjc>dSiT|U0Qm0vR?uWz;c^8S~xoxJaF<>N!;()X@?`S90;hsx!L z+jyNr`KWCs4AW*4>@!`#3(4VmYJzDq|BHpLT$-l>`IUup;6%^=7@U(;o)c}_wam$G zZdIF4ESfKUKU;3f;V_~zffKz`KW^mm@WXAq`k_3O_oSjcd_OBo+1(r~|FV*Ag%7o> zFJt3^VHa2LK$p4syyzuqS4LmP#s$Z&9rRvlSy35%KVP;EJ-|JWhcMKZxx;pp*QM?I zTlvu3ulJzJyzps|p*Vh+jl*+sdFY)I6UQC`ae4UuRz8FgozE}xhIT2Pyzg)2c_uD> zwPAUQI{5xpp6BBF?W^FVe3&};VKxqZ-Q}S(D<)1+9ejT)Pd|6^+W#*vQ3v1O%G1By z^Va@p`Dw7?%hUa3QzI=J)nV zonrT0QGPr4oIb( z`n%l7`CMSm)=Ez6VpU?+w3EZOUE5$V=hZH6Y-p{mXOO^+oX7cIJ9v{jZrkh7_ha^n zapbq?`Lqpg&-8sFnaFv|SFUVY(Nx#$#~nG33%v#o63bPCE7fDe$FWdbH*6lXoIg{x zHn%Qc(Ylr|uSe<0PB%+T<<$X3dEh?_J1o=IRuuy2w8OL`Xtmn;_d2LLq(|Y{Lh& z&p63Cr|S+#n3gLJ`v!g&n-IS)_R`2b&yDKC ze*a*&uq#Ih)9)1w7f-)KFkG0vk>tLyWMN~9gSUCVMf)~##bJ6^#nrtyOz)uBZhT5S zy<4I^Be~*udS}Fyvp7uef(#c=I-JW7)h2MNgZAWHyy7s;%xiIz>Pros~#Dtt0rr!d;50Wd6 zw}nhL`a!3J>35IMA0|xuGQ)-GcZ!b;6HnhkbbW=U4V>zr?-jZ>?%#wqu5EAZ z&+zG^s-}2i|3H7Xy>-j=ja#dhR<#XQHTCuFZ`aoW+MD;q`}syvRYUu(rkd+F?hJXj znWn0trlFlkb{yt1&^2lfbb58GyXxw@S0Tv5LUpN2$T z?dm!Sj&h02*j&?+%%=A8F`F}%!RQyfpedbBbq2~`kWWadQdaDrzj5*n;aBAU(FIO` z^xa28*M8VI|9gK;UF_DK>1MUrjyDevK2Rdtdlev&b(yE)LgA%FVS2o+@*=(|>Gd-B1BzoAU6lXfqo?~w|xet5EZNJG_?-o=&K=ZD^=uVeb~{>3W#b!2o5`Q7-9M2iSNLZXi$e;x;Kx1%`d ze9j9LcoAtnK;kcAH0YeB@!p>Aj|v=7q!ueF2fjOoefBWfSj zOLbIxsHm!s>aKdKj?yi))Rdj#LWt~*y@I0Y+sgWV6aBUcHb-Bdtb$(xsm&Hb)zGET zWzgl2>bDqL0$l+~?^_DhK+7O4mzux)Is|X-#z#vVy(dV!Z literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.vshost.exe b/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.xml b/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.xml new file mode 100644 index 0000000..940f374 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/bin/Exercise 8.8.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.8 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.exe b/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.exe new file mode 100644 index 0000000000000000000000000000000000000000..71c7ce22b329029ddf33252efc79564695ff356b GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.pdb b/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.pdb new file mode 100644 index 0000000000000000000000000000000000000000..32cefde7303690ca71547d6e23495393a933b371 GIT binary patch literal 56832 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.vbproj.GenerateResource.Cache b/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..3e9e3bef5d67c2cd6adbe70e362531a1b902c522 GIT binary patch literal 786 zcma)3O-sW-5KV1U`=L+|(t{p~cn~b1Rf=AUV8su#;1}Y-%Qic~wcD)hB+~c`{3+i2 z7yb?}-n@!Oohd3(gE)bgWOnw=n|V&gah!JwesfGs5S(|FZw;Ct@-}0orFSZ@kM-Ia zSX3r#uXqi9>a|X+qu4?_ggCN7*K3DyPb+^Pl2g-%u-$8{2CZN%Xf|c5Ay$RUZI)8m zy<@-~2)E!GLJ6U-09i`W0-kRx4Os07gaZ}!LGu5WvfxL?Cb`T)I^j6gh%QTghOj?lmuJg#EH6v94!~~XF|t-j+4zgu3Ijo_1gR5T1?Tr_ly7KXnlj{ zEtSfIMVBE@P~k5=$g}3TZc-yjS2X)YHzCVRY<)nFTpCumoGXh30+*qg?#yqimnk)} znKxI~-!5bI+r@-kUk(UDF@U+TycQUBjZ}dGIXiX+LxmCMN!oN~ literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.xml b/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.xml new file mode 100644 index 0000000..940f374 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise 8.8.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.8 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise_8_8.MyResources.resources b/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/Exercise_8_8.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYH2JaYRa9qS%yU@(#@U$tTj-Nz|TVqd>8y02XzvSV-nQU0{1}0CDcLU38>L3 zQ?SJS2Do&T=MrjxkezTiG~QdhTb7DErWu*WbQ)p&ibv@47_L-h((SI~QmLZ?Xj(bp zd6+BqQCW|f+6Y+H105xTJ|T*t!m ze+^+Im04z98x#eJL=w>}J+fNpcK-cj?j98rPawnw2%-of3QXD2xlTf#$LKtckRnU+ zGl?H7cG9a-yu`YlVh6`8+7gFo;bgZ`S`Lk3NrV(Bke)e+P|n?P9<GObrr)+_>{(~GPvm_Xy>oqe;|_YF(*!@zX{1o-et$xeZF2vGRvAK- zY=0`)BrP$F5{14bD%^L)rm_k`HWg{5X!=?bYc1t?tloV4{xT2t(iBpHMLjMv=hd=yTdy)HC)p)XTy2_R?|aN HCq0ROWWB3_ literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/ResolveAssemblyReference.cache b/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Debug/ResolveAssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..e1540b66008fe28625258b8b456574280128cde1 GIT binary patch literal 5122 zcmeHK&2Jk;6yLSiAG>klq!5XZQd|`QQp0XS8;C-qDsdYTm6Q-iZV`sn*gH;!u6LuI zbwqk8NBD2JapdDb;lRhCEe8tX#)mlYAHe%<*7j~=(WKm>OqA#Ojc4AxdGGh$j1^T; zlz*t<6RngXaeY;^0$=*=&|K;Y*D*JkydkG5bsk9JdkZg{)A*aJRJ(524fuk`yJ5iG zsmfZn>5A4BzPsVy;NC)W`doXq{c3w=#+jXF=U5KgoF1y(tnJE>cWNOEIcDi?;qnM& zPwstXR(;pyt&l8`=Icyug{=tMGKXKt5EMagEBTyCT|Y_FA`uIGl>ys}UKUvJG_gxQ8M zLQ>ZtawNvlgBS9767}kQV{tp+QZ`oKu3UR_{Ys;{#kNBpRL;ybU~r?pWL~|z(I2MK zfRiIHv5?hx*k}qbJz_epJC2ktNs9N?jC7-KSNUy;dL7zl4OtDcIZz0TV)LsKV-IEo18OC&C( zVl&99nS*AP*LB?j&JslrQPd877JZbK>0=OOh;fJs5)<$bng)X(axfexXCvN*-B11U zpc_?zk{y?c6|e24Brn=={*Bqli$!b$3(7KH91?`{}apXcrD@Pi%k614A}QGB&grU!`b+N7ONGjxcRrqX6gkXk+LX`jlA! zWxh{aD3=39oPbyic|=Zp3KnCl~Eo q6L*by6*nWMVl>&xD1vFND279|g81pFNPwYJap3e+9DLZ+k$(aI2dF*( literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Exercise 8.8.vbproj.FileList.txt b/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Exercise 8.8.vbproj.FileList.txt new file mode 100644 index 0000000..30180aa --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.8/obj/Exercise 8.8.vbproj.FileList.txt @@ -0,0 +1,13 @@ +bin\Exercise 8.8.exe.config +bin\Exercise 8.8.exe +bin\Exercise 8.8.pdb +bin\Exercise 8.8.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_8.MyResources.resources +obj\Debug\Exercise 8.8.vbproj.GenerateResource.Cache +obj\Debug\Exercise 8.8.exe +obj\Debug\Exercise 8.8.xml +obj\Debug\Exercise 8.8.pdb +bin\CreateDataSet.dll +bin\CreateDataSet.pdb +bin\CreateDataSet.xml diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/Exercise 8.9.vbproj b/Code/Chapter 8/VB.NET/Exercise 8.9/Exercise 8.9.vbproj new file mode 100644 index 0000000..e3530bb --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/Exercise 8.9.vbproj @@ -0,0 +1,116 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {B34AC2FC-CE63-4A57-A27B-E71529AE7D28} + WinExe + Exercise_8_9.My.MyApplication + Exercise_8_9 + Exercise 8.9 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 8.9.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 8.9.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + {21FDB488-AEA4-40A7-9F36-7107BB28BD42} + {F184B08F-C81C-45F6-A57F-5ABD9991F28F} + CreateDataSet + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/Exercise 8.9.vbproj.user b/Code/Chapter 8/VB.NET/Exercise 8.9/Exercise 8.9.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/Exercise 8.9.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/Form1.Designer.vb b/Code/Chapter 8/VB.NET/Exercise 8.9/Form1.Designer.vb new file mode 100644 index 0000000..f4e82e3 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/Form1.Designer.vb @@ -0,0 +1,64 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.xmlViewer = New System.Windows.Forms.WebBrowser + Me.dgView = New System.Windows.Forms.DataGridView + CType(Me.dgView, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'xmlViewer + ' + Me.xmlViewer.Location = New System.Drawing.Point(1, 193) + Me.xmlViewer.Name = "xmlViewer" + Me.xmlViewer.Size = New System.Drawing.Size(381, 298) + Me.xmlViewer.TabIndex = 3 + ' + 'dgView + ' + Me.dgView.Location = New System.Drawing.Point(1, 1) + Me.dgView.Name = "dgView" + Me.dgView.Size = New System.Drawing.Size(381, 185) + Me.dgView.TabIndex = 2 + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(383, 492) + Me.Controls.Add(Me.xmlViewer) + Me.Controls.Add(Me.dgView) + Me.Name = "Form1" + Me.Text = "Exercise 8.9" + CType(Me.dgView, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Private WithEvents xmlViewer As System.Windows.Forms.WebBrowser + Private WithEvents dgView As System.Windows.Forms.DataGridView + +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/Form1.vb b/Code/Chapter 8/VB.NET/Exercise 8.9/Form1.vb new file mode 100644 index 0000000..8913621 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/Form1.vb @@ -0,0 +1,26 @@ +Imports CreateDataSet +Imports System.Data +Imports System.Xml + +Public Class Form1 + Private dataFilePath As String = "..\..\..\..\Data.Xml" + Private WithEvents CustomersTable As DataTable + Private xdd As XmlDataDocument + + Private Sub Form1_Load( _ + ByVal sender As System.Object, ByVal e As System.EventArgs) _ + Handles MyBase.Load + CustomersTable = CreateDataSet.DataSetFiller.FillDataset(dataFilePath).Tables("Customers") + xdd = New XmlDataDocument(CustomersTable.DataSet) + dgView.DataSource = CustomersTable + xdd.Save(Application.ExecutablePath & "_xdd.xml") + xmlViewer.Navigate(Application.ExecutablePath & "_xdd.xml") + End Sub + + Private Sub CustomersTable_RowChanged( _ + ByVal sender As Object, ByVal e As System.Data.DataRowChangeEventArgs) _ + Handles CustomersTable.RowChanged + xdd.Save(Application.ExecutablePath & "_xdd.xml") + xmlViewer.Navigate(Application.ExecutablePath & "_xdd.xml") + End Sub +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/AssemblyInfo.vb b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..b652cab --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyApplication.myapp b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyApplication.myapp new file mode 100644 index 0000000..a52acbf --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_8_9.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyApplication.vb b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyApplication.vb new file mode 100644 index 0000000..75de51c --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyApplication.vb @@ -0,0 +1,29 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyEvents.vb b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyResources.resx b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyResources.vb b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyResources.vb new file mode 100644 index 0000000..b0baf67 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_8_9.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MySettings.settings b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MySettings.vb b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/app.config b/Code/Chapter 8/VB.NET/Exercise 8.9/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.exe b/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.exe new file mode 100644 index 0000000000000000000000000000000000000000..07808868ff0bfedc95a136e216c87a0d958891c0 GIT binary patch literal 28672 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.exe_xdd.xml b/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.exe_xdd.xml new file mode 100644 index 0000000..2b4f0a6 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.exe_xdd.xml @@ -0,0 +1,91 @@ + + + 1 + Bill + Gates + + + 2 + John + Williams + + + 3 + Steve + Ballmer + + + 4 + Tarzan + KingOfJungle + + + 5 + Jane + PrincessOfJungle + + + 1 + Dagger + 10 + 0.10 + + + 2 + Computer + 2000 + 0.095 + + + 3 + Hamburger + 5 + 0 + + + 4 + A Nice Suit + 300 + 0.15 + + + 1 + 1 + 2 + + + 2 + 2 + 3 + + + 3 + 2 + 2 + + + 4 + 3 + 4 + + + 5 + 4 + 1 + + + 6 + 4 + 2 + + + 7 + 4 + 3 + + + 8 + 5 + 1 + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.pdb b/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.pdb new file mode 100644 index 0000000000000000000000000000000000000000..20ea110995f7fff613d5d949c3bc23b5474cd31c GIT binary patch literal 54784 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.vshost.exe b/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.xml b/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.xml new file mode 100644 index 0000000..a46dfa6 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/bin/Exercise 8.9.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.9 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/Exercise 8.9.exe b/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/Exercise 8.9.exe new file mode 100644 index 0000000000000000000000000000000000000000..07808868ff0bfedc95a136e216c87a0d958891c0 GIT binary patch literal 28672 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/Exercise 8.9.vbproj.GenerateResource.Cache b/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/Exercise 8.9.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..df037ab0e046dfedd51632296db8585ae9841d3e GIT binary patch literal 786 zcma)3O-sW-5KV1U`=L+|;z18ZJP0kJRYWgEvEpY7eo=bxvdvC#?KUeri8THKf0;kU zlUL6=Q&gk|aRM*N?ChI2^PG(1IPVnv=9rry=y#QG4VobG_G6``cP(&;^=c0+DigLg zyaqq@YCG0ZY@roG99g03)$@3um461wwHZR#8Z6_>5<*`AvXr6)>>nx(xHJ$59Tg5i^8bOd;77(Lxy))h;WX8RE=!yxm+>FBSnZtr zp(wj@m0$!TuWhuZ_OuN2js@OEVxVEtAV+s{41bo+QbDO>ggg{H#O&v03vDyH7Zz-V zN!v!kxit?;f-P|3N=F0lp zWnB7pF=5wh0YNB6usoI50;8^xDo`L7r_NxkFv2`Zo6k% + + + +Exercise8.9 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/Exercise_8_9.MyResources.resources b/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/Exercise_8_9.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY%>Im&~0?t+y&JuP#G-Q`EuB zRIGGurZ!ibo_1y|mS!P}bgO3oa|6^9@N&=u&jGK>L7m3KQ3+}*&s|V42{n+o18TIw z6s&Ns4i0VQxP+=NWIGrPO!Ox2rllfJc#Mulbs9lj#X__^fh$#+aJnnGTx=^J8fI3w zF6N4TROVBrwtZG{K}QLpPk^H6aA8~o3Hq-iorvuH`YL=$gzH>v6HP&9!iNetv09z;{h-m@Py@szR)FH+^T zjb%H#&6+;Q)U|m#D;%&(i{|R%%>x)w3CxEa^H~vmyTZMri0Qa)_zZH-BX@aeHMdqS z+J}lEuDoOo*b%aBzagdHv1Y9~d%sWQeHOj5eR-n>UD0lU=j$|*NOZq1qOHP;W*9<- zg}xYalI?Ksm1Y@6mP~&v*k(;}4k_||QIxsoh#h6-g={F|N|JuG(9Yu`Izr|GnNczq z$y_2ch9*RsnLfO}u5s04noOed^dzB27IzP(hZ;Q?4sDtylQlFRieUU0?lR>Ugu`nb zoRMRDu*;RN!l?PdfPT*7lq9Kt;Thlk`TO&`K!^&u-aFf)Y%~EP|FTGQhYfe)9EPEH zvgiDn_(2f@)GggMlDKi@`_~(3f~kKRChZ!0>`Moxj%t{cXx!cVG^bBfk2Os4GQMqu hZ)%vju3^%P@!`R62c~<_FloTBKfc%S5S33~{4Yqm!c71G literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/ResolveAssemblyReference.cache b/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/ResolveAssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..3133d0edfad3fb54585de779b324f6a89087a224 GIT binary patch literal 5152 zcmeHKTW=dh6yCMhm)$sVQi#N*6jvZXYPy@y2CC4gO58+5G*PG{s{*6d*gH;!taqcG zb%gs;9^u!(8;`U+PoobP-yR#Zh% z{-K6Xv{Ht|tyR$qeCfACbFnL2$J}6YTTWH#Jdnco=3h3a@i$eecHOWW@Oh7S!+^O{ zmGy4Z6|FaTZ^Pf_-h6ZVQhT=jYI|nJnVn{rSPt8qA8OsK^<>C9wUC7zv-Gxbd8B2} z?tNueeb?o!kUWs)>r8Hitm$(2t7l1Q5dS%~Kog7`K692?EA)dxe4Jv{@9eOE2jehW z^&P$*_`Aa4K@kHrahq#&BAKrxH&Pt7*Gk{k^Fw@IIb{FuH?Lg70Sse= zq^?2aNQ|S0DCF}b_|jZsVJF~HRu)-nySpPB%PVUOH!2q^tG&vi?{7EYb)&k)c0wLh zt~Bb4=GxLmVxSsuitBY2vKkK?P2n|CBc|iJMZAz@;V&$_q!1(la+d%Fjle}oh(o=ZUns><3lf z3j^OhV^g?&Zxh>5d9E`NO!jR=RTzq*&mv*C-|eNGeY9229fr%Hqg_3!Ke7L*2n^XEiQFhWnfw{b-e?Mp zhW;3h-J$>d<0LwuUVYJbt) z^k`89l@)eD*|x0|wfCt!{v=~CNZ%-i_6PO;S6I_KK+}FFn@5RudMT>SP*H*rFFh5h zD8@*AI#N-Vk$N^#u_RKTiByzoq@IIXM%vIa8iIHL+F~Y#LlUX(W(2B>|$)m;|1s1Q$E9a zlZJ`{WYnLigHoVA6&e713YzFKbTV&_7bwA#`!BM(kX`1|r7l{A{vv(1hoG0Jr~XK& z=u@!zLqajs2c!)U^gSv22mnI9YAItkohcu67^m}G1R+B$b3r5;D#z!Xel1xnNMyv>Q7$&?L!q0CcM7! zYd_h_xDlhNA78WYOgu2=RNRc1iqT{%g9Ou7L54%E0{H2vD1f0;ap3e+9DLZ+k$(Xw C9J0y) literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/TempPE/My Project.MyResources.vb.dll b/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Debug/TempPE/My Project.MyResources.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..b0fb6e5b2cc588a69855890c611d904fbcc57d1f GIT binary patch literal 6144 zcmeHLeQX?85udlWzO&Ev#b@JS*R5I0iE!-X;t;oKXxjSY^5Kw+-CRD}l47s#)|YMf zc8}dXC)cXRkP0ctih}r%P@yX1uP7CYAW{Pq36V;)g$jfk2_b}{20@XkHvbd^sv3Ut zcF#UL2?+SF>a%y=%)EK?X6DVCw|kjK&rpPjR6I9s5M4sgZCJv84;C<-_{5JBbg|*} zo=ali>pcgLnVwd1or0?uwVZC-j<3xanp?It)7H`xS*_^gjZ|}Ud|jw|awpL~5uy2K zhDNKaU8O`%qo^lp0Vf)8yEmiP@C@T&prKO&yMamjxu*p@;ByOxp@j7?ko{7}OnN0n zlx1X?=&f)blS^%ysA-A#FA$9g9xSzb(0i6BqLgo(@IkLz1AsAU+p6`!o=&-*o5QfQ zZ5Rk|R4bmEHVo@iu3G1_9SG{J&uz=dn`Z&xGNY1mAlfYP@v^s_< z$$6gVK(c0x?SPVGA95#T6V^?FTGERYP0sU54mKtff=qi=rUN=+kWm)lY1gKBAG(3~ zKy*M=q!Ao5PEF)XGSW&Pw8P7;=ocCG?+x@QUMI9Y4NdWW#7Ch)$Rh|zBa-UWKH66#`zra9C#;lwAvF5)-j*8{D95_zD7R+ z{5!pg{P~<17jY_*FR(w#p8;P`7L_<%SD4ctVfi~GoQymWiPG`NY$Q%Uj4T5FGSWr~ z`bXqiBtfkzLtA}FjnX&OlYrk>&qMz&)HZ1No4N>(1N#`l9{g{hyAjK3oG0ipO2T^f zkzmnd@IJy>C0ghNs5($lQZVmJ7_S4~Bz-*-Qfn~#_teHZ#K&n1ofD&gzZDaJTa^O! z&<*7*O==LQwe@R67gqjyNc9R0)C(cCS*!={W3 z`jzrE#OL`M$vV0iQ1w@p=Qvuh{64|(E|?&+#nR5y z;=90~5If{Pq$NL1Z>rBxn%-9566e5qPi&wuxCFHAZM&PmBRCGk_>ZxCnY+_S`U&q@9{@b`<$^b_&`S;MQ6|0?+H;;O{|Dj{L^ zY0@MdmT+3a=Oz4^goKPbO_y<^-p3h^ibgSuzjuU!$aB8N0BnHYT=N@&H&QcT3o7tm0;{hsqImflk8OoSB*YTWLKXusj%DOeGduEO@l>>(7l--=+ z(asZwn=?IQ>fWjCsZ1rcJd&x5luDMF(|yyiSIa@im{Tm3eZvJh={k=aIUm>&V4NB#F2fp7bz=-2g5K=iQCl{^;tT=iOfk4nP0m_#i8S0?4>6IL0Wvx~=ez)OQ z*C8n2H&wZJ$SIDhWKgZp!Ai-X&;!#GxUT})q2nBXw1V%~DKRNC;&f=zo2 ztMnP8a@=wAH`$jq^@8nqzM1nVZOoJlIK*%%Z`jMCBM9=G&Sxk{prviiRCc>gxiscj z;YKXaVbg=7%JznbR;HFL1qTdEKOr%1c}}LHh2;syvRV(k)EtWA?M700i{CYA%TBxl z8RX*DGsy!sMfc*_j+-(=6*>TpM-G*x1mi^8dfxrcw#`rNT^u^`$Z+N9_o@EHCyyTP z9J+d{{=$P(Ur1hwe>xIvZNSrvJD|0JK{GBM0lJ=PfaZus`0OOXgDtUWd+VK|wS|eM zkZ59}Q%>t-v?Jtq@bnf2O$<62bST{vYZ0Ow@2@J~6R|-dL`yd*ZKP_rfOu|?0MQ2` zN}_drasvihH$^o?B+$i_)&^J>gN=2X5Xq5xA#XO^W!2Zn(8i!^3c3!S(ZZmKK_`O_ z6$%n$$Js6~8fp?014EV|s>3i`io-LghLf5q5@@=hp)hl? zLaJJFP$(VW$vKvn$~t;!kMEbpEK?qWfZuv^A#1xu8Nv?{(m%v1j9VPRh@sBz{v~G!LmdesDM@-HDMR3hJ_k2PBzV=PHnE5Q#1#QQW literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Exercise 8.9.vbproj.FileList.txt b/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Exercise 8.9.vbproj.FileList.txt new file mode 100644 index 0000000..b4725bb --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.9/obj/Exercise 8.9.vbproj.FileList.txt @@ -0,0 +1,13 @@ +bin\Exercise 8.9.exe.config +bin\Exercise 8.9.exe +bin\Exercise 8.9.pdb +bin\Exercise 8.9.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_8_9.MyResources.resources +obj\Debug\Exercise 8.9.vbproj.GenerateResource.Cache +obj\Debug\Exercise 8.9.exe +obj\Debug\Exercise 8.9.xml +obj\Debug\Exercise 8.9.pdb +bin\CreateDataSet.dll +bin\CreateDataSet.pdb +bin\CreateDataSet.xml diff --git a/Code/Chapter 9/C#/Chapter 9.sln b/Code/Chapter 9/C#/Chapter 9.sln new file mode 100644 index 0000000..7e429e3 --- /dev/null +++ b/Code/Chapter 9/C#/Chapter 9.sln @@ -0,0 +1,68 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 9.2", "Exercise 9.2\Exercise 9.2.csproj", "{BCE49566-FFD9-447F-8DE5-D31EA5A8FCA0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 9.3", "Exercise 9.3\Exercise 9.3.csproj", "{E0228729-B240-4233-8F7A-3FC865AB26F8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 9.4", "Exercise 9.4\Exercise 9.4.csproj", "{D5A7E97A-1D37-49B9-90AB-C0747366A62B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 9.5", "Exercise 9.5\Exercise 9.5.csproj", "{63AF024A-0100-444E-8FC4-B9DBEE1FC6C6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 9.6", "Exercise 9.6\Exercise 9.6.csproj", "{7E62E7C0-9C60-46CC-99C7-A64856957F33}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 9.7", "Exercise 9.7\Exercise 9.7.csproj", "{9E1C3C62-1057-4F72-8F44-9740B1018494}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 9.8", "Exercise 9.8\Exercise 9.8.csproj", "{8EA8604F-3C45-4571-99A1-EBDC9CF4152B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Exercise 9.1", "Exercise 9.1\Exercise 9.1.csproj", "{A0312259-0071-4F55-AD41-349699FBD019}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlBulkCopy", "SqlBulkCopy\SqlBulkCopy.csproj", "{FC38597A-F6A6-44CF-9294-19C0A288217A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BCE49566-FFD9-447F-8DE5-D31EA5A8FCA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCE49566-FFD9-447F-8DE5-D31EA5A8FCA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCE49566-FFD9-447F-8DE5-D31EA5A8FCA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCE49566-FFD9-447F-8DE5-D31EA5A8FCA0}.Release|Any CPU.Build.0 = Release|Any CPU + {E0228729-B240-4233-8F7A-3FC865AB26F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0228729-B240-4233-8F7A-3FC865AB26F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0228729-B240-4233-8F7A-3FC865AB26F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0228729-B240-4233-8F7A-3FC865AB26F8}.Release|Any CPU.Build.0 = Release|Any CPU + {D5A7E97A-1D37-49B9-90AB-C0747366A62B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D5A7E97A-1D37-49B9-90AB-C0747366A62B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D5A7E97A-1D37-49B9-90AB-C0747366A62B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D5A7E97A-1D37-49B9-90AB-C0747366A62B}.Release|Any CPU.Build.0 = Release|Any CPU + {63AF024A-0100-444E-8FC4-B9DBEE1FC6C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63AF024A-0100-444E-8FC4-B9DBEE1FC6C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63AF024A-0100-444E-8FC4-B9DBEE1FC6C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63AF024A-0100-444E-8FC4-B9DBEE1FC6C6}.Release|Any CPU.Build.0 = Release|Any CPU + {7E62E7C0-9C60-46CC-99C7-A64856957F33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E62E7C0-9C60-46CC-99C7-A64856957F33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E62E7C0-9C60-46CC-99C7-A64856957F33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E62E7C0-9C60-46CC-99C7-A64856957F33}.Release|Any CPU.Build.0 = Release|Any CPU + {9E1C3C62-1057-4F72-8F44-9740B1018494}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E1C3C62-1057-4F72-8F44-9740B1018494}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E1C3C62-1057-4F72-8F44-9740B1018494}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E1C3C62-1057-4F72-8F44-9740B1018494}.Release|Any CPU.Build.0 = Release|Any CPU + {8EA8604F-3C45-4571-99A1-EBDC9CF4152B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8EA8604F-3C45-4571-99A1-EBDC9CF4152B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8EA8604F-3C45-4571-99A1-EBDC9CF4152B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8EA8604F-3C45-4571-99A1-EBDC9CF4152B}.Release|Any CPU.Build.0 = Release|Any CPU + {A0312259-0071-4F55-AD41-349699FBD019}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0312259-0071-4F55-AD41-349699FBD019}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0312259-0071-4F55-AD41-349699FBD019}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0312259-0071-4F55-AD41-349699FBD019}.Release|Any CPU.Build.0 = Release|Any CPU + {FC38597A-F6A6-44CF-9294-19C0A288217A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC38597A-F6A6-44CF-9294-19C0A288217A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC38597A-F6A6-44CF-9294-19C0A288217A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC38597A-F6A6-44CF-9294-19C0A288217A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Code/Chapter 9/C#/Chapter 9.suo b/Code/Chapter 9/C#/Chapter 9.suo new file mode 100644 index 0000000000000000000000000000000000000000..21fb97f5cbedd9d26bbd48fd9483902f4c687206 GIT binary patch literal 65536 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 + + Debug + AnyCPU + 8.0.50215 + 2.0 + {A0312259-0071-4F55-AD41-349699FBD019} + WinExe + Properties + Exercise_9_1 + Exercise 9.1 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + TestDataSet.xsd + + + MSDataSetGenerator + TestDataSet.Designer.cs + Designer + + + TestDataSet.xsd + + + True + Settings.settings + True + + + True + True + TestDataSet.xsd + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/Exercise 9.1.csproj.user b/Code/Chapter 9/C#/Exercise 9.1/Exercise 9.1.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/Exercise 9.1.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/Form1.Designer.cs b/Code/Chapter 9/C#/Exercise 9.1/Form1.Designer.cs new file mode 100644 index 0000000..a6052ea --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/Form1.Designer.cs @@ -0,0 +1,246 @@ +namespace Exercise_9_1 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); + this.testDataSet = new Exercise_9_1.TestDataSet(); + this.animalsBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.animalsTableAdapter = new Exercise_9_1.TestDataSetTableAdapters.AnimalsTableAdapter(); + this.animalsBindingNavigator = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); + this.animalsDataGridView = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + ((System.ComponentModel.ISupportInitialize)(this.testDataSet)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.animalsBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.animalsBindingNavigator)).BeginInit(); + this.animalsBindingNavigator.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.animalsDataGridView)).BeginInit(); + this.SuspendLayout(); + // + // testDataSet + // + this.testDataSet.DataSetName = "TestDataSet"; + // + // animalsBindingSource + // + this.animalsBindingSource.DataMember = "Animals"; + this.animalsBindingSource.DataSource = this.testDataSet; + // + // animalsTableAdapter + // + this.animalsTableAdapter.ClearBeforeFill = true; + // + // animalsBindingNavigator + // + this.animalsBindingNavigator.AddNewItem = this.bindingNavigatorAddNewItem; + this.animalsBindingNavigator.BindingSource = this.animalsBindingSource; + this.animalsBindingNavigator.CountItem = this.bindingNavigatorCountItem; + this.animalsBindingNavigator.CountItemFormat = "of {0}"; + this.animalsBindingNavigator.DeleteItem = this.bindingNavigatorDeleteItem; + this.animalsBindingNavigator.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.bindingNavigatorSaveItem}); + this.animalsBindingNavigator.Location = new System.Drawing.Point(0, 0); + this.animalsBindingNavigator.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.animalsBindingNavigator.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.animalsBindingNavigator.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.animalsBindingNavigator.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.animalsBindingNavigator.Name = "animalsBindingNavigator"; + this.animalsBindingNavigator.PositionItem = this.bindingNavigatorPositionItem; + this.animalsBindingNavigator.Size = new System.Drawing.Size(342, 25); + this.animalsBindingNavigator.TabIndex = 0; + this.animalsBindingNavigator.Text = "bindingNavigator1"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.Text = "Add new"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Text = "of {0}"; + this.bindingNavigatorCountItem.ToolTipText = "Total number of items"; + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.Text = "Delete"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.Text = "Move first"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.Text = "Move previous"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.ImageAndText; + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(100, 25); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "Current position"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.Text = "Move next"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.Text = "Move last"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + // + // bindingNavigatorSaveItem + // + this.bindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorSaveItem.Image"))); + this.bindingNavigatorSaveItem.Name = "bindingNavigatorSaveItem"; + this.bindingNavigatorSaveItem.Text = "Save Data"; + this.bindingNavigatorSaveItem.Click += new System.EventHandler(this.bindingNavigatorSaveItem_Click); + // + // animalsDataGridView + // + this.animalsDataGridView.AutoGenerateColumns = false; + this.animalsDataGridView.Columns.Add(this.dataGridViewTextBoxColumn1); + this.animalsDataGridView.Columns.Add(this.dataGridViewTextBoxColumn2); + this.animalsDataGridView.DataSource = this.animalsBindingSource; + this.animalsDataGridView.Location = new System.Drawing.Point(0, 28); + this.animalsDataGridView.Name = "animalsDataGridView"; + this.animalsDataGridView.Size = new System.Drawing.Size(342, 220); + this.animalsDataGridView.TabIndex = 1; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.DataPropertyName = "AnimalID"; + this.dataGridViewTextBoxColumn1.HeaderText = "AnimalID"; + this.dataGridViewTextBoxColumn1.Name = "AnimalID"; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.DataPropertyName = "AnimalName"; + this.dataGridViewTextBoxColumn2.HeaderText = "AnimalName"; + this.dataGridViewTextBoxColumn2.Name = "AnimalName"; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(342, 248); + this.Controls.Add(this.animalsDataGridView); + this.Controls.Add(this.animalsBindingNavigator); + this.Name = "Form1"; + this.Text = "Exercise 9.1"; + this.Load += new System.EventHandler(this.Form1_Load); + ((System.ComponentModel.ISupportInitialize)(this.testDataSet)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.animalsBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.animalsBindingNavigator)).EndInit(); + this.animalsBindingNavigator.ResumeLayout(false); + this.animalsBindingNavigator.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.animalsDataGridView)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private Exercise_9_1.TestDataSet testDataSet; + private System.Windows.Forms.BindingSource animalsBindingSource; + private Exercise_9_1.TestDataSetTableAdapters.AnimalsTableAdapter animalsTableAdapter; + private System.Windows.Forms.BindingNavigator animalsBindingNavigator; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton bindingNavigatorSaveItem; + private System.Windows.Forms.DataGridView animalsDataGridView; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + } +} + diff --git a/Code/Chapter 9/C#/Exercise 9.1/Form1.cs b/Code/Chapter 9/C#/Exercise 9.1/Form1.cs new file mode 100644 index 0000000..d4e3933 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/Form1.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace Exercise_9_1 +{ + public partial class Form1: Form + { + public Form1() + { + InitializeComponent(); + } + + private void bindingNavigatorSaveItem_Click(object sender, EventArgs e) + { +if (this.Validate()) { + this.animalsBindingSource.EndEdit(); + this.animalsTableAdapter.Update(this.testDataSet.Animals); +} +else { + System.Windows.Forms.MessageBox.Show(this, "Validation errors occurred.", "Save", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); +} + + } + + private void Form1_Load(object sender, EventArgs e) + { +// TODO: This line of code loads data into the 'testDataSet.Animals' table. You can move, or remove it, as needed. +this.animalsTableAdapter.Fill(this.testDataSet.Animals); + + } + } +} \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/Form1.resx b/Code/Chapter 9/C#/Exercise 9.1/Form1.resx new file mode 100644 index 0000000..c8296d6 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/Form1.resx @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 126, 17 + + + 286, 17 + + + 442, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAfNJREFUOE/Nk8lr + U1EUxvtnuHMnLQouFGpBRdwIorgQ7EYUobqpi0bEooID3XbRhQutOFDbOgUqDs2AbU2cWtoaJG0TxTSV + 5OXV5OXlzYOJ/rzGVSGBLL27C+f7ne8799y2tv/2uKUI7voILRt05Qm84jhWbqwuqixd5MfrfTj5B/W7 + LY3gK48FNNQYaqzeZD1+FC3ZR9WcxEqdR4luF6Jx3MIwyvtDaMsB3OKLJoDsCMWPJ5CfbcZJncVN9aLH + dvFTGkR/t59SdCdmdgi70ATw16ZfmcBKnkF5vgl99iBm8jT6QjfahwNU1TE8Pdq4e9WYQUtfw0j3Yy2d + QovvxskM4ZsLWNlBrHQAb/UK1pcLOLkbIuLcRpAjPyQ3uQf51TbK4S3Cehee9JTfv3Rs6Q564jharJNi + eCvqYg9+ZXojwFcXMbJ3cQr38Nauo0ba0ee6sb8OoM0fE656qOlPcKT7Ahikan1rHMXOD1Oa2ktZTN+c + P4z2pgvz80kB7MBMBfCNcPO9sPOjyLEjSKFO/PIj0b1fxGkXnYOYK+covOzAyAzgKU0gdm4U5VMf5vdb + +Po0+sol5NAOvFIQT42gJi+jp6/ilZu8hKfMik2cwi3F6zbNtduUE71C/E/gKW8FbAavkmhtvWtOhpqz + 3Fpxyx+mQeEfdtWWWgCbhLwAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAW9JREFUOE+tkk0o + w3EYx3dV3kq5uKBWDiPT8hISMiQsMiEyQ9qBg0hoFwcHUi7kgIvkQFJSTrQ4zdvmrTW1/kuT0i74x+X3 + MRal/fEnv8tz+H2fz/N8vz0azX88PG6wmcDp4E881hYR3VUIixF2Nr+FcO2DlbnPGjaWoM+M6DAiOitg + YUoR8rqhsJTBWG/kP6fOMKTegGjKh/7mTyIx0oUw58C0/XubLM8iKtPeQIx2gfcMJgbD0FBVlRE+D7QU + hS2ZshANuTDQqq75fQIHe6GVcxHV6VCr/2VzQIKmAshOQNbHc6+PhTqDOggBP5jzoDCJoLUaLo7fwr3V + hSCr8z8EeHcLbSU8FCfjLU0nuL/70cB4Py5tDLL7UBnC8xMMW6EkhRNdIsGt9QjhTXkGUnsN8rVf4Q72 + tpFzEnGlRiH1NIL8qDjJoY1DdjkVADNjSGnReI2ZIF196VW22+D8SAFw6YLJITjaV5e2qotSIXoBiiMD + HEVvQ/IAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAStJREFUOE9jYBg0 + oHDW8/9NC57/z5z4+D8uR4W3P8Apx5A789n/VUfe/8elKL77wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+ + ///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0v3f1BxRFoa33wJpb1wFt7/z73yX/AG4D + Apsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvgUXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF + 7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbAIu/O/9T+11gVGSSd+C+b9vW/bvA83AYY + Zt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPulf8gBXgVDZqMh+wQAPB2wKsSwCgmAAAA + AElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAL1JREFUOE9jYBgy + ILz9wX+yHRvf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3v + kn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ14A0ChbVd8+3/6nN///bu+/dcpfPffImE9aQaADNFP + Of/fpOjFf5WsT/+NI5eRbgDIEIOkE/9l077+1w2eR54BYJekXv6v4TuNfANAhqh4TKDMALKTMc01AgDQ + FGCYkuTLEQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKtJREFUOE9jYBh0 + oHDW8/8UOSp35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ + ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuIN8Sj6v7/krnv4JoVXXqI1wyKPvvSu/8D + W56BbSZZM8gAi7w7/20KrpCnGWSAYdZt8jWDDNBJu0GanylKtoNCMwCgfl+gC2KedgAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAATBJREFUOE9jYBhU + oHDW8/+4HASSa1rw/H/mxMc41TDkznz2P6H7HlYFILlVR97/D29/gNuAjClP/8/b//t/QtcdDEUguYX7 + PvwPbriG24CEnif/Z+/79b9z69//bqWXURSC5KZtef/fv/oCbgMiux79n7Lt1/+SpX//J0z/+98m9yxc + MUiud/WH/16lJ3AbENj88H/r2vdgzcYlX/5LR1/7bxy5DKwBJFc3/91/l/wDuA3wqLr/v2TuO7hmRZce + uGKQXP60N//tM7bjNsC+9O7/wJZnYJuRNYNcAJLLnvz6v0XCetwGWOTd+W9TcAVDM8gAkFxq/2u4l7Cm + F8Os21g1gxSD5MJaXv7XDZ6H2wU6aTdwSoLk/Kof/tfwnYbbAHz5yin3yn8VjwlgPKjyHwMAvtG/s0Vm + x8MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAilJREFUOE+tk91L + k3EUx/cvdN9N0EW3NTWGa7EaPOUcyqphWBG9PZEv5dJlmqhYmUYtXyBb4dJJy+kknFT4BqZIjaFMJUsz + V7TEoabYRDD49ju/6Pm1Mm/qB+fy8znPOef7qFT/4z17GgWVr30Zbd4lPHYvoLEhgvuOGdTWfIL9dgg3 + yqdQWjKBwoLXyMsdxYXzQSi9CeztAWqqV7HRW1ldgzGtF4fTnvBSBN7WRS6orPjyV57gyMIKdpufQ62W + YTnkEQL3o3kuKC35vK7gJ/w+vIg4kw8Fl6dxwNwkBM76WS64ZHv3h+BXeGQygm2SF9accaSmOIWg7m6Y + C7KzRmMEv8ODwTA2692Q5QBMJocQVFd95AL5TEARrAf3+D9gU2IDjhx9gaSkWiG4WTmN7i6wUwLHT76C + 5dgA3zYtjGamz6bOP+A+HLR0QpLsQnC1bBIdPrAMAE2ub+zuX1F+fY4vlRZGM2dmBBU4ObUdBkOFEFwp + HIenGXjoXGPBicKYnhNT5hM2pJ8r4p2TUxi83wO9vkwIbHljDAaq7kR5ZxJQSOK0EobezmJsag5y7jXs + NbZxWLvHBZ2uSAgolo57UD6bBASfzb+FN6F5hGaWcLHYjni9i8GNiN/1ANrEfCHIzBhmcy/zmbcaPNiy + Q0JLRz98XYPo7vNj4OUQ9pksUOvqkcDg7Zo6aDTWWMHpU/08npQwCgndmU5F26aF0czUlYrgnQnZQvAv + f/R3bGg6a0rM640AAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/Program.cs b/Code/Chapter 9/C#/Exercise 9.1/Program.cs new file mode 100644 index 0000000..92f8efe --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/Program.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace Exercise_9_1 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/Properties/AssemblyInfo.cs b/Code/Chapter 9/C#/Exercise 9.1/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a21ef93 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise 9.1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise 9.1")] +[assembly: AssemblyCopyright("Copyright © 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM componenets. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("d70d981a-fe00-42d2-b4ca-7d5c68018f0c")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Code/Chapter 9/C#/Exercise 9.1/Properties/Resources.Designer.cs b/Code/Chapter 9/C#/Exercise 9.1/Properties/Resources.Designer.cs new file mode 100644 index 0000000..336304b --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/Properties/Resources.Designer.cs @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_9_1.Properties.Resources.get_ResourceManager():System.Resources.Resource" + + "Manager")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_9_1.Properties.Resources.get_Culture():System.Globalization.CultureInfo")] +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_9_1.Properties.Resources.set_Culture(System.Globalization.CultureInfo):V" + + "oid")] + +namespace Exercise_9_1.Properties { + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if ((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Exercise_9_1.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.1/Properties/Resources.resx b/Code/Chapter 9/C#/Exercise 9.1/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/Properties/Settings.Designer.cs b/Code/Chapter 9/C#/Exercise 9.1/Properties/Settings.Designer.cs new file mode 100644 index 0000000..70d23a3 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/Properties/Settings.Designer.cs @@ -0,0 +1,37 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +[assembly: global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="Exercise_9_1.Properties.Settings.get_Default():Exercise_9_1.Properties.Settings")] + +namespace Exercise_9_1.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = new Settings(); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] + [global::System.Configuration.DefaultSettingValueAttribute("Data Source=(local);Initial Catalog=Test;Integrated Security=True")] + public string TestConnectionString { + get { + return ((string)(this["TestConnectionString"])); + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.1/Properties/Settings.settings b/Code/Chapter 9/C#/Exercise 9.1/Properties/Settings.settings new file mode 100644 index 0000000..9c1970f --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/Properties/Settings.settings @@ -0,0 +1,16 @@ + + + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Data Source=(local);Initial Catalog=Test;Integrated Security=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=(local);Initial Catalog=Test;Integrated Security=True + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.Designer.cs b/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.Designer.cs new file mode 100644 index 0000000..27cb726 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.Designer.cs @@ -0,0 +1,682 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_1 { + using System; + + + [Serializable()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [System.Xml.Serialization.XmlRootAttribute("TestDataSet")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] + public partial class TestDataSet : System.Data.DataSet { + + private AnimalsDataTable tableAnimals; + + private System.Data.SchemaSerializationMode _schemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public TestDataSet() { + this.BeginInit(); + this.InitClass(); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + protected TestDataSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == System.Data.SchemaSerializationMode.IncludeSchema)) { + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + if ((ds.Tables["Animals"] != null)) { + base.Tables.Add(new AnimalsDataTable(ds.Tables["Animals"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public AnimalsDataTable Animals { + get { + return this.tableAnimals; + } + } + + public override System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [System.ComponentModel.DefaultValueAttribute(true)] + public new bool EnforceConstraints { + get { + return base.EnforceConstraints; + } + set { + base.EnforceConstraints = value; + } + } + + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + public override System.Data.DataSet Clone() { + TestDataSet cln = ((TestDataSet)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override bool ShouldSerializeTables() { + return false; + } + + protected override bool ShouldSerializeRelations() { + return false; + } + + protected override void ReadXmlSerializable(System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Animals"] != null)) { + base.Tables.Add(new AnimalsDataTable(ds.Tables["Animals"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + protected override System.Xml.Schema.XmlSchema GetSchemaSerializable() { + System.IO.MemoryStream stream = new System.IO.MemoryStream(); + this.WriteXmlSchema(new System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return System.Xml.Schema.XmlSchema.Read(new System.Xml.XmlTextReader(stream), null); + } + + internal void InitVars() { + this.InitVars(true); + } + + internal void InitVars(bool initTable) { + this.tableAnimals = ((AnimalsDataTable)(base.Tables["Animals"])); + if ((initTable == true)) { + if ((this.tableAnimals != null)) { + this.tableAnimals.InitVars(); + } + } + } + + private void InitClass() { + this.DataSetName = "TestDataSet"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/TestDataSet.xsd"; + this.EnforceConstraints = true; + this.tableAnimals = new AnimalsDataTable(); + base.Tables.Add(this.tableAnimals); + } + + private bool ShouldSerializeAnimals() { + return false; + } + + private void SchemaChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(System.Xml.Schema.XmlSchemaSet xs) { + TestDataSet ds = new TestDataSet(); + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any = new System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + return type; + } + + public delegate void AnimalsRowChangeEventHandler(object sender, AnimalsRowChangeEvent e); + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class AnimalsDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnAnimalID; + + private System.Data.DataColumn columnAnimalName; + + public AnimalsDataTable() { + this.TableName = "Animals"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal AnimalsDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected AnimalsDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn AnimalIDColumn { + get { + return this.columnAnimalID; + } + } + + public System.Data.DataColumn AnimalNameColumn { + get { + return this.columnAnimalName; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public AnimalsRow this[int index] { + get { + return ((AnimalsRow)(this.Rows[index])); + } + } + + public event AnimalsRowChangeEventHandler AnimalsRowChanged; + + public event AnimalsRowChangeEventHandler AnimalsRowChanging; + + public event AnimalsRowChangeEventHandler AnimalsRowDeleted; + + public event AnimalsRowChangeEventHandler AnimalsRowDeleting; + + public void AddAnimalsRow(AnimalsRow row) { + this.Rows.Add(row); + } + + public AnimalsRow AddAnimalsRow(int AnimalID, string AnimalName) { + AnimalsRow rowAnimalsRow = ((AnimalsRow)(this.NewRow())); + rowAnimalsRow.ItemArray = new object[] { + AnimalID, + AnimalName}; + this.Rows.Add(rowAnimalsRow); + return rowAnimalsRow; + } + + public AnimalsRow FindByAnimalID(int AnimalID) { + return ((AnimalsRow)(this.Rows.Find(new object[] { + AnimalID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + AnimalsDataTable cln = ((AnimalsDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new AnimalsDataTable(); + } + + internal void InitVars() { + this.columnAnimalID = base.Columns["AnimalID"]; + this.columnAnimalName = base.Columns["AnimalName"]; + } + + private void InitClass() { + this.columnAnimalID = new System.Data.DataColumn("AnimalID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnAnimalID); + this.columnAnimalName = new System.Data.DataColumn("AnimalName", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnAnimalName); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnAnimalID}, true)); + this.columnAnimalID.AllowDBNull = false; + this.columnAnimalID.Unique = true; + this.columnAnimalName.AllowDBNull = false; + this.columnAnimalName.MaxLength = 50; + } + + public AnimalsRow NewAnimalsRow() { + return ((AnimalsRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new AnimalsRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(AnimalsRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.AnimalsRowChanged != null)) { + this.AnimalsRowChanged(this, new AnimalsRowChangeEvent(((AnimalsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.AnimalsRowChanging != null)) { + this.AnimalsRowChanging(this, new AnimalsRowChangeEvent(((AnimalsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.AnimalsRowDeleted != null)) { + this.AnimalsRowDeleted(this, new AnimalsRowChangeEvent(((AnimalsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.AnimalsRowDeleting != null)) { + this.AnimalsRowDeleting(this, new AnimalsRowChangeEvent(((AnimalsRow)(e.Row)), e.Action)); + } + } + + public void RemoveAnimalsRow(AnimalsRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + TestDataSet ds = new TestDataSet(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "AnimalsDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + public partial class AnimalsRow : System.Data.DataRow { + + private AnimalsDataTable tableAnimals; + + internal AnimalsRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableAnimals = ((AnimalsDataTable)(this.Table)); + } + + public int AnimalID { + get { + return ((int)(this[this.tableAnimals.AnimalIDColumn])); + } + set { + this[this.tableAnimals.AnimalIDColumn] = value; + } + } + + public string AnimalName { + get { + return ((string)(this[this.tableAnimals.AnimalNameColumn])); + } + set { + this[this.tableAnimals.AnimalNameColumn] = value; + } + } + } + + public class AnimalsRowChangeEvent : System.EventArgs { + + private AnimalsRow eventRow; + + private System.Data.DataRowAction eventAction; + + public AnimalsRowChangeEvent(AnimalsRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public AnimalsRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} +namespace Exercise_9_1.TestDataSetTableAdapters { + + + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.ComponentModel.DataObjectAttribute(true)] + [System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class AnimalsTableAdapter : System.ComponentModel.Component { + + private System.Data.SqlClient.SqlDataAdapter m_adapter; + + private System.Data.SqlClient.SqlConnection m_connection; + + private System.Data.SqlClient.SqlCommand[] m_commandCollection; + + private bool m_clearBeforeFill; + + public AnimalsTableAdapter() { + this.m_clearBeforeFill = true; + } + + private System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this.m_adapter == null)) { + this.InitAdapter(); + } + return this.m_adapter; + } + } + + internal System.Data.SqlClient.SqlConnection Connection { + get { + if ((this.m_connection == null)) { + this.InitConnection(); + } + return this.m_connection; + } + set { + this.m_connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + protected System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this.m_commandCollection == null)) { + this.InitCommandCollection(); + } + return this.m_commandCollection; + } + } + + public bool ClearBeforeFill { + get { + return this.m_clearBeforeFill; + } + set { + this.m_clearBeforeFill = value; + } + } + + private void InitAdapter() { + this.m_adapter = new System.Data.SqlClient.SqlDataAdapter(); + System.Data.Common.DataTableMapping tableMapping = new System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Animals"; + tableMapping.ColumnMappings.Add("AnimalID", "AnimalID"); + tableMapping.ColumnMappings.Add("AnimalName", "AnimalName"); + this.m_adapter.TableMappings.Add(tableMapping); + this.m_adapter.DeleteCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.DeleteCommand.Connection = this.Connection; + this.m_adapter.DeleteCommand.CommandText = "DELETE FROM [dbo].[Animals] WHERE (([AnimalID] = @Original_AnimalID) AND ([Animal" + + "Name] = @Original_AnimalName))"; + this.m_adapter.DeleteCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_AnimalID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalID", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.DeleteCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_AnimalName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalName", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.InsertCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.InsertCommand.Connection = this.Connection; + this.m_adapter.InsertCommand.CommandText = "INSERT INTO [dbo].[Animals] ([AnimalID], [AnimalName]) VALUES (@AnimalID, @Animal" + + "Name);\r\nSELECT AnimalID, AnimalName FROM Animals WHERE (AnimalID = @AnimalID)"; + this.m_adapter.InsertCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.InsertCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@AnimalID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalID", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.InsertCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@AnimalName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalName", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.UpdateCommand = new System.Data.SqlClient.SqlCommand(); + this.m_adapter.UpdateCommand.Connection = this.Connection; + this.m_adapter.UpdateCommand.CommandText = "UPDATE [dbo].[Animals] SET [AnimalID] = @AnimalID, [AnimalName] = @AnimalName WHE" + + "RE (([AnimalID] = @Original_AnimalID) AND ([AnimalName] = @Original_AnimalName))" + + ";\r\nSELECT AnimalID, AnimalName FROM Animals WHERE (AnimalID = @AnimalID)"; + this.m_adapter.UpdateCommand.CommandType = System.Data.CommandType.Text; + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@AnimalID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalID", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@AnimalName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalName", System.Data.DataRowVersion.Current, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_AnimalID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalID", System.Data.DataRowVersion.Original, false, null, "", "", "")); + this.m_adapter.UpdateCommand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Original_AnimalName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalName", System.Data.DataRowVersion.Original, false, null, "", "", "")); + } + + private void InitConnection() { + this.m_connection = new System.Data.SqlClient.SqlConnection(); + this.m_connection.ConnectionString = Exercise_9_1.Properties.Settings.Default.TestConnectionString; + } + + private void InitCommandCollection() { + this.m_commandCollection = new System.Data.SqlClient.SqlCommand[1]; + this.m_commandCollection[0] = new System.Data.SqlClient.SqlCommand(); + this.m_commandCollection[0].Connection = this.Connection; + this.m_commandCollection[0].CommandText = "SELECT AnimalID, AnimalName FROM dbo.Animals"; + this.m_commandCollection[0].CommandType = System.Data.CommandType.Text; + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(TestDataSet.AnimalsDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.m_clearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual TestDataSet.AnimalsDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + TestDataSet.AnimalsDataTable dataTable = new TestDataSet.AnimalsDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + public virtual int Update(TestDataSet.AnimalsDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + public virtual int Update(TestDataSet dataSet) { + return this.Adapter.Update(dataSet, "Animals"); + } + + public virtual int Update(System.Data.DataRow dataRow) { + return this.Adapter.Update(new System.Data.DataRow[] { + dataRow}); + } + + public virtual int Update(System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_AnimalID, string Original_AnimalName) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_AnimalID)); + if ((Original_AnimalName == null)) { + throw new System.ArgumentNullException("Original_AnimalName"); + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((string)(Original_AnimalName)); + } + System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + this.Adapter.DeleteCommand.Connection.Open(); + try { + return this.Adapter.DeleteCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(int AnimalID, string AnimalName) { + this.Adapter.InsertCommand.Parameters[0].Value = ((int)(AnimalID)); + if ((AnimalName == null)) { + throw new System.ArgumentNullException("AnimalName"); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(AnimalName)); + } + System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + this.Adapter.InsertCommand.Connection.Open(); + try { + return this.Adapter.InsertCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(int AnimalID, string AnimalName, int Original_AnimalID, string Original_AnimalName) { + this.Adapter.UpdateCommand.Parameters[0].Value = ((int)(AnimalID)); + if ((AnimalName == null)) { + throw new System.ArgumentNullException("AnimalName"); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(AnimalName)); + } + this.Adapter.UpdateCommand.Parameters[2].Value = ((int)(Original_AnimalID)); + if ((Original_AnimalName == null)) { + throw new System.ArgumentNullException("Original_AnimalName"); + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(Original_AnimalName)); + } + System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + this.Adapter.UpdateCommand.Connection.Open(); + try { + return this.Adapter.UpdateCommand.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xsc b/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xsc new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xsc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xsd b/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xsd new file mode 100644 index 0000000..b2d8628 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xsd @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + DELETE FROM [dbo].[Animals] WHERE (([AnimalID] = @Original_AnimalID) AND ([AnimalName] = @Original_AnimalName)) + + + + + + + + + + + INSERT INTO [dbo].[Animals] ([AnimalID], [AnimalName]) VALUES (@AnimalID, @AnimalName); +SELECT AnimalID, AnimalName FROM Animals WHERE (AnimalID = @AnimalID) + + + + + + + + + + + SELECT AnimalID, AnimalName FROM dbo.Animals + + + + + + + UPDATE [dbo].[Animals] SET [AnimalID] = @AnimalID, [AnimalName] = @AnimalName WHERE (([AnimalID] = @Original_AnimalID) AND ([AnimalName] = @Original_AnimalName)); +SELECT AnimalID, AnimalName FROM Animals WHERE (AnimalID = @AnimalID) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xss b/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xss new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/TestDataSet.xss @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/app.config b/Code/Chapter 9/C#/Exercise 9.1/app.config new file mode 100644 index 0000000..e2edff2 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/app.config @@ -0,0 +1,22 @@ + + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.exe b/Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..12a1337ab6b1bef1e0e047891406ab94993847c2 GIT binary patch literal 49152 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.exe.config b/Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.exe.config new file mode 100644 index 0000000..e2edff2 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.exe.config @@ -0,0 +1,22 @@ + + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.pdb b/Code/Chapter 9/C#/Exercise 9.1/bin/Debug/Exercise 9.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..535654f5d852b7f218111c019e839ba58b511cf9 GIT binary patch literal 62976 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 + + + +
    + + +
    + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.1/obj/Debug/Exercise 9.1.csproj.GenerateResource.Cache b/Code/Chapter 9/C#/Exercise 9.1/obj/Debug/Exercise 9.1.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..6f077b8a5f4bb48c5aa9ddcdfa3d5da57bc3be60 GIT binary patch literal 842 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.1/obj/Debug/Exercise 9.1.pdb b/Code/Chapter 9/C#/Exercise 9.1/obj/Debug/Exercise 9.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..535654f5d852b7f218111c019e839ba58b511cf9 GIT binary patch literal 62976 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.1/obj/Debug/Exercise_9_1.Properties.Resources.resources b/Code/Chapter 9/C#/Exercise 9.1/obj/Debug/Exercise_9_1.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 + + Debug + AnyCPU + 8.0.50215 + 2.0 + {BCE49566-FFD9-447F-8DE5-D31EA5A8FCA0} + Exe + Exercise_9_2 + Exercise 9.2 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.2/Exercise 9.2.csproj.user b/Code/Chapter 9/C#/Exercise 9.2/Exercise 9.2.csproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.2/Exercise 9.2.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.2/Program.cs b/Code/Chapter 9/C#/Exercise 9.2/Program.cs new file mode 100644 index 0000000..37cda62 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.2/Program.cs @@ -0,0 +1,28 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; + +#endregion + +namespace Exercise_9_2 +{ + class Program + { + private static string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI"; + static void Main(string[] args) + { + SqlDataAdapter myDataAdapter = + new SqlDataAdapter("Select * from Animals2", connectionString); + SqlCommandBuilder cmdBldr = new SqlCommandBuilder(myDataAdapter) ; + + cmdBldr.ConflictOption = ConflictOption.OverwriteChanges; + + Console.WriteLine("Update Command = "); + Console.WriteLine(cmdBldr.GetUpdateCommand().CommandText); + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.2/Properties/AssemblyInfo.cs b/Code/Chapter 9/C#/Exercise 9.2/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f6e64ac --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.2/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_9_2")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_9_2")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 9/C#/Exercise 9.2/Properties/Resources.cs b/Code/Chapter 9/C#/Exercise 9.2/Properties/Resources.cs new file mode 100644 index 0000000..5712407 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.2/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_2.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.2/Properties/Resources.resx b/Code/Chapter 9/C#/Exercise 9.2/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.2/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.2/Properties/Settings.cs b/Code/Chapter 9/C#/Exercise 9.2/Properties/Settings.cs new file mode 100644 index 0000000..589e88f --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.2/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_2.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.2/Properties/Settings.settings b/Code/Chapter 9/C#/Exercise 9.2/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.2/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.2/bin/Debug/Exercise 9.2.exe b/Code/Chapter 9/C#/Exercise 9.2/bin/Debug/Exercise 9.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..5b4b6ddc7551c4afaf5f844522e9b8c2ca729aed GIT binary patch literal 16384 zcmeHNZ)_Y#6@PnoK08i)u`jKgkhIyvDNP*baGaRnI4)=3If>giHa^=SsgbjHH@!(j!;37KqOMB+J2y+qEZDdG$;`%2m%ry6}6~{e&7RwAXVZEYK2q@fz*`W zo83E~?GTXoQi&aB-^}|nZ)Sco`(|b@!>2A&n1~{HKKh90CUQ#?R=ETC%NztrgXrW}23(W`$~(O;tD5^hic6T6vLZYHHl!yB-}RI;Mo_ zo8v~R(%Nl`DQlGmqGm``PkLvMUrsU)q9TKy`^~A6(;^tIhlFuK3`X*mysDNqufXpJ zmy$%I48+QGnrIzl&9K|DQg<(2CBg`*sR8`aDo2!X#k>nX5(9xw_R;S*IGI$U(+S(L zbKqp(k|?l^il-(e(ffog3=4+bS2~S{?K<()q$JTm4I2~#1OfyC1OfyC1OfyC1OfyC z1OfyC1Of#9j}W-c_i7}*n}(>4PH!iAt&vCpk0<)_wxw?ZZ1++|C8i$bEN|);r3&hCSQKzJ;o9<2E1Kc^|vIAH-<|X^bwisaIj`ZmNeL zh1S9kjNu0~(zu(V?b|7|$V~g@&JayNj}HmZgZk~Pt>4p27wW+8+z7`jR9lIhH9&8X zE6^WfzU3yiq(8u&^dwsXqX2>sbx`ae@z(%KI6T@#cFsfp1eo^gkpJe_@Bb8d&=ovJ zX2EeqF)=0_t8C|lQ!R}NEidd2wdmw5+t9Ne>ZGt8-7@>S5}o|lp{B})Ted}?Dax*` z86E0qIcw;-$Hl_9H7m@%?12MXcdq->dwcfn7oDH!Xv@ysI;CDE^w`;(f&05 z<30~$9ve{PYVy8K%yB2WI}danVCy4b zLyLfvKWnrdnHWkVzYJalAZ-JNl?BfU-B3>4|Dv*nf%>Pik1*|AdS(0|aopie4il_-5f((g(7hNSOG`k|z) zA-3t3bWGAGLwcx}E~DWn-3q-BiqfAzW3)HCIUJ*;q#`_q@?3a*I7-ik^H?6=k@8lP{&?sGulz3o%@4Y!_rp?p_3@ThF9RwG`s1+bP25t?? z4Or?gV5BWrstB3tlgsS%k% zpN#CH8}u0Mm9$6Feo2QU{hXvHCDkO=B|Qf^LKi_N=o07#jO+%TqUS(Q)3@lU@C;p} zt6_sB;dAtJdOJJ^oY?XWx)Xj1bW`N3vkQ=x=l>avk*Rpe@pJ7uL&nDM9<_ z7U*V4+vt}l?*_^VdR)>R29ltZ)b>i6q4%JDg8oiJ(!+Urmafw4Kt;h!@%Y~)gi-2K z_Jih?L7-O$c?fHQ=eb_aZv*nkqPG@KG&~|d5)yrgN#J!~NebHGv|N_Ii)=kNERzEI zv|MK>92&OrWkWnlgY&}9>5fo)5?u)~FKE>JCR|la_e^(DC3-l^#0l7zgzf6WA;c9| zMuJK(BQFxsNcODAxjvUjS>}vhDBGHgFh~8R5`vj5SLzRFj-Z@nny3U5FTT*Qrkj+= zxt3jVwA7?YIp<@M>F*EUW#|BECK+foxFtmAD za+X>h^D4>#x_VYObhl=hwM(8f8@pGfmzt~9mJ^wCM#|8IiRF9FNJHD7*Gewd7%Qw| zQ8V)cW!=CgzN{Lnu)5RP6*i13*1J0*u_L*rmWyEFScaezw(g2!x+!W}q9ekcDCIR* z_->aPkjvMXj`Ob-iJW{_#urM0d@#6t6di_lIAZRwZ54e+8eurg&2*Qjb<;^>Tya??mip zOC72=hw2pGby^i_sm3NXsj6L_o!vN~E3~fi8p;iZ;G$mEK*9Sp?jb(4OlTM<)@Rra=dBx5ywyjnHxM zL!gJfU)|{^k@xR-=Te0pS$6_2sh5A&_k(x?$?}wzvPncm8-8>du{m1KAhvSafs-*I zl5*TM5lsylKXqtLsmB+N$T<3{pii!hq$U;a;t5xO*mPF^_9IRM14M1U_f%R=%SfA( zeoFAS)XpHyLuVsi>oU4eQx8Uuodf9*?s7{$CZ(NIQ+F>;{hfHaaG%*n-6-utiT}9$ z7Syfm4>m@{`^j<8BK#m8t!P(8yX+|eE%%7iQHsOIF>nQ0n|H4g_7mP$3UmhJAi1M0 zm#LIQ&{5%wQ9;Os2ky&=Ur+b@Qo)9M_TTsEki>NqzAWsZWw{G4jcWC{YVk};JeSv9 ziR!&E<@xBxJn=qU#7rANL&e(V8C;r~d--5ogA^bTAP^uBAP^uBAP^uBAP^uBAP^w% xu|+`j|IhfNAKM-V9SaZ$5C{+m5C{+m5C{+m5C{+m5C{+m5C{+m5cnSv_!pdE(ux28 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.2/bin/Debug/Exercise 9.2.pdb b/Code/Chapter 9/C#/Exercise 9.2/bin/Debug/Exercise 9.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..dfb1884b4a127539b492189796906875dfa3ef29 GIT binary patch literal 22016 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.2/bin/Debug/Exercise 9.2.vshost.exe b/Code/Chapter 9/C#/Exercise 9.2/bin/Debug/Exercise 9.2.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.2/obj/Debug/Exercise 9.2.exe b/Code/Chapter 9/C#/Exercise 9.2/obj/Debug/Exercise 9.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..5b4b6ddc7551c4afaf5f844522e9b8c2ca729aed GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.2/obj/Debug/Exercise 9.2.pdb b/Code/Chapter 9/C#/Exercise 9.2/obj/Debug/Exercise 9.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..dfb1884b4a127539b492189796906875dfa3ef29 GIT binary patch literal 22016 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.2/obj/Debug/Exercise_9_2.Properties.Resources.resources b/Code/Chapter 9/C#/Exercise 9.2/obj/Debug/Exercise_9_2.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY59?jo3GvBOX8iw&3Kl;;GxPandllPR=GK}4) z2^WFeVY;u&rCm^(%cy?O_1x;J=eb_F)JQ~}D5yt}#EOY>X(#Cl-g^n7j_gBJ?|Rj6 zC9H*&O0eRwDzgab?oD29Np> zkgLfR^kS(-nT&aJdhyA!G~^k>DAY;Y$e@<9NIgR;O<4#gC%M)h=@k3FwEX*+pC55w5$&l&4i4>LFkSu61nt$e)qCD=uAqPXIKxGM~&EG=?joRL2 zA^}YxmX*)mn9|kyWb)5fYfosHTpoopLn4d9Bw*@}{M7G}-$BjEp(s)$<=K>XWk<;& zs2Cabkz|=Dq|ilP4~uCr3~>r5ij+^)>{%3Rjfei;`c`v$ukDXH-FnvXTZ#?fom74Q zE#2aMZ`G^$$CCs?*q1Q-(Ydns2g0Qab6BB%t_n>SGb&M}HKa@yQE}!;ETFJx(8_q8 zi5E8I0W9OX(&MMQ$cvMM*Gnh&Jfa7%9HNMDD_2k11=I1S40y;PSUlx}L#|_OBTchr zdV!azNh0jyXG<^s`uf4NsQFvdyZyHsjhg-2MPU-wKEfHp5V^+nAK!0R5y7O*q$?uU cj0fMo)KW9;Dm4=o#;3;%cgQ?XEz+0&1NJmazW@LL literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.2/obj/Exercise 9.2.csproj.FileList.txt b/Code/Chapter 9/C#/Exercise 9.2/obj/Exercise 9.2.csproj.FileList.txt new file mode 100644 index 0000000..5560328 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.2/obj/Exercise 9.2.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Exercise 9.2.exe +.\bin\Debug\Exercise 9.2.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_9_2.Properties.Resources.resources +obj\Debug\Exercise 9.2.csproj.GenerateResource.Cache +obj\Debug\Exercise 9.2.exe +obj\Debug\Exercise 9.2.pdb diff --git a/Code/Chapter 9/C#/Exercise 9.3/Exercise 9.3.csproj b/Code/Chapter 9/C#/Exercise 9.3/Exercise 9.3.csproj new file mode 100644 index 0000000..c479809 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.3/Exercise 9.3.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {E0228729-B240-4233-8F7A-3FC865AB26F8} + Exe + Exercise_9_3 + Exercise 9.3 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.3/Exercise 9.3.csproj.user b/Code/Chapter 9/C#/Exercise 9.3/Exercise 9.3.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.3/Exercise 9.3.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.3/Program.cs b/Code/Chapter 9/C#/Exercise 9.3/Program.cs new file mode 100644 index 0000000..593a476 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.3/Program.cs @@ -0,0 +1,90 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; + +#endregion + +namespace Exercise_9_3 +{ + class Program + { + private static string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI"; + + static void Main(string[] args) + { + using (SqlConnection testConnection = new SqlConnection(connectionString)) + { + SqlCommand testCommand = testConnection.CreateCommand(); + testCommand.CommandText = "Select * from Animals"; + SqlDataAdapter sqlDa = new SqlDataAdapter(testCommand); + DataTable animalsTable = new DataTable("Animals"); + sqlDa.Fill(animalsTable); + + DisplayRowStates("Row states for a freshly filled DataTable:",animalsTable); + + DataRow rowInQuestion; + // Make Changes - Modify the puppy + rowInQuestion = animalsTable.Rows[0]; + rowInQuestion["AnimalName"] = "Dog"; + // Make Changes - Delete the cat + rowInQuestion = animalsTable.Rows[1]; + rowInQuestion.Delete(); + // Leave the Horse untouched. + // Make Changes - Insert a camel + rowInQuestion = animalsTable.NewRow(); + rowInQuestion["AnimalID"] = 4; + rowInQuestion["AnimalName"] = "Camel"; + animalsTable.Rows.Add(rowInQuestion); + + DisplayRowStates("Row states for a modified DataTable:", animalsTable); + + // Detached Row + rowInQuestion = animalsTable.NewRow(); + rowInQuestion["AnimalID"] = 5; + rowInQuestion["AnimalName"] = "Monkey"; + Console.WriteLine("Monkey Row's RowState: " + rowInQuestion.RowState.ToString()); + Console.ReadLine(); + + // Update the changes back to the database. + SqlCommandBuilder cmbldr = new SqlCommandBuilder(sqlDa); + + // Setup Update Command + sqlDa.UpdateCommand = cmbldr.GetUpdateCommand(); + Console.WriteLine("Update Command: " + sqlDa.UpdateCommand.CommandText); + + // Setup Insert Command + sqlDa.InsertCommand = cmbldr.GetInsertCommand(); + Console.WriteLine("Insert Command: " + sqlDa.InsertCommand.CommandText); + + // Setup Delete Command + sqlDa.DeleteCommand = cmbldr.GetDeleteCommand() ; + Console.WriteLine("Delete Command: " + sqlDa.DeleteCommand.CommandText); + + sqlDa.Update(animalsTable); + + DisplayRowStates("Final Row States:", animalsTable); + } + } + + private static void DisplayRowStates(string Message, DataTable table) + { + Console.Clear(); + Console.WriteLine("\n"); + Console.WriteLine(Message); + Console.WriteLine("-------------------------------------------"); + + foreach (DataRow dr in table.Rows) + { + Console.WriteLine(dr.RowState.ToString()); + } + + Console.WriteLine("\nPress Enter to Continue .."); + Console.ReadLine(); + } + } +} + diff --git a/Code/Chapter 9/C#/Exercise 9.3/Properties/AssemblyInfo.cs b/Code/Chapter 9/C#/Exercise 9.3/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9a99b41 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.3/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_9_3")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_9_3")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 9/C#/Exercise 9.3/Properties/Resources.cs b/Code/Chapter 9/C#/Exercise 9.3/Properties/Resources.cs new file mode 100644 index 0000000..d903694 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.3/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_3.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.3/Properties/Resources.resx b/Code/Chapter 9/C#/Exercise 9.3/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.3/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.3/Properties/Settings.cs b/Code/Chapter 9/C#/Exercise 9.3/Properties/Settings.cs new file mode 100644 index 0000000..012407f --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.3/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_3.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.3/Properties/Settings.settings b/Code/Chapter 9/C#/Exercise 9.3/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.3/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.3/bin/Debug/Exercise 9.3.exe b/Code/Chapter 9/C#/Exercise 9.3/bin/Debug/Exercise 9.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..a6b6010288e7a7a49066534e1af502705c1bba33 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.3/bin/Debug/Exercise 9.3.vshost.exe b/Code/Chapter 9/C#/Exercise 9.3/bin/Debug/Exercise 9.3.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..87ed49ad954ce326d6b3914c6a1e9a97ee2d004c GIT binary patch literal 5120 zcmeHKeQXrR6@Pm^&c+4P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.3/obj/Debug/Exercise 9.3.csproj.GenerateResource.Cache b/Code/Chapter 9/C#/Exercise 9.3/obj/Debug/Exercise 9.3.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..9c424d666a1ca4a826f29be83699722cb513e37d GIT binary patch literal 784 zcma)3OG*Pl5S^IJn2$nSh=?wNxDX6OqKIySV#E(B_(NQ{=}gyPlg@PL>Jj4!yn<)& z9^S*f2XLoVK}F&q*1(&Y>grdo>UlZO^WG`=%`q`XaCNLAYtY0l+)kC2;f261)@zqw zQJJK*5;pj$*V?IesfAVosk1`YYbR+(tLP907p4nItJ7GG*W&fK*_3Myu_}CSvy{mm zo&oMbvIBicBqWgnWGN*Jc(toE;7ms#9I2!WlK*#9oXwWnoZxG(U=iH?S0g96W0U7C zmn(!NpCKTq@)sWjta+C7^uaoE=b8*Nsf_?b^60M0#ave^68H?wY+rsGy-ca0$-K9U z{`MGWzC9eU=gTocB6=`4lGg&=v5_iPAg4#p;7*~#fTT_4h7OfjBoDLo`0^CIJwN28 IIK@%<0DOMwqW}N^ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.3/obj/Debug/Exercise 9.3.exe b/Code/Chapter 9/C#/Exercise 9.3/obj/Debug/Exercise 9.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..a6b6010288e7a7a49066534e1af502705c1bba33 GIT binary patch literal 20480 zcmeHNYiu0V6+W{&yX!~1$!B)}vNiSt_QI3YNX;>S9Po7joHcG7~WGrK!+hRn_^ zGqXutRgqDvQUpPX3aAmP5QVgVkO~MX5sx-4rKPPv1(jB)6oEihE0t0t(g(CjzjJ42 zy=$kTt%QWsx%Qkn=iGD8J@>nhnR{pZZ#qt4B9d`kxIlCUcTSyxUYblIJATbmaeA`; z#l>f&oi8pPKA<~F(YD5IwV>ow)3jVAt0{KLRCH5G@5(3zE3c)Rni`gtUGMHC+9`$U zo5MzrU)!4$ml~xyA_W@0knULzqTuSp#YDkvju$sL5kKE)5*PHG&@MC!f{^`tC0p2Z z!tV~|I*E2O5Yy8>qFK;AvW{rc^t?;S3K3dRNp+C7S0tj8s~vG6-#ZTkd47AqRgyxq zFJ(J+4jK_#Cm3!^E3T^4iRe?dW>_%fSZNguh_abIQ+LRH@q`h?d#Sw0SPoKEj15~@zd{%u6NW4Q zjo~WRuNH>i6^3grW>{~fpk8Lb43lzG>5XI*V`6SJ5nU6DTGz3Q*D-R4x_|*XSDa^@ zLf<})3!N&`!qyNS1Bb(%1hwEW1T8rSr(T0Y-p&4dMMGiHomLwx8&@rjS!=<#KuqEx zG7UKa8pW)3*kGW(^2X({5)hM`>Jcauv3fsDdobkJ>4D5~OBli-YNNF|!l=SIk9{Ys zCV5bBDIIdPm4QY;5 zvU8eK;f6Fdui2}Wf|IjsL(i^O_Gq@FTjrLvsaF15t@M-(w`6NuOs(YFs^iqgZ<3D9Q*eO1su3)&cB{Zc`< z2s$e0grERLOMa6=*$p3xrC5T(9Kc@A~2d+ z`l|35p?yL+aYbA7UBu=J>HfOgrEQQtsImNgjU~6X7-ssEpl2~4Li9qUjn2^^bqLxe zXrG{if_`35RZv~f+XS5e-9vYRjv`KOZM~o;X?s|ulavb|paswr=yA~7=?9>LpnnP< zruWb04h``nPDS`~dh{4b3U}S=9A} z{2bLwKa_t$3F&3|MbO{Kuh0VN9Q_LPFYLKBnh7{Mc$tQ^NjbCgqk?j>hc%S z^?Hi|a+nzvbA>kdTltcqeTI6EXm(C_G^Hcep3;tJtUa~cwu+kV>Y77f z`72CKK4Cp|#R}*z;^eKsv@3h7mUGKes>d?->*FO`b+NotSFwmiT=0JRZq?CzwGJxiuZLn z%QVplgzT;J)UWEMUwK+}Rbn!%W(|$fx>GdNi6QH7##LRwRT$f&8YK<)%!HXM!@)Ir zYL8YPSNjdGBI7f+aM$<-PG?%5VwpA!={B9HDtRfr|BcL2F*JqiU>2fO!>dosI zm)*8?*r{#pvPdwH;-ns1!$?H6LaHvzI?Tg# z*3T59-!mNM&xr8JL%S=l7G2D{bhcXBsvCwF`55dymf??FF~iUrKTAN-hgUyh?}ABd zhK8X$pdCh0>NDN;wbYf*`z5@lmi>6buvMOV8wHC(7x z36h!UEZ^ISv*=a>bI(O>yS3U;~q1{L{uez22k?5k^~27@JH3Xu>AGr3!8$7d=C zY(%@H#UoTiEgmKc-dq?@#?ge9EogBccn98Xf&0ZQ(#U0`7}tyXXx@r8nDA;K-*5R; zBo1mK>v`sKRANVzF?tDcKZ~ zV{k1@Z>f{Y?~`n&u};vsF$$80%Qz{1Q_oJGFS8dZ#Xo6udNmbEVK7WP807VSikUm z61G(NeNYH>VM|YEaYAx-DbY|SojLH~Lnq%lyn0}A!I{(bE0;F0P4C9ht|FE&N9k5` z2TMg~bZg&0*G^@P(m$beTh_tR9z54adk%<4rqVIm(_AI^A@lq8sFl5SRJ_xSR;yFR zd=~W_KqLKhlzGLMYVZCzE74ewWy6tpITf$rnwHAr5zXnswWM?kE+7E{0RjO60RjO6 z0RjO60RjO6pF9GR_zs3|-;=d4Okn(DA(@Lt~)5 z*kxw0tJ*~ako!Qlg6H(C{N8!&G{8x;eAZs<2)z4^B6sS$Sy>dfw6NZTeVh$Hd@i7g z{T-hla9WBpdcxk1cY3^6HpGrkN3JRIi5`=O5vzolTv+igbNnKn@R=4it(CuZIBNg~ z*k?9D@7K(`Z3nwZ_EUtvsd{?p2=e&EL>K$fF?{nG!xsxqn<-x9V~?-%uzuSsy zExskU(|YlxqYXU1VWa*8%KAH68`1L)xN_nFv}@~CP%nQeNud_b;j~?RE!zocT$JW> zgd%pp+=_9Wy11~JsZ*#E8yp2uF)F;>*(qY#RW8R!ax6YJEQwQ?|0t%-0#`m6;FFdT zaC56#g+1N0c2(oqDe$ZlvFSKdTWi&6amx5XZI#w4b(l_T#}0OEI~DCXQ^&TXzu*1XeOWdn zVHXtK!<_uyyPxNsd+#~t-uIUFP%svaM|UJFU#+jE#%k|uwU&D8>PkzdHFpY7fe;=* z4fv0|2VJKi|MwEmKyjaNJRc3@=`*T`oxsH1A<H&f%B9b4diP4fAePj zga2Mp80h=3>g#VFy#rBWo-PIrWU~MCi*EbRdp=7#UJTEdm+|Zx$kqDqU3%;v5B1+O zy?OujRZqP9`|#O&&F6kvG?1(D&)fe`%ZQFnj$Dm@di*y!De|R1DGlUm{PXtzlN!P7 z`{nsA1NJds#(kH8i@@BknY|kKZQQTr>C)1`=~Jgqas1!nAK!9+Q(w%E$NlYFt((_x zT*&Hz2?w|Ol<+tFP`J8#ov%!Wq6HVDyDykk} zSr|)r=9595(w{sqNj>6 z<%|^$fH|flmYFUr9_8{{A|nc4XLWsb9Z2W1Tw4Aj=GP;=0JCXWD@0}X&2wWdwyftB*U3KTu>+7hUcq^D5#^Lw-e52hjS25a z`teMXXV|D$MA`m@HY#-c9<*kjeG1Zxbvn+i9bV$>+Tq#vd#6r2lojXL4h6(nw!^b* zoMStj&&;m@;%wWQ2gKRAGarcab7v`V25=dW<(30y;{JMIC9oA(1zfH3*Jx}5RwMoM zz*)exz}Y~))4vv20_~KFd19S4-)i4yt%^o>YY(rzGaUX%eElG|WgA~_bq9jG_w>d6 zJ3^5_7+t{kce4xS@RMDP$n_8MVl5^_u~z9WTH9`FI@hN#K0LRAn^toxt8wb?=qh`; zP5f8E1(l;v#w}sCQI>h?eEgRT#77=9k6`5_*zxmgU~nm(Lf;zvAr$0 zrYKXjZ%VZ*L{Cil9NPAg`Gc;#e5Z*vq(3k|=X(?gE)MJKNwDd>#QRf+@>Kw-PxvJV*L;`iSU~zD*njDZs4K>3epD&20 z_Dde>eKf?_kMDBX_lLSN=LY>6+ct3;=MKl6dG0uEH1QwjmuYvnxRUcVy)5T3Wni9L z2F_tq*2JKk+bqjGciGXzprvTFR5U?9saY`=Z@@X8?}KNdZI0)DT$3<{;-tJ10)AVL zC;YaQGV_bqmthWX1#)~vdmt16nAq>oFnz!?|urD04Bd9?;!1;&aJi|_K-BZp* zz~hkddGIz|14Ly8JCLyB312i4QF5xf{NC|3RCpB3Il#K?lbGsL2vxVYHxTK8yjD5Y z=+2Md7H$q8jr}5hP+lMs>J5bBn*!ZoIn7vxW8$tKi|%cUY}f+{p+e-b4~)y8GQr;N zu-lf=p4~WHd<#L@R~eWxv(3VSuWY0Jz%xqwwp_>5D=0X~%vD}P_eIlDk@^tLp?F_7 zuy12@Z)YL^jUb8ow~$|qx~yl)8Xcl<_qZ)~?-3|ZTK*aKKP`Vq`@dexXzYKg-nrQS z_0s-BSHs$W?l~Se`Wcn|zq^oQVEUlFp#4|tEVuR_wnXkJxc6v9Kiq53?peScz)Bz& zXBF@c;B4Smf!srU3kbXE`~Wx?_zbWH_yW)id<9qwd<%&6=)4bvjdHkv767jRE(Xp3 zVt?bz2Q~oL09OFF0B-=^25bc032Xv>8|VW*0&D^P5D3|wCxEnnFKB!bxEkrSx#h5Y zYR}UGo4gX-tZ_DQD|i98USl!+!pA!I0^uv1`+@KkQhz0|IwhD5CD=`th_&Ey>_aiypvl;=D%~!Xi1jVg z`KJUUS%Q4y_h^^Zn(!pOB9;jEs*)z6KgJW3XRO#I(>}!CVlZO}686!u2ikV{MG*#b zPJRcRr_pHuwh%L4otqrjRT*a)g5HashTgH1&U*f1%Fwp6C~TM8wx4nSla`;f?W6Tu za4nM3{g#PomPx_SjLXNPqRcu6yG)(9&w|vmU;Jl5RAec>)GUKFEu-ZIm0=hsV>dAs z7Me&>_iK~)Ok+9LEtU3Ryo_sJ zAGw@^&(4jU$F-cWqe;R%EZTrO>Pg_RugfLp$aJD&W}_3v%p6k^_t<8ha`w=EkSrP7 zsPlBnQYr7RlCg@3S7=YvyznI3<2MnsH6%np4rQJPECn)dq0O3)dn%7{Fry^K!Sz7& z?I8A*aqw~=t{oLSRpHLq-+N*AW@vkQHTqZfl+UBaC}mIG&%;=mvfK!yjM)F{wyi;J zC_Q^*Ood|HM<#XBq}x~pZ=9@O_U_5BomKUd>}I=xrpF`bTmovh!a z?|-WA-_iIrjqMtbY5cM-|6`3FI;gV{iVaJayM(qqCMg%~o3=9HaPqnGhk4RWt-I1J zT&ora&Dpfabyc`9mlnKQF6eSJ!hK&gnD(2ta1A(9{KvW64|d0Y@++p1eX^A0TQKwX zFUw}ki!T$msIRGnd0!{zjcfAAA7^ke<0pME)apw8Yy+AYn&{gY_i>#s1F|AZ^K9Y- z@D>+ydeK)fAmn(If+v9KCphWob8`KyS8Y5Ntlbd`+ws~gKZ-KrlDiho5Dj|GM&+15 za;F}k*R^sO5HO!aWwIPL!ZJvt5*_fM)r&lG(pE@+$AXuLA8W=(YT#H;UnTW9f_Xc!H#d5x>m_Ae4OEm2Q zd*chQMUL^_arGVyFAsa}n=Gz9T7m!JN1mI*F5z55%weV``eeK_1ig1e0{)mVlWj50 z+^hUDaYEPMCG8yIhjDi?>XBrAL(tXGwa}aT4T0BK(YR|5Bfpw*|!o3=CeH9;KG z@k<#H-HE;#_YBz=BSO)%Z1F;0eRGp)J}G+%-aCYG;x`?6>Prm;JqPU zGv?c`6Vmhe&d&6gp2znen{_=s)bftyc>Ztdx$_F(=}Topp5&f`-yYM>kW%^|7#IVu zO>Gx|`R_5*dk-niz#Q$e%nTDbg+S4A`$egdG`Fo9!QCo7KRpam z4d%lL_Qs{ykZ@{|P$N&@^wxW}{^7tXF1uYHKYZ}*z4LBzu6*{Hao1Is_9C%%T`01< zEwUpjY9oPOeAXkk&%5kEj~(j{M}xanLQZz*X6E4dKl%Hy-0jxQY|mYbM&6kFXI8G} zv;R6f)7QBdrnd~*IzNx&9&8>U@j!`w;T@hHfWC_xI>JgY&q#Ppk6w>-9vF}qz;Z{* zg9isJogXGI9gjJC!DXJ#)Bw*}I>7&gy0BFi|IwR)13-Qkd<)Xj*_;FM4CpD;>p@wb z1F>8q@FeQ-9Ozo`959Ea8axX;8_c091Do?6_xT}*mP5>;Kr8HTi!+ cnX@K}UInfM&jjabcn!=QzDT~rC9Hw}13>}l?EnA( literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.3/obj/Debug/Exercise_9_3.Properties.Resources.resources b/Code/Chapter 9/C#/Exercise 9.3/obj/Debug/Exercise_9_3.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYdhs$w{uXM>>Xq+mJ$Fuee9; zK4bcI%(?} znMgnrh-Kxo*QRu}HkthMy3*sPyU2^9gVzg3_dKEpuo$9U&ryr?<^KR!Dok7e literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.3/obj/Exercise 9.3.csproj.FileList.txt b/Code/Chapter 9/C#/Exercise 9.3/obj/Exercise 9.3.csproj.FileList.txt new file mode 100644 index 0000000..a0fb8f2 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.3/obj/Exercise 9.3.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Exercise 9.3.exe +.\bin\Debug\Exercise 9.3.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_9_3.Properties.Resources.resources +obj\Debug\Exercise 9.3.csproj.GenerateResource.Cache +obj\Debug\Exercise 9.3.exe +obj\Debug\Exercise 9.3.pdb diff --git a/Code/Chapter 9/C#/Exercise 9.4/Exercise 9.4.csproj b/Code/Chapter 9/C#/Exercise 9.4/Exercise 9.4.csproj new file mode 100644 index 0000000..a2d7e78 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.4/Exercise 9.4.csproj @@ -0,0 +1,61 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {D5A7E97A-1D37-49B9-90AB-C0747366A62B} + WinExe + Exercise_9_4 + Exercise 9.4 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.4/Exercise 9.4.csproj.user b/Code/Chapter 9/C#/Exercise 9.4/Exercise 9.4.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.4/Exercise 9.4.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.4/Form1.Designer.cs b/Code/Chapter 9/C#/Exercise 9.4/Form1.Designer.cs new file mode 100644 index 0000000..a6899ed --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.4/Form1.Designer.cs @@ -0,0 +1,80 @@ +namespace Exercise_9_4 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgView = new System.Windows.Forms.DataGridView(); + this.btnLoad = new System.Windows.Forms.Button(); + this.btnSave = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgView)).BeginInit(); + this.SuspendLayout(); +// +// dgView +// + this.dgView.Location = new System.Drawing.Point(3, 4); + this.dgView.Name = "dgView"; + this.dgView.Size = new System.Drawing.Size(353, 228); + this.dgView.TabIndex = 0; +// +// btnLoad +// + this.btnLoad.Location = new System.Drawing.Point(199, 240); + this.btnLoad.Name = "btnLoad"; + this.btnLoad.TabIndex = 1; + this.btnLoad.Text = "Load"; + this.btnLoad.Click += new System.EventHandler(this.btnLoad_Click); +// +// btnSave +// + this.btnSave.Location = new System.Drawing.Point(281, 239); + this.btnSave.Name = "btnSave"; + this.btnSave.TabIndex = 2; + this.btnSave.Text = "Save"; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); +// +// Form1 +// + this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(357, 265); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.btnLoad); + this.Controls.Add(this.dgView); + this.Name = "Form1"; + this.Text = "Exercise 9.4"; + ((System.ComponentModel.ISupportInitialize)(this.dgView)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgView; + private System.Windows.Forms.Button btnLoad; + private System.Windows.Forms.Button btnSave; + } +} + diff --git a/Code/Chapter 9/C#/Exercise 9.4/Form1.cs b/Code/Chapter 9/C#/Exercise 9.4/Form1.cs new file mode 100644 index 0000000..e07f7d4 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.4/Form1.cs @@ -0,0 +1,86 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; +using System.Data.SqlClient; + +#endregion + +namespace Exercise_9_4 +{ + partial class Form1 : Form + { + private string connectionString = "Server=(local);Database=Test;Integrated Security=SSPI"; + + private DataTable animalsTable; + + public Form1() + { + InitializeComponent(); + + // Setup the schema for the Table. + animalsTable = new DataTable("Animals"); + DataColumn dc ; + + dc = new DataColumn("AnimalID"); + dc.Unique = true; + dc.AutoIncrement = true; + dc.AutoIncrementSeed = -1; + dc.AutoIncrementStep = -1; + dc.DataType = typeof(System.Int32); + animalsTable.Columns.Add(dc); + + dc = new DataColumn("AnimalName"); + animalsTable.Columns.Add(dc); + + dc = new DataColumn("AccountNumber"); + dc.ReadOnly = true; + animalsTable.Columns.Add(dc); + + // DataBind it, even though it has no rows in it yet. + dgView.DataSource = animalsTable; + } + + private void btnLoad_Click(object sender, EventArgs e) + { + SqlDataAdapter sqlDA = new SqlDataAdapter("Select * from Animals", connectionString); + animalsTable.Rows.Clear(); + sqlDA.Fill(animalsTable); + } + + private void btnSave_Click(object sender, EventArgs e) + { + SqlCommand insertCommand = new SqlCommand(); + insertCommand.CommandType = CommandType.StoredProcedure; + + SqlParameter param; + + param = new SqlParameter("@AnimalID", SqlDbType.Int); + param.Direction = ParameterDirection.Output; + param.SourceColumn = "AnimalID"; + insertCommand.Parameters.Add(param); + + param = new SqlParameter("@AnimalName", SqlDbType.VarChar); + param.SourceColumn = "AnimalName"; + insertCommand.Parameters.Add(param); + + param = new SqlParameter("@AccountNumber", SqlDbType.Int); + param.SourceColumn = "AccountNumber"; + param.Size = 40; + param.Direction = ParameterDirection.Output; + insertCommand.Parameters.Add(param); + + insertCommand.CommandText = "UP_ANIMALINSERT"; + SqlDataAdapter sqlDA = new SqlDataAdapter("Select * from Animals", connectionString); + insertCommand.Connection = new SqlConnection(connectionString); + insertCommand.UpdatedRowSource = UpdateRowSource.Both; + sqlDA.InsertCommand = insertCommand; + + sqlDA.Update(animalsTable); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.4/Program.cs b/Code/Chapter 9/C#/Exercise 9.4/Program.cs new file mode 100644 index 0000000..831c5c6 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.4/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_9_4 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.4/Properties/AssemblyInfo.cs b/Code/Chapter 9/C#/Exercise 9.4/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a1970f9 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.4/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_9_4")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_9_4")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 9/C#/Exercise 9.4/Properties/Resources.cs b/Code/Chapter 9/C#/Exercise 9.4/Properties/Resources.cs new file mode 100644 index 0000000..70bdff6 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.4/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_4.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.4/Properties/Resources.resx b/Code/Chapter 9/C#/Exercise 9.4/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.4/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.4/Properties/Settings.cs b/Code/Chapter 9/C#/Exercise 9.4/Properties/Settings.cs new file mode 100644 index 0000000..b8904c1 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.4/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_4.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.4/Properties/Settings.settings b/Code/Chapter 9/C#/Exercise 9.4/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.4/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.4/bin/Debug/Exercise 9.4.exe b/Code/Chapter 9/C#/Exercise 9.4/bin/Debug/Exercise 9.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..b6f90dccc5bb53e935bc359e1442180dfd7fb7fa GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.4/bin/Debug/Exercise 9.4.vshost.exe b/Code/Chapter 9/C#/Exercise 9.4/bin/Debug/Exercise 9.4.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..87ed49ad954ce326d6b3914c6a1e9a97ee2d004c GIT binary patch literal 5120 zcmeHKeQXrR6@Pm^&c+4P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.4/obj/Debug/Exercise 9.4.csproj.GenerateResource.Cache b/Code/Chapter 9/C#/Exercise 9.4/obj/Debug/Exercise 9.4.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..9878b69c23149a062a4aadfff9d487fedfda82fc GIT binary patch literal 784 zcma)3O-sW-5KV22G;`n*r?xtMP=gl zX3*rPQST($B^KH-B+d%msGlc2t-@0nU7J3{?Ot;$+KzUjR!eR-#g_27&3Y<(a0z$> z@c|4WmJo*ukfoF?;O(K(fD1i=&{c6CB>x{M3!yW1l*_E76HZc%>9WLG_8I?ii`CA` zUy8EJS0i*V2s%bxPtxWxV~0vCl833+R$qem*XPVUr#LE~ DXRhdb literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.4/obj/Debug/Exercise 9.4.exe b/Code/Chapter 9/C#/Exercise 9.4/obj/Debug/Exercise 9.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..b6f90dccc5bb53e935bc359e1442180dfd7fb7fa GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.4/obj/Debug/Exercise_9_4.Properties.Resources.resources b/Code/Chapter 9/C#/Exercise 9.4/obj/Debug/Exercise_9_4.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYTX^)mFlrNqh~XOgz<$O&h)d z@e8c^3pQ+6!;%$0zz?v3d#9xhRfMW|aXh*+_niB*Y|FBK<41q`iYE|WF7vjMT1JWY zDCHvb)|u|;>GB3B&1GD@<@sJ^&i6fkx?D>|k}9aikS2GEpY61@Ekdh4;H`mv0&yL-Ar2vKbI>R8aZZ8WYH$HMuOI@2H=rk5Ov4h7 zI}p-UohxW3QuQ(!`^sSQep*WMn9t~G&V-S{Q{JKDFdyUi4+EU7g4TgaeM zyBkcTph?7W3fap8qFU^C{`q3z0VR_!Aml~}vIsT_Q*?As|GoPho^pAF61^lpm;BDJ zD!C0R!Hx#lWSJ^#p@)6lEg3R=k}D#V$e-BUQG|!JyTRt-O8xm}GdS$&%H#E*p;#Ao zr0N83Xclk#bN+m=pGjS@9Ui~(LLuB!$g(gL3wfVL?|VaeZ*_&yFCjy9D26&qn4uU$ zipEeBn>-HXj`kW-bv1F7s4-OC+&IA*g0ln@1m_SOYQoH6t^2lrz;aGuE6rlk%ofDK zGU~~LUF*?uPDKbYcI?6tyI?w5mLZQggcC>ZV3+GeyEsClw%LwJ3X+DYJaP4t_v_0$ z+o3eB4UYC-Hd?6c-zbXxvhJSFp$rY4^?l8~Q9%WpYGjH +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_5 { + using System; + + + [Serializable()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [System.Xml.Serialization.XmlRootAttribute("CustProd")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] + public partial class CustProd : System.Data.DataSet { + + private CustomersDataTable tableCustomers; + + private ProductsDataTable tableProducts; + + private CustomerProductsDataTable tableCustomerProducts; + + private System.Data.DataRelation relationFK_CustomerProducts_Products; + + private System.Data.DataRelation relationFK_CustomerProducts_Customers; + + private System.Data.SchemaSerializationMode _schemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public CustProd() { + this.BeginInit(); + this.InitClass(); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + protected CustProd(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == System.Data.SchemaSerializationMode.IncludeSchema)) { + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + if ((ds.Tables["Customers"] != null)) { + base.Tables.Add(new CustomersDataTable(ds.Tables["Customers"])); + } + if ((ds.Tables["Products"] != null)) { + base.Tables.Add(new ProductsDataTable(ds.Tables["Products"])); + } + if ((ds.Tables["CustomerProducts"] != null)) { + base.Tables.Add(new CustomerProductsDataTable(ds.Tables["CustomerProducts"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public CustomersDataTable Customers { + get { + return this.tableCustomers; + } + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public ProductsDataTable Products { + get { + return this.tableProducts; + } + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public CustomerProductsDataTable CustomerProducts { + get { + return this.tableCustomerProducts; + } + } + + public override System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [System.ComponentModel.DefaultValueAttribute(false)] + public new bool EnforceConstraints { + get { + return base.EnforceConstraints; + } + set { + base.EnforceConstraints = value; + } + } + + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + public override System.Data.DataSet Clone() { + CustProd cln = ((CustProd)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override bool ShouldSerializeTables() { + return false; + } + + protected override bool ShouldSerializeRelations() { + return false; + } + + protected override void ReadXmlSerializable(System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Customers"] != null)) { + base.Tables.Add(new CustomersDataTable(ds.Tables["Customers"])); + } + if ((ds.Tables["Products"] != null)) { + base.Tables.Add(new ProductsDataTable(ds.Tables["Products"])); + } + if ((ds.Tables["CustomerProducts"] != null)) { + base.Tables.Add(new CustomerProductsDataTable(ds.Tables["CustomerProducts"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + protected override System.Xml.Schema.XmlSchema GetSchemaSerializable() { + System.IO.MemoryStream stream = new System.IO.MemoryStream(); + this.WriteXmlSchema(new System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return System.Xml.Schema.XmlSchema.Read(new System.Xml.XmlTextReader(stream), null); + } + + internal void InitVars() { + this.InitVars(true); + } + + internal void InitVars(bool initTable) { + this.tableCustomers = ((CustomersDataTable)(base.Tables["Customers"])); + if ((initTable == true)) { + if ((this.tableCustomers != null)) { + this.tableCustomers.InitVars(); + } + } + this.tableProducts = ((ProductsDataTable)(base.Tables["Products"])); + if ((initTable == true)) { + if ((this.tableProducts != null)) { + this.tableProducts.InitVars(); + } + } + this.tableCustomerProducts = ((CustomerProductsDataTable)(base.Tables["CustomerProducts"])); + if ((initTable == true)) { + if ((this.tableCustomerProducts != null)) { + this.tableCustomerProducts.InitVars(); + } + } + this.relationFK_CustomerProducts_Products = this.Relations["FK_CustomerProducts_Products"]; + this.relationFK_CustomerProducts_Customers = this.Relations["FK_CustomerProducts_Customers"]; + } + + private void InitClass() { + this.DataSetName = "CustProd"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/CustProd.xsd"; + this.EnforceConstraints = false; + this.tableCustomers = new CustomersDataTable(); + base.Tables.Add(this.tableCustomers); + this.tableProducts = new ProductsDataTable(); + base.Tables.Add(this.tableProducts); + this.tableCustomerProducts = new CustomerProductsDataTable(); + base.Tables.Add(this.tableCustomerProducts); + System.Data.ForeignKeyConstraint fkc; + fkc = new System.Data.ForeignKeyConstraint("FK_CustomerProducts_Products", new System.Data.DataColumn[] { + this.tableProducts.ProductIDColumn}, new System.Data.DataColumn[] { + this.tableCustomerProducts.ProductIDColumn}); + this.tableCustomerProducts.Constraints.Add(fkc); + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None; + fkc.DeleteRule = System.Data.Rule.Cascade; + fkc.UpdateRule = System.Data.Rule.Cascade; + fkc = new System.Data.ForeignKeyConstraint("FK_CustomerProducts_Customers", new System.Data.DataColumn[] { + this.tableCustomers.CustomerIDColumn}, new System.Data.DataColumn[] { + this.tableCustomerProducts.CustomerIDColumn}); + this.tableCustomerProducts.Constraints.Add(fkc); + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None; + fkc.DeleteRule = System.Data.Rule.Cascade; + fkc.UpdateRule = System.Data.Rule.Cascade; + this.relationFK_CustomerProducts_Products = new System.Data.DataRelation("FK_CustomerProducts_Products", new System.Data.DataColumn[] { + this.tableProducts.ProductIDColumn}, new System.Data.DataColumn[] { + this.tableCustomerProducts.ProductIDColumn}, false); + this.Relations.Add(this.relationFK_CustomerProducts_Products); + this.relationFK_CustomerProducts_Customers = new System.Data.DataRelation("FK_CustomerProducts_Customers", new System.Data.DataColumn[] { + this.tableCustomers.CustomerIDColumn}, new System.Data.DataColumn[] { + this.tableCustomerProducts.CustomerIDColumn}, false); + this.Relations.Add(this.relationFK_CustomerProducts_Customers); + } + + private bool ShouldSerializeCustomers() { + return false; + } + + private bool ShouldSerializeProducts() { + return false; + } + + private bool ShouldSerializeCustomerProducts() { + return false; + } + + private void SchemaChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(System.Xml.Schema.XmlSchemaSet xs) { + CustProd ds = new CustProd(); + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any = new System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + return type; + } + + public delegate void CustomersRowChangeEventHandler(object sender, CustomersRowChangeEvent e); + + public delegate void ProductsRowChangeEventHandler(object sender, ProductsRowChangeEvent e); + + public delegate void CustomerProductsRowChangeEventHandler(object sender, CustomerProductsRowChangeEvent e); + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class CustomersDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnCustomerID; + + private System.Data.DataColumn columnFirstName; + + private System.Data.DataColumn columnLastName; + + public CustomersDataTable() { + this.TableName = "Customers"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal CustomersDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected CustomersDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn CustomerIDColumn { + get { + return this.columnCustomerID; + } + } + + public System.Data.DataColumn FirstNameColumn { + get { + return this.columnFirstName; + } + } + + public System.Data.DataColumn LastNameColumn { + get { + return this.columnLastName; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public CustomersRow this[int index] { + get { + return ((CustomersRow)(this.Rows[index])); + } + } + + public event CustomersRowChangeEventHandler CustomersRowChanged; + + public event CustomersRowChangeEventHandler CustomersRowChanging; + + public event CustomersRowChangeEventHandler CustomersRowDeleted; + + public event CustomersRowChangeEventHandler CustomersRowDeleting; + + public void AddCustomersRow(CustomersRow row) { + this.Rows.Add(row); + } + + public CustomersRow AddCustomersRow(string FirstName, string LastName) { + CustomersRow rowCustomersRow = ((CustomersRow)(this.NewRow())); + rowCustomersRow.ItemArray = new object[] { + null, + FirstName, + LastName}; + this.Rows.Add(rowCustomersRow); + return rowCustomersRow; + } + + public CustomersRow FindByCustomerID(int CustomerID) { + return ((CustomersRow)(this.Rows.Find(new object[] { + CustomerID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + CustomersDataTable cln = ((CustomersDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new CustomersDataTable(); + } + + internal void InitVars() { + this.columnCustomerID = base.Columns["CustomerID"]; + this.columnFirstName = base.Columns["FirstName"]; + this.columnLastName = base.Columns["LastName"]; + } + + private void InitClass() { + this.columnCustomerID = new System.Data.DataColumn("CustomerID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnCustomerID); + this.columnFirstName = new System.Data.DataColumn("FirstName", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnFirstName); + this.columnLastName = new System.Data.DataColumn("LastName", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnLastName); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnCustomerID}, true)); + this.columnCustomerID.AutoIncrement = true; + this.columnCustomerID.AllowDBNull = false; + this.columnCustomerID.Unique = true; + } + + public CustomersRow NewCustomersRow() { + return ((CustomersRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new CustomersRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(CustomersRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.CustomersRowChanged != null)) { + this.CustomersRowChanged(this, new CustomersRowChangeEvent(((CustomersRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.CustomersRowChanging != null)) { + this.CustomersRowChanging(this, new CustomersRowChangeEvent(((CustomersRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.CustomersRowDeleted != null)) { + this.CustomersRowDeleted(this, new CustomersRowChangeEvent(((CustomersRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.CustomersRowDeleting != null)) { + this.CustomersRowDeleting(this, new CustomersRowChangeEvent(((CustomersRow)(e.Row)), e.Action)); + } + } + + public void RemoveCustomersRow(CustomersRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + CustProd ds = new CustProd(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "CustomersDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class ProductsDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnProductID; + + private System.Data.DataColumn columnProductName; + + private System.Data.DataColumn columnPrice; + + private System.Data.DataColumn columnTaxPercent; + + public ProductsDataTable() { + this.TableName = "Products"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal ProductsDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected ProductsDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn ProductIDColumn { + get { + return this.columnProductID; + } + } + + public System.Data.DataColumn ProductNameColumn { + get { + return this.columnProductName; + } + } + + public System.Data.DataColumn PriceColumn { + get { + return this.columnPrice; + } + } + + public System.Data.DataColumn TaxPercentColumn { + get { + return this.columnTaxPercent; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public ProductsRow this[int index] { + get { + return ((ProductsRow)(this.Rows[index])); + } + } + + public event ProductsRowChangeEventHandler ProductsRowChanged; + + public event ProductsRowChangeEventHandler ProductsRowChanging; + + public event ProductsRowChangeEventHandler ProductsRowDeleted; + + public event ProductsRowChangeEventHandler ProductsRowDeleting; + + public void AddProductsRow(ProductsRow row) { + this.Rows.Add(row); + } + + public ProductsRow AddProductsRow(string ProductName, decimal Price, decimal TaxPercent) { + ProductsRow rowProductsRow = ((ProductsRow)(this.NewRow())); + rowProductsRow.ItemArray = new object[] { + null, + ProductName, + Price, + TaxPercent}; + this.Rows.Add(rowProductsRow); + return rowProductsRow; + } + + public ProductsRow FindByProductID(int ProductID) { + return ((ProductsRow)(this.Rows.Find(new object[] { + ProductID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + ProductsDataTable cln = ((ProductsDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new ProductsDataTable(); + } + + internal void InitVars() { + this.columnProductID = base.Columns["ProductID"]; + this.columnProductName = base.Columns["ProductName"]; + this.columnPrice = base.Columns["Price"]; + this.columnTaxPercent = base.Columns["TaxPercent"]; + } + + private void InitClass() { + this.columnProductID = new System.Data.DataColumn("ProductID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnProductID); + this.columnProductName = new System.Data.DataColumn("ProductName", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnProductName); + this.columnPrice = new System.Data.DataColumn("Price", typeof(decimal), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnPrice); + this.columnTaxPercent = new System.Data.DataColumn("TaxPercent", typeof(decimal), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnTaxPercent); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnProductID}, true)); + this.columnProductID.AutoIncrement = true; + this.columnProductID.AllowDBNull = false; + this.columnProductID.Unique = true; + } + + public ProductsRow NewProductsRow() { + return ((ProductsRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new ProductsRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(ProductsRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.ProductsRowChanged != null)) { + this.ProductsRowChanged(this, new ProductsRowChangeEvent(((ProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.ProductsRowChanging != null)) { + this.ProductsRowChanging(this, new ProductsRowChangeEvent(((ProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.ProductsRowDeleted != null)) { + this.ProductsRowDeleted(this, new ProductsRowChangeEvent(((ProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.ProductsRowDeleting != null)) { + this.ProductsRowDeleting(this, new ProductsRowChangeEvent(((ProductsRow)(e.Row)), e.Action)); + } + } + + public void RemoveProductsRow(ProductsRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + CustProd ds = new CustProd(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "ProductsDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class CustomerProductsDataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnCustomerProductID; + + private System.Data.DataColumn columnCustomerID; + + private System.Data.DataColumn columnProductID; + + public CustomerProductsDataTable() { + this.TableName = "CustomerProducts"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal CustomerProductsDataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected CustomerProductsDataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn CustomerProductIDColumn { + get { + return this.columnCustomerProductID; + } + } + + public System.Data.DataColumn CustomerIDColumn { + get { + return this.columnCustomerID; + } + } + + public System.Data.DataColumn ProductIDColumn { + get { + return this.columnProductID; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public CustomerProductsRow this[int index] { + get { + return ((CustomerProductsRow)(this.Rows[index])); + } + } + + public event CustomerProductsRowChangeEventHandler CustomerProductsRowChanged; + + public event CustomerProductsRowChangeEventHandler CustomerProductsRowChanging; + + public event CustomerProductsRowChangeEventHandler CustomerProductsRowDeleted; + + public event CustomerProductsRowChangeEventHandler CustomerProductsRowDeleting; + + public void AddCustomerProductsRow(CustomerProductsRow row) { + this.Rows.Add(row); + } + + public CustomerProductsRow AddCustomerProductsRow(int CustomerProductID, ProductsRow parentProductsRowByFK_CustomerProducts_Products) { + CustomerProductsRow rowCustomerProductsRow = ((CustomerProductsRow)(this.NewRow())); + rowCustomerProductsRow.ItemArray = new object[] { + CustomerProductID, + null, + parentProductsRowByFK_CustomerProducts_Products[0]}; + this.Rows.Add(rowCustomerProductsRow); + return rowCustomerProductsRow; + } + + public CustomerProductsRow FindByCustomerProductID(int CustomerProductID) { + return ((CustomerProductsRow)(this.Rows.Find(new object[] { + CustomerProductID}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + CustomerProductsDataTable cln = ((CustomerProductsDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new CustomerProductsDataTable(); + } + + internal void InitVars() { + this.columnCustomerProductID = base.Columns["CustomerProductID"]; + this.columnCustomerID = base.Columns["CustomerID"]; + this.columnProductID = base.Columns["ProductID"]; + } + + private void InitClass() { + this.columnCustomerProductID = new System.Data.DataColumn("CustomerProductID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnCustomerProductID); + this.columnCustomerID = new System.Data.DataColumn("CustomerID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnCustomerID); + this.columnProductID = new System.Data.DataColumn("ProductID", typeof(int), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnProductID); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnCustomerProductID}, true)); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint2", new System.Data.DataColumn[] { + this.columnCustomerID}, false)); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint3", new System.Data.DataColumn[] { + this.columnProductID}, false)); + this.columnCustomerProductID.AllowDBNull = false; + this.columnCustomerProductID.Unique = true; + this.columnCustomerID.AutoIncrement = true; + this.columnCustomerID.Unique = true; + this.columnProductID.Unique = true; + } + + public CustomerProductsRow NewCustomerProductsRow() { + return ((CustomerProductsRow)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new CustomerProductsRow(builder); + } + + protected override System.Type GetRowType() { + return typeof(CustomerProductsRow); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.CustomerProductsRowChanged != null)) { + this.CustomerProductsRowChanged(this, new CustomerProductsRowChangeEvent(((CustomerProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.CustomerProductsRowChanging != null)) { + this.CustomerProductsRowChanging(this, new CustomerProductsRowChangeEvent(((CustomerProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.CustomerProductsRowDeleted != null)) { + this.CustomerProductsRowDeleted(this, new CustomerProductsRowChangeEvent(((CustomerProductsRow)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.CustomerProductsRowDeleting != null)) { + this.CustomerProductsRowDeleting(this, new CustomerProductsRowChangeEvent(((CustomerProductsRow)(e.Row)), e.Action)); + } + } + + public void RemoveCustomerProductsRow(CustomerProductsRow row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + CustProd ds = new CustProd(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "CustomerProductsDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + public partial class CustomersRow : System.Data.DataRow { + + private CustomersDataTable tableCustomers; + + internal CustomersRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableCustomers = ((CustomersDataTable)(this.Table)); + } + + public int CustomerID { + get { + return ((int)(this[this.tableCustomers.CustomerIDColumn])); + } + set { + this[this.tableCustomers.CustomerIDColumn] = value; + } + } + + public string FirstName { + get { + try { + return ((string)(this[this.tableCustomers.FirstNameColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'FirstName\' in table \'Customers\' is DBNull.", e); + } + } + set { + this[this.tableCustomers.FirstNameColumn] = value; + } + } + + public string LastName { + get { + try { + return ((string)(this[this.tableCustomers.LastNameColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'LastName\' in table \'Customers\' is DBNull.", e); + } + } + set { + this[this.tableCustomers.LastNameColumn] = value; + } + } + + public bool IsFirstNameNull() { + return this.IsNull(this.tableCustomers.FirstNameColumn); + } + + public void SetFirstNameNull() { + this[this.tableCustomers.FirstNameColumn] = System.Convert.DBNull; + } + + public bool IsLastNameNull() { + return this.IsNull(this.tableCustomers.LastNameColumn); + } + + public void SetLastNameNull() { + this[this.tableCustomers.LastNameColumn] = System.Convert.DBNull; + } + + public CustomerProductsRow[] GetCustomerProductsRows() { + return ((CustomerProductsRow[])(base.GetChildRows(this.Table.ChildRelations["FK_CustomerProducts_Customers"]))); + } + } + + public partial class ProductsRow : System.Data.DataRow { + + private ProductsDataTable tableProducts; + + internal ProductsRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableProducts = ((ProductsDataTable)(this.Table)); + } + + public int ProductID { + get { + return ((int)(this[this.tableProducts.ProductIDColumn])); + } + set { + this[this.tableProducts.ProductIDColumn] = value; + } + } + + public string ProductName { + get { + try { + return ((string)(this[this.tableProducts.ProductNameColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'ProductName\' in table \'Products\' is DBNull.", e); + } + } + set { + this[this.tableProducts.ProductNameColumn] = value; + } + } + + public decimal Price { + get { + try { + return ((decimal)(this[this.tableProducts.PriceColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'Price\' in table \'Products\' is DBNull.", e); + } + } + set { + this[this.tableProducts.PriceColumn] = value; + } + } + + public decimal TaxPercent { + get { + try { + return ((decimal)(this[this.tableProducts.TaxPercentColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'TaxPercent\' in table \'Products\' is DBNull.", e); + } + } + set { + this[this.tableProducts.TaxPercentColumn] = value; + } + } + + public bool IsProductNameNull() { + return this.IsNull(this.tableProducts.ProductNameColumn); + } + + public void SetProductNameNull() { + this[this.tableProducts.ProductNameColumn] = System.Convert.DBNull; + } + + public bool IsPriceNull() { + return this.IsNull(this.tableProducts.PriceColumn); + } + + public void SetPriceNull() { + this[this.tableProducts.PriceColumn] = System.Convert.DBNull; + } + + public bool IsTaxPercentNull() { + return this.IsNull(this.tableProducts.TaxPercentColumn); + } + + public void SetTaxPercentNull() { + this[this.tableProducts.TaxPercentColumn] = System.Convert.DBNull; + } + + public CustomerProductsRow[] GetCustomerProductsRows() { + return ((CustomerProductsRow[])(base.GetChildRows(this.Table.ChildRelations["FK_CustomerProducts_Products"]))); + } + } + + public partial class CustomerProductsRow : System.Data.DataRow { + + private CustomerProductsDataTable tableCustomerProducts; + + internal CustomerProductsRow(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableCustomerProducts = ((CustomerProductsDataTable)(this.Table)); + } + + public int CustomerProductID { + get { + return ((int)(this[this.tableCustomerProducts.CustomerProductIDColumn])); + } + set { + this[this.tableCustomerProducts.CustomerProductIDColumn] = value; + } + } + + public int CustomerID { + get { + try { + return ((int)(this[this.tableCustomerProducts.CustomerIDColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'CustomerID\' in table \'CustomerProducts\' is DBNull.", e); + } + } + set { + this[this.tableCustomerProducts.CustomerIDColumn] = value; + } + } + + public int ProductID { + get { + try { + return ((int)(this[this.tableCustomerProducts.ProductIDColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'ProductID\' in table \'CustomerProducts\' is DBNull.", e); + } + } + set { + this[this.tableCustomerProducts.ProductIDColumn] = value; + } + } + + public ProductsRow ProductsRow { + get { + return ((ProductsRow)(this.GetParentRow(this.Table.ParentRelations["FK_CustomerProducts_Products"]))); + } + set { + this.SetParentRow(value, this.Table.ParentRelations["FK_CustomerProducts_Products"]); + } + } + + public CustomersRow CustomersRow { + get { + return ((CustomersRow)(this.GetParentRow(this.Table.ParentRelations["FK_CustomerProducts_Customers"]))); + } + set { + this.SetParentRow(value, this.Table.ParentRelations["FK_CustomerProducts_Customers"]); + } + } + + public bool IsCustomerIDNull() { + return this.IsNull(this.tableCustomerProducts.CustomerIDColumn); + } + + public void SetCustomerIDNull() { + this[this.tableCustomerProducts.CustomerIDColumn] = System.Convert.DBNull; + } + + public bool IsProductIDNull() { + return this.IsNull(this.tableCustomerProducts.ProductIDColumn); + } + + public void SetProductIDNull() { + this[this.tableCustomerProducts.ProductIDColumn] = System.Convert.DBNull; + } + } + + public class CustomersRowChangeEvent : System.EventArgs { + + private CustomersRow eventRow; + + private System.Data.DataRowAction eventAction; + + public CustomersRowChangeEvent(CustomersRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public CustomersRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + public class ProductsRowChangeEvent : System.EventArgs { + + private ProductsRow eventRow; + + private System.Data.DataRowAction eventAction; + + public ProductsRowChangeEvent(ProductsRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public ProductsRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + public class CustomerProductsRowChangeEvent : System.EventArgs { + + private CustomerProductsRow eventRow; + + private System.Data.DataRowAction eventAction; + + public CustomerProductsRowChangeEvent(CustomerProductsRow row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public CustomerProductsRow Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.5/CustProd.xsc b/Code/Chapter 9/C#/Exercise 9.5/CustProd.xsc new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 9/C#/Exercise 9.5/CustProd.xsd b/Code/Chapter 9/C#/Exercise 9.5/CustProd.xsd new file mode 100644 index 0000000..f102d91 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/CustProd.xsd @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.5/CustProd.xss b/Code/Chapter 9/C#/Exercise 9.5/CustProd.xss new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 9/C#/Exercise 9.5/Exercise 9.5.csproj b/Code/Chapter 9/C#/Exercise 9.5/Exercise 9.5.csproj new file mode 100644 index 0000000..dbc0e24 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/Exercise 9.5.csproj @@ -0,0 +1,81 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {63AF024A-0100-444E-8FC4-B9DBEE1FC6C6} + WinExe + Exercise_9_5 + Exercise 9.5 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + + True + True + CustProd.xsd + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + True + + + + CustProd.xsd + + + CustProd.xsd + + + SettingsSingleFileGenerator + Settings.cs + + + True + Settings.settings + + + + + + MSDataSetGenerator + CustProd.Designer.cs + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.5/Exercise 9.5.csproj.user b/Code/Chapter 9/C#/Exercise 9.5/Exercise 9.5.csproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/Exercise 9.5.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.5/Form1.Designer.cs b/Code/Chapter 9/C#/Exercise 9.5/Form1.Designer.cs new file mode 100644 index 0000000..ba61a16 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/Form1.Designer.cs @@ -0,0 +1,202 @@ +namespace Exercise_9_5 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + this.dgCustomers = new System.Windows.Forms.DataGridView(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.dgCustomerProducts = new System.Windows.Forms.DataGridView(); + this.label3 = new System.Windows.Forms.Label(); + this.dgProducts = new System.Windows.Forms.DataGridView(); + this.btnClose = new System.Windows.Forms.Button(); + this.btnGetChanges = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgCustomers)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgCustomerProducts)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgProducts)).BeginInit(); + this.SuspendLayout(); +// +// dgCustomers +// + this.dgCustomers.BackgroundColor = System.Drawing.Color.Gainsboro; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.DarkGreen; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Courier New", 9F); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.White; + this.dgCustomers.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Courier New", 9F); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.DarkSlateGray; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgCustomers.DefaultCellStyle = dataGridViewCellStyle2; + this.dgCustomers.Font = new System.Drawing.Font("Courier New", 9F); + this.dgCustomers.GridColor = System.Drawing.Color.DarkGray; + this.dgCustomers.Location = new System.Drawing.Point(13, 34); + this.dgCustomers.Name = "dgCustomers"; + this.dgCustomers.RowHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgCustomers.Size = new System.Drawing.Size(451, 200); + this.dgCustomers.TabIndex = 0; +// +// label1 +// + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(13, 5); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(83, 22); + this.label1.TabIndex = 1; + this.label1.Text = "Customers"; +// +// label2 +// + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(13, 241); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(138, 22); + this.label2.TabIndex = 3; + this.label2.Text = "CustomerProducts"; +// +// dgCustomerProducts +// + this.dgCustomerProducts.BackgroundColor = System.Drawing.Color.LightGoldenrodYellow; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.Maroon; + dataGridViewCellStyle3.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle3.ForeColor = System.Drawing.Color.LightGoldenrodYellow; + this.dgCustomerProducts.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle3; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle4.Font = new System.Drawing.Font("Tahoma", 8F); + dataGridViewCellStyle4.ForeColor = System.Drawing.Color.DarkSlateBlue; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgCustomerProducts.DefaultCellStyle = dataGridViewCellStyle4; + this.dgCustomerProducts.Font = new System.Drawing.Font("Tahoma", 8F); + this.dgCustomerProducts.GridColor = System.Drawing.Color.Peru; + this.dgCustomerProducts.Location = new System.Drawing.Point(13, 270); + this.dgCustomerProducts.Name = "dgCustomerProducts"; + this.dgCustomerProducts.RowHeadersDefaultCellStyle = dataGridViewCellStyle3; + this.dgCustomerProducts.Size = new System.Drawing.Size(451, 200); + this.dgCustomerProducts.TabIndex = 2; +// +// label3 +// + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(15, 481); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(69, 22); + this.label3.TabIndex = 5; + this.label3.Text = "Products"; +// +// dgProducts +// + this.dgProducts.BackgroundColor = System.Drawing.Color.Gainsboro; + dataGridViewCellStyle5.BackColor = System.Drawing.Color.DarkGreen; + dataGridViewCellStyle5.Font = new System.Drawing.Font("Courier New", 9F); + dataGridViewCellStyle5.ForeColor = System.Drawing.Color.White; + this.dgProducts.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle5; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle6.Font = new System.Drawing.Font("Courier New", 9F); + dataGridViewCellStyle6.ForeColor = System.Drawing.Color.DarkSlateGray; + dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgProducts.DefaultCellStyle = dataGridViewCellStyle6; + this.dgProducts.Font = new System.Drawing.Font("Courier New", 9F); + this.dgProducts.GridColor = System.Drawing.Color.DarkGray; + this.dgProducts.Location = new System.Drawing.Point(15, 510); + this.dgProducts.Name = "dgProducts"; + this.dgProducts.RowHeadersDefaultCellStyle = dataGridViewCellStyle5; + this.dgProducts.Size = new System.Drawing.Size(449, 200); + this.dgProducts.TabIndex = 4; +// +// btnClose +// + this.btnClose.Location = new System.Drawing.Point(13, 732); + this.btnClose.Name = "btnClose"; + this.btnClose.TabIndex = 9; + this.btnClose.Text = "Exit"; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); +// +// btnGetChanges +// + this.btnGetChanges.Location = new System.Drawing.Point(389, 732); + this.btnGetChanges.Name = "btnGetChanges"; + this.btnGetChanges.TabIndex = 10; + this.btnGetChanges.Text = "Get Changes"; + this.btnGetChanges.Click += new System.EventHandler(this.btnGetChanges_Click); +// +// Form1 +// + this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(478, 767); + this.Controls.Add(this.btnGetChanges); + this.Controls.Add(this.btnClose); + this.Controls.Add(this.label3); + this.Controls.Add(this.dgProducts); + this.Controls.Add(this.label2); + this.Controls.Add(this.dgCustomerProducts); + this.Controls.Add(this.label1); + this.Controls.Add(this.dgCustomers); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Form1"; + this.Text = "Exercise 9.5"; + this.TopMost = true; + ((System.ComponentModel.ISupportInitialize)(this.dgCustomers)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgCustomerProducts)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgProducts)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgCustomers; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.DataGridView dgCustomerProducts; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.DataGridView dgProducts; + private System.Windows.Forms.Button btnClose; + private System.Windows.Forms.Button btnGetChanges; + } +} + diff --git a/Code/Chapter 9/C#/Exercise 9.5/Form1.cs b/Code/Chapter 9/C#/Exercise 9.5/Form1.cs new file mode 100644 index 0000000..93bb1a3 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/Form1.cs @@ -0,0 +1,44 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +#endregion + +namespace Exercise_9_5 +{ + partial class Form1 : Form + { + private CustProd myDataSet; + + public Form1() + { + InitializeComponent(); + + myDataSet = new CustProd(); + dgCustomers.DataSource = myDataSet.Customers; + dgCustomerProducts.DataSource = myDataSet.CustomerProducts; + dgProducts.DataSource = myDataSet.Products; + + myDataSet.ReadXml("Data.xml"); + myDataSet.AcceptChanges(); + } + + private void btnClose_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void btnGetChanges_Click(object sender, EventArgs e) + { + CustProd changedDS = (CustProd)myDataSet.GetChanges(); + dgCustomers.DataSource = changedDS.Customers; + dgCustomerProducts.DataSource = changedDS.CustomerProducts; + dgProducts.DataSource = changedDS.Products; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.5/Program.cs b/Code/Chapter 9/C#/Exercise 9.5/Program.cs new file mode 100644 index 0000000..e11ff3a --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_9_5 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.5/Properties/AssemblyInfo.cs b/Code/Chapter 9/C#/Exercise 9.5/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..85f85b7 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("EditData")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EditData")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 9/C#/Exercise 9.5/Properties/Resources.cs b/Code/Chapter 9/C#/Exercise 9.5/Properties/Resources.cs new file mode 100644 index 0000000..fe7a910 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/Properties/Resources.cs @@ -0,0 +1,61 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_5.Properties { + using System; + using System.IO; + using System.Resources; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager { + get { + if ((_resMgr == null)) { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Exercise_9_5.Properties.Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture { + get { + return _resCulture; + } + set { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.5/Properties/Resources.resx b/Code/Chapter 9/C#/Exercise 9.5/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.5/Properties/Settings.cs b/Code/Chapter 9/C#/Exercise 9.5/Properties/Settings.cs new file mode 100644 index 0000000..dd46b0c --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/Properties/Settings.cs @@ -0,0 +1,38 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_5.Properties { + + + sealed partial class Settings : System.Configuration.ApplicationSettingsBase { + + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + [System.Diagnostics.DebuggerNonUserCode()] + public static Settings Value { + get { + if ((Settings.m_Value == null)) { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) { + try { + Settings.m_Value = new Settings(); + } + finally { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.5/Properties/Settings.settings b/Code/Chapter 9/C#/Exercise 9.5/Properties/Settings.settings new file mode 100644 index 0000000..5617c90 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.5/app.config b/Code/Chapter 9/C#/Exercise 9.5/app.config new file mode 100644 index 0000000..1b99773 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/app.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/CreateDataSet.dll b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/CreateDataSet.dll new file mode 100644 index 0000000000000000000000000000000000000000..4e405db2674a887fa579fc4bfb6b41f94a96c197 GIT binary patch literal 57344 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 RJTT;eArB0B;D6Es{|9O+L%je1 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/CreateDataSet.pdb b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/CreateDataSet.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3e6bb4ca1401a167d3f9e5c365e95f1c9ce0285a GIT binary patch literal 118272 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Data.xml b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Data.xml new file mode 100644 index 0000000..687dbac --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Data.xml @@ -0,0 +1,92 @@ + + + + 1 + Bill + Gates + + + 2 + John + Williams + + + 3 + Steve + Ballmer + + + 4 + Tarzan + KingOfJungle + + + 5 + Jane + PrincessOfJungle + + + 1 + Dagger + 10 + 0.10 + + + 2 + Computer + 2000 + 0.095 + + + 3 + Hamburger + 5 + 0 + + + 4 + A Nice Suit + 300 + 0.15 + + + 1 + 1 + 2 + + + 2 + 2 + 3 + + + 3 + 2 + 2 + + + 4 + 3 + 4 + + + 5 + 4 + 1 + + + 6 + 4 + 2 + + + 7 + 4 + 3 + + + 8 + 5 + 1 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/EditData.exe b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/EditData.exe new file mode 100644 index 0000000000000000000000000000000000000000..f96ec450a46fc352d3dcd6b1823ee7684bc99e1a GIT binary patch literal 24576 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 Q0D%C30D%C3|DOo_54dosNdN!< literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/EditData.pdb b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/EditData.pdb new file mode 100644 index 0000000000000000000000000000000000000000..679bff55a003962abec3eea024e1c7927330af9f GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/EditData.vshost.exe b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/EditData.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..87ed49ad954ce326d6b3914c6a1e9a97ee2d004c GIT binary patch literal 5120 zcmeHKeQXrR6@Pm^&c+4P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.exe b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..0f9edd4035135f81fc79ff38ec4e0d6e10bd747a GIT binary patch literal 49152 zcmeHw34EK?mGAjJNuT94mK<-1lPH8m*^INW1PH{jlVFHL5<7v=K#*;b2xNUml9M5x!T{OR~7;xuIKuI1Q zuA+DqQ5og1A-CcaI614P#iZFvUxWg4%FUh79Gv)$G25swv*uQjBG}lnmcfcZJR;es zrlo{lEs=eEgmO_3%LJAStPof!uqLQJLT0W8V!L?fZ{{X)5_@_l36qc%fsjYFJSxh9 zKrLs(-rY%-a&jlDwClivwVc~Ya~_?J*DE%Q#v72f8<}9mCvkeRq_e2{z;W1~x8`u1 zP-ah25>q)njnk?m%Z@QpGOgO4E{V8Eh>nsmb(F-RRqH5;&)_u9SfC<)0;f-ubiI8N zf2uM{?6`*%>zwJa;J+(OQ$&0^7Mm6HpMU|RMZpAjO|HLb3oL{*5d z#4Lh+z&=Hl$`Rt4z{rtJVD7Za*qdA>zb_{Gr5v|=RWYsN@uY(*j8V1NuW*!jl;5RelXIZ+{QTS{3Wr!g5TR;(LSs^uRLm;fKX zQ|v?0@ee*9G6B`mg92l*Cy;6Mpunt2j$e5kMy&h25+=bl1lT^w`GsFJEcb4$X4 z4v3U=`rklxAUg=(J&PI`@k^o2-UN_mw44jL3|Rd;hA!iblaYgRT)T>JNiKoUTn_-> zTa;1Q<~phAxDP3;55=$<@Bnj)`MJ5U#ZGcoC+}0-;g6En<>yw7$}5xaQS!R{+<=$Y z4BMB(fcR#%0>~CdQX08}kt;QlW~5&u8AhN`@<3e~uXy43a9w@;Dk1aCfgV14BAGr% z#l=xrAqV4G5%a}FrSej#6BFE0rK+Vk7;0J!xf_B~j$edjuxvJ2Seq+4x(CxMis=}5 zm|j^-M~`DV$E)Z;R|!b;`pQDXKt>v`pez*5bdK5rI--N=>=2>P;=MqQD>~~^&p|RJN%<}o6NK^qoFg9lizi59-(dS;*Q|U�H5F&=09`CUin%Q!!G7+-!yz5I;X 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%0D&igq|HGw+C*b{dI36*Z*obWHjPOP96iC z*vRQ=lAa~$(pmQVA`|CD`Mo^=EP|lhXr618MftLc#Bwh`_MbB4H3B3g${uz3B zMLd&uB@F)qu0iSbAp?EtpfNpg)s!C?oZcIn9=Mj%fxD;N7`h4i>*=Nd_syFE-=Bhh zM=wv=8(f6e{64JZ_32`ab=GrS zYb!=q(q?GBK6npW6D~*)Ai=uz;3$5To3pW^IX84<`lr)=1GBjAo+OkTLOPcx4@EsalQF8 z;9bF2gEJ&OL(*-MZj*G%5SvYg-xAmn`n9#$Ooaj^4+pOkm^J^!YzSlnj|RRK_+H@o zzz+jI4g6!^e+2$5Fe^9^{8aGG;M+kf6c3#qIw#Z~IzO~EbaiMX^zqPrp)Z9V4ShZI z?a&LMpN3u!k=1BTv*Om-R)=+owb=?|{wu{vHon<|wc75IiGbf0I5EuW4+!ip!}1L0 zs|^1n@T_u9pIw1z4yUOM-x9d4vI%Q01LuihXsm?Z8l2fR;KXe*uxU7JJ02%&C*p)T zj`4C9Zlh)+?~wITz}?o(fcvc50G|ll1^8*}Zoto2UjV$%dXUql9R|@u0-qB2Lg^|{ zeq6d1@R@Svz9jGsfo}t61A>RZj!HA@HdQO!@u6qT-y%t!j9NH^doBNv-tT8K46 zHQ~oU@UIl>t1#{of}orRXu_8vP)^5*Z#DW3Zb9JL5>U>-yPD1f#CbUKnecWgu=U7M zO&0>1@OwEZ7lBhv8vsqTLM75404Gcr0~%-#d<7S@37~AmXEj}dw~1c~h=8&UZB(~gm8j)bq8r)x) zv=$LzqL)qw>_$K3+iiSZkFvPiFe!&|%f$YdPs0akF5p(!V$ffsG!wHM!;e6#K_3

    HvHUBaBIp^L-5+#+J{duc4MEeI4~Pamug`@M*M$ zN#8;X;C2JB)(Q^u3Y6%=@QD@pz-s|^O9%+}Wzb);KoRY>F=&sBLEAqD?cz|ezOCkq zC{?{U!=`C`D;-3P1rcFEv|tbs6+|Qj5l2D9PY}@)MAQTkEgYdimHDhryKgX^Je!tn zPiA{lxnyin^C`{A?MYg#{tki5*tBTVDYV?q_RpiX!CW5fK1ta9xTjxhZ)@9<$ZSq7 z+nUVe&rM|d(#b5V=o{?KAA!qSIP?3H%C#r*iS9&CS}YT_9;H~-Xb#)px5qWzSGr3p zGT5KbS4&sir^3(1(*=2X9>8%ed$1Y81IcVYmCTXz7($MmhaN~hu|OB}T#@X}YpnUg zRHo0~mTP9`=cEZ74%d?ype*Xd;}NOeL@wW+OeZ%d@=4(+m+2=V+U#^1it$uMjyjfQ z2H}12D63!xN$a&{@eG5TA#-_Z^I$f?d8l<@0MA=U+Ns>qL@r64iB!hR(LZ2k5CjOU zWSTnK>`WePL_@EwIXP-im@prGxoAtnbNZ+R|Jq5-XB<)l~5PkmJDS-aMXHbHp~ap{`dJ z3Ts-Po#q)Ps9RbA)1``slWFBg{ILm1EI)sfqs0;2gPGMm-7BT#%Cru#U{-HsP6;WTGEo%#EzUNclkfufk2`okJ^K9h~oK9}<9vVn`L>`t< z2PQh+)HU-g^olH+4@kS%^XZt4wiVBQQAcZTDAS7p6=NWN*AwZsL^|D*KnGr$+?>jE zWJGLPrcbB1ZBfU;{tU(?{%{P!BU*~EJeAGmS0(zB8efT#RZxGJceHCIOmuVjXihF4 zsm(^;lUVM+qj2sl;!Qezl<4d8I+;7S_F+uux3?z8WI6V`YS3rL*29b=DPo>q6Hg`i zc=$%R>4}Z8HjG~RWC!|w zBGa3sRmp8mHdzqJC}MA0I+#l1;X`J_*~_zbzeAC5hDwknsWTM!i3>8mM)DA@m|%`i zJcL*0eX+edn}Tm3$))T+UB8Vk^TA)zDZ$U6K29OI>9gRcrXw|QZws}CCp-wf_Kh%4e@MdO>8 ztGVv%uZByNj|Wc9<8>&>;zK)fzWh!tib*U4RUX?xI&z*Whg(GPjQ4595XYu@qGR`D zF}BEsaGK8xGEw?`BslY(T&_R?p(E#@9qo?YMHJUDo`hQ!$>PYnR7&#k0_G33{1()A~euFiHKJy0A#p`)n3fWCfi)lJg}6cc&5v_TA>7Zv2n|+6&vyNtTXYmb-{zUf5(X2LmU?`i~yd^)HrF}n|!3+LGW@s#i z@62E{yFHof&87zUKw&hqJC#o-J+iKTdn&OxW9M+XfsJ3XXK?do-Z^<4{ME4l;*2O&sf@!n#)q;j4*olz>7PxYkIsl2b6&S?%Glu=iAYxfqc zG5fsSzC#jPmSIEJr*eadbXR^T&4)gN8S0bc51tM>)JceJ1bJ=g9DKAT(<%dXbPWy+ z*x9_dJ9Tz6sXS_u$!GB^vt5I^fn=s{Wn#!4bdQbNvx#jo)!AvRggMeyVE>!zv9q?s z+EVO}HfOOJ>BDrcCE5`lE3(OC#+6XK2NcwE4-6t60vfibl-I9I;S zlWR|2p1_XGt4%>2`9vX;Z%wB*XZm@$$=N-O3t@A*a8{CBkxdNg-X=w)cL zvUXvwBEtb!Oc}&FT%m40zTh%kLCCw1XGOd0AVupQ{g^d+|owRJFWiwL)cL=~a@fi37A z>u?|-GE!HzZY8^Cg^le^28Xd55LS9<>`Y{B9Ev$L5HBy~k&!9b01T?bK<6k|7DaL( z#zile$U`(GvrY(doy4-y%UkNO1t)1}U$I$>!$;15#^q^hju*pnz`4}U zVne1X$C~-*vzXSI*q-W#F-vXbm(EnC0PnWZa=AP@AvXQ+3!e`3Cv_h|4RJ2iuQ4uy zL!e8(l;#}RNW1GJ8_XZQ$pQD!Fo)iTc_2yZL~(_8oajH>@dgD9dWdp(3vspC&iaOv zZre`x*xPx#=85~yg#1T)-pLAv<*g~0;N{^{CfoLn;93a}W8Q&mv$BNFO{NF%#kp

    NeE-X%+HvX72VzY5b&j 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 sj=#n|Fz$hI4~% + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.pdb b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e55310ddf2c69200c4d7015d841cf37313fb4666 GIT binary patch literal 95744 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 UI)7RMpO(O{JQ-KLuFaHvj+t literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.vshost.exe b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..87ed49ad954ce326d6b3914c6a1e9a97ee2d004c GIT binary patch literal 5120 zcmeHKeQXrR6@Pm^&c+4P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.vshost.exe.config b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.vshost.exe.config new file mode 100644 index 0000000..1b99773 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/bin/Debug/Exercise 9.5.vshost.exe.config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/EditData.Properties.Resources.resources b/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/EditData.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..2cc4b526097f8f712e10892bef4220aa78d132de GIT binary patch literal 188 zcmX?i>is@O1_p+CK&%;DSzMBus~417oL^d$oLUTL1*ImYq!#HYycEh^5;&$BhsGte_OGceFI&{1$M%_%7@O0~^PEiEZZ%+XN@ sC{4=AO!iK#49U+<&9hB1H%~N8HZ?P}G&V^!u&`tTx)25e9QOd300%uiA^-pY literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/EditData.exe b/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/EditData.exe new file mode 100644 index 0000000000000000000000000000000000000000..f96ec450a46fc352d3dcd6b1823ee7684bc99e1a GIT binary patch literal 24576 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 Q0D%C30D%C3|DOo_54dosNdN!< literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/EditData.pdb b/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/EditData.pdb new file mode 100644 index 0000000000000000000000000000000000000000..679bff55a003962abec3eea024e1c7927330af9f GIT binary patch literal 24064 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/Exercise 9.5.csproj.GenerateResource.Cache b/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/Exercise 9.5.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..974f7054bf75c722eaf57334ca7c494220e0a90a GIT binary patch literal 784 zcma)3O-sW-5KV1U`=L+|BBF;P9t2BhEuxnqSW$}>{6a*$Y_k(wy3LlIjaYwyzs#e* z#FKwOXNronL7c!#GCTX`%{(vTdEN&Fzd7b+2yVJ6v<6M&g8f8k8C(hMW374(7L|!x zTS1+lTD6^Mmsn`UkT@%Jt$LR9vok4jfUK=i>C0o%|)K;Sbp(tVjWdXrLPlX-7t{o^q% z{dhQH&o?82SPWogBCiFyu8}HIAQvaj;8CH&JV~3+j2$YnNFHWbzkThzzdUCaIK@%^ E1a*GtLjV8( literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/Exercise 9.5.exe b/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/Exercise 9.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..0f9edd4035135f81fc79ff38ec4e0d6e10bd747a GIT binary patch literal 49152 zcmeHw34EK?mGAjJNuT94mK<-1lPH8m*^INW1PH{jlVFHL5<7v=K#*;b2xNUml9M5x!T{OR~7;xuIKuI1Q zuA+DqQ5og1A-CcaI614P#iZFvUxWg4%FUh79Gv)$G25swv*uQjBG}lnmcfcZJR;es zrlo{lEs=eEgmO_3%LJAStPof!uqLQJLT0W8V!L?fZ{{X)5_@_l36qc%fsjYFJSxh9 zKrLs(-rY%-a&jlDwClivwVc~Ya~_?J*DE%Q#v72f8<}9mCvkeRq_e2{z;W1~x8`u1 zP-ah25>q)njnk?m%Z@QpGOgO4E{V8Eh>nsmb(F-RRqH5;&)_u9SfC<)0;f-ubiI8N zf2uM{?6`*%>zwJa;J+(OQ$&0^7Mm6HpMU|RMZpAjO|HLb3oL{*5d z#4Lh+z&=Hl$`Rt4z{rtJVD7Za*qdA>zb_{Gr5v|=RWYsN@uY(*j8V1NuW*!jl;5RelXIZ+{QTS{3Wr!g5TR;(LSs^uRLm;fKX zQ|v?0@ee*9G6B`mg92l*Cy;6Mpunt2j$e5kMy&h25+=bl1lT^w`GsFJEcb4$X4 z4v3U=`rklxAUg=(J&PI`@k^o2-UN_mw44jL3|Rd;hA!iblaYgRT)T>JNiKoUTn_-> zTa;1Q<~phAxDP3;55=$<@Bnj)`MJ5U#ZGcoC+}0-;g6En<>yw7$}5xaQS!R{+<=$Y z4BMB(fcR#%0>~CdQX08}kt;QlW~5&u8AhN`@<3e~uXy43a9w@;Dk1aCfgV14BAGr% z#l=xrAqV4G5%a}FrSej#6BFE0rK+Vk7;0J!xf_B~j$edjuxvJ2Seq+4x(CxMis=}5 zm|j^-M~`DV$E)Z;R|!b;`pQDXKt>v`pez*5bdK5rI--N=>=2>P;=MqQD>~~^&p|RJN%<}o6NK^qoFg9lizi59-(dS;*Q|U�H5F&=09`CUin%Q!!G7+-!yz5I;X zd))jJkjh@ibI>)Y?=H9}2&;sOZIh+~4NBcD`Z>Z7D4d*q7koYXWFschYVgU{a9TBD zogQ3x`DBS-l*iN{paxJg*U3z-m&24gCb==poXt!&+F?osgei8{-!Pd+{E|8~fY_@c ze`kr0D)Q)?pysZHPE43W8b;c(N4ONL&i)JethaaT&kyovmR;aeC2e=|m<3>{_&+GX zJmxCY<7OEeKWW!U%>tp(gFJxKpBywS5LrLEsXfBq9aQu72}daF}xhYI9u00 zV1EJT$~rwrr=jks4EyFjx7JqU4H!0!ig114&TvEU&anMO&Y|3AsqA{O!1L5e(1BVw z{;ikH7~ul@`l02{68nBvGcTj0ZMjWQ4=0cP07SetQR@^~&HM*BH&0X;{v<&B>lCyS zpv7WCgJ=}RbJ&YZrp2w9Q?oyr}#*R_XVWo#Vnx}`c_t4{Y z$|qO@>RCdS=zLA=OPN*5WL7Dcd8PvUrVm5Tz8=7tTe6?yaJ_-Em)7OJ#_X>PQd?VF zSC@N|2~P>3!Ttt+miQ+inV@*{nEj=zCK9ao>51UH(3cPAQZjSpz6o75AsnkM4xs#} zS#u;5mNl{cEygVS+xUot{PI@B%C7O`t!zIdesN2QTP12@v}#H)F_!ozMpUMFVoY+B zxDzAdjmP!>T61Hc>IhOdwGTyCM?c+(;m@1vxPNLohO05@=)Pmp(S1ESbiC)BIYr8s zIaSY@DBYVg5yH;wgdS|}Vq9h?#kd!-kuPLGVL=YYC5K{oIb6onq8yA%4#n_txQuB< zIT)85is9uDhSxoPbLKMm2KwAFvO?yjNdxphjPq0)X%w8jyQ+#T+m1 zITv$x^yVzaoH>iL>$&)=D8N2J4M9hki@8&JdKf!KJ&$wc&7Is;Jw1#aqn^V`4|iZs z4`c74$Ls9>P3PiQ5%b457u%!f;=LRt|F!4hJ*p$FUrBVUSgdx-<+!{eIq8}1WXlEWZLhhLwYqb%LSz~? zcd{OLckIo{kSUDAvFBuj^;r93j;Z&Yleyn|a~EUI+{M}Tocsg|;HP}7Bkzy7(|URs zJ4QWvPUf!c>0#^`^&IA|Z0_U^?&)FdJ@j~k0c!i-aeusl$AI^-KhENC`yRN#qJ-_n7JgFaCXTJx#{B+8pRW z^JA)VMHx?D%?Zd0Hdwkv&goCN@f{+ID`|RNt3B+5Q+5#c>|96Bj}$uhW_f% z`_s>PJ^jvEuOa=VfKX04I#-Qu6 zq8N1Pqhe@`{Nl>O7?k`>_vi01<3HrOq2{|V9|g_euGuP-WNi)C=sUQb%#|8BcYx4` z@p31N3*D~@^AW3>t5vzWR9oz1_E@@Dew40er38gBYkEM&{g+3W`>^jr~ z6^PI^m{@qJgWFR)qjDx)GY@$DN9=+^77iwIPr+HkoPl1h(vm+GXZ-}~L|h60!gHyK zS-9#9el!H%jnBOV!C_WDYpNNCeA%p7W}J!Oaz72o{R^B2o94SVRfOjrN7;p8EcBz$ zC<{{iW#r2J44}*!W>J+v9xCCsK&bKj4?PRO6pM}{bC?lSndl(i-~0COzKSu9Zo)g= zHI&OI`}GSixwVxM-NV9o!3^WV`iDzP z13>=OSil#dT>4JD(HI1W(zo&6gEx!3f;ZM&vi4$}ZRGbHyu0w`y!=Kn^2t1Ie^n!k zK4I)P%IHhRZAKM6X*^gZ#k-JvKoTIZW})N1VpWj&xp zPh0zu_eH=eddp%x-w3k}?}j-YD`k31DX0IsoYRM@Iek*3E@Dx4)C6_#uH0MsJUPnZ5xRTlB~1i&2YeYZxx6VgGd1+=fzyCA|;nDBW4Z z9(Ww-N%VTni#3xdKJmqxG8&l3lrKm+T+8W;Ynl5ofsYCNCZI)4b^F0xP{+9z)!k;i zL|37$%jly>S5aL(*K2J(`+Q6N`SAH)0M^m{^`EG(qh|o4^j7^(0IM3#H!Vsuu-~=_ zJlybbLmhp$;bQpnC8VopxRJGet&!>9Z)EyUk+$gfjjuP>(OaO@(X>gsLshhF61UXF z0*$6ltp8EKDq1j=%KT}>^(N`aYV#H#63V3iolO2|Z}bC5TJ ze=)%>)!6ZZU9GV=naFo1uv$pY5$qws8t^u_x>qp%TE}#Z(tjryKQcKT`oAg|9vcVNOi!S4)wIz_8YiG8Pa=Oc?E)5}`6$<* zv{?msz?=;Dpg9fjkif%2d0x^#mh^AT8Q}g=U?6Z3(x(RI11<}k3fL7m18{5LY`|Lt z{wS~%>0rs90BZ%FAaHj{#4zaF0w;z!{Q-eLD`m;w2{g($T`91?>{7@)An;ED&njn1 zSp~}|{VMO-71x9QDS>YZTvy4I(RSWn{Y%ilS^Wm!{naICN+&&0rz7-c^@(PL-m0Dj zcv|E%z{?_MnX6-PA?By$=-USM3HBsyLo69|t6(E^tyzyY*oTEF(cXs20Ao|I3?Uk! zn!s#eag7}ZEJ(wGDM^cdBG?C!Z#hPqUtsEmmhk-GD*lxl9<+fi33dT%&{${iB490o zeIwixyad>}8oMUg1FTz1-WS}0SWau~*4Y|8vA1~3hZ-&JxLXzdW<`V z1^Wh_5ZVgt7n(Oalm+&-###ld#tMlLZFXoUcxkMC7`r_*f}Zm^!FJO_&{<9gT`UUh zeyoPrOJ4=Afg^+>=lhIu=YYSjMWFx$Enx4K`nDI53+Y3 z=4Uza3eY!+8IJ#EW^qv%V)!bup&$;d)K;p0Hk!r=XSOYt~Epw~Cy6 zF)gX`P1hKg_fHr(_{Ea1S#QXk?3Fi@`owA#1+!?sV7p=U+vwrzcv2@76SFBT*xv9$ z1nyk=pvF1`yH#VC2zF3o10^Mpd_iM7O3H!#3$Pes=@TWjMl)3}RM;1RolG+|_A_8D zv{Yk%0yd96ps{$k)|gLujV%GTfNs#(0I-GhHyXPR*eUclFvKo>Hayulm7aC6>Bea^ z@f5{-C|qtVqH_iNhVg@N+&F`_C=5|I7ubHmo}^d8jNL7milsB?PlBoFIfGs~Rq6a) zcs?ZMQ8mP1Rq1KK8f0zuB%M%tws9sc)YyvBHegq4tQ*)_^rXgmfGwtq(^)6t8ra#? zE!bY#RXW)?hx!EjIPEXJftJv&MN+!-{#LqIFx8r^bQR2TT5~CVNU*)(sb!|oP6sqL zU$93scCKL0YV0DxexWgL+ja_{DdmNClw1UCHZX46;j$iM8MSNd6Tp_!B^rAQ*b3UJ zv7Z7vmu}Qpd3le~L3eBHIAG_|6B=6$?0ovM#rF#`7ZM&9U5KOi0TKbJ(s%_U&_hQzm+IB6av1aD-{UOI#tT}ZzdOttMr zRN5+~OWSUs(*;v)yMg{qFx68prin{MGJITxX>6o98smPuk=ixJ?Y@yVYK&WRBVDbr z9VL5!-42Xfb3?_A#wGNK#Hfw6ZFR({M#(smcS#kicF*4Q(ZdyFmgwqU9?Q`E#;7UKC~u92d4 z!BlIeXro}NHB)r2V5&7!MA+qUd9PL8g?ur=RBNW_bd7OqUP0X&=LI9u;hFcurM`aTUF;u`{a< z0+X+$p&ibvI%H(&+z!sSH+)gmW56!c*yZ5m=x&YWz{}BLh0$Pxaw<0p0a`|JM*+(@xuQMI|u0zjRhwh1onc)q7x1oTdC=MW#@4d z9s{;eWAi6`$JjMBMw-rWx6S6c!(^e|0w@#=Bc9zDj z6W%6`eN1>)YwS+p-LA1O3GY#jas7tqw}Pqq4N*m>vidg@N{k(}P-ABGL13#j#%;8d zKB+Noqn&h6W9*l!>1~a%U#_NxRZ3?=^$uefou{#Q^%h`hjh$XS-?)Zu(^yCKWMGFC zMi*CS=~{YCV^>z!15-a~h&e!bGcHhmxj}e~6^6+AgK;fgq_FVwC}D&KH1<;UpMibI zl`J<$=rgY54r4bx>XY0}FSwEo=5G4ED|wf(hr+8>{aEK7iV61duoanW?x6#UCu7zg z`lw(xHT=ueGMp3KEf{;g9@s&hFCA$`zPB|t99aRZW(}9{@$kM#CotYOZLMK=dOe>@ zoC8>xZpFgMq~(AHeGyMnIq)G#pE;>m{#QbIeKP0zHDIAOuap4&0o)+5q(Ofc_b*sl4ikDwp!rf2<|npTL&91Q?)K z0S$Ue;QuRoZmSm0h&MQG(EGP!%2bvg-3mvdE6JmCl??mer094bJZ8)kI8Wdrfvo~N1g;UdL102)3h**>2=JgW0$5Mi3B1YJgcG5gjBHKXyxG`> z-DX5~pmzv&1F>X6U`pUU#zQsr^nmeAz(dBbYOXam(4T7dn1_stiPxHU7?URMF`q!* zeMrxp_}8GHD)c3wZ=h8ZZwCE_i3dQx1@z~PuL$>PaGx`NCh0ekzQdSO`#H$Zs=e8K zKQeP2hq~q!%fV1kE-U`@AE9$q> zJd{;WivS-pS^=ZfA?Y;&HwbJLJ&nYkPk{0;^78KcCYs%FC3N!M`(~YH8(4lh;Hrl0 zfj4PK!*F1P_BDJ6k{@fhF)$=LM*u$w%0D&igq|HGw+C*b{dI36*Z*obWHjPOP96iC z*vRQ=lAa~$(pmQVA`|CD`Mo^=EP|lhXr618MftLc#Bwh`_MbB4H3B3g${uz3B zMLd&uB@F)qu0iSbAp?EtpfNpg)s!C?oZcIn9=Mj%fxD;N7`h4i>*=Nd_syFE-=Bhh zM=wv=8(f6e{64JZ_32`ab=GrS zYb!=q(q?GBK6npW6D~*)Ai=uz;3$5To3pW^IX84<`lr)=1GBjAo+OkTLOPcx4@EsalQF8 z;9bF2gEJ&OL(*-MZj*G%5SvYg-xAmn`n9#$Ooaj^4+pOkm^J^!YzSlnj|RRK_+H@o zzz+jI4g6!^e+2$5Fe^9^{8aGG;M+kf6c3#qIw#Z~IzO~EbaiMX^zqPrp)Z9V4ShZI z?a&LMpN3u!k=1BTv*Om-R)=+owb=?|{wu{vHon<|wc75IiGbf0I5EuW4+!ip!}1L0 zs|^1n@T_u9pIw1z4yUOM-x9d4vI%Q01LuihXsm?Z8l2fR;KXe*uxU7JJ02%&C*p)T zj`4C9Zlh)+?~wITz}?o(fcvc50G|ll1^8*}Zoto2UjV$%dXUql9R|@u0-qB2Lg^|{ zeq6d1@R@Svz9jGsfo}t61A>RZj!HA@HdQO!@u6qT-y%t!j9NH^doBNv-tT8K46 zHQ~oU@UIl>t1#{of}orRXu_8vP)^5*Z#DW3Zb9JL5>U>-yPD1f#CbUKnecWgu=U7M zO&0>1@OwEZ7lBhv8vsqTLM75404Gcr0~%-#d<7S@37~AmXEj}dw~1c~h=8&UZB(~gm8j)bq8r)x) zv=$LzqL)qw>_$K3+iiSZkFvPiFe!&|%f$YdPs0akF5p(!V$ffsG!wHM!;e6#K_3

    HvHUBaBIp^L-5+#+J{duc4MEeI4~Pamug`@M*M$ zN#8;X;C2JB)(Q^u3Y6%=@QD@pz-s|^O9%+}Wzb);KoRY>F=&sBLEAqD?cz|ezOCkq zC{?{U!=`C`D;-3P1rcFEv|tbs6+|Qj5l2D9PY}@)MAQTkEgYdimHDhryKgX^Je!tn zPiA{lxnyin^C`{A?MYg#{tki5*tBTVDYV?q_RpiX!CW5fK1ta9xTjxhZ)@9<$ZSq7 z+nUVe&rM|d(#b5V=o{?KAA!qSIP?3H%C#r*iS9&CS}YT_9;H~-Xb#)px5qWzSGr3p zGT5KbS4&sir^3(1(*=2X9>8%ed$1Y81IcVYmCTXz7($MmhaN~hu|OB}T#@X}YpnUg zRHo0~mTP9`=cEZ74%d?ype*Xd;}NOeL@wW+OeZ%d@=4(+m+2=V+U#^1it$uMjyjfQ z2H}12D63!xN$a&{@eG5TA#-_Z^I$f?d8l<@0MA=U+Ns>qL@r64iB!hR(LZ2k5CjOU zWSTnK>`WePL_@EwIXP-im@prGxoAtnbNZ+R|Jq5-XB<)l~5PkmJDS-aMXHbHp~ap{`dJ z3Ts-Po#q)Ps9RbA)1``slWFBg{ILm1EI)sfqs0;2gPGMm-7BT#%Cru#U{-HsP6;WTGEo%#EzUNclkfufk2`okJ^K9h~oK9}<9vVn`L>`t< z2PQh+)HU-g^olH+4@kS%^XZt4wiVBQQAcZTDAS7p6=NWN*AwZsL^|D*KnGr$+?>jE zWJGLPrcbB1ZBfU;{tU(?{%{P!BU*~EJeAGmS0(zB8efT#RZxGJceHCIOmuVjXihF4 zsm(^;lUVM+qj2sl;!Qezl<4d8I+;7S_F+uux3?z8WI6V`YS3rL*29b=DPo>q6Hg`i zc=$%R>4}Z8HjG~RWC!|w zBGa3sRmp8mHdzqJC}MA0I+#l1;X`J_*~_zbzeAC5hDwknsWTM!i3>8mM)DA@m|%`i zJcL*0eX+edn}Tm3$))T+UB8Vk^TA)zDZ$U6K29OI>9gRcrXw|QZws}CCp-wf_Kh%4e@MdO>8 ztGVv%uZByNj|Wc9<8>&>;zK)fzWh!tib*U4RUX?xI&z*Whg(GPjQ4595XYu@qGR`D zF}BEsaGK8xGEw?`BslY(T&_R?p(E#@9qo?YMHJUDo`hQ!$>PYnR7&#k0_G33{1()A~euFiHKJy0A#p`)n3fWCfi)lJg}6cc&5v_TA>7Zv2n|+6&vyNtTXYmb-{zUf5(X2LmU?`i~yd^)HrF}n|!3+LGW@s#i z@62E{yFHof&87zUKw&hqJC#o-J+iKTdn&OxW9M+XfsJ3XXK?do-Z^<4{ME4l;*2O&sf@!n#)q;j4*olz>7PxYkIsl2b6&S?%Glu=iAYxfqc zG5fsSzC#jPmSIEJr*eadbXR^T&4)gN8S0bc51tM>)JceJ1bJ=g9DKAT(<%dXbPWy+ z*x9_dJ9Tz6sXS_u$!GB^vt5I^fn=s{Wn#!4bdQbNvx#jo)!AvRggMeyVE>!zv9q?s z+EVO}HfOOJ>BDrcCE5`lE3(OC#+6XK2NcwE4-6t60vfibl-I9I;S zlWR|2p1_XGt4%>2`9vX;Z%wB*XZm@$$=N-O3t@A*a8{CBkxdNg-X=w)cL zvUXvwBEtb!Oc}&FT%m40zTh%kLCCw1XGOd0AVupQ{g^d+|owRJFWiwL)cL=~a@fi37A z>u?|-GE!HzZY8^Cg^le^28Xd55LS9<>`Y{B9Ev$L5HBy~k&!9b01T?bK<6k|7DaL( z#zile$U`(GvrY(doy4-y%UkNO1t)1}U$I$>!$;15#^q^hju*pnz`4}U zVne1X$C~-*vzXSI*q-W#F-vXbm(EnC0PnWZa=AP@AvXQ+3!e`3Cv_h|4RJ2iuQ4uy zL!e8(l;#}RNW1GJ8_XZQ$pQD!Fo)iTc_2yZL~(_8oajH>@dgD9dWdp(3vspC&iaOv zZre`x*xPx#=85~yg#1T)-pLAv<*g~0;N{^{CfoLn;93a}W8Q&mv$BNFO{NF%#kp

    NeE-X%+HvX72VzY5b&j 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 UI)7RMpO(O{JQ-KLuFaHvj+t literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/Exercise_9_5.Properties.Resources.resources b/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/Exercise_9_5.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYCX^(w9Gh@M48GrBEV> zorehzeP@HImYSa21gW@)N;e(XDbBgB<4#YOlQ2#slp;uC$-?Q$wWJa9<`d{{h!#Yp zhFc6~gZW@)#-DXrky)g4qpyIo4(bs^73e_ZL)7G;PU7Q?1hrM=A*if`03_ak8gDQK z%RFjfq@v|)Jfz6~!MSia-cmsTrJ>oxDNr>lz_URAO- z> zz10r2{s=OZ24bkNm}!bpq^J%=QRk5_c9c^UvaO3+pdM4BGG_?R5{wa?BN!(*k6=+# zXAXPU^Ka5;*{5(c^rF)a9m=q%((R9+cj;bVrnyuk8%6!r#%uXuQt<681L?l?vYTzwVC>C Ocpu(s^9bchU+xd|(4El$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/TempPE/CustProd.Designer.cs.dll b/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/TempPE/CustProd.Designer.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..a99585ed1f5adb2ef158a5e85c2f967e2462eaa1 GIT binary patch literal 40960 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/TempPE/testDataSet.Designer.cs.dll b/Code/Chapter 9/C#/Exercise 9.5/obj/Debug/TempPE/testDataSet.Designer.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..63211ebb81091b5da9539de34e1cf218f7b0ed35 GIT binary patch literal 40960 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 E0v(GO82|tP literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.5/obj/Exercise 9.5.csproj.FileList.txt b/Code/Chapter 9/C#/Exercise 9.5/obj/Exercise 9.5.csproj.FileList.txt new file mode 100644 index 0000000..99a7964 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.5/obj/Exercise 9.5.csproj.FileList.txt @@ -0,0 +1,8 @@ +.\bin\Debug\Exercise 9.5.exe.config +.\bin\Debug\Exercise 9.5.exe +.\bin\Debug\Exercise 9.5.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_9_5.Properties.Resources.resources +obj\Debug\Exercise 9.5.csproj.GenerateResource.Cache +obj\Debug\Exercise 9.5.exe +obj\Debug\Exercise 9.5.pdb diff --git a/Code/Chapter 9/C#/Exercise 9.6/Exercise 9.6.csproj b/Code/Chapter 9/C#/Exercise 9.6/Exercise 9.6.csproj new file mode 100644 index 0000000..d50130e --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/Exercise 9.6.csproj @@ -0,0 +1,79 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {7E62E7C0-9C60-46CC-99C7-A64856957F33} + WinExe + Exercise_9_6 + Exercise 9.6 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + + Form + + + Form1.cs + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.cs + + + VariousTables.xsd + + + VariousTables.xsd + + + True + Settings.settings + + + True + True + VariousTables.xsd + + + + + + MSDataSetGenerator + VariousTables.Designer.cs + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.6/Exercise 9.6.csproj.user b/Code/Chapter 9/C#/Exercise 9.6/Exercise 9.6.csproj.user new file mode 100644 index 0000000..e51ad1c --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/Exercise 9.6.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ShowAllFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.6/Form1.Designer.cs b/Code/Chapter 9/C#/Exercise 9.6/Form1.Designer.cs new file mode 100644 index 0000000..9b06e5b --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/Form1.Designer.cs @@ -0,0 +1,173 @@ +namespace Exercise_9_6 +{ + partial class Form1 + { + ///

    + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgView1 = new System.Windows.Forms.DataGridView(); + this.dgView2 = new System.Windows.Forms.DataGridView(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.btnSameNoPK = new System.Windows.Forms.Button(); + this.btnSameWithPK = new System.Windows.Forms.Button(); + this.btnCCNoPK = new System.Windows.Forms.Button(); + this.btnCCWithPK = new System.Windows.Forms.Button(); + this.btnDifferent = new System.Windows.Forms.Button(); + this.btnMerge = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgView1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgView2)).BeginInit(); + this.SuspendLayout(); +// +// dgView1 +// + this.dgView1.AllowUserToAddRows = false; + this.dgView1.AllowUserToDeleteRows = false; + this.dgView1.Location = new System.Drawing.Point(4, 26); + this.dgView1.Name = "dgView1"; + this.dgView1.ReadOnly = true; + this.dgView1.Size = new System.Drawing.Size(479, 150); + this.dgView1.TabIndex = 0; +// +// dgView2 +// + this.dgView2.AllowUserToAddRows = false; + this.dgView2.AllowUserToDeleteRows = false; + this.dgView2.Location = new System.Drawing.Point(4, 206); + this.dgView2.Name = "dgView2"; + this.dgView2.ReadOnly = true; + this.dgView2.Size = new System.Drawing.Size(479, 150); + this.dgView2.TabIndex = 1; +// +// label1 +// + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(4, 5); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(39, 14); + this.label1.TabIndex = 2; + this.label1.Text = "Table1"; +// +// label2 +// + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(4, 185); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(39, 14); + this.label2.TabIndex = 3; + this.label2.Text = "Table2"; +// +// btnSameNoPK +// + this.btnSameNoPK.Location = new System.Drawing.Point(490, 52); + this.btnSameNoPK.Name = "btnSameNoPK"; + this.btnSameNoPK.Size = new System.Drawing.Size(240, 23); + this.btnSameNoPK.TabIndex = 4; + this.btnSameNoPK.Text = "Same Structures No PK"; + this.btnSameNoPK.Click += new System.EventHandler(this.btnSameNoPK_Click); +// +// btnSameWithPK +// + this.btnSameWithPK.Location = new System.Drawing.Point(490, 82); + this.btnSameWithPK.Name = "btnSameWithPK"; + this.btnSameWithPK.Size = new System.Drawing.Size(240, 23); + this.btnSameWithPK.TabIndex = 5; + this.btnSameWithPK.Text = "Same Structures With PK"; + this.btnSameWithPK.Click += new System.EventHandler(this.btnSameWithPK_Click); +// +// btnCCNoPK +// + this.btnCCNoPK.Location = new System.Drawing.Point(490, 143); + this.btnCCNoPK.Name = "btnCCNoPK"; + this.btnCCNoPK.Size = new System.Drawing.Size(240, 23); + this.btnCCNoPK.TabIndex = 6; + this.btnCCNoPK.Text = "Common Column, No PK"; + this.btnCCNoPK.Click += new System.EventHandler(this.btnCCNoPK_Click); +// +// btnCCWithPK +// + this.btnCCWithPK.Location = new System.Drawing.Point(490, 173); + this.btnCCWithPK.Name = "btnCCWithPK"; + this.btnCCWithPK.Size = new System.Drawing.Size(240, 23); + this.btnCCWithPK.TabIndex = 7; + this.btnCCWithPK.Text = "Common Column, with PK"; + this.btnCCWithPK.Click += new System.EventHandler(this.btnCCWithPK_Click); +// +// btnDifferent +// + this.btnDifferent.Location = new System.Drawing.Point(490, 232); + this.btnDifferent.Name = "btnDifferent"; + this.btnDifferent.Size = new System.Drawing.Size(240, 23); + this.btnDifferent.TabIndex = 8; + this.btnDifferent.Text = "Different Table Structures"; + this.btnDifferent.Click += new System.EventHandler(this.btnDifferent_Click); +// +// btnMerge +// + this.btnMerge.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnMerge.Location = new System.Drawing.Point(490, 291); + this.btnMerge.Name = "btnMerge"; + this.btnMerge.Size = new System.Drawing.Size(240, 43); + this.btnMerge.TabIndex = 9; + this.btnMerge.Text = "Table1.Merge(Table2)"; + this.btnMerge.Click += new System.EventHandler(this.btnMerge_Click); +// +// Form1 +// + this.AutoScaleDimensions = new System.Drawing.SizeF(5, 13); + this.ClientSize = new System.Drawing.Size(736, 360); + this.Controls.Add(this.btnMerge); + this.Controls.Add(this.btnDifferent); + this.Controls.Add(this.btnCCWithPK); + this.Controls.Add(this.btnCCNoPK); + this.Controls.Add(this.btnSameWithPK); + this.Controls.Add(this.btnSameNoPK); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.dgView2); + this.Controls.Add(this.dgView1); + this.Name = "Form1"; + this.Text = "Exercise 9.6"; + ((System.ComponentModel.ISupportInitialize)(this.dgView1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgView2)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgView1; + private System.Windows.Forms.DataGridView dgView2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button btnSameNoPK; + private System.Windows.Forms.Button btnSameWithPK; + private System.Windows.Forms.Button btnCCNoPK; + private System.Windows.Forms.Button btnCCWithPK; + private System.Windows.Forms.Button btnDifferent; + private System.Windows.Forms.Button btnMerge; + } +} \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.6/Form1.cs b/Code/Chapter 9/C#/Exercise 9.6/Form1.cs new file mode 100644 index 0000000..c4c5bb4 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/Form1.cs @@ -0,0 +1,112 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +#endregion + +namespace Exercise_9_6 +{ + partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void btnMerge_Click(object sender, EventArgs e) + { + DataTable table1 = (DataTable)dgView1.DataSource; + DataTable table2 = (DataTable)dgView2.DataSource; + table1.Merge(table2); + } + + private void btnSameNoPK_Click(object sender, EventArgs e) + { + VariousTables.Table0DataTable table1 = new VariousTables.Table0DataTable(); + table1.LoadDataRow(new object[] { "1", "One" }, true); + table1.LoadDataRow(new object[] { "2", "Two" }, true); + + VariousTables.Table0DataTable table2 = new VariousTables.Table0DataTable(); + table2.LoadDataRow(new object[] { "2", "Monkey" }, true); + table2.LoadDataRow(new object[] { "3", "Donkey" }, true); + + dgView1.DataSource = table1; + dgView2.DataSource = table2; + } + + private void btnSameWithPK_Click(object sender, EventArgs e) + { + VariousTables.Table1DataTable table1 = new VariousTables.Table1DataTable(); + table1.LoadDataRow(new object[] { "1", "One" }, true); + table1.LoadDataRow(new object[] { "2", "Two" }, true); + + VariousTables.Table1DataTable table2 = new VariousTables.Table1DataTable(); + table2.LoadDataRow(new object[] { "2", "Monkey" }, true); + table2.LoadDataRow(new object[] { "3", "Donkey" }, true); + + dgView1.DataSource = table1; + dgView2.DataSource = table2; + } + + private void btnCCNoPK_Click(object sender, EventArgs e) + { + VariousTables.Table0DataTable table1 = new VariousTables.Table0DataTable(); + table1.LoadDataRow(new object[] { "1", "One" }, true); + table1.LoadDataRow(new object[] { "2", "Two" }, true); + + VariousTables.Table2DataTable table2 = new VariousTables.Table2DataTable(); + table2.LoadDataRow(new object[] { "2", "Monkey" }, true); + table2.LoadDataRow(new object[] { "3", "Donkey" }, true); + + dgView1.DataSource = table1; + dgView2.DataSource = table2; + } + + private void btnCCWithPK_Click(object sender, EventArgs e) + { + VariousTables.Table1DataTable table1 = new VariousTables.Table1DataTable(); + table1.LoadDataRow(new object[] { "1", "One" }, true); + table1.LoadDataRow(new object[] { "2", "Two" }, true); + + VariousTables.Table2DataTable table2 = new VariousTables.Table2DataTable(); + table2.LoadDataRow(new object[] { "2", "Monkey" }, true); + table2.LoadDataRow(new object[] { "3", "Donkey" }, true); + + dgView1.DataSource = table1; + dgView2.DataSource = table2; + } + + private void btnDifferent_Click(object sender, EventArgs e) + { + //VariousTables.Table0DataTable table1 = new VariousTables.Table0DataTable(); + + //Note I have the above line commented. Because it doesn't work - here is an explanation why. + //This is because if you view the final merged table - it contains results that violate the unique constraint setup + //in Table0DataTable. So internally in Merge, + //The constraints are turned off (this gives a performance boost) + //data is merged + //Constraints are enabled <-- you get an exception here because the merged datatable does not have unique values in ColumnA ;) + + //Go ahead and uncomment the above, and comment 3 lines below and see a running proof of what I just told ya. + + DataTable table1 = new DataTable(); + table1.Columns.Add(new DataColumn("ColumnA")); + table1.Columns.Add(new DataColumn("ColumnB")); + table1.LoadDataRow(new object[] { "1", "One" }, true); + table1.LoadDataRow(new object[] { "2", "Two" }, true); + + VariousTables.Table3DataTable table2 = new VariousTables.Table3DataTable(); + table2.LoadDataRow(new object[] { "3", "Monkey" }, true); + table2.LoadDataRow(new object[] { "4", "Donkey" }, true); + + dgView1.DataSource = table1; + dgView2.DataSource = table2; + } + } +} \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.6/Program.cs b/Code/Chapter 9/C#/Exercise 9.6/Program.cs new file mode 100644 index 0000000..72e93bc --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/Program.cs @@ -0,0 +1,23 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +#endregion + +namespace Exercise_9_6 +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.6/Properties/AssemblyInfo.cs b/Code/Chapter 9/C#/Exercise 9.6/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..dfe21e6 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_9_6")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_9_6")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 9/C#/Exercise 9.6/Properties/Resources.cs b/Code/Chapter 9/C#/Exercise 9.6/Properties/Resources.cs new file mode 100644 index 0000000..0673316 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_6.Properties +{ + using System; + using System.IO; + using System.Resources; + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.6/Properties/Resources.resx b/Code/Chapter 9/C#/Exercise 9.6/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.6/Properties/Settings.cs b/Code/Chapter 9/C#/Exercise 9.6/Properties/Settings.cs new file mode 100644 index 0000000..985f7c2 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_6.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.6/Properties/Settings.settings b/Code/Chapter 9/C#/Exercise 9.6/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.6/VariousTables.Designer.cs b/Code/Chapter 9/C#/Exercise 9.6/VariousTables.Designer.cs new file mode 100644 index 0000000..aaa61fa --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/VariousTables.Designer.cs @@ -0,0 +1,1323 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50215.44 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_6 { + using System; + + + [Serializable()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.ComponentModel.ToolboxItem(true)] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [System.Xml.Serialization.XmlRootAttribute("VariousTables")] + [System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] + public partial class VariousTables : System.Data.DataSet { + + private Table1DataTable tableTable1; + + private Table2DataTable tableTable2; + + private Table3DataTable tableTable3; + + private Table0DataTable tableTable0; + + private System.Data.SchemaSerializationMode _schemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public VariousTables() { + this.BeginInit(); + this.InitClass(); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + protected VariousTables(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == System.Data.SchemaSerializationMode.IncludeSchema)) { + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + if ((ds.Tables["Table1"] != null)) { + base.Tables.Add(new Table1DataTable(ds.Tables["Table1"])); + } + if ((ds.Tables["Table2"] != null)) { + base.Tables.Add(new Table2DataTable(ds.Tables["Table2"])); + } + if ((ds.Tables["Table3"] != null)) { + base.Tables.Add(new Table3DataTable(ds.Tables["Table3"])); + } + if ((ds.Tables["Table0"] != null)) { + base.Tables.Add(new Table0DataTable(ds.Tables["Table0"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new System.Xml.XmlTextReader(new System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public Table1DataTable Table1 { + get { + return this.tableTable1; + } + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public Table2DataTable Table2 { + get { + return this.tableTable2; + } + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public Table3DataTable Table3 { + get { + return this.tableTable3; + } + } + + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)] + public Table0DataTable Table0 { + get { + return this.tableTable0; + } + } + + public override System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [System.ComponentModel.DefaultValueAttribute(false)] + public new bool EnforceConstraints { + get { + return base.EnforceConstraints; + } + set { + base.EnforceConstraints = value; + } + } + + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + public override System.Data.DataSet Clone() { + VariousTables cln = ((VariousTables)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override bool ShouldSerializeTables() { + return false; + } + + protected override bool ShouldSerializeRelations() { + return false; + } + + protected override void ReadXmlSerializable(System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + System.Data.DataSet ds = new System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Table1"] != null)) { + base.Tables.Add(new Table1DataTable(ds.Tables["Table1"])); + } + if ((ds.Tables["Table2"] != null)) { + base.Tables.Add(new Table2DataTable(ds.Tables["Table2"])); + } + if ((ds.Tables["Table3"] != null)) { + base.Tables.Add(new Table3DataTable(ds.Tables["Table3"])); + } + if ((ds.Tables["Table0"] != null)) { + base.Tables.Add(new Table0DataTable(ds.Tables["Table0"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + protected override System.Xml.Schema.XmlSchema GetSchemaSerializable() { + System.IO.MemoryStream stream = new System.IO.MemoryStream(); + this.WriteXmlSchema(new System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return System.Xml.Schema.XmlSchema.Read(new System.Xml.XmlTextReader(stream), null); + } + + internal void InitVars() { + this.InitVars(true); + } + + internal void InitVars(bool initTable) { + this.tableTable1 = ((Table1DataTable)(base.Tables["Table1"])); + if ((initTable == true)) { + if ((this.tableTable1 != null)) { + this.tableTable1.InitVars(); + } + } + this.tableTable2 = ((Table2DataTable)(base.Tables["Table2"])); + if ((initTable == true)) { + if ((this.tableTable2 != null)) { + this.tableTable2.InitVars(); + } + } + this.tableTable3 = ((Table3DataTable)(base.Tables["Table3"])); + if ((initTable == true)) { + if ((this.tableTable3 != null)) { + this.tableTable3.InitVars(); + } + } + this.tableTable0 = ((Table0DataTable)(base.Tables["Table0"])); + if ((initTable == true)) { + if ((this.tableTable0 != null)) { + this.tableTable0.InitVars(); + } + } + } + + private void InitClass() { + this.DataSetName = "VariousTables"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/VariousTables.xsd"; + this.EnforceConstraints = false; + this.tableTable1 = new Table1DataTable(); + base.Tables.Add(this.tableTable1); + this.tableTable2 = new Table2DataTable(); + base.Tables.Add(this.tableTable2); + this.tableTable3 = new Table3DataTable(); + base.Tables.Add(this.tableTable3); + this.tableTable0 = new Table0DataTable(); + base.Tables.Add(this.tableTable0); + } + + private bool ShouldSerializeTable1() { + return false; + } + + private bool ShouldSerializeTable2() { + return false; + } + + private bool ShouldSerializeTable3() { + return false; + } + + private bool ShouldSerializeTable0() { + return false; + } + + private void SchemaChanged(object sender, System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(System.Xml.Schema.XmlSchemaSet xs) { + VariousTables ds = new VariousTables(); + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any = new System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + return type; + } + + public delegate void Table1RowChangeEventHandler(object sender, Table1RowChangeEvent e); + + public delegate void Table2RowChangeEventHandler(object sender, Table2RowChangeEvent e); + + public delegate void Table3RowChangeEventHandler(object sender, Table3RowChangeEvent e); + + public delegate void Table0RowChangeEventHandler(object sender, Table0RowChangeEvent e); + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Table1DataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnColumnA; + + private System.Data.DataColumn columnColumnB; + + public Table1DataTable() { + this.TableName = "Table1"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal Table1DataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected Table1DataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn ColumnAColumn { + get { + return this.columnColumnA; + } + } + + public System.Data.DataColumn ColumnBColumn { + get { + return this.columnColumnB; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public Table1Row this[int index] { + get { + return ((Table1Row)(this.Rows[index])); + } + } + + public event Table1RowChangeEventHandler Table1RowChanged; + + public event Table1RowChangeEventHandler Table1RowChanging; + + public event Table1RowChangeEventHandler Table1RowDeleted; + + public event Table1RowChangeEventHandler Table1RowDeleting; + + public void AddTable1Row(Table1Row row) { + this.Rows.Add(row); + } + + public Table1Row AddTable1Row(string ColumnA, string ColumnB) { + Table1Row rowTable1Row = ((Table1Row)(this.NewRow())); + rowTable1Row.ItemArray = new object[] { + ColumnA, + ColumnB}; + this.Rows.Add(rowTable1Row); + return rowTable1Row; + } + + public Table1Row FindByColumnA(string ColumnA) { + return ((Table1Row)(this.Rows.Find(new object[] { + ColumnA}))); + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + Table1DataTable cln = ((Table1DataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new Table1DataTable(); + } + + internal void InitVars() { + this.columnColumnA = base.Columns["ColumnA"]; + this.columnColumnB = base.Columns["ColumnB"]; + } + + private void InitClass() { + this.columnColumnA = new System.Data.DataColumn("ColumnA", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnColumnA); + this.columnColumnB = new System.Data.DataColumn("ColumnB", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnColumnB); + this.Constraints.Add(new System.Data.UniqueConstraint("Constraint1", new System.Data.DataColumn[] { + this.columnColumnA}, true)); + this.columnColumnA.AllowDBNull = false; + this.columnColumnA.Unique = true; + } + + public Table1Row NewTable1Row() { + return ((Table1Row)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new Table1Row(builder); + } + + protected override System.Type GetRowType() { + return typeof(Table1Row); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Table1RowChanged != null)) { + this.Table1RowChanged(this, new Table1RowChangeEvent(((Table1Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Table1RowChanging != null)) { + this.Table1RowChanging(this, new Table1RowChangeEvent(((Table1Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Table1RowDeleted != null)) { + this.Table1RowDeleted(this, new Table1RowChangeEvent(((Table1Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Table1RowDeleting != null)) { + this.Table1RowDeleting(this, new Table1RowChangeEvent(((Table1Row)(e.Row)), e.Action)); + } + } + + public void RemoveTable1Row(Table1Row row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + VariousTables ds = new VariousTables(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Table1DataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Table2DataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnColumnA; + + private System.Data.DataColumn columnColumnC; + + public Table2DataTable() { + this.TableName = "Table2"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal Table2DataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected Table2DataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn ColumnAColumn { + get { + return this.columnColumnA; + } + } + + public System.Data.DataColumn ColumnCColumn { + get { + return this.columnColumnC; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public Table2Row this[int index] { + get { + return ((Table2Row)(this.Rows[index])); + } + } + + public event Table2RowChangeEventHandler Table2RowChanged; + + public event Table2RowChangeEventHandler Table2RowChanging; + + public event Table2RowChangeEventHandler Table2RowDeleted; + + public event Table2RowChangeEventHandler Table2RowDeleting; + + public void AddTable2Row(Table2Row row) { + this.Rows.Add(row); + } + + public Table2Row AddTable2Row(string ColumnA, string ColumnC) { + Table2Row rowTable2Row = ((Table2Row)(this.NewRow())); + rowTable2Row.ItemArray = new object[] { + ColumnA, + ColumnC}; + this.Rows.Add(rowTable2Row); + return rowTable2Row; + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + Table2DataTable cln = ((Table2DataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new Table2DataTable(); + } + + internal void InitVars() { + this.columnColumnA = base.Columns["ColumnA"]; + this.columnColumnC = base.Columns["ColumnC"]; + } + + private void InitClass() { + this.columnColumnA = new System.Data.DataColumn("ColumnA", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnColumnA); + this.columnColumnC = new System.Data.DataColumn("ColumnC", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnColumnC); + this.columnColumnA.Caption = "Column1"; + this.columnColumnC.Caption = "Column2"; + this.Locale = new System.Globalization.CultureInfo("en-US"); + } + + public Table2Row NewTable2Row() { + return ((Table2Row)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new Table2Row(builder); + } + + protected override System.Type GetRowType() { + return typeof(Table2Row); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Table2RowChanged != null)) { + this.Table2RowChanged(this, new Table2RowChangeEvent(((Table2Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Table2RowChanging != null)) { + this.Table2RowChanging(this, new Table2RowChangeEvent(((Table2Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Table2RowDeleted != null)) { + this.Table2RowDeleted(this, new Table2RowChangeEvent(((Table2Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Table2RowDeleting != null)) { + this.Table2RowDeleting(this, new Table2RowChangeEvent(((Table2Row)(e.Row)), e.Action)); + } + } + + public void RemoveTable2Row(Table2Row row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + VariousTables ds = new VariousTables(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Table2DataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Table3DataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnColumnD; + + private System.Data.DataColumn columnColumnE; + + public Table3DataTable() { + this.TableName = "Table3"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal Table3DataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected Table3DataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn ColumnDColumn { + get { + return this.columnColumnD; + } + } + + public System.Data.DataColumn ColumnEColumn { + get { + return this.columnColumnE; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public Table3Row this[int index] { + get { + return ((Table3Row)(this.Rows[index])); + } + } + + public event Table3RowChangeEventHandler Table3RowChanged; + + public event Table3RowChangeEventHandler Table3RowChanging; + + public event Table3RowChangeEventHandler Table3RowDeleted; + + public event Table3RowChangeEventHandler Table3RowDeleting; + + public void AddTable3Row(Table3Row row) { + this.Rows.Add(row); + } + + public Table3Row AddTable3Row(string ColumnD, string ColumnE) { + Table3Row rowTable3Row = ((Table3Row)(this.NewRow())); + rowTable3Row.ItemArray = new object[] { + ColumnD, + ColumnE}; + this.Rows.Add(rowTable3Row); + return rowTable3Row; + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + Table3DataTable cln = ((Table3DataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new Table3DataTable(); + } + + internal void InitVars() { + this.columnColumnD = base.Columns["ColumnD"]; + this.columnColumnE = base.Columns["ColumnE"]; + } + + private void InitClass() { + this.columnColumnD = new System.Data.DataColumn("ColumnD", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnColumnD); + this.columnColumnE = new System.Data.DataColumn("ColumnE", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnColumnE); + this.columnColumnD.Caption = "Column1"; + this.columnColumnE.Caption = "Column2"; + this.Locale = new System.Globalization.CultureInfo("en-US"); + } + + public Table3Row NewTable3Row() { + return ((Table3Row)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new Table3Row(builder); + } + + protected override System.Type GetRowType() { + return typeof(Table3Row); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Table3RowChanged != null)) { + this.Table3RowChanged(this, new Table3RowChangeEvent(((Table3Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Table3RowChanging != null)) { + this.Table3RowChanging(this, new Table3RowChangeEvent(((Table3Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Table3RowDeleted != null)) { + this.Table3RowDeleted(this, new Table3RowChangeEvent(((Table3Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Table3RowDeleting != null)) { + this.Table3RowDeleting(this, new Table3RowChangeEvent(((Table3Row)(e.Row)), e.Action)); + } + } + + public void RemoveTable3Row(Table3Row row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + VariousTables ds = new VariousTables(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Table3DataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + [System.Serializable()] + [System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Table0DataTable : System.Data.DataTable, System.Collections.IEnumerable { + + private System.Data.DataColumn columnColumnA; + + private System.Data.DataColumn columnColumnB; + + public Table0DataTable() { + this.TableName = "Table0"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + internal Table0DataTable(System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + protected Table0DataTable(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + public System.Data.DataColumn ColumnAColumn { + get { + return this.columnColumnA; + } + } + + public System.Data.DataColumn ColumnBColumn { + get { + return this.columnColumnB; + } + } + + [System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + public Table0Row this[int index] { + get { + return ((Table0Row)(this.Rows[index])); + } + } + + public event Table0RowChangeEventHandler Table0RowChanged; + + public event Table0RowChangeEventHandler Table0RowChanging; + + public event Table0RowChangeEventHandler Table0RowDeleted; + + public event Table0RowChangeEventHandler Table0RowDeleting; + + public void AddTable0Row(Table0Row row) { + this.Rows.Add(row); + } + + public Table0Row AddTable0Row(string ColumnA, string ColumnB) { + Table0Row rowTable0Row = ((Table0Row)(this.NewRow())); + rowTable0Row.ItemArray = new object[] { + ColumnA, + ColumnB}; + this.Rows.Add(rowTable0Row); + return rowTable0Row; + } + + public virtual System.Collections.IEnumerator GetEnumerator() { + return this.Rows.GetEnumerator(); + } + + public override System.Data.DataTable Clone() { + Table0DataTable cln = ((Table0DataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + protected override System.Data.DataTable CreateInstance() { + return new Table0DataTable(); + } + + internal void InitVars() { + this.columnColumnA = base.Columns["ColumnA"]; + this.columnColumnB = base.Columns["ColumnB"]; + } + + private void InitClass() { + this.columnColumnA = new System.Data.DataColumn("ColumnA", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnColumnA); + this.columnColumnB = new System.Data.DataColumn("ColumnB", typeof(string), null, System.Data.MappingType.Element); + base.Columns.Add(this.columnColumnB); + this.columnColumnA.AllowDBNull = false; + this.Locale = new System.Globalization.CultureInfo("en-US"); + } + + public Table0Row NewTable0Row() { + return ((Table0Row)(this.NewRow())); + } + + protected override System.Data.DataRow NewRowFromBuilder(System.Data.DataRowBuilder builder) { + return new Table0Row(builder); + } + + protected override System.Type GetRowType() { + return typeof(Table0Row); + } + + protected override void OnRowChanged(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Table0RowChanged != null)) { + this.Table0RowChanged(this, new Table0RowChangeEvent(((Table0Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowChanging(System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Table0RowChanging != null)) { + this.Table0RowChanging(this, new Table0RowChangeEvent(((Table0Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleted(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Table0RowDeleted != null)) { + this.Table0RowDeleted(this, new Table0RowChangeEvent(((Table0Row)(e.Row)), e.Action)); + } + } + + protected override void OnRowDeleting(System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Table0RowDeleting != null)) { + this.Table0RowDeleting(this, new Table0RowChangeEvent(((Table0Row)(e.Row)), e.Action)); + } + } + + public void RemoveTable0Row(Table0Row row) { + this.Rows.Remove(row); + } + + public static System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(System.Xml.Schema.XmlSchemaSet xs) { + System.Xml.Schema.XmlSchemaComplexType type = new System.Xml.Schema.XmlSchemaComplexType(); + System.Xml.Schema.XmlSchemaSequence sequence = new System.Xml.Schema.XmlSchemaSequence(); + VariousTables ds = new VariousTables(); + xs.Add(ds.GetSchemaSerializable()); + System.Xml.Schema.XmlSchemaAny any1 = new System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + System.Xml.Schema.XmlSchemaAny any2 = new System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + System.Xml.Schema.XmlSchemaAttribute attribute1 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + System.Xml.Schema.XmlSchemaAttribute attribute2 = new System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Table0DataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + return type; + } + } + + public partial class Table1Row : System.Data.DataRow { + + private Table1DataTable tableTable1; + + internal Table1Row(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableTable1 = ((Table1DataTable)(this.Table)); + } + + public string ColumnA { + get { + return ((string)(this[this.tableTable1.ColumnAColumn])); + } + set { + this[this.tableTable1.ColumnAColumn] = value; + } + } + + public string ColumnB { + get { + try { + return ((string)(this[this.tableTable1.ColumnBColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'ColumnB\' in table \'Table1\' is DBNull.", e); + } + } + set { + this[this.tableTable1.ColumnBColumn] = value; + } + } + + public bool IsColumnBNull() { + return this.IsNull(this.tableTable1.ColumnBColumn); + } + + public void SetColumnBNull() { + this[this.tableTable1.ColumnBColumn] = System.Convert.DBNull; + } + } + + public partial class Table2Row : System.Data.DataRow { + + private Table2DataTable tableTable2; + + internal Table2Row(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableTable2 = ((Table2DataTable)(this.Table)); + } + + public string ColumnA { + get { + try { + return ((string)(this[this.tableTable2.ColumnAColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'ColumnA\' in table \'Table2\' is DBNull.", e); + } + } + set { + this[this.tableTable2.ColumnAColumn] = value; + } + } + + public string ColumnC { + get { + try { + return ((string)(this[this.tableTable2.ColumnCColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'ColumnC\' in table \'Table2\' is DBNull.", e); + } + } + set { + this[this.tableTable2.ColumnCColumn] = value; + } + } + + public bool IsColumnANull() { + return this.IsNull(this.tableTable2.ColumnAColumn); + } + + public void SetColumnANull() { + this[this.tableTable2.ColumnAColumn] = System.Convert.DBNull; + } + + public bool IsColumnCNull() { + return this.IsNull(this.tableTable2.ColumnCColumn); + } + + public void SetColumnCNull() { + this[this.tableTable2.ColumnCColumn] = System.Convert.DBNull; + } + } + + public partial class Table3Row : System.Data.DataRow { + + private Table3DataTable tableTable3; + + internal Table3Row(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableTable3 = ((Table3DataTable)(this.Table)); + } + + public string ColumnD { + get { + try { + return ((string)(this[this.tableTable3.ColumnDColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'ColumnD\' in table \'Table3\' is DBNull.", e); + } + } + set { + this[this.tableTable3.ColumnDColumn] = value; + } + } + + public string ColumnE { + get { + try { + return ((string)(this[this.tableTable3.ColumnEColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'ColumnE\' in table \'Table3\' is DBNull.", e); + } + } + set { + this[this.tableTable3.ColumnEColumn] = value; + } + } + + public bool IsColumnDNull() { + return this.IsNull(this.tableTable3.ColumnDColumn); + } + + public void SetColumnDNull() { + this[this.tableTable3.ColumnDColumn] = System.Convert.DBNull; + } + + public bool IsColumnENull() { + return this.IsNull(this.tableTable3.ColumnEColumn); + } + + public void SetColumnENull() { + this[this.tableTable3.ColumnEColumn] = System.Convert.DBNull; + } + } + + public partial class Table0Row : System.Data.DataRow { + + private Table0DataTable tableTable0; + + internal Table0Row(System.Data.DataRowBuilder rb) : + base(rb) { + this.tableTable0 = ((Table0DataTable)(this.Table)); + } + + public string ColumnA { + get { + return ((string)(this[this.tableTable0.ColumnAColumn])); + } + set { + this[this.tableTable0.ColumnAColumn] = value; + } + } + + public string ColumnB { + get { + try { + return ((string)(this[this.tableTable0.ColumnBColumn])); + } + catch (System.InvalidCastException e) { + throw new System.Data.StrongTypingException("The value for column \'ColumnB\' in table \'Table0\' is DBNull.", e); + } + } + set { + this[this.tableTable0.ColumnBColumn] = value; + } + } + + public bool IsColumnBNull() { + return this.IsNull(this.tableTable0.ColumnBColumn); + } + + public void SetColumnBNull() { + this[this.tableTable0.ColumnBColumn] = System.Convert.DBNull; + } + } + + public class Table1RowChangeEvent : System.EventArgs { + + private Table1Row eventRow; + + private System.Data.DataRowAction eventAction; + + public Table1RowChangeEvent(Table1Row row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public Table1Row Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + public class Table2RowChangeEvent : System.EventArgs { + + private Table2Row eventRow; + + private System.Data.DataRowAction eventAction; + + public Table2RowChangeEvent(Table2Row row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public Table2Row Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + public class Table3RowChangeEvent : System.EventArgs { + + private Table3Row eventRow; + + private System.Data.DataRowAction eventAction; + + public Table3RowChangeEvent(Table3Row row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public Table3Row Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + public class Table0RowChangeEvent : System.EventArgs { + + private Table0Row eventRow; + + private System.Data.DataRowAction eventAction; + + public Table0RowChangeEvent(Table0Row row, System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + public Table0Row Row { + get { + return this.eventRow; + } + } + + public System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.6/VariousTables.xsc b/Code/Chapter 9/C#/Exercise 9.6/VariousTables.xsc new file mode 100644 index 0000000..b974c93 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/VariousTables.xsc @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.6/VariousTables.xsd b/Code/Chapter 9/C#/Exercise 9.6/VariousTables.xsd new file mode 100644 index 0000000..70625f2 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/VariousTables.xsd @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.6/VariousTables.xss b/Code/Chapter 9/C#/Exercise 9.6/VariousTables.xss new file mode 100644 index 0000000..846b03f --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/VariousTables.xss @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.6/bin/Debug/Exercise 9.6.exe b/Code/Chapter 9/C#/Exercise 9.6/bin/Debug/Exercise 9.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..fac37c1b7b78c5aa428ba4d39c73c2f617cbc1ec GIT binary patch literal 45056 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 BH{bvO literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.6/bin/Debug/Exercise 9.6.vshost.exe b/Code/Chapter 9/C#/Exercise 9.6/bin/Debug/Exercise 9.6.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.6/obj/Debug/Exercise 9.6.csproj.GenerateResource.Cache b/Code/Chapter 9/C#/Exercise 9.6/obj/Debug/Exercise 9.6.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..5a4ba9b4dfa1e2778a968e97a5bdd254c996f9b7 GIT binary patch literal 784 zcma)3%}T>S5Ke7V(^jD#L_`loJP4N1Dx#MnSn&rH{6jo=*=8rWbekj$xy@20 zdw2@C3&}S0A(4>?4Xca$R-@68q(#7v+Ohe z;})x(kUtdV=g$V{pcl4{*3_Psf#IIOYbQDyh7AgIr@-)M={OaX4~>vJf`=IY+-%S` zy}qzut4!K95{|98Q4(yxi8FNv1zIi^FN973Jujd4e7_Q8_1gd9TFlVA|BL_iWMh-( zEte~VC7+>4P~|T^D6-~R($fd)$ek-P%%nB~49TP0Di?EIDIo9}n%TbmHhP&-Lz8)L z75(io&U||~V9%Fhf<*LSZX~Y-x+5c1tUykWoWZR^heeV$nHxG(Vv#(|!^>0f`1X9C Jo8lBlLLID literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.6/obj/Debug/Exercise 9.6.exe b/Code/Chapter 9/C#/Exercise 9.6/obj/Debug/Exercise 9.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..fac37c1b7b78c5aa428ba4d39c73c2f617cbc1ec GIT binary patch literal 45056 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 BH{bvO literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.6/obj/Debug/Exercise_9_6.Properties.Resources.resources b/Code/Chapter 9/C#/Exercise 9.6/obj/Debug/Exercise_9_6.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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

    %oa|>3p1K6wt%)kNc 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 HogVlvs|;t0 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.6/obj/Exercise 9.6.csproj.FileList.txt b/Code/Chapter 9/C#/Exercise 9.6/obj/Exercise 9.6.csproj.FileList.txt new file mode 100644 index 0000000..2936f39 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.6/obj/Exercise 9.6.csproj.FileList.txt @@ -0,0 +1,7 @@ +.\bin\Debug\Exercise 9.6.exe +.\bin\Debug\Exercise 9.6.pdb +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_9_6.Properties.Resources.resources +obj\Debug\Exercise 9.6.csproj.GenerateResource.Cache +obj\Debug\Exercise 9.6.exe +obj\Debug\Exercise 9.6.pdb diff --git a/Code/Chapter 9/C#/Exercise 9.7/Exercise 9.7.csproj b/Code/Chapter 9/C#/Exercise 9.7/Exercise 9.7.csproj new file mode 100644 index 0000000..c080788 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.7/Exercise 9.7.csproj @@ -0,0 +1,53 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {9E1C3C62-1057-4F72-8F44-9740B1018494} + Exe + Exercise_9_7 + Exercise 9.7 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.7/Exercise 9.7.csproj.user b/Code/Chapter 9/C#/Exercise 9.7/Exercise 9.7.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.7/Exercise 9.7.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.7/Program.cs b/Code/Chapter 9/C#/Exercise 9.7/Program.cs new file mode 100644 index 0000000..6a10673 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.7/Program.cs @@ -0,0 +1,89 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.OleDb; +using System.Data.Common; +using System.Data; + +#endregion + +namespace Exercise_9_7 +{ + class Program + { + static void Main(string[] args) + { + DataSet dsUsers = new DataSet("Users"); + + try + { + // Define a connection object + OleDbConnection dbConn = new OleDbConnection( + "Provider=Microsoft.Jet.OLEDB.4.0;" + + "Password=;User ID=Admin;Data Source=db.mdb"); + + // Create a data adapter to retrieve records from DB + OleDbDataAdapter daUsers = + new OleDbDataAdapter("SELECT ID,fn,ln,cty,st" + + " FROM tabUsers", dbConn); + + // Define each column to map + DataColumnMapping dcmUserID = + new DataColumnMapping("ID", "UserID"); + DataColumnMapping dcmFirstName = + new DataColumnMapping("fn", "FirstName"); + DataColumnMapping dcmLastName = + new DataColumnMapping("ln", "LastName"); + DataColumnMapping dcmCity = + new DataColumnMapping("cty", "City"); + DataColumnMapping dcmState = + new DataColumnMapping("st", "State"); + + // Define the table containing the mapped columns + DataTableMapping dtmUsers = new DataTableMapping("Table", "User"); + dtmUsers.ColumnMappings.Add(dcmUserID); + dtmUsers.ColumnMappings.Add(dcmFirstName); + dtmUsers.ColumnMappings.Add(dcmLastName); + dtmUsers.ColumnMappings.Add(dcmCity); + dtmUsers.ColumnMappings.Add(dcmState); + + // Activate the mapping mechanism + daUsers.TableMappings.Add(dtmUsers); + + // Fill the dataset + daUsers.Fill(dsUsers); + + // Declare a command builder to create SQL instructions + // to create and update records. + OleDbCommandBuilder cb = new OleDbCommandBuilder(daUsers); + + // Insert a new record in the DataSet + DataRow r = dsUsers.Tables[0].NewRow(); + r["FirstName"] = "Eddie"; + r["LastName"] = "Robinson"; + r["City"] = "Houston"; + r["State"] = "Texas"; + dsUsers.Tables[0].Rows.Add(r); + + // Insert the record in the database + daUsers.Update(dsUsers.GetChanges()); + + // Align in-memory data with the data source ones + dsUsers.AcceptChanges(); + + // Print successfully message + Console.WriteLine("A new record has been" + " added to the database."); + } + catch (Exception ex) + { + // Reject DataSet changes + dsUsers.RejectChanges(); + + // An error occurred. Show the error message + Console.WriteLine(ex.Message); + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.7/Properties/AssemblyInfo.cs b/Code/Chapter 9/C#/Exercise 9.7/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..72fd879 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.7/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_9_7")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_9_7")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 9/C#/Exercise 9.7/Properties/Resources.cs b/Code/Chapter 9/C#/Exercise 9.7/Properties/Resources.cs new file mode 100644 index 0000000..581c5eb --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.7/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_7.Properties +{ + using System; + using System.IO; + using System.Resources; + + ///

    + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.7/Properties/Resources.resx b/Code/Chapter 9/C#/Exercise 9.7/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.7/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.7/Properties/Settings.cs b/Code/Chapter 9/C#/Exercise 9.7/Properties/Settings.cs new file mode 100644 index 0000000..aa0da48 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.7/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_7.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.7/Properties/Settings.settings b/Code/Chapter 9/C#/Exercise 9.7/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.7/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.7/bin/Debug/DB.MDB b/Code/Chapter 9/C#/Exercise 9.7/bin/Debug/DB.MDB new file mode 100644 index 0000000000000000000000000000000000000000..c7b01423d237a5a5e0d593a0865b20dafe0a7785 GIT binary patch literal 139264 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

    ozrsjr;og+q=t39Zk;G(xv@fEek|r{i;ya?*8bD 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 PVMoAD>#{N4^=1D*8&@KF literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.7/bin/Debug/Exercise 9.7.exe b/Code/Chapter 9/C#/Exercise 9.7/bin/Debug/Exercise 9.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..5b67072fcdd437bfa698383981bafe138b910cb3 GIT binary patch literal 20480 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 WpbKb2|1`jPw87SZt%3Vf1OEr+ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.7/bin/Debug/Exercise 9.7.vshost.exe b/Code/Chapter 9/C#/Exercise 9.7/bin/Debug/Exercise 9.7.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..87ed49ad954ce326d6b3914c6a1e9a97ee2d004c GIT binary patch literal 5120 zcmeHKeQXrR6@Pm^&c+4P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.7/obj/Debug/Exercise 9.7.csproj.GenerateResource.Cache b/Code/Chapter 9/C#/Exercise 9.7/obj/Debug/Exercise 9.7.csproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..3daf8ccc09fbd328ae619ae1d01a961d82c45f9e GIT binary patch literal 784 zcma)3O-sW-5KV1U`=L+|BBF;P9t2BhEuxnqSW$~Ds1@ii z1$BOE)pnv?Vxbj7;;hiM>SZ#}D!hQnjTu7R8q}N7esmBu8gjobn!@KcJE`o!HQ*V< zCoqOsLL4eUmQu8Ucc)4Nt_=i2SH(k+{C}b>gwEJWF0++RI8QaD%MxeFXZ*)4R=XsB zD9Ud3C+J`lw2ju(o|b{Zxxfb}1{$Ufa&#xh@Mq~F6_mP0$Wy^XEPida&^Dv7uwW}p z+BOm{t$9=uY=IMf^$a;$F6M8AP5?bGoArFZTuAHH`R3YA(cJmP|8{kF#PgO)Wx}G* zkSD0{7a!zV^E&AngLUN2JsD;a8v+L8(Nl$sxvp3s@EIEEzWg?Nmr_%cd2eMs^BC7= z9!}Wv-H0F-BiNYBYk{t3q>2>C)wwfxQs^*G(v~w*hl(tchv^T`juzfuUotD4;wXOt DX`kqU literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.7/obj/Debug/Exercise 9.7.exe b/Code/Chapter 9/C#/Exercise 9.7/obj/Debug/Exercise 9.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..5b67072fcdd437bfa698383981bafe138b910cb3 GIT binary patch literal 20480 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 WpbKb2|1`jPw87SZt%3Vf1OEr+ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.7/obj/Debug/Exercise_9_7.Properties.Resources.resources b/Code/Chapter 9/C#/Exercise 9.7/obj/Debug/Exercise_9_7.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYwED6hx@hgp`W@L87)2e%ZuhvC769?b^_A z0`9O(-T zCRfmlr5a^2=Dq2~C(F{17Yw6NCv78xTFxT%0;x1*A())xc6+2_7`P271on!1)b1;$ z-^Z*gAVsk-$0U>#&PF9ervD~VRBlVMpv7qZ*;9)0xc`P644DFzC6qS*1Q|4Hd!LB} zG=W%FK6`gcSDTZ`zuv5_(J;9@3TKu?7KKT`)E)V$-xI%snv+9Oq)5uMDevZ7wFBEqfQI%gM5$J;XCA&20`IUgKx9cvqDnlsZ2 zyiQFLVeS6L+RX8{&!$Dq-=E&?ztw2e?B6a5ld$#)&KQQsHSYZU@t}$bCT%8N5wT`G a{r + + Debug + AnyCPU + 8.0.40607 + 2.0 + {8EA8604F-3C45-4571-99A1-EBDC9CF4152B} + Exe + Exercise_9_8 + Exercise 9.8 + 4 + + + true + full + false + .\bin\Debug\ + DEBUG;TRACE + + + false + true + .\bin\Release\ + TRACE + + + + + + + + + + + ResXFileCodeGenerator + Resources.cs + + + True + Resources.resx + + + True + Settings.settings + + + SettingsSingleFileGenerator + Settings.cs + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.8/Exercise 9.8.csproj.user b/Code/Chapter 9/C#/Exercise 9.8/Exercise 9.8.csproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.8/Exercise 9.8.csproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.8/Program.cs b/Code/Chapter 9/C#/Exercise 9.8/Program.cs new file mode 100644 index 0000000..e2a5a66 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.8/Program.cs @@ -0,0 +1,98 @@ +#region Using directives + +using System; +using System.Collections.Generic; +using System.Text; +using System.Data.OleDb; +using System.Data.Common; +using System.Data; + +#endregion + +namespace Exercise_9_8 +{ + class Program + { + static void Main(string[] args) + { + DataSet dsUsers = new DataSet("Users"); + try + { + OleDbConnection dbConn = + new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + + "Password=;User ID=Admin;Data Source=db.mdb"); + + // Create a data adapter to retrieve records from db + OleDbDataAdapter daUsers = + new OleDbDataAdapter("SELECT ID,fn,ln,cty,st" + + " FROM tabUsers", dbConn); + + // Define each column to map + DataColumnMapping dcmUserID = + new DataColumnMapping("ID", "UserID"); + DataColumnMapping dcmFirstName = + new DataColumnMapping("fn", "FirstName"); + DataColumnMapping dcmLastName = + new DataColumnMapping("ln", "LastName"); + DataColumnMapping dcmCity = + new DataColumnMapping("cty", "City"); + DataColumnMapping dcmState = + new DataColumnMapping("st", "State"); + // Define the table containing the mapped columns + DataTableMapping dtmUsers = + new DataTableMapping("Table", "User"); + dtmUsers.ColumnMappings.Add(dcmUserID); + dtmUsers.ColumnMappings.Add(dcmFirstName); + dtmUsers.ColumnMappings.Add(dcmLastName); + dtmUsers.ColumnMappings.Add(dcmCity); + dtmUsers.ColumnMappings.Add(dcmState); + + // Activate the mapping mechanism + daUsers.TableMappings.Add(dtmUsers); + + // Fill the dataset + daUsers.Fill(dsUsers); + + DataColumn[] dcaKey = { dsUsers.Tables[0].Columns["UserID"] }; + dsUsers.Tables[0].PrimaryKey = dcaKey; + + // Declare a command builder to create SQL instructions + // to create and update records. + OleDbCommandBuilder cb = new OleDbCommandBuilder(daUsers); + + // Update an existing record in the DataSet + DataRow r = dsUsers.Tables[0].Rows.Find(8); + + if (r != null) + { + r["FirstName"] = "Venus"; + r["LastName"] = "Williams"; + r["City"] = "Houston"; + r["State"] = "Texas"; + + // Update the record in the database + daUsers.Update(dsUsers.GetChanges()); + + // Align in-memory data with the data source ones + dsUsers.AcceptChanges(); + + // Print success message + Console.WriteLine("The record has been updated " + + "successfully."); + } + else + { + Console.WriteLine("No record found..."); + } + } + catch (System.Exception ex) + { + // Reject DataSet changes + dsUsers.RejectChanges(); + + // An error occurred. Show the error message + Console.WriteLine(ex.Message); + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.8/Properties/AssemblyInfo.cs b/Code/Chapter 9/C#/Exercise 9.8/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..be12258 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.8/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +#region Using directives + +using System.Reflection; +using System.Runtime.CompilerServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Exercise_9_8")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Exercise_9_8")] +[assembly: AssemblyCopyright("Copyright @ 2005")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] diff --git a/Code/Chapter 9/C#/Exercise 9.8/Properties/Resources.cs b/Code/Chapter 9/C#/Exercise 9.8/Properties/Resources.cs new file mode 100644 index 0000000..315fcae --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.8/Properties/Resources.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_8.Properties +{ + using System; + using System.IO; + using System.Resources; + + ///

    + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the Strongly Typed Resource Builder + // class via a tool like ResGen or Visual Studio.NET. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + class Resources + { + + private static System.Resources.ResourceManager _resMgr; + + private static System.Globalization.CultureInfo _resCulture; + + /*FamANDAssem*/ + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Resources.ResourceManager ResourceManager + { + get + { + if ((_resMgr == null)) + { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Resources", typeof(Resources).Assembly); + _resMgr = temp; + } + return _resMgr; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + public static System.Globalization.CultureInfo Culture + { + get + { + return _resCulture; + } + set + { + _resCulture = value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.8/Properties/Resources.resx b/Code/Chapter 9/C#/Exercise 9.8/Properties/Resources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.8/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.8/Properties/Settings.cs b/Code/Chapter 9/C#/Exercise 9.8/Properties/Settings.cs new file mode 100644 index 0000000..b2cc06b --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.8/Properties/Settings.cs @@ -0,0 +1,42 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.40607.42 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Exercise_9_8.Properties +{ + public partial class Settings : System.Configuration.ApplicationSettingsBase + { + private static Settings m_Value; + + private static object m_SyncObject = new object(); + + public static Settings Value + { + get + { + if ((Settings.m_Value == null)) + { + System.Threading.Monitor.Enter(Settings.m_SyncObject); + if ((Settings.m_Value == null)) + { + try + { + Settings.m_Value = new Settings(); + } + finally + { + System.Threading.Monitor.Exit(Settings.m_SyncObject); + } + } + } + return Settings.m_Value; + } + } + } +} diff --git a/Code/Chapter 9/C#/Exercise 9.8/Properties/Settings.settings b/Code/Chapter 9/C#/Exercise 9.8/Properties/Settings.settings new file mode 100644 index 0000000..4024694 --- /dev/null +++ b/Code/Chapter 9/C#/Exercise 9.8/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/Exercise 9.8/bin/Debug/DB.MDB b/Code/Chapter 9/C#/Exercise 9.8/bin/Debug/DB.MDB new file mode 100644 index 0000000000000000000000000000000000000000..e55e50099230c4943c2a808c07f15701f52780a3 GIT binary patch literal 139264 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.8/bin/Debug/Exercise 9.8.exe b/Code/Chapter 9/C#/Exercise 9.8/bin/Debug/Exercise 9.8.exe new file mode 100644 index 0000000000000000000000000000000000000000..4b6cc53b3d59f228cf19f3b69e80436044fc34a0 GIT binary patch literal 20480 zcmeHNeQX@n5ud#;pU?J%J3~lF2%9(wAs@#PCyh-K>a)*D9Q=jv5|h@#?A>jgjqi4k z-MwH(kX|UIO@WH2qEt{+8ue2xD2pU+gq0X-Lt3&VmSWcOUJ7B-)3 zCK_X|k7%5MSXgc+YKQK2*ezdJcPUvW!U*am40%soB1+imoDDhK34%IzJmBg@M%aXD znR#eL-}=DtSduszN*{WkFx8>~L+&fxj)U#`a5R)YqW%WaV?6{s1Uv*h1Uv*h1Uv*h z1Uv*h1Uv*h1pbc@Nb-9%3cs8BC`jw@V%`%ak|5*#HB|08pA%ra|5Vod)^!j?V78t* zlYZI(4!&Y^3^Z{0Icf1ZsXe@D6`7FBzw;sLI)sZDi$E;Av_>MKDw{eD+BQ(j`p%?8 zZSVtQ_yG+>Hc)8&D)LoXSidakqkX9Ni+a#noVJ!t+vylm0D*OJ?$fcRs%wa>5Jp&K zEuD?lEb%^$-oFiZ!dyh+F`#Qc+DOqG3Ejo}yT!w-vh(#TeCsZUfPMt%Z=&z$r+Ed& zXMsc_WUgd>G59v~Ij}9(mEhaWfJ9|80%9$J++i+Zd4(%?2F%T@=&37$=3Z7z)DaF$KoK!8e0Eu+A#oDlPI-{}Zrdf)$35d*lF-GHB_5lrJWIoiWVUWyIjT%PDJX686}9}$>U`FiRrQ^@ZQGQs`K_P3 zp|^XBn(XQAx-eKpx3!Y$M$f1=uBdt$Po?>v``n+|+b@Y-!O1Zl;ZAH#Zri+#t%Fnq zm2ow69V2=G=eL94Gq$PeGZtGM0-`N zm`amZoRV4@sDDb`gsX>H;EAi%Ia+b%?qVuL-i!4t8oT? zh)&aYLEoWQKxd@`Qi$#q^l?F-74-Llz9(qV$2O}4O$j>dyVbXyzJ$Obddl|=Ux;28 z^kZKEnsb7#@*j{Ql=a`_k5CCTMBnt^J+ose3A z7N!l-E*b?F#2p|;zvlH$e}&H&T`wg;w@F)QTxO47Uh)ye(SAxu-wOW=(E)V~mbPK8(klt&KH9CU(CfW|R;rYGq#|0L)J|82Asnmqjk z^iKK(J?6g;^n0K&VfiBHZu+gDZ-72bZ-IV?{#2tk2TlRC+X6qLztf4p&*y|Zw8*HnDjy5Wm*dURq*EmZ_rBVBlwC*-N8T7b<*D8pQ%?G3%-X|w+26e zw|tO291g}QB~^p}0RMIHL(-|>C%8WDr@JXZ-E^&#z#KE}qD`P1C=GhEpm{n3en8Z2 z7c@irq4^?BOGCoLVO$;e17II8_KU0NG+{4>Ep|s5m3ClGe9-g3t0(}<&krpWs5&cc zGQ5U2LzMS$ZSZyJ771~maCK{Ym&Aeu*a&Mw1 zq0Xt~Ze&)yYPxs2CoygsW!1Db)go+hw%C-QJ6~I$mpg`jCFm z5Qa6G5_#J&X-2iD7rJAeYh^X?uC6q_Uny2pDotnR^?Yqa+{jTobVSi~w?h-^!6HU2 z#%Nh;DOa4Y-Fi|scJy4uRw-4hs0F#OB5UIIRZ`5^3#$f<^1P|d9I`L0!lV=``HNHx z7^SkJ&tKT0X-+PzPODbl)XF@V3oEmlT~yDjYj?-Arp)MuWovnh(rT_UGo$1h%^V%p z5LO{CsM-zOxszgzl*(FBH8ZMtM8o}@9EF(N3AL!q3C=nnb;4;V254(Jt*F@z!)#pP zl$|eQi97bp?@{zZQKj9g&C)K@DAhFX?1=SJ7mkQ!Q0p(pGjvtAc@#w&ENEC?{iboJ z)jZk-6&YK>?ALr`51DvK0TMJ~=-i$LbsGzOa89$aV8x16OgsR%$SSr%X%Jj5jk?5G zQBCJaP|T-ZTYN%h^Hf18v)=|cjB^PWAy*F=#Y#yZQOafR3Tv`FhDJq`2?Te2i)*K` zxkaf$LHKZkF7&scbz>-tc4@_8L!Zuf=3=d|yxhKui5kL#U_;{tO(0^F7V#xMZfdx+ z=JBBCf>tVFE%aBkBAywAj|t<>1rDIGXh^raH@gPtu3iuhMQE&}fkTQugGIZqT;O?5 z<@0K}uEf+>2G-l8soCnVrt@~o+oRiPaE`5c+hABnRLjD4*R;PjY{d2FTnnErYtO#C zw|7pEN){PZ!5t_scxu}RjS3l$lGR7X!5DOeG(5(!awm;|&kHR#JV;o4v=?=J9>Z;Z zkka__nV>B=lC+)1Nr5X1w{-)p3h=NUFOW_MnTBA!lTy%^;8#ao8um60nKBI>+X;&t zJeI_nhBAo5u?8p$OZKu6ebGUSg68349+HK#j7O{q^lbzjd(PG4V~9a+OC4^HgcM{? z)VT{iVi;^Zpecx~!kWEPY#4HrzQu`0tpjMoktxXa)RqwuZEo9^6|sxVx4QADZ9ilk z6M(+NCegZxKTX7gX3-vj0sAsIGJL2sC!$j(ONSuI=%b1manO~a_{quZfBY7O zpE)|Uf9aNYPxwRe4jeH*9zXGh5bt0T!!wH%j|IXkgT!Fb?h7sFx^`Byv%%HTfGkPT zAV_Q{v*8d)@uApAK&JRDA=xKIdhd zy+rNq{f8f;kP(uoMYI5e><|jF6%u8AiziK`JZk9mEdaL$Y&XKT{@V_Iw!`Zo-G$#$ z+_j2mB9qRvyl{N>(U*n?PaQqGe8dobYzmg#ujFSdWov5J&}eE{-XxFA z%l(EiJ2ilN))clKzAMPRQv+QMg4<($CY&;Iho{8-da6;KC>L^wv$`9kR&HWmcBSUC zngQ5*SIN`!+o%4OX0cnjSj?MV8)lFN$ zb%RU71ILe{EsvPfCnnAc##m1X0qy3vGFl}NHvwy|;j%}3w;P5uBU%ptoidU{jK&NS zHb@j9k+o1KQy*TEW%P*f=CE8q`44l z;kX*{>=Sr4w_S+pr7`9CNMR0mrb?LUBG8brcAIDBQa;c{uXqS}2zUs12zUs12zUs1 z2zUs12zUs5b`ih}E&oh!yy08uXScIn&pZS?1Uv*h1Uv*h1Uv*h1Uv*h1Uv*h1Uv*h J1pXHU{tb7h@r(cf literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.8/bin/Debug/Exercise 9.8.pdb b/Code/Chapter 9/C#/Exercise 9.8/bin/Debug/Exercise 9.8.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a570fe45711914b5adbd6a40d8eb290f74425ba2 GIT binary patch literal 22016 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 GYT!Stjnc3H literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.8/bin/Debug/Exercise 9.8.vshost.exe b/Code/Chapter 9/C#/Exercise 9.8/bin/Debug/Exercise 9.8.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 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 DX8-71 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.8/obj/Debug/Exercise 9.8.exe b/Code/Chapter 9/C#/Exercise 9.8/obj/Debug/Exercise 9.8.exe new file mode 100644 index 0000000000000000000000000000000000000000..4b6cc53b3d59f228cf19f3b69e80436044fc34a0 GIT binary patch literal 20480 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 J1pXHU{tb7h@r(cf literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.8/obj/Debug/Exercise 9.8.pdb b/Code/Chapter 9/C#/Exercise 9.8/obj/Debug/Exercise 9.8.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a570fe45711914b5adbd6a40d8eb290f74425ba2 GIT binary patch literal 22016 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 GYT!Stjnc3H literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/C#/Exercise 9.8/obj/Debug/Exercise_9_8.Properties.Resources.resources b/Code/Chapter 9/C#/Exercise 9.8/obj/Debug/Exercise_9_8.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY9; z!0j;I*X7bKD9vS5f8csP!M7gw`bOrCdhEYfMA*y%1YPcNM z!b&Ar_E?o!gmiBzfV%_wB}7daLKHyMkSS1ELTU4lkU^uicbP~) z6NqKyvp1)7wKkdj^Udlr8YY)V;mnfAqA&@Vx+6dJd*pXeb8;w(6iInDztw2e?B6a5ld$#?&KQQsHE#U)ey55ECT%8N5wT`G a`u3%knrT<5nW!*6KV7&>=6Pz7zWg7GtV + + Debug + AnyCPU + 8.0.50215 + 2.0 + {FC38597A-F6A6-44CF-9294-19C0A288217A} + Exe + Properties + SqlBulkCopy + SqlBulkCopy + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/SqlBulkCopy/SqlBulkCopy.csproj.user b/Code/Chapter 9/C#/SqlBulkCopy/SqlBulkCopy.csproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 9/C#/SqlBulkCopy/SqlBulkCopy.csproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 9/C#/SqlBulkCopy/bin/Debug/SqlBulkCopy.exe b/Code/Chapter 9/C#/SqlBulkCopy/bin/Debug/SqlBulkCopy.exe new file mode 100644 index 0000000000000000000000000000000000000000..d20993cbddd4ab99e9b18c0d223d404ceba47c25 GIT binary patch literal 16384 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 yL*g`uh}iNeue7*pM{=Z~ymxV&IXRN=>RM4 + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {A0A82D86-884E-4616-B917-9F22D1F5F227} + WinExe + Exercise_9_1.Form1 + Exercise_9_1 + Exercise 9.1 + WindowsForms + + + true + full + true + true + bin\Debug\ + Exercise_9.1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Exercise_9.1.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + True + True + TestDataSet.xsd + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + TestDataSet.xsd + + + MSDataSetGenerator + TestDataSet.Designer.vb + Designer + + + TestDataSet.xsd + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/Exercise 9.1.vbproj.user b/Code/Chapter 9/VB.NET/Exercise 9.1/Exercise 9.1.vbproj.user new file mode 100644 index 0000000..33b0772 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/Exercise 9.1.vbproj.user @@ -0,0 +1,6 @@ + + + 8.0.50215 + ShowAllFiles + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/Form1.Designer.vb b/Code/Chapter 9/VB.NET/Exercise 9.1/Form1.Designer.vb new file mode 100644 index 0000000..e83ce10 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/Form1.Designer.vb @@ -0,0 +1,220 @@ + _ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1)) + Me.TestDataSet = New Exercise_9_1.TestDataSet + Me.AnimalsBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.AnimalsTableAdapter = New Exercise_9_1.TestDataSetTableAdapters.AnimalsTableAdapter + Me.AnimalsBindingNavigator = New System.Windows.Forms.BindingNavigator(Me.components) + Me.bindingNavigatorMoveFirstItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorMovePreviousItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorSeparator = New System.Windows.Forms.ToolStripSeparator + Me.bindingNavigatorPositionItem = New System.Windows.Forms.ToolStripTextBox + Me.bindingNavigatorCountItem = New System.Windows.Forms.ToolStripLabel + Me.bindingNavigatorSeparator1 = New System.Windows.Forms.ToolStripSeparator + Me.bindingNavigatorMoveNextItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorMoveLastItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorSeparator2 = New System.Windows.Forms.ToolStripSeparator + Me.bindingNavigatorAddNewItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorDeleteItem = New System.Windows.Forms.ToolStripButton + Me.bindingNavigatorSaveItem = New System.Windows.Forms.ToolStripButton + Me.AnimalsDataGridView = New System.Windows.Forms.DataGridView + Me.DataGridViewTextBoxColumn1 = New System.Windows.Forms.DataGridViewTextBoxColumn + Me.DataGridViewTextBoxColumn2 = New System.Windows.Forms.DataGridViewTextBoxColumn + CType(Me.TestDataSet, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.AnimalsBindingSource, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.AnimalsBindingNavigator, System.ComponentModel.ISupportInitialize).BeginInit() + Me.AnimalsBindingNavigator.SuspendLayout() + CType(Me.AnimalsDataGridView, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'TestDataSet + ' + Me.TestDataSet.DataSetName = "TestDataSet" + ' + 'AnimalsBindingSource + ' + Me.AnimalsBindingSource.DataMember = "Animals" + Me.AnimalsBindingSource.DataSource = Me.TestDataSet + ' + 'AnimalsTableAdapter + ' + Me.AnimalsTableAdapter.ClearBeforeFill = True + ' + 'AnimalsBindingNavigator + ' + Me.AnimalsBindingNavigator.AddNewItem = Me.bindingNavigatorAddNewItem + Me.AnimalsBindingNavigator.BindingSource = Me.AnimalsBindingSource + Me.AnimalsBindingNavigator.CountItem = Me.bindingNavigatorCountItem + Me.AnimalsBindingNavigator.CountItemFormat = "of {0}" + Me.AnimalsBindingNavigator.DeleteItem = Me.bindingNavigatorDeleteItem + Me.AnimalsBindingNavigator.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.bindingNavigatorMoveFirstItem, Me.bindingNavigatorMovePreviousItem, Me.bindingNavigatorSeparator, Me.bindingNavigatorPositionItem, Me.bindingNavigatorCountItem, Me.bindingNavigatorSeparator1, Me.bindingNavigatorMoveNextItem, Me.bindingNavigatorMoveLastItem, Me.bindingNavigatorSeparator2, Me.bindingNavigatorAddNewItem, Me.bindingNavigatorDeleteItem, Me.bindingNavigatorSaveItem}) + Me.AnimalsBindingNavigator.Location = New System.Drawing.Point(0, 0) + Me.AnimalsBindingNavigator.MoveFirstItem = Me.bindingNavigatorMoveFirstItem + Me.AnimalsBindingNavigator.MoveLastItem = Me.bindingNavigatorMoveLastItem + Me.AnimalsBindingNavigator.MoveNextItem = Me.bindingNavigatorMoveNextItem + Me.AnimalsBindingNavigator.MovePreviousItem = Me.bindingNavigatorMovePreviousItem + Me.AnimalsBindingNavigator.Name = "AnimalsBindingNavigator" + Me.AnimalsBindingNavigator.PositionItem = Me.bindingNavigatorPositionItem + Me.AnimalsBindingNavigator.Size = New System.Drawing.Size(335, 25) + Me.AnimalsBindingNavigator.TabIndex = 0 + Me.AnimalsBindingNavigator.Text = "BindingNavigator1" + ' + 'bindingNavigatorMoveFirstItem + ' + Me.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMoveFirstItem.Image = CType(resources.GetObject("bindingNavigatorMoveFirstItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem" + Me.bindingNavigatorMoveFirstItem.Text = "Move first" + ' + 'bindingNavigatorMovePreviousItem + ' + Me.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMovePreviousItem.Image = CType(resources.GetObject("bindingNavigatorMovePreviousItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem" + Me.bindingNavigatorMovePreviousItem.Text = "Move previous" + ' + 'bindingNavigatorSeparator + ' + Me.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator" + ' + 'bindingNavigatorPositionItem + ' + Me.bindingNavigatorPositionItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.ImageAndText + Me.bindingNavigatorPositionItem.Margin = New System.Windows.Forms.Padding(1, 0, 1, 0) + Me.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem" + Me.bindingNavigatorPositionItem.Size = New System.Drawing.Size(50, 21) + Me.bindingNavigatorPositionItem.Text = "0" + Me.bindingNavigatorPositionItem.ToolTipText = "Current position" + ' + 'bindingNavigatorCountItem + ' + Me.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem" + Me.bindingNavigatorCountItem.Text = "of {0}" + Me.bindingNavigatorCountItem.ToolTipText = "Total number of items" + ' + 'bindingNavigatorSeparator1 + ' + Me.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator" + ' + 'bindingNavigatorMoveNextItem + ' + Me.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMoveNextItem.Image = CType(resources.GetObject("bindingNavigatorMoveNextItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem" + Me.bindingNavigatorMoveNextItem.Text = "Move next" + ' + 'bindingNavigatorMoveLastItem + ' + Me.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorMoveLastItem.Image = CType(resources.GetObject("bindingNavigatorMoveLastItem.Image"), System.Drawing.Image) + Me.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem" + Me.bindingNavigatorMoveLastItem.Text = "Move last" + ' + 'bindingNavigatorSeparator2 + ' + Me.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator" + ' + 'bindingNavigatorAddNewItem + ' + Me.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorAddNewItem.Image = CType(resources.GetObject("bindingNavigatorAddNewItem.Image"), System.Drawing.Image) + Me.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem" + Me.bindingNavigatorAddNewItem.Text = "Add new" + ' + 'bindingNavigatorDeleteItem + ' + Me.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorDeleteItem.Image = CType(resources.GetObject("bindingNavigatorDeleteItem.Image"), System.Drawing.Image) + Me.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem" + Me.bindingNavigatorDeleteItem.Text = "Delete" + ' + 'bindingNavigatorSaveItem + ' + Me.bindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.bindingNavigatorSaveItem.Image = CType(resources.GetObject("bindingNavigatorSaveItem.Image"), System.Drawing.Image) + Me.bindingNavigatorSaveItem.Name = "bindingNavigatorSaveItem" + Me.bindingNavigatorSaveItem.Text = "Save Data" + ' + 'AnimalsDataGridView + ' + Me.AnimalsDataGridView.AutoGenerateColumns = False + Me.AnimalsDataGridView.Columns.Add(Me.DataGridViewTextBoxColumn1) + Me.AnimalsDataGridView.Columns.Add(Me.DataGridViewTextBoxColumn2) + Me.AnimalsDataGridView.DataSource = Me.AnimalsBindingSource + Me.AnimalsDataGridView.Location = New System.Drawing.Point(0, 28) + Me.AnimalsDataGridView.Name = "AnimalsDataGridView" + Me.AnimalsDataGridView.Size = New System.Drawing.Size(333, 220) + Me.AnimalsDataGridView.TabIndex = 1 + ' + 'DataGridViewTextBoxColumn1 + ' + Me.DataGridViewTextBoxColumn1.DataPropertyName = "AnimalID" + Me.DataGridViewTextBoxColumn1.HeaderText = "AnimalID" + Me.DataGridViewTextBoxColumn1.Name = "AnimalID" + ' + 'DataGridViewTextBoxColumn2 + ' + Me.DataGridViewTextBoxColumn2.DataPropertyName = "AnimalName" + Me.DataGridViewTextBoxColumn2.HeaderText = "AnimalName" + Me.DataGridViewTextBoxColumn2.Name = "AnimalName" + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(335, 251) + Me.Controls.Add(Me.AnimalsDataGridView) + Me.Controls.Add(Me.AnimalsBindingNavigator) + Me.Name = "Form1" + Me.Text = "Exercise 9.1" + CType(Me.TestDataSet, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.AnimalsBindingSource, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.AnimalsBindingNavigator, System.ComponentModel.ISupportInitialize).EndInit() + Me.AnimalsBindingNavigator.ResumeLayout(False) + Me.AnimalsBindingNavigator.PerformLayout() + CType(Me.AnimalsDataGridView, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TestDataSet As Exercise_9_1.TestDataSet + Friend WithEvents AnimalsBindingSource As System.Windows.Forms.BindingSource + Friend WithEvents AnimalsTableAdapter As Exercise_9_1.TestDataSetTableAdapters.AnimalsTableAdapter + Friend WithEvents AnimalsBindingNavigator As System.Windows.Forms.BindingNavigator + Friend WithEvents bindingNavigatorAddNewItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorCountItem As System.Windows.Forms.ToolStripLabel + Friend WithEvents bindingNavigatorDeleteItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorMoveFirstItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorMovePreviousItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorSeparator As System.Windows.Forms.ToolStripSeparator + Friend WithEvents bindingNavigatorPositionItem As System.Windows.Forms.ToolStripTextBox + Friend WithEvents bindingNavigatorSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents bindingNavigatorMoveNextItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorMoveLastItem As System.Windows.Forms.ToolStripButton + Friend WithEvents bindingNavigatorSeparator2 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents bindingNavigatorSaveItem As System.Windows.Forms.ToolStripButton + Friend WithEvents AnimalsDataGridView As System.Windows.Forms.DataGridView + Friend WithEvents DataGridViewTextBoxColumn1 As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents DataGridViewTextBoxColumn2 As System.Windows.Forms.DataGridViewTextBoxColumn + +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/Form1.resx b/Code/Chapter 9/VB.NET/Exercise 9.1/Form1.resx new file mode 100644 index 0000000..a9b1d48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/Form1.resx @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 129, 17 + + + 290, 17 + + + 446, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAfNJREFUOE/Nk8lr + U1EUxvtnuHMnLQouFGpBRdwIorgQ7EYUobqpi0bEooID3XbRhQutOFDbOgUqDs2AbU2cWtoaJG0TxTSV + 5OXV5OXlzYOJ/rzGVSGBLL27C+f7ne8799y2tv/2uKUI7voILRt05Qm84jhWbqwuqixd5MfrfTj5B/W7 + LY3gK48FNNQYaqzeZD1+FC3ZR9WcxEqdR4luF6Jx3MIwyvtDaMsB3OKLJoDsCMWPJ5CfbcZJncVN9aLH + dvFTGkR/t59SdCdmdgi70ATw16ZfmcBKnkF5vgl99iBm8jT6QjfahwNU1TE8Pdq4e9WYQUtfw0j3Yy2d + QovvxskM4ZsLWNlBrHQAb/UK1pcLOLkbIuLcRpAjPyQ3uQf51TbK4S3Cehee9JTfv3Rs6Q564jharJNi + eCvqYg9+ZXojwFcXMbJ3cQr38Nauo0ba0ee6sb8OoM0fE656qOlPcKT7Ahikan1rHMXOD1Oa2ktZTN+c + P4z2pgvz80kB7MBMBfCNcPO9sPOjyLEjSKFO/PIj0b1fxGkXnYOYK+covOzAyAzgKU0gdm4U5VMf5vdb + +Po0+sol5NAOvFIQT42gJi+jp6/ilZu8hKfMik2cwi3F6zbNtduUE71C/E/gKW8FbAavkmhtvWtOhpqz + 3Fpxyx+mQeEfdtWWWgCbhLwAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAW9JREFUOE+tkk0o + w3EYx3dV3kq5uKBWDiPT8hISMiQsMiEyQ9qBg0hoFwcHUi7kgIvkQFJSTrQ4zdvmrTW1/kuT0i74x+X3 + MRal/fEnv8tz+H2fz/N8vz0azX88PG6wmcDp4E881hYR3VUIixF2Nr+FcO2DlbnPGjaWoM+M6DAiOitg + YUoR8rqhsJTBWG/kP6fOMKTegGjKh/7mTyIx0oUw58C0/XubLM8iKtPeQIx2gfcMJgbD0FBVlRE+D7QU + hS2ZshANuTDQqq75fQIHe6GVcxHV6VCr/2VzQIKmAshOQNbHc6+PhTqDOggBP5jzoDCJoLUaLo7fwr3V + hSCr8z8EeHcLbSU8FCfjLU0nuL/70cB4Py5tDLL7UBnC8xMMW6EkhRNdIsGt9QjhTXkGUnsN8rVf4Q72 + tpFzEnGlRiH1NIL8qDjJoY1DdjkVADNjSGnReI2ZIF196VW22+D8SAFw6YLJITjaV5e2qotSIXoBiiMD + HEVvQ/IAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAStJREFUOE9jYBg0 + oHDW8/9NC57/z5z4+D8uR4W3P8Apx5A789n/VUfe/8elKL77wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+ + ///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0v3f1BxRFoa33wJpb1wFt7/z73yX/AG4D + Apsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvgUXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF + 7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbAIu/O/9T+11gVGSSd+C+b9vW/bvA83AYY + Zt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPulf8gBXgVDZqMh+wQAPB2wKsSwCgmAAAA + AElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAL1JREFUOE9jYBgy + ILz9wX+yHRvf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3v + kn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ14A0ChbVd8+3/6nN///bu+/dcpfPffImE9aQaADNFP + Of/fpOjFf5WsT/+NI5eRbgDIEIOkE/9l077+1w2eR54BYJekXv6v4TuNfANAhqh4TKDMALKTMc01AgDQ + FGCYkuTLEQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAKtJREFUOE9jYBh0 + oHDW8/8UOSp35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ + ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuIN8Sj6v7/krnv4JoVXXqI1wyKPvvSu/8D + W56BbSZZM8gAi7w7/20KrpCnGWSAYdZt8jWDDNBJu0GanylKtoNCMwCgfl+gC2KedgAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAATBJREFUOE9jYBhU + oHDW8/+4HASSa1rw/H/mxMc41TDkznz2P6H7HlYFILlVR97/D29/gNuAjClP/8/b//t/QtcdDEUguYX7 + PvwPbriG24CEnif/Z+/79b9z69//bqWXURSC5KZtef/fv/oCbgMiux79n7Lt1/+SpX//J0z/+98m9yxc + MUiud/WH/16lJ3AbENj88H/r2vdgzcYlX/5LR1/7bxy5DKwBJFc3/91/l/wDuA3wqLr/v2TuO7hmRZce + uGKQXP60N//tM7bjNsC+9O7/wJZnYJuRNYNcAJLLnvz6v0XCetwGWOTd+W9TcAVDM8gAkFxq/2u4l7Cm + F8Os21g1gxSD5MJaXv7XDZ6H2wU6aTdwSoLk/Kof/tfwnYbbAHz5yin3yn8VjwlgPKjyHwMAvtG/s0Vm + x8MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAilJREFUOE+tk91L + k3EUx/cvdN9N0EW3NTWGa7EaPOUcyqphWBG9PZEv5dJlmqhYmUYtXyBb4dJJy+kknFT4BqZIjaFMJUsz + V7TEoabYRDD49ju/6Pm1Mm/qB+fy8znPOef7qFT/4z17GgWVr30Zbd4lPHYvoLEhgvuOGdTWfIL9dgg3 + yqdQWjKBwoLXyMsdxYXzQSi9CeztAWqqV7HRW1ldgzGtF4fTnvBSBN7WRS6orPjyV57gyMIKdpufQ62W + YTnkEQL3o3kuKC35vK7gJ/w+vIg4kw8Fl6dxwNwkBM76WS64ZHv3h+BXeGQygm2SF9accaSmOIWg7m6Y + C7KzRmMEv8ODwTA2692Q5QBMJocQVFd95AL5TEARrAf3+D9gU2IDjhx9gaSkWiG4WTmN7i6wUwLHT76C + 5dgA3zYtjGamz6bOP+A+HLR0QpLsQnC1bBIdPrAMAE2ub+zuX1F+fY4vlRZGM2dmBBU4ObUdBkOFEFwp + HIenGXjoXGPBicKYnhNT5hM2pJ8r4p2TUxi83wO9vkwIbHljDAaq7kR5ZxJQSOK0EobezmJsag5y7jXs + NbZxWLvHBZ2uSAgolo57UD6bBASfzb+FN6F5hGaWcLHYjni9i8GNiN/1ANrEfCHIzBhmcy/zmbcaPNiy + Q0JLRz98XYPo7vNj4OUQ9pksUOvqkcDg7Zo6aDTWWMHpU/08npQwCgndmU5F26aF0czUlYrgnQnZQvAv + f/R3bGg6a0rM640AAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/Form1.vb b/Code/Chapter 9/VB.NET/Exercise 9.1/Form1.vb new file mode 100644 index 0000000..e755a6c --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/Form1.vb @@ -0,0 +1,18 @@ +Public Class Form1 + + Private Sub bindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bindingNavigatorSaveItem.Click + If Me.Validate Then + Me.AnimalsBindingSource.EndEdit() + Me.AnimalsTableAdapter.Update(Me.TestDataSet.Animals) + Else + System.Windows.Forms.MessageBox.Show(Me, "Validation errors occurred.", "Save", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning) + End If + + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + 'TODO: This line of code loads data into the 'TestDataSet.Animals' table. You can move, or remove it, as needed. + Me.AnimalsTableAdapter.Fill(Me.TestDataSet.Animals) + + End Sub +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Application.Designer.vb b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Application.Designer.vb new file mode 100644 index 0000000..3440d8d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'NOTE: This file is auto-generated; do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to Project Properties or double-click the My Project node in + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.Exercise_9_1.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Application.myapp b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Application.myapp new file mode 100644 index 0000000..1243847 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Application.myapp @@ -0,0 +1,11 @@ + + + true + Form1 + false + 0 + true + 0 + 0 + true + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/ApplicationEvents.vb b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/ApplicationEvents.vb new file mode 100644 index 0000000..3b9cdcd --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/ApplicationEvents.vb @@ -0,0 +1,15 @@ +Namespace My + + 'The following events are available for MyApplication + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + Class MyApplication + + End Class + +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/AssemblyInfo.vb b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..7e6614e --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Resources.Designer.vb b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Resources.Designer.vb new file mode 100644 index 0000000..ba341d1 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Exercise_9_1.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Resources.resx b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Settings.Designer.vb b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Settings.Designer.vb new file mode 100644 index 0000000..a8a89c6 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Settings.Designer.vb @@ -0,0 +1,76 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property + + _ + Public ReadOnly Property TestConnectionString() As String + Get + Return CType(Me("TestConnectionString"),String) + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.Exercise_9_1.Settings + Get + Return Global.Exercise_9_1.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Settings.settings b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Settings.settings new file mode 100644 index 0000000..eb7db38 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/My Project/Settings.settings @@ -0,0 +1,16 @@ + + + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Data Source=(local);Initial Catalog=Test;Integrated Security=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=(local);Initial Catalog=Test;Integrated Security=True + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.Designer.vb b/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.Designer.vb new file mode 100644 index 0000000..9c17941 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.Designer.vb @@ -0,0 +1,682 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System + + + _ +Partial Public Class TestDataSet + Inherits System.Data.DataSet + + Private tableAnimals As AnimalsDataTable + + Private _schemaSerializationMode As System.Data.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema + + _ + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + _ + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Me.DetermineSchemaSerializationMode(info, context) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + If (Not (ds.Tables("Animals")) Is Nothing) Then + MyBase.Tables.Add(New AnimalsDataTable(ds.Tables("Animals"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public ReadOnly Property Animals() As AnimalsDataTable + Get + Return Me.tableAnimals + End Get + End Property + + Public Overrides Property SchemaSerializationMode() As System.Data.SchemaSerializationMode + Get + Return Me._schemaSerializationMode + End Get + Set + Me._schemaSerializationMode = value + End Set + End Property + + _ + Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Public Shadows Property EnforceConstraints() As Boolean + Get + Return MyBase.EnforceConstraints + End Get + Set + MyBase.EnforceConstraints = value + End Set + End Property + + Protected Overrides Sub InitializeDerivedDataSet() + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Public Overrides Function Clone() As System.Data.DataSet + Dim cln As TestDataSet = CType(MyBase.Clone,TestDataSet) + cln.InitVars + Return cln + End Function + + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader) + If (Me.DetermineSchemaSerializationMode(reader) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Me.Reset + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXml(reader) + If (Not (ds.Tables("Animals")) Is Nothing) Then + MyBase.Tables.Add(New AnimalsDataTable(ds.Tables("Animals"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXml(reader) + Me.InitVars + End If + End Sub + + Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema + Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream + Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing) + End Function + + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + Me.tableAnimals = CType(MyBase.Tables("Animals"),AnimalsDataTable) + If (initTable = true) Then + If (Not (Me.tableAnimals) Is Nothing) Then + Me.tableAnimals.InitVars + End If + End If + End Sub + + Private Sub InitClass() + Me.DataSetName = "TestDataSet" + Me.Prefix = "" + Me.Namespace = "http://tempuri.org/TestDataSet.xsd" + Me.EnforceConstraints = true + Me.tableAnimals = New AnimalsDataTable + MyBase.Tables.Add(Me.tableAnimals) + End Sub + + Private Function ShouldSerializeAnimals() As Boolean + Return false + End Function + + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim ds As TestDataSet = New TestDataSet + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + xs.Add(ds.GetSchemaSerializable) + Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any.Namespace = ds.Namespace + sequence.Items.Add(any) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub AnimalsRowChangeEventHandler(ByVal sender As Object, ByVal e As AnimalsRowChangeEvent) + + _ + Partial Public Class AnimalsDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnAnimalID As System.Data.DataColumn + + Private columnAnimalName As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Animals" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property AnimalIDColumn() As System.Data.DataColumn + Get + Return Me.columnAnimalID + End Get + End Property + + Public ReadOnly Property AnimalNameColumn() As System.Data.DataColumn + Get + Return Me.columnAnimalName + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As AnimalsRow + Get + Return CType(Me.Rows(index),AnimalsRow) + End Get + End Property + + Public Event AnimalsRowChanged As AnimalsRowChangeEventHandler + + Public Event AnimalsRowChanging As AnimalsRowChangeEventHandler + + Public Event AnimalsRowDeleted As AnimalsRowChangeEventHandler + + Public Event AnimalsRowDeleting As AnimalsRowChangeEventHandler + + Public Overloads Sub AddAnimalsRow(ByVal row As AnimalsRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddAnimalsRow(ByVal AnimalID As Integer, ByVal AnimalName As String) As AnimalsRow + Dim rowAnimalsRow As AnimalsRow = CType(Me.NewRow,AnimalsRow) + rowAnimalsRow.ItemArray = New Object() {AnimalID, AnimalName} + Me.Rows.Add(rowAnimalsRow) + Return rowAnimalsRow + End Function + + Public Function FindByAnimalID(ByVal AnimalID As Integer) As AnimalsRow + Return CType(Me.Rows.Find(New Object() {AnimalID}),AnimalsRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As AnimalsDataTable = CType(MyBase.Clone,AnimalsDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New AnimalsDataTable + End Function + + Friend Sub InitVars() + Me.columnAnimalID = MyBase.Columns("AnimalID") + Me.columnAnimalName = MyBase.Columns("AnimalName") + End Sub + + Private Sub InitClass() + Me.columnAnimalID = New System.Data.DataColumn("AnimalID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnAnimalID) + Me.columnAnimalName = New System.Data.DataColumn("AnimalName", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnAnimalName) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnAnimalID}, true)) + Me.columnAnimalID.AllowDBNull = false + Me.columnAnimalID.Unique = true + Me.columnAnimalName.AllowDBNull = false + Me.columnAnimalName.MaxLength = 50 + End Sub + + Public Function NewAnimalsRow() As AnimalsRow + Return CType(Me.NewRow,AnimalsRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New AnimalsRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(AnimalsRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.AnimalsRowChangedEvent) Is Nothing) Then + RaiseEvent AnimalsRowChanged(Me, New AnimalsRowChangeEvent(CType(e.Row,AnimalsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.AnimalsRowChangingEvent) Is Nothing) Then + RaiseEvent AnimalsRowChanging(Me, New AnimalsRowChangeEvent(CType(e.Row,AnimalsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.AnimalsRowDeletedEvent) Is Nothing) Then + RaiseEvent AnimalsRowDeleted(Me, New AnimalsRowChangeEvent(CType(e.Row,AnimalsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.AnimalsRowDeletingEvent) Is Nothing) Then + RaiseEvent AnimalsRowDeleting(Me, New AnimalsRowChangeEvent(CType(e.Row,AnimalsRow), e.Action)) + End If + End Sub + + Public Sub RemoveAnimalsRow(ByVal row As AnimalsRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As TestDataSet = New TestDataSet + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "AnimalsDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + Partial Public Class AnimalsRow + Inherits System.Data.DataRow + + Private tableAnimals As AnimalsDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableAnimals = CType(Me.Table,AnimalsDataTable) + End Sub + + Public Property AnimalID() As Integer + Get + Return CType(Me(Me.tableAnimals.AnimalIDColumn),Integer) + End Get + Set + Me(Me.tableAnimals.AnimalIDColumn) = value + End Set + End Property + + Public Property AnimalName() As String + Get + Return CType(Me(Me.tableAnimals.AnimalNameColumn),String) + End Get + Set + Me(Me.tableAnimals.AnimalNameColumn) = value + End Set + End Property + End Class + + Public Class AnimalsRowChangeEvent + Inherits System.EventArgs + + Private eventRow As AnimalsRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As AnimalsRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As AnimalsRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class +End Class + +Namespace TestDataSetTableAdapters + + _ + Partial Public Class AnimalsTableAdapter + Inherits System.ComponentModel.Component + + Private WithEvents m_adapter As System.Data.SqlClient.SqlDataAdapter + + Private m_connection As System.Data.SqlClient.SqlConnection + + Private m_commandCollection() As System.Data.SqlClient.SqlCommand + + Private m_clearBeforeFill As Boolean + + Public Sub New() + MyBase.New + Me.m_clearBeforeFill = true + End Sub + + Private ReadOnly Property Adapter() As System.Data.SqlClient.SqlDataAdapter + Get + If (Me.m_adapter Is Nothing) Then + Me.InitAdapter + End If + Return Me.m_adapter + End Get + End Property + + Friend Property Connection() As System.Data.SqlClient.SqlConnection + Get + If (Me.m_connection Is Nothing) Then + Me.InitConnection + End If + Return Me.m_connection + End Get + Set + Me.m_connection = value + If (Not (Me.Adapter.InsertCommand) Is Nothing) Then + Me.Adapter.InsertCommand.Connection = value + End If + If (Not (Me.Adapter.DeleteCommand) Is Nothing) Then + Me.Adapter.DeleteCommand.Connection = value + End If + If (Not (Me.Adapter.UpdateCommand) Is Nothing) Then + Me.Adapter.UpdateCommand.Connection = value + End If + Dim i As Integer = 0 + Do While (i < Me.CommandCollection.Length) + If (Not (Me.CommandCollection(i)) Is Nothing) Then + CType(Me.CommandCollection(i),System.Data.SqlClient.SqlCommand).Connection = value + End If + i = (i + 1) + Loop + End Set + End Property + + Protected ReadOnly Property CommandCollection() As System.Data.SqlClient.SqlCommand() + Get + If (Me.m_commandCollection Is Nothing) Then + Me.InitCommandCollection + End If + Return Me.m_commandCollection + End Get + End Property + + Public Property ClearBeforeFill() As Boolean + Get + Return Me.m_clearBeforeFill + End Get + Set + Me.m_clearBeforeFill = value + End Set + End Property + + Private Sub InitAdapter() + Me.m_adapter = New System.Data.SqlClient.SqlDataAdapter + Dim tableMapping As System.Data.Common.DataTableMapping = New System.Data.Common.DataTableMapping + tableMapping.SourceTable = "Table" + tableMapping.DataSetTable = "Animals" + tableMapping.ColumnMappings.Add("AnimalID", "AnimalID") + tableMapping.ColumnMappings.Add("AnimalName", "AnimalName") + Me.m_adapter.TableMappings.Add(tableMapping) + Me.m_adapter.DeleteCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.DeleteCommand.Connection = Me.Connection + Me.m_adapter.DeleteCommand.CommandText = "DELETE FROM [dbo].[Animals] WHERE (([AnimalID] = @Original_AnimalID) AND ([Animal"& _ + "Name] = @Original_AnimalName))" + Me.m_adapter.DeleteCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_AnimalID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalID", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.DeleteCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_AnimalName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalName", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.InsertCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.InsertCommand.Connection = Me.Connection + Me.m_adapter.InsertCommand.CommandText = "INSERT INTO [dbo].[Animals] ([AnimalID], [AnimalName]) VALUES (@AnimalID, @Animal"& _ + "Name);"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"SELECT AnimalID, AnimalName FROM Animals WHERE (AnimalID = @AnimalID)" + Me.m_adapter.InsertCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@AnimalID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalID", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.InsertCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@AnimalName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalName", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand = New System.Data.SqlClient.SqlCommand + Me.m_adapter.UpdateCommand.Connection = Me.Connection + Me.m_adapter.UpdateCommand.CommandText = "UPDATE [dbo].[Animals] SET [AnimalID] = @AnimalID, [AnimalName] = @AnimalName WHE"& _ + "RE (([AnimalID] = @Original_AnimalID) AND ([AnimalName] = @Original_AnimalName))"& _ + ";"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&"SELECT AnimalID, AnimalName FROM Animals WHERE (AnimalID = @AnimalID)" + Me.m_adapter.UpdateCommand.CommandType = System.Data.CommandType.Text + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@AnimalID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalID", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@AnimalName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalName", System.Data.DataRowVersion.Current, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_AnimalID", System.Data.SqlDbType.Int, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalID", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + Me.m_adapter.UpdateCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_AnimalName", System.Data.SqlDbType.VarChar, 0, System.Data.ParameterDirection.Input, 0, 0, "AnimalName", System.Data.DataRowVersion.Original, false, Nothing, "", "", "")) + End Sub + + Private Sub InitConnection() + Me.m_connection = New System.Data.SqlClient.SqlConnection + Me.m_connection.ConnectionString = Exercise_9_1.Settings.Default.TestConnectionString + End Sub + + Private Sub InitCommandCollection() + Me.m_commandCollection = New System.Data.SqlClient.SqlCommand(0) {} + Me.m_commandCollection(0) = New System.Data.SqlClient.SqlCommand + Me.m_commandCollection(0).Connection = Me.Connection + Me.m_commandCollection(0).CommandText = "SELECT AnimalID, AnimalName FROM dbo.Animals" + Me.m_commandCollection(0).CommandType = System.Data.CommandType.Text + End Sub + + _ + Public Overloads Overridable Function Fill(ByVal dataTable As TestDataSet.AnimalsDataTable) As Integer + Me.Adapter.SelectCommand = Me.CommandCollection(0) + If (Me.m_clearBeforeFill = true) Then + dataTable.Clear + End If + Dim returnValue As Integer = Me.Adapter.Fill(dataTable) + Return returnValue + End Function + + _ + Public Overloads Overridable Function GetData() As TestDataSet.AnimalsDataTable + Me.Adapter.SelectCommand = Me.CommandCollection(0) + Dim dataTable As TestDataSet.AnimalsDataTable = New TestDataSet.AnimalsDataTable + Me.Adapter.Fill(dataTable) + Return dataTable + End Function + + Public Overloads Overridable Function Update(ByVal dataTable As TestDataSet.AnimalsDataTable) As Integer + Return Me.Adapter.Update(dataTable) + End Function + + Public Overloads Overridable Function Update(ByVal dataSet As TestDataSet) As Integer + Return Me.Adapter.Update(dataSet, "Animals") + End Function + + Public Overloads Overridable Function Update(ByVal dataRow As System.Data.DataRow) As Integer + Return Me.Adapter.Update(New System.Data.DataRow() {dataRow}) + End Function + + Public Overloads Overridable Function Update(ByVal dataRows() As System.Data.DataRow) As Integer + Return Me.Adapter.Update(dataRows) + End Function + + _ + Public Overloads Overridable Function Delete(ByVal Original_AnimalID As Integer, ByVal Original_AnimalName As String) As Integer + Me.Adapter.DeleteCommand.Parameters(0).Value = CType(Original_AnimalID,Integer) + If (Original_AnimalName Is Nothing) Then + Throw New System.ArgumentNullException("Original_AnimalName") + Else + Me.Adapter.DeleteCommand.Parameters(1).Value = CType(Original_AnimalName,String) + End If + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.DeleteCommand.Connection.State + Me.Adapter.DeleteCommand.Connection.Open + Try + Return Me.Adapter.DeleteCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.DeleteCommand.Connection.Close + End If + End Try + End Function + + _ + Public Overloads Overridable Function Insert(ByVal AnimalID As Integer, ByVal AnimalName As String) As Integer + Me.Adapter.InsertCommand.Parameters(0).Value = CType(AnimalID,Integer) + If (AnimalName Is Nothing) Then + Throw New System.ArgumentNullException("AnimalName") + Else + Me.Adapter.InsertCommand.Parameters(1).Value = CType(AnimalName,String) + End If + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.InsertCommand.Connection.State + Me.Adapter.InsertCommand.Connection.Open + Try + Return Me.Adapter.InsertCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.InsertCommand.Connection.Close + End If + End Try + End Function + + _ + Public Overloads Overridable Function Update(ByVal AnimalID As Integer, ByVal AnimalName As String, ByVal Original_AnimalID As Integer, ByVal Original_AnimalName As String) As Integer + Me.Adapter.UpdateCommand.Parameters(0).Value = CType(AnimalID,Integer) + If (AnimalName Is Nothing) Then + Throw New System.ArgumentNullException("AnimalName") + Else + Me.Adapter.UpdateCommand.Parameters(1).Value = CType(AnimalName,String) + End If + Me.Adapter.UpdateCommand.Parameters(2).Value = CType(Original_AnimalID,Integer) + If (Original_AnimalName Is Nothing) Then + Throw New System.ArgumentNullException("Original_AnimalName") + Else + Me.Adapter.UpdateCommand.Parameters(3).Value = CType(Original_AnimalName,String) + End If + Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.UpdateCommand.Connection.State + Me.Adapter.UpdateCommand.Connection.Open + Try + Return Me.Adapter.UpdateCommand.ExecuteNonQuery + Finally + If (previousConnectionState = System.Data.ConnectionState.Closed) Then + Me.Adapter.UpdateCommand.Connection.Close + End If + End Try + End Function + End Class +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xsc b/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xsc new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xsc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xsd b/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xsd new file mode 100644 index 0000000..0c54556 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xsd @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + DELETE FROM [dbo].[Animals] WHERE (([AnimalID] = @Original_AnimalID) AND ([AnimalName] = @Original_AnimalName)) + + + + + + + + + + + INSERT INTO [dbo].[Animals] ([AnimalID], [AnimalName]) VALUES (@AnimalID, @AnimalName); +SELECT AnimalID, AnimalName FROM Animals WHERE (AnimalID = @AnimalID) + + + + + + + + + + + SELECT AnimalID, AnimalName FROM dbo.Animals + + + + + + + UPDATE [dbo].[Animals] SET [AnimalID] = @AnimalID, [AnimalName] = @AnimalName WHERE (([AnimalID] = @Original_AnimalID) AND ([AnimalName] = @Original_AnimalName)); +SELECT AnimalID, AnimalName FROM Animals WHERE (AnimalID = @AnimalID) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xss b/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xss new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/TestDataSet.xss @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/app.config b/Code/Chapter 9/VB.NET/Exercise 9.1/app.config new file mode 100644 index 0000000..09ae81d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/app.config @@ -0,0 +1,43 @@ + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.exe b/Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..b7ceee7c1ef224cb67c734b912fa5ebef575590e GIT binary patch literal 61440 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®!2wSD* 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 K^+2l!#Qz7pzljV0 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.exe.config b/Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.exe.config new file mode 100644 index 0000000..09ae81d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.exe.config @@ -0,0 +1,43 @@ + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.pdb b/Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise 9.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..df4e73f86edf275416c75129cb2833f98fbb704e GIT binary patch literal 142848 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 + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise_9.1.xml b/Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise_9.1.xml new file mode 100644 index 0000000..a9a9cfc --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/bin/Debug/Exercise_9.1.xml @@ -0,0 +1,24 @@ + + + + +Exercise9.1 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise 9.1.exe b/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise 9.1.exe new file mode 100644 index 0000000000000000000000000000000000000000..b7ceee7c1ef224cb67c734b912fa5ebef575590e GIT binary patch literal 61440 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®!2wSD* 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 K^+2l!#Qz7pzljV0 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise 9.1.pdb b/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise 9.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..df4e73f86edf275416c75129cb2833f98fbb704e GIT binary patch literal 142848 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise_9.1.xml b/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise_9.1.xml new file mode 100644 index 0000000..a9a9cfc --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise_9.1.xml @@ -0,0 +1,24 @@ + + + + +Exercise9.1 + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise_9_1.Form1.resources b/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise_9_1.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..09c395fe3c97fbe1b68b402346d8bc05d19bf832 GIT binary patch literal 5278 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise_9_1.Resources.resources b/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Debug/Exercise_9_1.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 bD0`snfwBk69w>XD?18ce${zTC(gXho>u244 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Exercise 9.1.vbproj.FileList.txt b/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Exercise 9.1.vbproj.FileList.txt new file mode 100644 index 0000000..5d916e1 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.1/obj/Exercise 9.1.vbproj.FileList.txt @@ -0,0 +1,11 @@ +bin\Debug\Exercise 9.1.exe.config +bin\Debug\Exercise 9.1.exe +bin\Debug\Exercise 9.1.pdb +bin\Debug\Exercise_9.1.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_9_1.Form1.resources +obj\Debug\Exercise_9_1.Resources.resources +obj\Debug\Exercise 9.1.vbproj.GenerateResource.Cache +obj\Debug\Exercise 9.1.exe +obj\Debug\Exercise_9.1.xml +obj\Debug\Exercise 9.1.pdb diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/Exercise 9.2.vbproj b/Code/Chapter 9/VB.NET/Exercise 9.2/Exercise 9.2.vbproj new file mode 100644 index 0000000..4eaf1cd --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/Exercise 9.2.vbproj @@ -0,0 +1,98 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {8C5D01FD-E7F4-46A5-893C-50F639ED8E24} + Exe + Exercise_9_2.Module1 + Exercise_9_2 + Exercise 9.2 + Windows + + + true + full + true + true + true + bin\ + Exercise 9.2.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 9.2.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/Exercise 9.2.vbproj.user b/Code/Chapter 9/VB.NET/Exercise 9.2/Exercise 9.2.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/Exercise 9.2.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/Module1.vb b/Code/Chapter 9/VB.NET/Exercise 9.2/Module1.vb new file mode 100644 index 0000000..5f2940a --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/Module1.vb @@ -0,0 +1,16 @@ +Imports System.Data +Imports System.Data.SqlClient + +Module Module1 + Dim connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + Sub Main() + Dim myDataAdapter As SqlDataAdapter = _ + New SqlDataAdapter("Select * from Animals2", connectionString) + Dim cmdBldr As SqlCommandBuilder = New SqlCommandBuilder(myDataAdapter) + + cmdBldr.ConflictOption = ConflictOption.CompareRowVersion + + Console.WriteLine("Update Command = ") + Console.WriteLine(cmdBldr.GetUpdateCommand().CommandText) + End Sub +End Module diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/AssemblyInfo.vb b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..1e78c89 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyApplication.myapp b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyApplication.vb b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyResources.resx b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyResources.vb b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MySettings.settings b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MySettings.vb b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/app.config b/Code/Chapter 9/VB.NET/Exercise 9.2/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/bin/Exercise 9.2.exe b/Code/Chapter 9/VB.NET/Exercise 9.2/bin/Exercise 9.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..e157e4507f551787a1dbd92a1aeec64edecf41a6 GIT binary patch literal 24576 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 AEC2ui literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/bin/Exercise 9.2.exe.config b/Code/Chapter 9/VB.NET/Exercise 9.2/bin/Exercise 9.2.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/bin/Exercise 9.2.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/bin/Exercise 9.2.pdb b/Code/Chapter 9/VB.NET/Exercise 9.2/bin/Exercise 9.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..11ff13d8a5ef5b293fb0f0eb020a03002d61b19c GIT binary patch literal 38400 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 + + + +Exercise9.2 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise 9.2.exe b/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise 9.2.exe new file mode 100644 index 0000000000000000000000000000000000000000..e157e4507f551787a1dbd92a1aeec64edecf41a6 GIT binary patch literal 24576 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 AEC2ui literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise 9.2.pdb b/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise 9.2.pdb new file mode 100644 index 0000000000000000000000000000000000000000..11ff13d8a5ef5b293fb0f0eb020a03002d61b19c GIT binary patch literal 38400 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 I0;f32pB=mEMF0Q* literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise 9.2.xml b/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise 9.2.xml new file mode 100644 index 0000000..f961870 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise 9.2.xml @@ -0,0 +1,11 @@ + + + + +Exercise9.2 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise_9_2.MyResources.resources b/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/Exercise_9_2.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYj zQ4az#HMoLqELEDx*w;sc55rQEr*tFNoGBxNue?LgQ-o5N#bCITtF2VW(D&+62&@%( z)ZR0uU&pK?z+`bS#-=PLor{kQss0;CUimf2f)z&nj~$Jufc)2Ge~&3pS<2Gl2arLf zcDI>GKvNRODP*sWsA_dM_~+*GBWfmJK#?0GkwsxsVyceph8bhekv)&1M4lAql76O{ zmN%4qgMGJ~DUMkt3Ww<7WcN!34xMsE6eU6+Ja-($a{YdLXLY^tVyD#}Om+RqR(nOU zKD?8v*M3Xec-LR_m)b|Y1VXqMF#5rnqIdhkBZP~HP(Kp_Zkmv3AEMX*l@O?QHXs%= zf+!KAL`rUg#3YGJBrcD~RI*($mNHk<+X#u`(&K~^u_36FsPzN_gSNks-9YOYQ6~*DS z?qQxm8d?==_S@H+Rm@-$J%%UR0qfqEk4r{Pgc&sr*5X$_A9@poMonX~K0KVfMcxxs HIempc1ny`V literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/TempPE/My Project.MyResources.vb.dll b/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Debug/TempPE/My Project.MyResources.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..044ec781b5428d587555cf509c38340a70b5df57 GIT binary patch literal 6656 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Exercise 9.2.vbproj.FileList.txt b/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Exercise 9.2.vbproj.FileList.txt new file mode 100644 index 0000000..7935c9c --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.2/obj/Exercise 9.2.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Exercise 9.2.exe.config +bin\Exercise 9.2.exe +bin\Exercise 9.2.pdb +bin\Exercise 9.2.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_9_2.MyResources.resources +obj\Debug\Exercise 9.2.vbproj.GenerateResource.Cache +obj\Debug\Exercise 9.2.exe +obj\Debug\Exercise 9.2.xml +obj\Debug\Exercise 9.2.pdb diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/Exercise 9.3.vbproj b/Code/Chapter 9/VB.NET/Exercise 9.3/Exercise 9.3.vbproj new file mode 100644 index 0000000..62bb4d1 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/Exercise 9.3.vbproj @@ -0,0 +1,98 @@ + + + Debug + AnyCPU + 8.0.40607 + 2.0 + {DD652FDD-3531-4930-A4E6-79C79CC31DF9} + Exe + Exercise_9_3.Module1 + Exercise_9_3 + Exercise 9.3 + Windows + + + true + full + true + true + true + bin\ + Exercise 9.3.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 9.3.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/Exercise 9.3.vbproj.user b/Code/Chapter 9/VB.NET/Exercise 9.3/Exercise 9.3.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/Exercise 9.3.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/Module1.vb b/Code/Chapter 9/VB.NET/Exercise 9.3/Module1.vb new file mode 100644 index 0000000..8578be5 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/Module1.vb @@ -0,0 +1,74 @@ +Imports System.Data +Imports System.Data.SqlClient + +Module Module1 + Dim connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + Sub Main() + Using testConnection As SqlConnection = New SqlConnection(connectionString) + Dim testCommand As SqlCommand = testConnection.CreateCommand() + testCommand.CommandText = "Select * from Animals" + Dim sqlDa As SqlDataAdapter = New SqlDataAdapter(testCommand) + Dim animalsTable As DataTable = New DataTable("Animals") + sqlDa.Fill(animalsTable) + + DisplayRowStates("Row states for a freshly filled DataTable:", animalsTable) + + Dim rowInQuestion As DataRow + ' Make Changes - Modify the puppy + rowInQuestion = animalsTable.Rows(0) + rowInQuestion("AnimalName") = "Dog" + ' Make Changes - Delete the cat + rowInQuestion = animalsTable.Rows(1) + rowInQuestion.Delete() + ' Leave the Horse untouched. + ' Make Changes - Insert a camel + rowInQuestion = animalsTable.NewRow() + rowInQuestion("AnimalID") = 4 + rowInQuestion("AnimalName") = "Camel" + animalsTable.Rows.Add(rowInQuestion) + + DisplayRowStates("Row states for a modified DataTable:", animalsTable) + + ' Detached Row + rowInQuestion = animalsTable.NewRow() + rowInQuestion("AnimalID") = 5 + rowInQuestion("AnimalName") = "Monkey" + Console.WriteLine("Monkey Row's RowState: " + rowInQuestion.RowState.ToString()) + Console.ReadLine() + + ' Update the changes back to the database. + Dim cmbldr As SqlCommandBuilder = New SqlCommandBuilder(sqlDa) + + ' Setup Update Command + sqlDa.UpdateCommand = cmbldr.GetUpdateCommand() + Console.WriteLine("Update Command: " + sqlDa.UpdateCommand.CommandText) + + ' Setup Insert Command + sqlDa.InsertCommand = cmbldr.GetInsertCommand() + Console.WriteLine("Insert Command: " + sqlDa.InsertCommand.CommandText) + + ' Setup Delete Command + sqlDa.DeleteCommand = cmbldr.GetDeleteCommand() + Console.WriteLine("Delete Command: " + sqlDa.DeleteCommand.CommandText) + + sqlDa.Update(animalsTable) + + DisplayRowStates("Final Row States:", animalsTable) + End Using + End Sub + + Private Sub DisplayRowStates(ByVal Message As String, ByVal table As DataTable) + Console.Clear() + Console.WriteLine(vbCrLf) + Console.WriteLine(Message) + Console.WriteLine("-------------------------------------------") + + Dim dr As DataRow + For Each dr In table.Rows + Console.WriteLine(dr.RowState.ToString()) + Next + + Console.WriteLine(vbCrLf + "Press Enter to Continue ..") + Console.ReadLine() + End Sub +End Module diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/AssemblyInfo.vb b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..1331921 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyApplication.myapp b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyApplication.vb b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyResources.resx b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyResources.vb b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MySettings.settings b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MySettings.vb b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/app.config b/Code/Chapter 9/VB.NET/Exercise 9.3/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.exe b/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..c631b92d37aa283df44e6d951313e2d4811007b8 GIT binary patch literal 28672 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 J_(VqFzX2m4kYfM< literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.exe.config b/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.pdb b/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3ac40718940caecd833ba018cf79e8f1ad90ce5a GIT binary patch literal 40448 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 KP74fs3;aLAQ1Ye# literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.vshost.exe b/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.xml b/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.xml new file mode 100644 index 0000000..de225d7 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/bin/Exercise 9.3.xml @@ -0,0 +1,11 @@ + + + + +Exercise9.3 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.exe b/Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.exe new file mode 100644 index 0000000000000000000000000000000000000000..c631b92d37aa283df44e6d951313e2d4811007b8 GIT binary patch literal 28672 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 J_(VqFzX2m4kYfM< literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.pdb b/Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.pdb new file mode 100644 index 0000000000000000000000000000000000000000..3ac40718940caecd833ba018cf79e8f1ad90ce5a GIT binary patch literal 40448 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 KP74fs3;aLAQ1Ye# literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.vbproj.GenerateResource.Cache b/Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..1fc9182db968ace33dc429c5c81eee07b694a2f9 GIT binary patch literal 786 zcma)3O-sW-5KV1U`=L+|(t{p~cn~b1RYWgEu;K?=@eA?bWt*Mg+HJP%Bx1aH^?wQe z77zXcFFI4SNE^fnyd<-;Z{EyvGLGYXQt+E&W{TjtqkL=71d+EBD=ocCfjz9(uE3%) zVQbB6@Kdj~V;#j7S|P-d6}nzKjk{X;N03~a9)zuKV?EdiHiKqUZZyQYaJkJ&D!X?M zxDVkj3?P&c`U;Sx6fNNOp3;ETu0S|eVGkt#?DJVAxO_#n@k7dlCeB;C>MH=TqmGqLpnJ#y)x!sT39ED*R1&2(obtzMd3`}U0)3dLeYnXvAh--b&OPj0y#f+1`i4&%#*a)%+RAEi{x=$PWn%8AFt1u JIZknuzW^Y`>URJD literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.xml b/Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.xml new file mode 100644 index 0000000..de225d7 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise 9.3.xml @@ -0,0 +1,11 @@ + + + + +Exercise9.3 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise_9_3.MyResources.resources b/Code/Chapter 9/VB.NET/Exercise 9.3/obj/Debug/Exercise_9_3.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYo7gg3*}8vn#-tq)APN`vhRETLb;ZRI8jiIAc++d3+0WZCwTt}q#ZecsM_-@ z;ZnE~E-nU3KC3W?GTj)Pz`&K2}ysnSfwzA_$s6qcGirW?8DOc@z`F1hh zc|*xp*mt*?;+SQkaEKmGcDH2U&?#3$Q6dDwb0<-(*6wt-)>`$aTkY=QR9g=_-G*XA zcq7%I`2xk$Yb|M7aG$GR=M6m%XAyD;XKrChi zQ6ff(l-v}FX%gp1oJZjhZHtHOj9l!PgPKS3%`p*NK^z>Ao;|paln!b>L=hp!b4T=o z>9{Ea9&!j~j@V$A>sY%u_DS1p^b8eA3-GBmeD~wm=l8Zl9b6q>?Z0Sr1lhk;6i3s# zdwCAi(5hIMzJI$`!3;LhV|bz+ux@|-xMI{qm{HSUEq>w4o;Oiw)HEjR!@cS2 + + Debug + AnyCPU + 8.0.40607 + 2.0 + {E7E42DA7-BACF-46F5-BF4A-238ABDBBB644} + WinExe + Exercise_9_4.My.MyApplication + Exercise_9_4 + Exercise 9.4 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 9.4.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 9.4.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/Exercise 9.4.vbproj.user b/Code/Chapter 9/VB.NET/Exercise 9.4/Exercise 9.4.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/Exercise 9.4.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/Form1.Designer.vb b/Code/Chapter 9/VB.NET/Exercise 9.4/Form1.Designer.vb new file mode 100644 index 0000000..c631928 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/Form1.Designer.vb @@ -0,0 +1,74 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.btnSave = New System.Windows.Forms.Button + Me.btnLoad = New System.Windows.Forms.Button + Me.dgView = New System.Windows.Forms.DataGridView + CType(Me.dgView, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'btnSave + ' + Me.btnSave.Location = New System.Drawing.Point(278, 236) + Me.btnSave.Name = "btnSave" + Me.btnSave.TabIndex = 5 + Me.btnSave.Text = "Save" + ' + 'btnLoad + ' + Me.btnLoad.Location = New System.Drawing.Point(196, 237) + Me.btnLoad.Name = "btnLoad" + Me.btnLoad.TabIndex = 4 + Me.btnLoad.Text = "Load" + ' + 'dgView + ' + Me.dgView.Location = New System.Drawing.Point(0, 1) + Me.dgView.Name = "dgView" + Me.dgView.Size = New System.Drawing.Size(353, 228) + Me.dgView.TabIndex = 3 + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(353, 260) + Me.Controls.Add(Me.btnSave) + Me.Controls.Add(Me.btnLoad) + Me.Controls.Add(Me.dgView) + Me.Name = "Form1" + Me.Text = "Exercise 9.4" + CType(Me.dgView, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Private WithEvents btnSave As System.Windows.Forms.Button + Private WithEvents btnLoad As System.Windows.Forms.Button + Private WithEvents dgView As System.Windows.Forms.DataGridView + +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/Form1.vb b/Code/Chapter 9/VB.NET/Exercise 9.4/Form1.vb new file mode 100644 index 0000000..737b2d9 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/Form1.vb @@ -0,0 +1,66 @@ +Imports System.Data +Imports System.Data.SqlClient + +Public Class Form1 + Private connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + Private animalsTable As DataTable + + Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click + Dim sqlDA As SqlDataAdapter = New SqlDataAdapter("Select * from Animals", connectionString) + animalsTable.Rows.Clear() + sqlDA.Fill(animalsTable) + End Sub + Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click + Dim insertCommand As SqlCommand = New SqlCommand() + insertCommand.CommandType = CommandType.StoredProcedure + + Dim param As SqlParameter + + param = New SqlParameter("@AnimalID", SqlDbType.Int) + param.Direction = ParameterDirection.Output + param.SourceColumn = "AnimalID" + insertCommand.Parameters.Add(param) + + param = New SqlParameter("@AnimalName", SqlDbType.VarChar) + param.SourceColumn = "AnimalName" + insertCommand.Parameters.Add(param) + + param = New SqlParameter("@AccountNumber", SqlDbType.Int) + param.SourceColumn = "AccountNumber" + param.Size = 40 + param.Direction = ParameterDirection.Output + insertCommand.Parameters.Add(param) + + insertCommand.CommandText = "UP_ANIMALINSERT" + Dim sqlDA As SqlDataAdapter = New SqlDataAdapter("Select * from Animals", connectionString) + insertCommand.Connection = New SqlConnection(connectionString) + insertCommand.UpdatedRowSource = UpdateRowSource.Both + sqlDA.InsertCommand = insertCommand + + sqlDA.Update(animalsTable) + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + ' Setup the schema for the Table. + animalsTable = New DataTable("Animals") + Dim dc As DataColumn + + dc = New DataColumn("AnimalID") + dc.Unique = True + dc.AutoIncrement = True + dc.AutoIncrementSeed = -1 + dc.AutoIncrementStep = -1 + dc.DataType = Type.GetType("System.Int32") + animalsTable.Columns.Add(dc) + + dc = New DataColumn("AnimalName") + animalsTable.Columns.Add(dc) + + dc = New DataColumn("AccountNumber") + dc.ReadOnly = True + animalsTable.Columns.Add(dc) + + ' DataBind it, even though it has no rows in it yet. + dgView.DataSource = animalsTable + End Sub +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/AssemblyInfo.vb b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..b2b2b62 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyApplication.myapp b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyApplication.myapp new file mode 100644 index 0000000..06cce05 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_9_4.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyApplication.vb b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyApplication.vb new file mode 100644 index 0000000..f416d13 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyApplication.vb @@ -0,0 +1,28 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = False + Me.EnableVisualStyles = True + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyEvents.vb b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyResources.resx b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyResources.vb b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyResources.vb new file mode 100644 index 0000000..105db88 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_9_4.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MySettings.settings b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MySettings.vb b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/app.config b/Code/Chapter 9/VB.NET/Exercise 9.4/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.exe b/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..b9064e7b6a0707d50d33af6b091fb30d7feded83 GIT binary patch literal 32768 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.pdb b/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d33433010c1bf5a0f1b5a6066df2df58fabe283c GIT binary patch literal 56832 zcmeHQ4Rn;%nZCo%K+q^bK>i&x2&fq{NiYeh%|V9597)>yp{lD9s6TUGkB=BBT|{mqzvX8JcKGQ&uoJNa55 z-}uj&&>sJJ&zkq=Ctqufyc#|6(xfG^@4i&Dr%voFUNQT?zQ)VG_{Oge6y3E<>|J&L zsQXU&(rwoib^S-tQ|AeBbbRwu8@>{+d9m}Bm5={V-N8>LzxqY3GKe4EzIpyX&%9%N zeD*D$-Fo9$ua3NyJTYrLSkHgktGD#-`^Gcxy!P6IpBVe>(d3EQ8Y8dNgZ2FPwvGSA zgRiW6&i~ro4Xbbe+<}qTk|$=32kZI2H}SzA)P7~pQ?thX?1qK2GrcEfYmB^757zT9 zezZ5SbVpZrXz78(5AWVRcjUF?iCN>pdj1_tZd~UqpE+iSQ}&fVCjM*QiP;(>uhfI} z{NLPkbkl~LuQ>C;pdj8k7Ty@|;!#{lXv1DQ9u|Iq&XItUK zY?+Z&>Yd|MeGMO3wI8{)eebRJ-lA>yv9b8mxTLMNC+Vb8fx2*Hb8k+R_n>J88?qv9m&? z9-UQKXBE|14PB*L`mS_RiQZ(yNwH2tSEcSgJd|ukLs_FWPC6ZpZyfRprL25Hm7SrA zuEmj(aCv!UNkw&KRY_G@Rj6cfc||pRsv@D%$`D(4kSpGlNOsF~2l>f$nRJJwybVq& zx-sq~hX8V_;GI?mgIoh^L}=-&?dgd{BjI#35g&rOSR+DrUpP0bp{!No7AKw_^6ulf zxy-=0%>!BY;c(WUK^)Atg73z~L~yz@u$yx;=nc>+4)oexf!*In^6UU_M);3G%b1wu zjIrPH@-9#87MS^qQr{jt<_#${J51H4~f%2j2E1(#0jwlxMbR&xv}nZ z>v2u!5mpRyl$iWWs2bTnd~L^Tl%*eK$!%Fe*vQ`a=|4SBSwfq#46|j~6^v}r_nTj& zEV~G08D`6}3mDm-^xW`m%Cc)vmSMImyPA^??z{>yJ2qAa@= zWf^A6va1@|KNm%JP?lYovJA6j;WcOu%_f54ydoyJ5BboQD<=Q?h4B9jSFEE5Mk47% zQcM-2ix_V&y=ZNB>bBqSqUfo_1Z0W;)tpf@%3E_4ylRRFW35c_%FO_z>1@bl5 z!TLlj2E7tfM@onp@NY5aSc7Y$sorp`E}V)+kp8&{J11`-(uk+hVGPzR$Fb$MILQ?9 zI<{OxIPKKNJ6ogOcv#0suPGXHOqGr;7Z1lH(Xc#jd-lNfxHOjN2**&1W8_J_JJ~Jg z+T+MUu@B3J72+6quB~ecr#GQJjv=!qounqIo{y?|j9;%Y%sJIU*p(;Zh+aCwMKWx>#SLvA%OWC33M2 zFaK;C>z0;HS>k;Uu)YI=#JiF8@a~P>*@-haEMvF9d&t7O4OcU^mub9jJB0|&#d`tp zeu0hmt5WW`z6%)7AP#YEWIUXEI3I4D&(Py~nT2x=Q+G@^7~jOj6r8QUOaR80+8Ec` z6UXw~f$vVlp}djtFz#Xeqr!N(g>j?gn{nLeE$g**V`CgJ_OGxpzRu}b<0Q94VO(c_ zAl75Rc`M>Fo{{yi?qPknv2OI13JdEtTn*me22NW+%0A+A?J8WNE(g)w3>5|AySM{< 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.vshost.exe b/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..87ed49ad954ce326d6b3914c6a1e9a97ee2d004c GIT binary patch literal 5120 zcmeHKeQXrR6@Pm^&c+4P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.vshost.exe.config b/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.xml b/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.xml new file mode 100644 index 0000000..1f7a7ce --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/bin/Exercise 9.4.xml @@ -0,0 +1,11 @@ + + + + +Exercise9.4 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise 9.4.exe b/Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise 9.4.exe new file mode 100644 index 0000000000000000000000000000000000000000..b9064e7b6a0707d50d33af6b091fb30d7feded83 GIT binary patch literal 32768 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%0A+A?J8WNE(g)w3>5|AySM{< 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise 9.4.vbproj.GenerateResource.Cache b/Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise 9.4.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..ac713c7770a64f85ec2b5faa8f36a65e2fe9f7b8 GIT binary patch literal 786 zcma)3%}T>S5Ke7V`zO?cc+f);4}vAM7ST%)toVZ#{G;^XWt*Mg+HF>L5-~o3K8Nq( zvv}|cJg758MQRWy@Fkg@{pOqboQ&f*?-cyzs7w*`yUMo)O%Qq8vC`5z7dXUvtp^sB z3EOL4gP(e>6YD6p&<-JvtkCt^aXiqh;c}amRCeza za1X*AxQ0+d=qo^$QnY~mU8Mo%2LjjYM=uVE|&(disC>^3!FGpcaWpyV!kJI4Cpx7tmC@nLRznbFRtYj%?H2uUrsi+c-~T} zOjvXo@&r}>;)6VEUg#z@l5|D0Uvv|)%*56Q^vI>#DwlI*u|VK5G}E2=ZS^Xp#y0cj z%KF=7od0$)Vb@m!f>4ZLVIr>uMqMLSpg_(|oWZTa2=gRuCNuV^$Rc^1N9XO~`Ss~O JGs`KC@&_X->ZAYw literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise 9.4.xml b/Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise 9.4.xml new file mode 100644 index 0000000..1f7a7ce --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise 9.4.xml @@ -0,0 +1,11 @@ + + + + +Exercise9.4 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise_9_4.MyResources.resources b/Code/Chapter 9/VB.NET/Exercise 9.4/obj/Debug/Exercise_9_4.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYyPI4m<$|U}jU=P(`T99zL&TXTJHjVH$?<8xMWy6iy&KYw(T~N(8Zc zFX5r@ZZg$XbEPeiii@an!}Z+qqUX8ZT&bFbaU!7-K@v+A&Xv}acE~%AAl(#Qh$?Nb z94rJ&!Th|x;IT5Z$kX+q4%`h;4f19G7%4!gQ`f3sDW ztOvV7c3ZD#8gF`w-coBnmzrd|JbLc>VQ8O1mgSLH$oe!|S4XnOX$wW#gDBQv6p^Sh z8WD?`rkFsA`bZSpJo3e^a_d6&6mb=)LsVpElHd%%S%N8oa|jmoV*aq?1HXYGTRMv! z)f-B~n-34RQcWK$T}oRz8z4m3xS1pJkg2#Kd>(M{r;fbA9#^rlahAqSy(ZHXBu&)^ z-OElT6c@M!;Kqs_|xjiNB<*6#Z`bVKuJeBH3GmC=JqHPXeRfif +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System + + + _ +Partial Public Class CustProd + Inherits System.Data.DataSet + + Private tableCustomers As CustomersDataTable + + Private tableProducts As ProductsDataTable + + Private tableCustomerProducts As CustomerProductsDataTable + + Private relationFK_CustomerProducts_Products As System.Data.DataRelation + + Private relationFK_CustomerProducts_Customers As System.Data.DataRelation + + Private _schemaSerializationMode As System.Data.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema + + _ + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + _ + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Me.DetermineSchemaSerializationMode(info, context) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + If (Not (ds.Tables("Customers")) Is Nothing) Then + MyBase.Tables.Add(New CustomersDataTable(ds.Tables("Customers"))) + End If + If (Not (ds.Tables("Products")) Is Nothing) Then + MyBase.Tables.Add(New ProductsDataTable(ds.Tables("Products"))) + End If + If (Not (ds.Tables("CustomerProducts")) Is Nothing) Then + MyBase.Tables.Add(New CustomerProductsDataTable(ds.Tables("CustomerProducts"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public ReadOnly Property Customers() As CustomersDataTable + Get + Return Me.tableCustomers + End Get + End Property + + _ + Public ReadOnly Property Products() As ProductsDataTable + Get + Return Me.tableProducts + End Get + End Property + + _ + Public ReadOnly Property CustomerProducts() As CustomerProductsDataTable + Get + Return Me.tableCustomerProducts + End Get + End Property + + Public Overrides Property SchemaSerializationMode() As System.Data.SchemaSerializationMode + Get + Return Me._schemaSerializationMode + End Get + Set + Me._schemaSerializationMode = value + End Set + End Property + + _ + Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Public Shadows Property EnforceConstraints() As Boolean + Get + Return MyBase.EnforceConstraints + End Get + Set + MyBase.EnforceConstraints = value + End Set + End Property + + Protected Overrides Sub InitializeDerivedDataSet() + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Public Overrides Function Clone() As System.Data.DataSet + Dim cln As CustProd = CType(MyBase.Clone,CustProd) + cln.InitVars + Return cln + End Function + + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader) + If (Me.DetermineSchemaSerializationMode(reader) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Me.Reset + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXml(reader) + If (Not (ds.Tables("Customers")) Is Nothing) Then + MyBase.Tables.Add(New CustomersDataTable(ds.Tables("Customers"))) + End If + If (Not (ds.Tables("Products")) Is Nothing) Then + MyBase.Tables.Add(New ProductsDataTable(ds.Tables("Products"))) + End If + If (Not (ds.Tables("CustomerProducts")) Is Nothing) Then + MyBase.Tables.Add(New CustomerProductsDataTable(ds.Tables("CustomerProducts"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXml(reader) + Me.InitVars + End If + End Sub + + Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema + Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream + Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing) + End Function + + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + Me.tableCustomers = CType(MyBase.Tables("Customers"),CustomersDataTable) + If (initTable = true) Then + If (Not (Me.tableCustomers) Is Nothing) Then + Me.tableCustomers.InitVars + End If + End If + Me.tableProducts = CType(MyBase.Tables("Products"),ProductsDataTable) + If (initTable = true) Then + If (Not (Me.tableProducts) Is Nothing) Then + Me.tableProducts.InitVars + End If + End If + Me.tableCustomerProducts = CType(MyBase.Tables("CustomerProducts"),CustomerProductsDataTable) + If (initTable = true) Then + If (Not (Me.tableCustomerProducts) Is Nothing) Then + Me.tableCustomerProducts.InitVars + End If + End If + Me.relationFK_CustomerProducts_Products = Me.Relations("FK_CustomerProducts_Products") + Me.relationFK_CustomerProducts_Customers = Me.Relations("FK_CustomerProducts_Customers") + End Sub + + Private Sub InitClass() + Me.DataSetName = "CustProd" + Me.Prefix = "" + Me.Namespace = "http://tempuri.org/CustProd.xsd" + Me.EnforceConstraints = false + Me.tableCustomers = New CustomersDataTable + MyBase.Tables.Add(Me.tableCustomers) + Me.tableProducts = New ProductsDataTable + MyBase.Tables.Add(Me.tableProducts) + Me.tableCustomerProducts = New CustomerProductsDataTable + MyBase.Tables.Add(Me.tableCustomerProducts) + Dim fkc As System.Data.ForeignKeyConstraint + fkc = New System.Data.ForeignKeyConstraint("FK_CustomerProducts_Products", New System.Data.DataColumn() {Me.tableProducts.ProductIDColumn}, New System.Data.DataColumn() {Me.tableCustomerProducts.ProductIDColumn}) + Me.tableCustomerProducts.Constraints.Add(fkc) + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None + fkc.DeleteRule = System.Data.Rule.Cascade + fkc.UpdateRule = System.Data.Rule.Cascade + fkc = New System.Data.ForeignKeyConstraint("FK_CustomerProducts_Customers", New System.Data.DataColumn() {Me.tableCustomers.CustomerIDColumn}, New System.Data.DataColumn() {Me.tableCustomerProducts.CustomerIDColumn}) + Me.tableCustomerProducts.Constraints.Add(fkc) + fkc.AcceptRejectRule = System.Data.AcceptRejectRule.None + fkc.DeleteRule = System.Data.Rule.Cascade + fkc.UpdateRule = System.Data.Rule.Cascade + Me.relationFK_CustomerProducts_Products = New System.Data.DataRelation("FK_CustomerProducts_Products", New System.Data.DataColumn() {Me.tableProducts.ProductIDColumn}, New System.Data.DataColumn() {Me.tableCustomerProducts.ProductIDColumn}, false) + Me.Relations.Add(Me.relationFK_CustomerProducts_Products) + Me.relationFK_CustomerProducts_Customers = New System.Data.DataRelation("FK_CustomerProducts_Customers", New System.Data.DataColumn() {Me.tableCustomers.CustomerIDColumn}, New System.Data.DataColumn() {Me.tableCustomerProducts.CustomerIDColumn}, false) + Me.Relations.Add(Me.relationFK_CustomerProducts_Customers) + End Sub + + Private Function ShouldSerializeCustomers() As Boolean + Return false + End Function + + Private Function ShouldSerializeProducts() As Boolean + Return false + End Function + + Private Function ShouldSerializeCustomerProducts() As Boolean + Return false + End Function + + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim ds As CustProd = New CustProd + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + xs.Add(ds.GetSchemaSerializable) + Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any.Namespace = ds.Namespace + sequence.Items.Add(any) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub CustomersRowChangeEventHandler(ByVal sender As Object, ByVal e As CustomersRowChangeEvent) + + Public Delegate Sub ProductsRowChangeEventHandler(ByVal sender As Object, ByVal e As ProductsRowChangeEvent) + + Public Delegate Sub CustomerProductsRowChangeEventHandler(ByVal sender As Object, ByVal e As CustomerProductsRowChangeEvent) + + _ + Partial Public Class CustomersDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnCustomerID As System.Data.DataColumn + + Private columnFirstName As System.Data.DataColumn + + Private columnLastName As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Customers" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property CustomerIDColumn() As System.Data.DataColumn + Get + Return Me.columnCustomerID + End Get + End Property + + Public ReadOnly Property FirstNameColumn() As System.Data.DataColumn + Get + Return Me.columnFirstName + End Get + End Property + + Public ReadOnly Property LastNameColumn() As System.Data.DataColumn + Get + Return Me.columnLastName + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As CustomersRow + Get + Return CType(Me.Rows(index),CustomersRow) + End Get + End Property + + Public Event CustomersRowChanged As CustomersRowChangeEventHandler + + Public Event CustomersRowChanging As CustomersRowChangeEventHandler + + Public Event CustomersRowDeleted As CustomersRowChangeEventHandler + + Public Event CustomersRowDeleting As CustomersRowChangeEventHandler + + Public Overloads Sub AddCustomersRow(ByVal row As CustomersRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddCustomersRow(ByVal FirstName As String, ByVal LastName As String) As CustomersRow + Dim rowCustomersRow As CustomersRow = CType(Me.NewRow,CustomersRow) + rowCustomersRow.ItemArray = New Object() {Nothing, FirstName, LastName} + Me.Rows.Add(rowCustomersRow) + Return rowCustomersRow + End Function + + Public Function FindByCustomerID(ByVal CustomerID As Integer) As CustomersRow + Return CType(Me.Rows.Find(New Object() {CustomerID}),CustomersRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As CustomersDataTable = CType(MyBase.Clone,CustomersDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New CustomersDataTable + End Function + + Friend Sub InitVars() + Me.columnCustomerID = MyBase.Columns("CustomerID") + Me.columnFirstName = MyBase.Columns("FirstName") + Me.columnLastName = MyBase.Columns("LastName") + End Sub + + Private Sub InitClass() + Me.columnCustomerID = New System.Data.DataColumn("CustomerID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnCustomerID) + Me.columnFirstName = New System.Data.DataColumn("FirstName", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnFirstName) + Me.columnLastName = New System.Data.DataColumn("LastName", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnLastName) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnCustomerID}, true)) + Me.columnCustomerID.AutoIncrement = true + Me.columnCustomerID.AllowDBNull = false + Me.columnCustomerID.Unique = true + End Sub + + Public Function NewCustomersRow() As CustomersRow + Return CType(Me.NewRow,CustomersRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New CustomersRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(CustomersRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.CustomersRowChangedEvent) Is Nothing) Then + RaiseEvent CustomersRowChanged(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.CustomersRowChangingEvent) Is Nothing) Then + RaiseEvent CustomersRowChanging(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.CustomersRowDeletedEvent) Is Nothing) Then + RaiseEvent CustomersRowDeleted(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.CustomersRowDeletingEvent) Is Nothing) Then + RaiseEvent CustomersRowDeleting(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) + End If + End Sub + + Public Sub RemoveCustomersRow(ByVal row As CustomersRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As CustProd = New CustProd + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "CustomersDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + _ + Partial Public Class ProductsDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnProductID As System.Data.DataColumn + + Private columnProductName As System.Data.DataColumn + + Private columnPrice As System.Data.DataColumn + + Private columnTaxPercent As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Products" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property ProductIDColumn() As System.Data.DataColumn + Get + Return Me.columnProductID + End Get + End Property + + Public ReadOnly Property ProductNameColumn() As System.Data.DataColumn + Get + Return Me.columnProductName + End Get + End Property + + Public ReadOnly Property PriceColumn() As System.Data.DataColumn + Get + Return Me.columnPrice + End Get + End Property + + Public ReadOnly Property TaxPercentColumn() As System.Data.DataColumn + Get + Return Me.columnTaxPercent + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As ProductsRow + Get + Return CType(Me.Rows(index),ProductsRow) + End Get + End Property + + Public Event ProductsRowChanged As ProductsRowChangeEventHandler + + Public Event ProductsRowChanging As ProductsRowChangeEventHandler + + Public Event ProductsRowDeleted As ProductsRowChangeEventHandler + + Public Event ProductsRowDeleting As ProductsRowChangeEventHandler + + Public Overloads Sub AddProductsRow(ByVal row As ProductsRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddProductsRow(ByVal ProductName As String, ByVal Price As Decimal, ByVal TaxPercent As Decimal) As ProductsRow + Dim rowProductsRow As ProductsRow = CType(Me.NewRow,ProductsRow) + rowProductsRow.ItemArray = New Object() {Nothing, ProductName, Price, TaxPercent} + Me.Rows.Add(rowProductsRow) + Return rowProductsRow + End Function + + Public Function FindByProductID(ByVal ProductID As Integer) As ProductsRow + Return CType(Me.Rows.Find(New Object() {ProductID}),ProductsRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As ProductsDataTable = CType(MyBase.Clone,ProductsDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New ProductsDataTable + End Function + + Friend Sub InitVars() + Me.columnProductID = MyBase.Columns("ProductID") + Me.columnProductName = MyBase.Columns("ProductName") + Me.columnPrice = MyBase.Columns("Price") + Me.columnTaxPercent = MyBase.Columns("TaxPercent") + End Sub + + Private Sub InitClass() + Me.columnProductID = New System.Data.DataColumn("ProductID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnProductID) + Me.columnProductName = New System.Data.DataColumn("ProductName", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnProductName) + Me.columnPrice = New System.Data.DataColumn("Price", GetType(Decimal), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnPrice) + Me.columnTaxPercent = New System.Data.DataColumn("TaxPercent", GetType(Decimal), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnTaxPercent) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnProductID}, true)) + Me.columnProductID.AutoIncrement = true + Me.columnProductID.AllowDBNull = false + Me.columnProductID.Unique = true + End Sub + + Public Function NewProductsRow() As ProductsRow + Return CType(Me.NewRow,ProductsRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New ProductsRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(ProductsRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.ProductsRowChangedEvent) Is Nothing) Then + RaiseEvent ProductsRowChanged(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.ProductsRowChangingEvent) Is Nothing) Then + RaiseEvent ProductsRowChanging(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.ProductsRowDeletedEvent) Is Nothing) Then + RaiseEvent ProductsRowDeleted(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.ProductsRowDeletingEvent) Is Nothing) Then + RaiseEvent ProductsRowDeleting(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action)) + End If + End Sub + + Public Sub RemoveProductsRow(ByVal row As ProductsRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As CustProd = New CustProd + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "ProductsDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + _ + Partial Public Class CustomerProductsDataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnCustomerProductID As System.Data.DataColumn + + Private columnCustomerID As System.Data.DataColumn + + Private columnProductID As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "CustomerProducts" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property CustomerProductIDColumn() As System.Data.DataColumn + Get + Return Me.columnCustomerProductID + End Get + End Property + + Public ReadOnly Property CustomerIDColumn() As System.Data.DataColumn + Get + Return Me.columnCustomerID + End Get + End Property + + Public ReadOnly Property ProductIDColumn() As System.Data.DataColumn + Get + Return Me.columnProductID + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As CustomerProductsRow + Get + Return CType(Me.Rows(index),CustomerProductsRow) + End Get + End Property + + Public Event CustomerProductsRowChanged As CustomerProductsRowChangeEventHandler + + Public Event CustomerProductsRowChanging As CustomerProductsRowChangeEventHandler + + Public Event CustomerProductsRowDeleted As CustomerProductsRowChangeEventHandler + + Public Event CustomerProductsRowDeleting As CustomerProductsRowChangeEventHandler + + Public Overloads Sub AddCustomerProductsRow(ByVal row As CustomerProductsRow) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddCustomerProductsRow(ByVal CustomerProductID As Integer, ByVal parentProductsRowByFK_CustomerProducts_Products As ProductsRow) As CustomerProductsRow + Dim rowCustomerProductsRow As CustomerProductsRow = CType(Me.NewRow,CustomerProductsRow) + rowCustomerProductsRow.ItemArray = New Object() {CustomerProductID, Nothing, parentProductsRowByFK_CustomerProducts_Products(0)} + Me.Rows.Add(rowCustomerProductsRow) + Return rowCustomerProductsRow + End Function + + Public Function FindByCustomerProductID(ByVal CustomerProductID As Integer) As CustomerProductsRow + Return CType(Me.Rows.Find(New Object() {CustomerProductID}),CustomerProductsRow) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As CustomerProductsDataTable = CType(MyBase.Clone,CustomerProductsDataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New CustomerProductsDataTable + End Function + + Friend Sub InitVars() + Me.columnCustomerProductID = MyBase.Columns("CustomerProductID") + Me.columnCustomerID = MyBase.Columns("CustomerID") + Me.columnProductID = MyBase.Columns("ProductID") + End Sub + + Private Sub InitClass() + Me.columnCustomerProductID = New System.Data.DataColumn("CustomerProductID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnCustomerProductID) + Me.columnCustomerID = New System.Data.DataColumn("CustomerID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnCustomerID) + Me.columnProductID = New System.Data.DataColumn("ProductID", GetType(Integer), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnProductID) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnCustomerProductID}, true)) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint2", New System.Data.DataColumn() {Me.columnCustomerID}, false)) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint3", New System.Data.DataColumn() {Me.columnProductID}, false)) + Me.columnCustomerProductID.AllowDBNull = false + Me.columnCustomerProductID.Unique = true + Me.columnCustomerID.AutoIncrement = true + Me.columnCustomerID.Unique = true + Me.columnProductID.Unique = true + End Sub + + Public Function NewCustomerProductsRow() As CustomerProductsRow + Return CType(Me.NewRow,CustomerProductsRow) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New CustomerProductsRow(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(CustomerProductsRow) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.CustomerProductsRowChangedEvent) Is Nothing) Then + RaiseEvent CustomerProductsRowChanged(Me, New CustomerProductsRowChangeEvent(CType(e.Row,CustomerProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.CustomerProductsRowChangingEvent) Is Nothing) Then + RaiseEvent CustomerProductsRowChanging(Me, New CustomerProductsRowChangeEvent(CType(e.Row,CustomerProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.CustomerProductsRowDeletedEvent) Is Nothing) Then + RaiseEvent CustomerProductsRowDeleted(Me, New CustomerProductsRowChangeEvent(CType(e.Row,CustomerProductsRow), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.CustomerProductsRowDeletingEvent) Is Nothing) Then + RaiseEvent CustomerProductsRowDeleting(Me, New CustomerProductsRowChangeEvent(CType(e.Row,CustomerProductsRow), e.Action)) + End If + End Sub + + Public Sub RemoveCustomerProductsRow(ByVal row As CustomerProductsRow) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As CustProd = New CustProd + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "CustomerProductsDataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + Partial Public Class CustomersRow + Inherits System.Data.DataRow + + Private tableCustomers As CustomersDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableCustomers = CType(Me.Table,CustomersDataTable) + End Sub + + Public Property CustomerID() As Integer + Get + Return CType(Me(Me.tableCustomers.CustomerIDColumn),Integer) + End Get + Set + Me(Me.tableCustomers.CustomerIDColumn) = value + End Set + End Property + + Public Property FirstName() As String + Get + Try + Return CType(Me(Me.tableCustomers.FirstNameColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'FirstName' in table 'Customers' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableCustomers.FirstNameColumn) = value + End Set + End Property + + Public Property LastName() As String + Get + Try + Return CType(Me(Me.tableCustomers.LastNameColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'LastName' in table 'Customers' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableCustomers.LastNameColumn) = value + End Set + End Property + + Public Function IsFirstNameNull() As Boolean + Return Me.IsNull(Me.tableCustomers.FirstNameColumn) + End Function + + Public Sub SetFirstNameNull() + Me(Me.tableCustomers.FirstNameColumn) = System.Convert.DBNull + End Sub + + Public Function IsLastNameNull() As Boolean + Return Me.IsNull(Me.tableCustomers.LastNameColumn) + End Function + + Public Sub SetLastNameNull() + Me(Me.tableCustomers.LastNameColumn) = System.Convert.DBNull + End Sub + + Public Function GetCustomerProductsRows() As CustomerProductsRow() + Return CType(MyBase.GetChildRows(Me.Table.ChildRelations("FK_CustomerProducts_Customers")),CustomerProductsRow()) + End Function + End Class + + Partial Public Class ProductsRow + Inherits System.Data.DataRow + + Private tableProducts As ProductsDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableProducts = CType(Me.Table,ProductsDataTable) + End Sub + + Public Property ProductID() As Integer + Get + Return CType(Me(Me.tableProducts.ProductIDColumn),Integer) + End Get + Set + Me(Me.tableProducts.ProductIDColumn) = value + End Set + End Property + + Public Property ProductName() As String + Get + Try + Return CType(Me(Me.tableProducts.ProductNameColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'ProductName' in table 'Products' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableProducts.ProductNameColumn) = value + End Set + End Property + + Public Property Price() As Decimal + Get + Try + Return CType(Me(Me.tableProducts.PriceColumn),Decimal) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'Price' in table 'Products' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableProducts.PriceColumn) = value + End Set + End Property + + Public Property TaxPercent() As Decimal + Get + Try + Return CType(Me(Me.tableProducts.TaxPercentColumn),Decimal) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'TaxPercent' in table 'Products' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableProducts.TaxPercentColumn) = value + End Set + End Property + + Public Function IsProductNameNull() As Boolean + Return Me.IsNull(Me.tableProducts.ProductNameColumn) + End Function + + Public Sub SetProductNameNull() + Me(Me.tableProducts.ProductNameColumn) = System.Convert.DBNull + End Sub + + Public Function IsPriceNull() As Boolean + Return Me.IsNull(Me.tableProducts.PriceColumn) + End Function + + Public Sub SetPriceNull() + Me(Me.tableProducts.PriceColumn) = System.Convert.DBNull + End Sub + + Public Function IsTaxPercentNull() As Boolean + Return Me.IsNull(Me.tableProducts.TaxPercentColumn) + End Function + + Public Sub SetTaxPercentNull() + Me(Me.tableProducts.TaxPercentColumn) = System.Convert.DBNull + End Sub + + Public Function GetCustomerProductsRows() As CustomerProductsRow() + Return CType(MyBase.GetChildRows(Me.Table.ChildRelations("FK_CustomerProducts_Products")),CustomerProductsRow()) + End Function + End Class + + Partial Public Class CustomerProductsRow + Inherits System.Data.DataRow + + Private tableCustomerProducts As CustomerProductsDataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableCustomerProducts = CType(Me.Table,CustomerProductsDataTable) + End Sub + + Public Property CustomerProductID() As Integer + Get + Return CType(Me(Me.tableCustomerProducts.CustomerProductIDColumn),Integer) + End Get + Set + Me(Me.tableCustomerProducts.CustomerProductIDColumn) = value + End Set + End Property + + Public Property CustomerID() As Integer + Get + Try + Return CType(Me(Me.tableCustomerProducts.CustomerIDColumn),Integer) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'CustomerID' in table 'CustomerProducts' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableCustomerProducts.CustomerIDColumn) = value + End Set + End Property + + Public Property ProductID() As Integer + Get + Try + Return CType(Me(Me.tableCustomerProducts.ProductIDColumn),Integer) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'ProductID' in table 'CustomerProducts' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableCustomerProducts.ProductIDColumn) = value + End Set + End Property + + Public Property ProductsRow() As ProductsRow + Get + Return CType(Me.GetParentRow(Me.Table.ParentRelations("FK_CustomerProducts_Products")),ProductsRow) + End Get + Set + Me.SetParentRow(value, Me.Table.ParentRelations("FK_CustomerProducts_Products")) + End Set + End Property + + Public Property CustomersRow() As CustomersRow + Get + Return CType(Me.GetParentRow(Me.Table.ParentRelations("FK_CustomerProducts_Customers")),CustomersRow) + End Get + Set + Me.SetParentRow(value, Me.Table.ParentRelations("FK_CustomerProducts_Customers")) + End Set + End Property + + Public Function IsCustomerIDNull() As Boolean + Return Me.IsNull(Me.tableCustomerProducts.CustomerIDColumn) + End Function + + Public Sub SetCustomerIDNull() + Me(Me.tableCustomerProducts.CustomerIDColumn) = System.Convert.DBNull + End Sub + + Public Function IsProductIDNull() As Boolean + Return Me.IsNull(Me.tableCustomerProducts.ProductIDColumn) + End Function + + Public Sub SetProductIDNull() + Me(Me.tableCustomerProducts.ProductIDColumn) = System.Convert.DBNull + End Sub + End Class + + Public Class CustomersRowChangeEvent + Inherits System.EventArgs + + Private eventRow As CustomersRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As CustomersRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As CustomersRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class ProductsRowChangeEvent + Inherits System.EventArgs + + Private eventRow As ProductsRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As ProductsRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As ProductsRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class CustomerProductsRowChangeEvent + Inherits System.EventArgs + + Private eventRow As CustomerProductsRow + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As CustomerProductsRow, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As CustomerProductsRow + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/CustProd.xsc b/Code/Chapter 9/VB.NET/Exercise 9.5/CustProd.xsc new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/CustProd.xsd b/Code/Chapter 9/VB.NET/Exercise 9.5/CustProd.xsd new file mode 100644 index 0000000..f102d91 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/CustProd.xsd @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/CustProd.xss b/Code/Chapter 9/VB.NET/Exercise 9.5/CustProd.xss new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/Exercise 9.5.vbproj b/Code/Chapter 9/VB.NET/Exercise 9.5/Exercise 9.5.vbproj new file mode 100644 index 0000000..a2653f4 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/Exercise 9.5.vbproj @@ -0,0 +1,127 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {E3150080-BA5E-444E-8FDD-512119F5548F} + WinExe + Exercise_9_5.My.MyApplication + Exercise_9_5 + Exercise 9.5 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 9.5.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 9.5.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + + + True + True + CustProd.xsd + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + CustProd.xsd + + + CustProd.xsd + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + MSDataSetGenerator + CustProd.Designer.vb + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/Exercise 9.5.vbproj.user b/Code/Chapter 9/VB.NET/Exercise 9.5/Exercise 9.5.vbproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/Exercise 9.5.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/Form1.Designer.vb b/Code/Chapter 9/VB.NET/Exercise 9.5/Form1.Designer.vb new file mode 100644 index 0000000..bd8969b --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/Form1.Designer.vb @@ -0,0 +1,192 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle3 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle4 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle5 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Dim DataGridViewCellStyle6 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle + Me.btnGetChanges = New System.Windows.Forms.Button + Me.btnClose = New System.Windows.Forms.Button + Me.label3 = New System.Windows.Forms.Label + Me.dgProducts = New System.Windows.Forms.DataGridView + Me.label2 = New System.Windows.Forms.Label + Me.dgCustomerProducts = New System.Windows.Forms.DataGridView + Me.label1 = New System.Windows.Forms.Label + Me.dgCustomers = New System.Windows.Forms.DataGridView + CType(Me.dgProducts, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgCustomerProducts, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgCustomers, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'btnGetChanges + ' + Me.btnGetChanges.Location = New System.Drawing.Point(386, 731) + Me.btnGetChanges.Name = "btnGetChanges" + Me.btnGetChanges.TabIndex = 18 + Me.btnGetChanges.Text = "Get Changes" + ' + 'btnClose + ' + Me.btnClose.Location = New System.Drawing.Point(10, 731) + Me.btnClose.Name = "btnClose" + Me.btnClose.TabIndex = 17 + Me.btnClose.Text = "Exit" + ' + 'label3 + ' + Me.label3.AutoSize = True + Me.label3.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.label3.Location = New System.Drawing.Point(12, 480) + Me.label3.Name = "label3" + Me.label3.Size = New System.Drawing.Size(69, 22) + Me.label3.TabIndex = 16 + Me.label3.Text = "Products" + ' + 'dgProducts + ' + Me.dgProducts.BackgroundColor = System.Drawing.Color.Gainsboro + DataGridViewCellStyle1.BackColor = System.Drawing.Color.DarkGreen + DataGridViewCellStyle1.Font = New System.Drawing.Font("Courier New", 9.0!) + DataGridViewCellStyle1.ForeColor = System.Drawing.Color.White + Me.dgProducts.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle1 + DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle2.BackColor = System.Drawing.Color.White + DataGridViewCellStyle2.Font = New System.Drawing.Font("Courier New", 9.0!) + DataGridViewCellStyle2.ForeColor = System.Drawing.Color.DarkSlateGray + DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.dgProducts.DefaultCellStyle = DataGridViewCellStyle2 + Me.dgProducts.Font = New System.Drawing.Font("Courier New", 9.0!) + Me.dgProducts.GridColor = System.Drawing.Color.DarkGray + Me.dgProducts.Location = New System.Drawing.Point(12, 509) + Me.dgProducts.Name = "dgProducts" + Me.dgProducts.RowHeadersDefaultCellStyle = DataGridViewCellStyle1 + Me.dgProducts.Size = New System.Drawing.Size(449, 200) + Me.dgProducts.TabIndex = 15 + ' + 'label2 + ' + Me.label2.AutoSize = True + Me.label2.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.label2.Location = New System.Drawing.Point(10, 240) + Me.label2.Name = "label2" + Me.label2.Size = New System.Drawing.Size(138, 22) + Me.label2.TabIndex = 14 + Me.label2.Text = "CustomerProducts" + ' + 'dgCustomerProducts + ' + Me.dgCustomerProducts.BackgroundColor = System.Drawing.Color.LightGoldenrodYellow + DataGridViewCellStyle3.BackColor = System.Drawing.Color.Maroon + DataGridViewCellStyle3.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle3.ForeColor = System.Drawing.Color.LightGoldenrodYellow + Me.dgCustomerProducts.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle3 + DataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle4.BackColor = System.Drawing.Color.White + DataGridViewCellStyle4.Font = New System.Drawing.Font("Tahoma", 8.0!) + DataGridViewCellStyle4.ForeColor = System.Drawing.Color.DarkSlateBlue + DataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.dgCustomerProducts.DefaultCellStyle = DataGridViewCellStyle4 + Me.dgCustomerProducts.Font = New System.Drawing.Font("Tahoma", 8.0!) + Me.dgCustomerProducts.GridColor = System.Drawing.Color.Peru + Me.dgCustomerProducts.Location = New System.Drawing.Point(10, 269) + Me.dgCustomerProducts.Name = "dgCustomerProducts" + Me.dgCustomerProducts.RowHeadersDefaultCellStyle = DataGridViewCellStyle3 + Me.dgCustomerProducts.Size = New System.Drawing.Size(451, 200) + Me.dgCustomerProducts.TabIndex = 13 + ' + 'label1 + ' + Me.label1.AutoSize = True + Me.label1.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.label1.Location = New System.Drawing.Point(10, 4) + Me.label1.Name = "label1" + Me.label1.Size = New System.Drawing.Size(83, 22) + Me.label1.TabIndex = 12 + Me.label1.Text = "Customers" + ' + 'dgCustomers + ' + Me.dgCustomers.BackgroundColor = System.Drawing.Color.Gainsboro + DataGridViewCellStyle5.BackColor = System.Drawing.Color.DarkGreen + DataGridViewCellStyle5.Font = New System.Drawing.Font("Courier New", 9.0!) + DataGridViewCellStyle5.ForeColor = System.Drawing.Color.White + Me.dgCustomers.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle5 + DataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle6.BackColor = System.Drawing.Color.White + DataGridViewCellStyle6.Font = New System.Drawing.Font("Courier New", 9.0!) + DataGridViewCellStyle6.ForeColor = System.Drawing.Color.DarkSlateGray + DataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight + DataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText + DataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] + Me.dgCustomers.DefaultCellStyle = DataGridViewCellStyle6 + Me.dgCustomers.Font = New System.Drawing.Font("Courier New", 9.0!) + Me.dgCustomers.GridColor = System.Drawing.Color.DarkGray + Me.dgCustomers.Location = New System.Drawing.Point(10, 33) + Me.dgCustomers.Name = "dgCustomers" + Me.dgCustomers.RowHeadersDefaultCellStyle = DataGridViewCellStyle5 + Me.dgCustomers.Size = New System.Drawing.Size(451, 200) + Me.dgCustomers.TabIndex = 11 + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(473, 764) + Me.Controls.Add(Me.btnGetChanges) + Me.Controls.Add(Me.btnClose) + Me.Controls.Add(Me.label3) + Me.Controls.Add(Me.dgProducts) + Me.Controls.Add(Me.label2) + Me.Controls.Add(Me.dgCustomerProducts) + Me.Controls.Add(Me.label1) + Me.Controls.Add(Me.dgCustomers) + Me.Name = "Form1" + Me.Text = "Exercise 9.5" + CType(Me.dgProducts, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgCustomerProducts, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgCustomers, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Private WithEvents btnGetChanges As System.Windows.Forms.Button + Private WithEvents btnClose As System.Windows.Forms.Button + Private WithEvents label3 As System.Windows.Forms.Label + Private WithEvents dgProducts As System.Windows.Forms.DataGridView + Private WithEvents label2 As System.Windows.Forms.Label + Private WithEvents dgCustomerProducts As System.Windows.Forms.DataGridView + Private WithEvents label1 As System.Windows.Forms.Label + Private WithEvents dgCustomers As System.Windows.Forms.DataGridView + +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/Form1.vb b/Code/Chapter 9/VB.NET/Exercise 9.5/Form1.vb new file mode 100644 index 0000000..2fe124f --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/Form1.vb @@ -0,0 +1,24 @@ +Imports System.Data + +Public Class Form1 + Private myDataSet As CustProd + Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click + Me.Close() + End Sub + Private Sub btnGetChanges_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetChanges.Click + Dim changedDS As CustProd = CType(myDataSet.GetChanges(), CustProd) + dgCustomers.DataSource = changedDS.Customers + dgCustomerProducts.DataSource = changedDS.CustomerProducts + dgProducts.DataSource = changedDS.Products + End Sub + + Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + myDataSet = New CustProd() + dgCustomers.DataSource = myDataSet.Customers + dgCustomerProducts.DataSource = myDataSet.CustomerProducts + dgProducts.DataSource = myDataSet.Products + + myDataSet.ReadXml("Data.xml") + myDataSet.AcceptChanges() + End Sub +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/AssemblyInfo.vb b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..d416ee8 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyApplication.myapp b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyApplication.myapp new file mode 100644 index 0000000..d10d950 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_9_5.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyApplication.vb b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyApplication.vb new file mode 100644 index 0000000..76c3852 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyApplication.vb @@ -0,0 +1,29 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyEvents.vb b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyResources.resx b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyResources.vb b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyResources.vb new file mode 100644 index 0000000..220edd7 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_9_5.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MySettings.settings b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MySettings.vb b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/app.config b/Code/Chapter 9/VB.NET/Exercise 9.5/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Data.xml b/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Data.xml new file mode 100644 index 0000000..687dbac --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Data.xml @@ -0,0 +1,92 @@ + + + + 1 + Bill + Gates + + + 2 + John + Williams + + + 3 + Steve + Ballmer + + + 4 + Tarzan + KingOfJungle + + + 5 + Jane + PrincessOfJungle + + + 1 + Dagger + 10 + 0.10 + + + 2 + Computer + 2000 + 0.095 + + + 3 + Hamburger + 5 + 0 + + + 4 + A Nice Suit + 300 + 0.15 + + + 1 + 1 + 2 + + + 2 + 2 + 3 + + + 3 + 2 + 2 + + + 4 + 3 + 4 + + + 5 + 4 + 1 + + + 6 + 4 + 2 + + + 7 + 4 + 3 + + + 8 + 5 + 1 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.exe b/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..640a69b0c88b21ca12f248fc38ae592fa64a0e0e GIT binary patch literal 61440 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 aVAuk~78tg`umy%KFl>Qg3;fTt!2bt-b$x{Z literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.exe.config b/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.pdb b/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..78005e4f82f59df5763b3feaf3b02976942a893c GIT binary patch literal 208384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.vshost.exe b/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..87ed49ad954ce326d6b3914c6a1e9a97ee2d004c GIT binary patch literal 5120 zcmeHKeQXrR6@Pm^&c+4P7&ATGZ3m16qk)Fb6D zOKnHWdj>UIPFQBlQsZ(&H4M{{!%Vi4hO8NKup=bL%_vi*PcNLGG2OY0s7=bFlYf7= zInza_s8}kJ3Wy5PgNoC$l>ix~8HIz4%9ZvTobaF5G=hTu3oEkXnMC*#AnHt$cY)eq zw}UgyFv){(Ev+S*hQ9M&qMNUk-KZ^(xh_T(puIe2yyCE72kl)`0g#Ec!tY#?iPkEX zZAH*2d}{{dLE#SNP&2$&ET)?nC`4-^0$Cr4k88MrWI65VrPZf8qY7L@&insarrMemB13(fcxNEjc#FQ>d zwS>v}jHpD+F?_7eQ#9M=HQda2=OG_eV*7iri5`jz+)m#D|7(FKL{FZ?rLw?Afjt7_ z0v{8&OW*;4Z%N$dbk|wQLw;Ae%R}p3gRVl_>-sV9FwjHpybC}tko%L46_1&OgN1<7 z6u}>rx%4SoM7N^-57ByTP7^K2tmkRhENa3E<^mNe7ks6_YJrUc{Q_GBb_u*kpej%k z_zi(6ph6D|+z70tt-uAeo&MyyL_2BJwE$R}=aPOwwR!o{R3VjV6TJhy03{`bN@*$Z z3$z?qK_TE5DFUn&SVU#uSJ11#5WNfhI{gzE5qQ5qTUb~x@DcL3ilmv6dnA4KcjG?c z(P|(Sk>kOeSquP4Bm)b@<;F*GdY_)bkWtPywVTnT&hDTgd(gBUg$*-WW;j-=)6@)y z;&#NebS+Gwlm{vxhbh7~+63sNoZ`&*$)>A83szuY8-$4q8 zlMWjb1eva;LR!oi7p2X^iftyX2(xJ=OFEXSk9D-EMl7kua;$|^hv~ZJuz(4F)rix} zEF1HW8_hb>Y7CfGT;icdeJVP{B(N^!3iIJGHUw@ZyIX1sW5 z`svY2_nq0i;Xipp`Xg=IpSWeuS3cVD_8adVII-hceQCLCOOe&|?~x}TI{4>xGdI7U zzpkTlw5IrpzfC#w!D#vZADtWhB-+x%t&nu=~#bhi1J|xVUV_qsQNzUB0@O)$N?y))=Vx z%eHx&;Au&hTc(m#SfR_EFO_uVc}lvfB=Qa{?h7+Vt?uhFP2KK`vZ1Ip)YqcnFm@)x zx)#Ajq1eX#xZU|hPlXaqVMf)e5YY^Y3LEg1tgi9-6d%5`5>4Z6@zqqS>+zV7C@^*g zWpAKTZr37~X`2I%95AhfX^D)Ks~Z~|s$iu?k^Qx zzvskFzped!|7IR!9xDXK(wMCbH`H6q;q5-HwxPZ+GfN^GCUP=wDX7rnoR>K_k+N^D zw4@)NFB@j!_7*ogV@g!lh49J(lA9+Q_`mh=FFMhj2~Rzd0(gJW$kkKx=%n9{Uuz~h zgtt+a4&~K>?ZtPqAGnOV!L{P0y%OzKU`zVdP5a#EE~mee1(^H$&+;!Pulc@kLJITr zyNZIMua{J^U`HdJ7;G9eK*$Qve4*6?sfu13a+Ms6Gto-ZZnqb{O7O|SC=LCw>sWG& zF+Qw2{i~xej{!;%bOW##$B#kV!7O+?0teA+qphHS7==?CUV7Q_3E@);5m1FLm$$=% z2>jrhCRX7fakzDh5(0C*Zx(ZBR~^I*w$RluHg}Da`O-ww;Y(J(7y1?~jK`({p8HVh zfb}Sgz*mFg)F9^Ok#>Zhfi>tkE17K0pHUEVwm~N*H2B&QloFATAz}_}PwbP)i{47a z;(w2i3||}ZYoIEsf%iV30t>V&=ti%IN_lM|uq?{zP{vN4v=B#WF(LYMCe_lNJ-)%LF4wHxhOdOd#F t=PQjPgLOn+#+kf&=d(7dGjZct@ELsyA|R*#?|rWEQ?S<0mN+2-{{=vwXe|H$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.vshost.exe.config b/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.xml b/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.xml new file mode 100644 index 0000000..c113c90 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/bin/Exercise 9.5.xml @@ -0,0 +1,11 @@ + + + + +Exercise9.5 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise 9.5.exe b/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise 9.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..640a69b0c88b21ca12f248fc38ae592fa64a0e0e GIT binary patch literal 61440 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 aVAuk~78tg`umy%KFl>Qg3;fTt!2bt-b$x{Z literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise 9.5.pdb b/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise 9.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..78005e4f82f59df5763b3feaf3b02976942a893c GIT binary patch literal 208384 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise 9.5.vbproj.GenerateResource.Cache b/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise 9.5.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..3852b3c64f946b5b9caf0f49980b3e2d2ee8589d GIT binary patch literal 786 zcma)3%}T>S5Ke7V`zO?cc+f);4}vAM7ST%)toVZ#{G;^XWt*Mg+HF>L5-~o3SKr1b z@F{!%4?ckxohd3(gE)aN$?WVm-^}M^9LIU5;5SEQilE zu&7MfUh^9K)N7qsN3n%=2ytYEuGfy^fmZ$@B`lWx&u~bizrhFr`NE1LbHn~-HDwmzUoF5OnSoGXh30+*qg?#yqiS1C2N znKxI~-!9|)w~Gn8z8VmOVgw5lc`Y#N8mR&Wa&F=bZWTtDCuuX8u}4J~$>ZSj + + + +Exercise9.5 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise_9_5.MyResources.resources b/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/Exercise_9_5.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/TempPE/My Project.MyResources.vb.dll b/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Debug/TempPE/My Project.MyResources.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..bf9fb6177432152a606e734350d86bba02952699 GIT binary patch literal 6656 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Exercise 9.5.vbproj.FileList.txt b/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Exercise 9.5.vbproj.FileList.txt new file mode 100644 index 0000000..5894ec5 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.5/obj/Exercise 9.5.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Exercise 9.5.exe.config +bin\Exercise 9.5.exe +bin\Exercise 9.5.pdb +bin\Exercise 9.5.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_9_5.MyResources.resources +obj\Debug\Exercise 9.5.vbproj.GenerateResource.Cache +obj\Debug\Exercise 9.5.exe +obj\Debug\Exercise 9.5.xml +obj\Debug\Exercise 9.5.pdb diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/Exercise 9.6.vbproj b/Code/Chapter 9/VB.NET/Exercise 9.6/Exercise 9.6.vbproj new file mode 100644 index 0000000..fe986a0 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/Exercise 9.6.vbproj @@ -0,0 +1,127 @@ + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {2E757994-EE67-4395-BB38-EB25362F4183} + WinExe + Exercise_9_6.My.MyApplication + Exercise_9_6 + Exercise 9.6 + WindowsForms + + + true + full + true + true + true + bin\ + Exercise 9.6.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 9.6.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + Code + + + True + MyApplication.myapp + Code + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + Code + + + True + True + VariousTables.xsd + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + VariousTables.xsd + + + VariousTables.xsd + + + + + + + + MSDataSetGenerator + VariousTables.Designer.vb + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/Exercise 9.6.vbproj.user b/Code/Chapter 9/VB.NET/Exercise 9.6/Exercise 9.6.vbproj.user new file mode 100644 index 0000000..eba6f5d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/Exercise 9.6.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.50215 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/Form1.Designer.vb b/Code/Chapter 9/VB.NET/Exercise 9.6/Form1.Designer.vb new file mode 100644 index 0000000..bc8c2d2 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/Form1.Designer.vb @@ -0,0 +1,164 @@ +Partial Public Class Form1 + Inherits System.Windows.Forms.Form + + _ + Public Sub New() + MyBase.New() + + 'This call is required by the Windows Form Designer. + InitializeComponent() + + End Sub + + 'Form overrides dispose to clean up the component list. + _ + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + MyBase.Dispose(disposing) + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.btnMerge = New System.Windows.Forms.Button + Me.btnDifferent = New System.Windows.Forms.Button + Me.btnCCWithPK = New System.Windows.Forms.Button + Me.btnCCNoPK = New System.Windows.Forms.Button + Me.btnSameWithPK = New System.Windows.Forms.Button + Me.btnSameNoPK = New System.Windows.Forms.Button + Me.label2 = New System.Windows.Forms.Label + Me.label1 = New System.Windows.Forms.Label + Me.dgView2 = New System.Windows.Forms.DataGridView + Me.dgView1 = New System.Windows.Forms.DataGridView + CType(Me.dgView2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.dgView1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'btnMerge + ' + Me.btnMerge.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnMerge.Location = New System.Drawing.Point(490, 288) + Me.btnMerge.Name = "btnMerge" + Me.btnMerge.Size = New System.Drawing.Size(240, 43) + Me.btnMerge.TabIndex = 19 + Me.btnMerge.Text = "Table1.Merge(Table2)" + ' + 'btnDifferent + ' + Me.btnDifferent.Location = New System.Drawing.Point(490, 229) + Me.btnDifferent.Name = "btnDifferent" + Me.btnDifferent.Size = New System.Drawing.Size(240, 23) + Me.btnDifferent.TabIndex = 18 + Me.btnDifferent.Text = "Different Table Structures" + ' + 'btnCCWithPK + ' + Me.btnCCWithPK.Location = New System.Drawing.Point(490, 170) + Me.btnCCWithPK.Name = "btnCCWithPK" + Me.btnCCWithPK.Size = New System.Drawing.Size(240, 23) + Me.btnCCWithPK.TabIndex = 17 + Me.btnCCWithPK.Text = "Common Column, with PK" + ' + 'btnCCNoPK + ' + Me.btnCCNoPK.Location = New System.Drawing.Point(490, 140) + Me.btnCCNoPK.Name = "btnCCNoPK" + Me.btnCCNoPK.Size = New System.Drawing.Size(240, 23) + Me.btnCCNoPK.TabIndex = 16 + Me.btnCCNoPK.Text = "Common Column, No PK" + ' + 'btnSameWithPK + ' + Me.btnSameWithPK.Location = New System.Drawing.Point(490, 79) + Me.btnSameWithPK.Name = "btnSameWithPK" + Me.btnSameWithPK.Size = New System.Drawing.Size(240, 23) + Me.btnSameWithPK.TabIndex = 15 + Me.btnSameWithPK.Text = "Same Structures With PK" + ' + 'btnSameNoPK + ' + Me.btnSameNoPK.Location = New System.Drawing.Point(490, 49) + Me.btnSameNoPK.Name = "btnSameNoPK" + Me.btnSameNoPK.Size = New System.Drawing.Size(240, 23) + Me.btnSameNoPK.TabIndex = 14 + Me.btnSameNoPK.Text = "Same Structures No PK" + ' + 'label2 + ' + Me.label2.AutoSize = True + Me.label2.Location = New System.Drawing.Point(4, 182) + Me.label2.Name = "label2" + Me.label2.Size = New System.Drawing.Size(39, 14) + Me.label2.TabIndex = 13 + Me.label2.Text = "Table2" + ' + 'label1 + ' + Me.label1.AutoSize = True + Me.label1.Location = New System.Drawing.Point(4, 2) + Me.label1.Name = "label1" + Me.label1.Size = New System.Drawing.Size(39, 14) + Me.label1.TabIndex = 12 + Me.label1.Text = "Table1" + ' + 'dgView2 + ' + Me.dgView2.AllowUserToAddRows = False + Me.dgView2.AllowUserToDeleteRows = False + Me.dgView2.Location = New System.Drawing.Point(4, 203) + Me.dgView2.Name = "dgView2" + Me.dgView2.ReadOnly = True + Me.dgView2.Size = New System.Drawing.Size(479, 150) + Me.dgView2.TabIndex = 11 + ' + 'dgView1 + ' + Me.dgView1.AllowUserToAddRows = False + Me.dgView1.AllowUserToDeleteRows = False + Me.dgView1.Location = New System.Drawing.Point(4, 23) + Me.dgView1.Name = "dgView1" + Me.dgView1.ReadOnly = True + Me.dgView1.Size = New System.Drawing.Size(479, 150) + Me.dgView1.TabIndex = 10 + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(5, 13) + Me.ClientSize = New System.Drawing.Size(735, 356) + Me.Controls.Add(Me.btnMerge) + Me.Controls.Add(Me.btnDifferent) + Me.Controls.Add(Me.btnCCWithPK) + Me.Controls.Add(Me.btnCCNoPK) + Me.Controls.Add(Me.btnSameWithPK) + Me.Controls.Add(Me.btnSameNoPK) + Me.Controls.Add(Me.label2) + Me.Controls.Add(Me.label1) + Me.Controls.Add(Me.dgView2) + Me.Controls.Add(Me.dgView1) + Me.Name = "Form1" + Me.Text = "Exercise 9.6" + CType(Me.dgView2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.dgView1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Private WithEvents btnMerge As System.Windows.Forms.Button + Private WithEvents btnDifferent As System.Windows.Forms.Button + Private WithEvents btnCCWithPK As System.Windows.Forms.Button + Private WithEvents btnCCNoPK As System.Windows.Forms.Button + Private WithEvents btnSameWithPK As System.Windows.Forms.Button + Private WithEvents btnSameNoPK As System.Windows.Forms.Button + Private WithEvents label2 As System.Windows.Forms.Label + Private WithEvents label1 As System.Windows.Forms.Label + Private WithEvents dgView2 As System.Windows.Forms.DataGridView + Private WithEvents dgView1 As System.Windows.Forms.DataGridView + +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/Form1.vb b/Code/Chapter 9/VB.NET/Exercise 9.6/Form1.vb new file mode 100644 index 0000000..9a8c9a4 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/Form1.vb @@ -0,0 +1,82 @@ +Imports System.Data + +Public Class Form1 + Private Sub btnSameNoPK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSameNoPK.Click + Dim table1 As VariousTables.Table0DataTable = New VariousTables.Table0DataTable() + table1.LoadDataRow(New Object() {"1", "One"}, True) + table1.LoadDataRow(New Object() {"2", "Two"}, True) + + Dim table2 As VariousTables.Table0DataTable = New VariousTables.Table0DataTable() + table2.LoadDataRow(New Object() {"2", "Monkey"}, True) + table2.LoadDataRow(New Object() {"3", "Donkey"}, True) + + dgView1.DataSource = table1 + dgView2.DataSource = table2 + End Sub + Private Sub btnSameWithPK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSameWithPK.Click + Dim table1 As VariousTables.Table1DataTable = New VariousTables.Table1DataTable() + table1.LoadDataRow(New Object() {"1", "One"}, True) + table1.LoadDataRow(New Object() {"2", "Two"}, True) + + Dim table2 As VariousTables.Table1DataTable = New VariousTables.Table1DataTable() + table2.LoadDataRow(New Object() {"2", "Monkey"}, True) + table2.LoadDataRow(New Object() {"3", "Donkey"}, True) + + dgView1.DataSource = table1 + dgView2.DataSource = table2 + End Sub + Private Sub btnCCNoPK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCCNoPK.Click + Dim table1 As VariousTables.Table0DataTable = New VariousTables.Table0DataTable() + table1.LoadDataRow(New Object() {"1", "One"}, True) + table1.LoadDataRow(New Object() {"2", "Two"}, True) + + Dim table2 As VariousTables.Table2DataTable = New VariousTables.Table2DataTable() + table2.LoadDataRow(New Object() {"2", "Monkey"}, True) + table2.LoadDataRow(New Object() {"3", "Donkey"}, True) + + dgView1.DataSource = table1 + dgView2.DataSource = table2 + End Sub + Private Sub btnCCWithPK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCCWithPK.Click + Dim table1 As VariousTables.Table1DataTable = New VariousTables.Table1DataTable() + table1.LoadDataRow(New Object() {"1", "One"}, True) + table1.LoadDataRow(New Object() {"2", "Two"}, True) + + Dim table2 As VariousTables.Table2DataTable = New VariousTables.Table2DataTable() + table2.LoadDataRow(New Object() {"2", "Monkey"}, True) + table2.LoadDataRow(New Object() {"3", "Donkey"}, True) + + dgView1.DataSource = table1 + dgView2.DataSource = table2 + End Sub + Private Sub btnDifferent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDifferent.Click + 'Dim table1 As VariousTables.Table0DataTable = New VariousTables.Table0DataTable() + + 'Note I have the above line commented. Because it doesn't work - here is an explanation why. + 'This is because if you view the final merged table - it contains results that violate the unique constraint setup + 'in Table0DataTable. So internally in Merge, + 'The constraints are turned off (this gives a performance boost) + 'data is merged + 'Constraints are enabled <-- you get an exception here because the merged datatable does not have unique values in ColumnA ;) + + ' Go ahead and uncomment the above, and comment 3 lines below and see a running proof of what I just told ya. + + Dim table1 As DataTable = New DataTable() + table1.Columns.Add(New DataColumn("ColumnA")) + table1.Columns.Add(New DataColumn("ColumnB")) + table1.LoadDataRow(New Object() {"1", "One"}, True) + table1.LoadDataRow(New Object() {"2", "Two"}, True) + + Dim table2 As VariousTables.Table3DataTable = New VariousTables.Table3DataTable() + table2.LoadDataRow(New Object() {"2", "Monkey"}, True) + table2.LoadDataRow(New Object() {"3", "Donkey"}, True) + + dgView1.DataSource = table1 + dgView2.DataSource = table2 + End Sub + Private Sub btnMerge_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMerge.Click + Dim table1 As DataTable = CType(dgView1.DataSource, DataTable) + Dim table2 As DataTable = CType(dgView2.DataSource, DataTable) + table1.Merge(table2) + End Sub +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/AssemblyInfo.vb b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..4c62daa --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyApplication.myapp b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyApplication.myapp new file mode 100644 index 0000000..3521d5c --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyApplication.myapp @@ -0,0 +1,10 @@ + + + true + Exercise_9_6.Form1 + false + 0 + true + 0 + 0 + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyApplication.vb b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyApplication.vb new file mode 100644 index 0000000..8eee98b --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyApplication.vb @@ -0,0 +1,28 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + Partial Class MyApplication + Public Sub New() + MyBase.New(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = False + Me.EnableVisualStyles = True + Me.ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = My.Forms.Form1 + End Sub + End Class +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyEvents.vb b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyEvents.vb new file mode 100644 index 0000000..5fe787f --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyEvents.vb @@ -0,0 +1,13 @@ +Namespace My + Partial Friend Class MyApplication + + 'Use the editor window dropdowns in the Application pane of the Project Designer to handle MyApplication Events + ' + 'Startup: Raised when the application starts, before the startup form is created. + 'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally. + 'UnhandledException: Raised if the application encounters an unhandled exception. + 'StartupNextInstance: Raised when launching a single-instance application and the application is already active. + 'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected. + + End Class +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyResources.resx b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyResources.vb b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyResources.vb new file mode 100644 index 0000000..8cb6f19 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("Exercise_9_6.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MySettings.settings b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MySettings.settings new file mode 100644 index 0000000..37f5350 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MySettings.settings @@ -0,0 +1,16 @@ + + + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Server=(local);Integrated Security=True;Database=test</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Server=(local);Integrated Security=True;Database=test + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MySettings.vb b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MySettings.vb new file mode 100644 index 0000000..46e72ac --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/My Project/MySettings.vb @@ -0,0 +1,63 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.40607.42 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property + + _ + Public ReadOnly Property testConnection() As String + Get + Return CType(Me("testConnection"),String) + End Get + End Property +End Class + +Namespace My + + _ + Public Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As MySettings + Get + Return MySettings.Value + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.Designer.vb b/Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.Designer.vb new file mode 100644 index 0000000..96735b7 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.Designer.vb @@ -0,0 +1,1336 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System + + + _ +Partial Public Class VariousTables + Inherits System.Data.DataSet + + Private tableTable1 As Table1DataTable + + Private tableTable2 As Table2DataTable + + Private tableTable3 As Table3DataTable + + Private tableTable0 As Table0DataTable + + Private _schemaSerializationMode As System.Data.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema + + _ + Public Sub New() + MyBase.New + Me.BeginInit + Me.InitClass + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler + Me.EndInit + End Sub + + _ + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + If (Me.IsBinarySerialized(info, context) = true) Then + Me.InitVars(false) + Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1 + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1 + Return + End If + Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String) + If (Me.DetermineSchemaSerializationMode(info, context) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + If (Not (ds.Tables("Table1")) Is Nothing) Then + MyBase.Tables.Add(New Table1DataTable(ds.Tables("Table1"))) + End If + If (Not (ds.Tables("Table2")) Is Nothing) Then + MyBase.Tables.Add(New Table2DataTable(ds.Tables("Table2"))) + End If + If (Not (ds.Tables("Table3")) Is Nothing) Then + MyBase.Tables.Add(New Table3DataTable(ds.Tables("Table3"))) + End If + If (Not (ds.Tables("Table0")) Is Nothing) Then + MyBase.Tables.Add(New Table0DataTable(ds.Tables("Table0"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema))) + End If + Me.GetSerializationData(info, context) + Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged + AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler + AddHandler Me.Relations.CollectionChanged, schemaChangedHandler + End Sub + + _ + Public ReadOnly Property Table1() As Table1DataTable + Get + Return Me.tableTable1 + End Get + End Property + + _ + Public ReadOnly Property Table2() As Table2DataTable + Get + Return Me.tableTable2 + End Get + End Property + + _ + Public ReadOnly Property Table3() As Table3DataTable + Get + Return Me.tableTable3 + End Get + End Property + + _ + Public ReadOnly Property Table0() As Table0DataTable + Get + Return Me.tableTable0 + End Get + End Property + + Public Overrides Property SchemaSerializationMode() As System.Data.SchemaSerializationMode + Get + Return Me._schemaSerializationMode + End Get + Set + Me._schemaSerializationMode = value + End Set + End Property + + _ + Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection + Get + Return MyBase.Tables + End Get + End Property + + _ + Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection + Get + Return MyBase.Relations + End Get + End Property + + _ + Public Shadows Property EnforceConstraints() As Boolean + Get + Return MyBase.EnforceConstraints + End Get + Set + MyBase.EnforceConstraints = value + End Set + End Property + + Protected Overrides Sub InitializeDerivedDataSet() + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Public Overrides Function Clone() As System.Data.DataSet + Dim cln As VariousTables = CType(MyBase.Clone,VariousTables) + cln.InitVars + Return cln + End Function + + Protected Overrides Function ShouldSerializeTables() As Boolean + Return false + End Function + + Protected Overrides Function ShouldSerializeRelations() As Boolean + Return false + End Function + + Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader) + If (Me.DetermineSchemaSerializationMode(reader) = System.Data.SchemaSerializationMode.IncludeSchema) Then + Me.Reset + Dim ds As System.Data.DataSet = New System.Data.DataSet + ds.ReadXml(reader) + If (Not (ds.Tables("Table1")) Is Nothing) Then + MyBase.Tables.Add(New Table1DataTable(ds.Tables("Table1"))) + End If + If (Not (ds.Tables("Table2")) Is Nothing) Then + MyBase.Tables.Add(New Table2DataTable(ds.Tables("Table2"))) + End If + If (Not (ds.Tables("Table3")) Is Nothing) Then + MyBase.Tables.Add(New Table3DataTable(ds.Tables("Table3"))) + End If + If (Not (ds.Tables("Table0")) Is Nothing) Then + MyBase.Tables.Add(New Table0DataTable(ds.Tables("Table0"))) + End If + Me.DataSetName = ds.DataSetName + Me.Prefix = ds.Prefix + Me.Namespace = ds.Namespace + Me.Locale = ds.Locale + Me.CaseSensitive = ds.CaseSensitive + Me.EnforceConstraints = ds.EnforceConstraints + Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) + Me.InitVars + Else + Me.ReadXml(reader) + Me.InitVars + End If + End Sub + + Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema + Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream + Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing)) + stream.Position = 0 + Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing) + End Function + + Friend Overloads Sub InitVars() + Me.InitVars(true) + End Sub + + Friend Overloads Sub InitVars(ByVal initTable As Boolean) + Me.tableTable1 = CType(MyBase.Tables("Table1"),Table1DataTable) + If (initTable = true) Then + If (Not (Me.tableTable1) Is Nothing) Then + Me.tableTable1.InitVars + End If + End If + Me.tableTable2 = CType(MyBase.Tables("Table2"),Table2DataTable) + If (initTable = true) Then + If (Not (Me.tableTable2) Is Nothing) Then + Me.tableTable2.InitVars + End If + End If + Me.tableTable3 = CType(MyBase.Tables("Table3"),Table3DataTable) + If (initTable = true) Then + If (Not (Me.tableTable3) Is Nothing) Then + Me.tableTable3.InitVars + End If + End If + Me.tableTable0 = CType(MyBase.Tables("Table0"),Table0DataTable) + If (initTable = true) Then + If (Not (Me.tableTable0) Is Nothing) Then + Me.tableTable0.InitVars + End If + End If + End Sub + + Private Sub InitClass() + Me.DataSetName = "VariousTables" + Me.Prefix = "" + Me.Namespace = "http://tempuri.org/VariousTables.xsd" + Me.EnforceConstraints = false + Me.tableTable1 = New Table1DataTable + MyBase.Tables.Add(Me.tableTable1) + Me.tableTable2 = New Table2DataTable + MyBase.Tables.Add(Me.tableTable2) + Me.tableTable3 = New Table3DataTable + MyBase.Tables.Add(Me.tableTable3) + Me.tableTable0 = New Table0DataTable + MyBase.Tables.Add(Me.tableTable0) + End Sub + + Private Function ShouldSerializeTable1() As Boolean + Return false + End Function + + Private Function ShouldSerializeTable2() As Boolean + Return false + End Function + + Private Function ShouldSerializeTable3() As Boolean + Return false + End Function + + Private Function ShouldSerializeTable0() As Boolean + Return false + End Function + + Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) + If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then + Me.InitVars + End If + End Sub + + Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim ds As VariousTables = New VariousTables + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + xs.Add(ds.GetSchemaSerializable) + Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any.Namespace = ds.Namespace + sequence.Items.Add(any) + type.Particle = sequence + Return type + End Function + + Public Delegate Sub Table1RowChangeEventHandler(ByVal sender As Object, ByVal e As Table1RowChangeEvent) + + Public Delegate Sub Table2RowChangeEventHandler(ByVal sender As Object, ByVal e As Table2RowChangeEvent) + + Public Delegate Sub Table3RowChangeEventHandler(ByVal sender As Object, ByVal e As Table3RowChangeEvent) + + Public Delegate Sub Table0RowChangeEventHandler(ByVal sender As Object, ByVal e As Table0RowChangeEvent) + + _ + Partial Public Class Table1DataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnColumnA As System.Data.DataColumn + + Private columnColumnB As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Table1" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property ColumnAColumn() As System.Data.DataColumn + Get + Return Me.columnColumnA + End Get + End Property + + Public ReadOnly Property ColumnBColumn() As System.Data.DataColumn + Get + Return Me.columnColumnB + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As Table1Row + Get + Return CType(Me.Rows(index),Table1Row) + End Get + End Property + + Public Event Table1RowChanged As Table1RowChangeEventHandler + + Public Event Table1RowChanging As Table1RowChangeEventHandler + + Public Event Table1RowDeleted As Table1RowChangeEventHandler + + Public Event Table1RowDeleting As Table1RowChangeEventHandler + + Public Overloads Sub AddTable1Row(ByVal row As Table1Row) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddTable1Row(ByVal ColumnA As String, ByVal ColumnB As String) As Table1Row + Dim rowTable1Row As Table1Row = CType(Me.NewRow,Table1Row) + rowTable1Row.ItemArray = New Object() {ColumnA, ColumnB} + Me.Rows.Add(rowTable1Row) + Return rowTable1Row + End Function + + Public Function FindByColumnA(ByVal ColumnA As String) As Table1Row + Return CType(Me.Rows.Find(New Object() {ColumnA}),Table1Row) + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As Table1DataTable = CType(MyBase.Clone,Table1DataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New Table1DataTable + End Function + + Friend Sub InitVars() + Me.columnColumnA = MyBase.Columns("ColumnA") + Me.columnColumnB = MyBase.Columns("ColumnB") + End Sub + + Private Sub InitClass() + Me.columnColumnA = New System.Data.DataColumn("ColumnA", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnColumnA) + Me.columnColumnB = New System.Data.DataColumn("ColumnB", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnColumnB) + Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnColumnA}, true)) + Me.columnColumnA.AllowDBNull = false + Me.columnColumnA.Unique = true + End Sub + + Public Function NewTable1Row() As Table1Row + Return CType(Me.NewRow,Table1Row) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New Table1Row(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(Table1Row) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.Table1RowChangedEvent) Is Nothing) Then + RaiseEvent Table1RowChanged(Me, New Table1RowChangeEvent(CType(e.Row,Table1Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.Table1RowChangingEvent) Is Nothing) Then + RaiseEvent Table1RowChanging(Me, New Table1RowChangeEvent(CType(e.Row,Table1Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.Table1RowDeletedEvent) Is Nothing) Then + RaiseEvent Table1RowDeleted(Me, New Table1RowChangeEvent(CType(e.Row,Table1Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.Table1RowDeletingEvent) Is Nothing) Then + RaiseEvent Table1RowDeleting(Me, New Table1RowChangeEvent(CType(e.Row,Table1Row), e.Action)) + End If + End Sub + + Public Sub RemoveTable1Row(ByVal row As Table1Row) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As VariousTables = New VariousTables + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "Table1DataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + _ + Partial Public Class Table2DataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnColumnA As System.Data.DataColumn + + Private columnColumnC As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Table2" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property ColumnAColumn() As System.Data.DataColumn + Get + Return Me.columnColumnA + End Get + End Property + + Public ReadOnly Property ColumnCColumn() As System.Data.DataColumn + Get + Return Me.columnColumnC + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As Table2Row + Get + Return CType(Me.Rows(index),Table2Row) + End Get + End Property + + Public Event Table2RowChanged As Table2RowChangeEventHandler + + Public Event Table2RowChanging As Table2RowChangeEventHandler + + Public Event Table2RowDeleted As Table2RowChangeEventHandler + + Public Event Table2RowDeleting As Table2RowChangeEventHandler + + Public Overloads Sub AddTable2Row(ByVal row As Table2Row) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddTable2Row(ByVal ColumnA As String, ByVal ColumnC As String) As Table2Row + Dim rowTable2Row As Table2Row = CType(Me.NewRow,Table2Row) + rowTable2Row.ItemArray = New Object() {ColumnA, ColumnC} + Me.Rows.Add(rowTable2Row) + Return rowTable2Row + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As Table2DataTable = CType(MyBase.Clone,Table2DataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New Table2DataTable + End Function + + Friend Sub InitVars() + Me.columnColumnA = MyBase.Columns("ColumnA") + Me.columnColumnC = MyBase.Columns("ColumnC") + End Sub + + Private Sub InitClass() + Me.columnColumnA = New System.Data.DataColumn("ColumnA", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnColumnA) + Me.columnColumnC = New System.Data.DataColumn("ColumnC", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnColumnC) + Me.columnColumnA.Caption = "Column1" + Me.columnColumnC.Caption = "Column2" + Me.Locale = New System.Globalization.CultureInfo("en-US") + End Sub + + Public Function NewTable2Row() As Table2Row + Return CType(Me.NewRow,Table2Row) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New Table2Row(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(Table2Row) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.Table2RowChangedEvent) Is Nothing) Then + RaiseEvent Table2RowChanged(Me, New Table2RowChangeEvent(CType(e.Row,Table2Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.Table2RowChangingEvent) Is Nothing) Then + RaiseEvent Table2RowChanging(Me, New Table2RowChangeEvent(CType(e.Row,Table2Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.Table2RowDeletedEvent) Is Nothing) Then + RaiseEvent Table2RowDeleted(Me, New Table2RowChangeEvent(CType(e.Row,Table2Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.Table2RowDeletingEvent) Is Nothing) Then + RaiseEvent Table2RowDeleting(Me, New Table2RowChangeEvent(CType(e.Row,Table2Row), e.Action)) + End If + End Sub + + Public Sub RemoveTable2Row(ByVal row As Table2Row) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As VariousTables = New VariousTables + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "Table2DataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + _ + Partial Public Class Table3DataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnColumnD As System.Data.DataColumn + + Private columnColumnE As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Table3" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property ColumnDColumn() As System.Data.DataColumn + Get + Return Me.columnColumnD + End Get + End Property + + Public ReadOnly Property ColumnEColumn() As System.Data.DataColumn + Get + Return Me.columnColumnE + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As Table3Row + Get + Return CType(Me.Rows(index),Table3Row) + End Get + End Property + + Public Event Table3RowChanged As Table3RowChangeEventHandler + + Public Event Table3RowChanging As Table3RowChangeEventHandler + + Public Event Table3RowDeleted As Table3RowChangeEventHandler + + Public Event Table3RowDeleting As Table3RowChangeEventHandler + + Public Overloads Sub AddTable3Row(ByVal row As Table3Row) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddTable3Row(ByVal ColumnD As String, ByVal ColumnE As String) As Table3Row + Dim rowTable3Row As Table3Row = CType(Me.NewRow,Table3Row) + rowTable3Row.ItemArray = New Object() {ColumnD, ColumnE} + Me.Rows.Add(rowTable3Row) + Return rowTable3Row + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As Table3DataTable = CType(MyBase.Clone,Table3DataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New Table3DataTable + End Function + + Friend Sub InitVars() + Me.columnColumnD = MyBase.Columns("ColumnD") + Me.columnColumnE = MyBase.Columns("ColumnE") + End Sub + + Private Sub InitClass() + Me.columnColumnD = New System.Data.DataColumn("ColumnD", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnColumnD) + Me.columnColumnE = New System.Data.DataColumn("ColumnE", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnColumnE) + Me.columnColumnD.Caption = "Column1" + Me.columnColumnE.Caption = "Column2" + Me.Locale = New System.Globalization.CultureInfo("en-US") + End Sub + + Public Function NewTable3Row() As Table3Row + Return CType(Me.NewRow,Table3Row) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New Table3Row(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(Table3Row) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.Table3RowChangedEvent) Is Nothing) Then + RaiseEvent Table3RowChanged(Me, New Table3RowChangeEvent(CType(e.Row,Table3Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.Table3RowChangingEvent) Is Nothing) Then + RaiseEvent Table3RowChanging(Me, New Table3RowChangeEvent(CType(e.Row,Table3Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.Table3RowDeletedEvent) Is Nothing) Then + RaiseEvent Table3RowDeleted(Me, New Table3RowChangeEvent(CType(e.Row,Table3Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.Table3RowDeletingEvent) Is Nothing) Then + RaiseEvent Table3RowDeleting(Me, New Table3RowChangeEvent(CType(e.Row,Table3Row), e.Action)) + End If + End Sub + + Public Sub RemoveTable3Row(ByVal row As Table3Row) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As VariousTables = New VariousTables + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "Table3DataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + _ + Partial Public Class Table0DataTable + Inherits System.Data.DataTable + Implements System.Collections.IEnumerable + + Private columnColumnA As System.Data.DataColumn + + Private columnColumnB As System.Data.DataColumn + + Public Sub New() + MyBase.New + Me.TableName = "Table0" + Me.BeginInit + Me.InitClass + Me.EndInit + End Sub + + Friend Sub New(ByVal table As System.Data.DataTable) + MyBase.New + Me.TableName = table.TableName + If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then + Me.CaseSensitive = table.CaseSensitive + End If + If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then + Me.Locale = table.Locale + End If + If (table.Namespace <> table.DataSet.Namespace) Then + Me.Namespace = table.Namespace + End If + Me.Prefix = table.Prefix + Me.MinimumCapacity = table.MinimumCapacity + End Sub + + Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext) + MyBase.New(info, context) + Me.InitVars + End Sub + + Public ReadOnly Property ColumnAColumn() As System.Data.DataColumn + Get + Return Me.columnColumnA + End Get + End Property + + Public ReadOnly Property ColumnBColumn() As System.Data.DataColumn + Get + Return Me.columnColumnB + End Get + End Property + + _ + Public ReadOnly Property Count() As Integer + Get + Return Me.Rows.Count + End Get + End Property + + Public Default ReadOnly Property Item(ByVal index As Integer) As Table0Row + Get + Return CType(Me.Rows(index),Table0Row) + End Get + End Property + + Public Event Table0RowChanged As Table0RowChangeEventHandler + + Public Event Table0RowChanging As Table0RowChangeEventHandler + + Public Event Table0RowDeleted As Table0RowChangeEventHandler + + Public Event Table0RowDeleting As Table0RowChangeEventHandler + + Public Overloads Sub AddTable0Row(ByVal row As Table0Row) + Me.Rows.Add(row) + End Sub + + Public Overloads Function AddTable0Row(ByVal ColumnA As String, ByVal ColumnB As String) As Table0Row + Dim rowTable0Row As Table0Row = CType(Me.NewRow,Table0Row) + rowTable0Row.ItemArray = New Object() {ColumnA, ColumnB} + Me.Rows.Add(rowTable0Row) + Return rowTable0Row + End Function + + Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator + Return Me.Rows.GetEnumerator + End Function + + Public Overrides Function Clone() As System.Data.DataTable + Dim cln As Table0DataTable = CType(MyBase.Clone,Table0DataTable) + cln.InitVars + Return cln + End Function + + Protected Overrides Function CreateInstance() As System.Data.DataTable + Return New Table0DataTable + End Function + + Friend Sub InitVars() + Me.columnColumnA = MyBase.Columns("ColumnA") + Me.columnColumnB = MyBase.Columns("ColumnB") + End Sub + + Private Sub InitClass() + Me.columnColumnA = New System.Data.DataColumn("ColumnA", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnColumnA) + Me.columnColumnB = New System.Data.DataColumn("ColumnB", GetType(String), Nothing, System.Data.MappingType.Element) + MyBase.Columns.Add(Me.columnColumnB) + Me.columnColumnA.AllowDBNull = false + Me.Locale = New System.Globalization.CultureInfo("en-US") + End Sub + + Public Function NewTable0Row() As Table0Row + Return CType(Me.NewRow,Table0Row) + End Function + + Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow + Return New Table0Row(builder) + End Function + + Protected Overrides Function GetRowType() As System.Type + Return GetType(Table0Row) + End Function + + Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanged(e) + If (Not (Me.Table0RowChangedEvent) Is Nothing) Then + RaiseEvent Table0RowChanged(Me, New Table0RowChangeEvent(CType(e.Row,Table0Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowChanging(e) + If (Not (Me.Table0RowChangingEvent) Is Nothing) Then + RaiseEvent Table0RowChanging(Me, New Table0RowChangeEvent(CType(e.Row,Table0Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleted(e) + If (Not (Me.Table0RowDeletedEvent) Is Nothing) Then + RaiseEvent Table0RowDeleted(Me, New Table0RowChangeEvent(CType(e.Row,Table0Row), e.Action)) + End If + End Sub + + Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs) + MyBase.OnRowDeleting(e) + If (Not (Me.Table0RowDeletingEvent) Is Nothing) Then + RaiseEvent Table0RowDeleting(Me, New Table0RowChangeEvent(CType(e.Row,Table0Row), e.Action)) + End If + End Sub + + Public Sub RemoveTable0Row(ByVal row As Table0Row) + Me.Rows.Remove(row) + End Sub + + Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType + Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType + Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence + Dim ds As VariousTables = New VariousTables + xs.Add(ds.GetSchemaSerializable) + Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any1.Namespace = "http://www.w3.org/2001/XMLSchema" + any1.MinOccurs = New Decimal(0) + any1.MaxOccurs = Decimal.MaxValue + any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any1) + Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1" + any2.MinOccurs = New Decimal(1) + any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax + sequence.Items.Add(any2) + Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute1.Name = "namespace" + attribute1.FixedValue = ds.Namespace + type.Attributes.Add(attribute1) + Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute + attribute2.Name = "tableTypeName" + attribute2.FixedValue = "Table0DataTable" + type.Attributes.Add(attribute2) + type.Particle = sequence + Return type + End Function + End Class + + Partial Public Class Table1Row + Inherits System.Data.DataRow + + Private tableTable1 As Table1DataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableTable1 = CType(Me.Table,Table1DataTable) + End Sub + + Public Property ColumnA() As String + Get + Return CType(Me(Me.tableTable1.ColumnAColumn),String) + End Get + Set + Me(Me.tableTable1.ColumnAColumn) = value + End Set + End Property + + Public Property ColumnB() As String + Get + Try + Return CType(Me(Me.tableTable1.ColumnBColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'ColumnB' in table 'Table1' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableTable1.ColumnBColumn) = value + End Set + End Property + + Public Function IsColumnBNull() As Boolean + Return Me.IsNull(Me.tableTable1.ColumnBColumn) + End Function + + Public Sub SetColumnBNull() + Me(Me.tableTable1.ColumnBColumn) = System.Convert.DBNull + End Sub + End Class + + Partial Public Class Table2Row + Inherits System.Data.DataRow + + Private tableTable2 As Table2DataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableTable2 = CType(Me.Table,Table2DataTable) + End Sub + + Public Property ColumnA() As String + Get + Try + Return CType(Me(Me.tableTable2.ColumnAColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'ColumnA' in table 'Table2' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableTable2.ColumnAColumn) = value + End Set + End Property + + Public Property ColumnC() As String + Get + Try + Return CType(Me(Me.tableTable2.ColumnCColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'ColumnC' in table 'Table2' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableTable2.ColumnCColumn) = value + End Set + End Property + + Public Function IsColumnANull() As Boolean + Return Me.IsNull(Me.tableTable2.ColumnAColumn) + End Function + + Public Sub SetColumnANull() + Me(Me.tableTable2.ColumnAColumn) = System.Convert.DBNull + End Sub + + Public Function IsColumnCNull() As Boolean + Return Me.IsNull(Me.tableTable2.ColumnCColumn) + End Function + + Public Sub SetColumnCNull() + Me(Me.tableTable2.ColumnCColumn) = System.Convert.DBNull + End Sub + End Class + + Partial Public Class Table3Row + Inherits System.Data.DataRow + + Private tableTable3 As Table3DataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableTable3 = CType(Me.Table,Table3DataTable) + End Sub + + Public Property ColumnD() As String + Get + Try + Return CType(Me(Me.tableTable3.ColumnDColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'ColumnD' in table 'Table3' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableTable3.ColumnDColumn) = value + End Set + End Property + + Public Property ColumnE() As String + Get + Try + Return CType(Me(Me.tableTable3.ColumnEColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'ColumnE' in table 'Table3' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableTable3.ColumnEColumn) = value + End Set + End Property + + Public Function IsColumnDNull() As Boolean + Return Me.IsNull(Me.tableTable3.ColumnDColumn) + End Function + + Public Sub SetColumnDNull() + Me(Me.tableTable3.ColumnDColumn) = System.Convert.DBNull + End Sub + + Public Function IsColumnENull() As Boolean + Return Me.IsNull(Me.tableTable3.ColumnEColumn) + End Function + + Public Sub SetColumnENull() + Me(Me.tableTable3.ColumnEColumn) = System.Convert.DBNull + End Sub + End Class + + Partial Public Class Table0Row + Inherits System.Data.DataRow + + Private tableTable0 As Table0DataTable + + Friend Sub New(ByVal rb As System.Data.DataRowBuilder) + MyBase.New(rb) + Me.tableTable0 = CType(Me.Table,Table0DataTable) + End Sub + + Public Property ColumnA() As String + Get + Return CType(Me(Me.tableTable0.ColumnAColumn),String) + End Get + Set + Me(Me.tableTable0.ColumnAColumn) = value + End Set + End Property + + Public Property ColumnB() As String + Get + Try + Return CType(Me(Me.tableTable0.ColumnBColumn),String) + Catch e As System.InvalidCastException + Throw New System.Data.StrongTypingException("The value for column 'ColumnB' in table 'Table0' is DBNull.", e) + End Try + End Get + Set + Me(Me.tableTable0.ColumnBColumn) = value + End Set + End Property + + Public Function IsColumnBNull() As Boolean + Return Me.IsNull(Me.tableTable0.ColumnBColumn) + End Function + + Public Sub SetColumnBNull() + Me(Me.tableTable0.ColumnBColumn) = System.Convert.DBNull + End Sub + End Class + + Public Class Table1RowChangeEvent + Inherits System.EventArgs + + Private eventRow As Table1Row + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As Table1Row, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As Table1Row + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class Table2RowChangeEvent + Inherits System.EventArgs + + Private eventRow As Table2Row + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As Table2Row, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As Table2Row + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class Table3RowChangeEvent + Inherits System.EventArgs + + Private eventRow As Table3Row + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As Table3Row, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As Table3Row + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class + + Public Class Table0RowChangeEvent + Inherits System.EventArgs + + Private eventRow As Table0Row + + Private eventAction As System.Data.DataRowAction + + Public Sub New(ByVal row As Table0Row, ByVal action As System.Data.DataRowAction) + MyBase.New + Me.eventRow = row + Me.eventAction = action + End Sub + + Public ReadOnly Property Row() As Table0Row + Get + Return Me.eventRow + End Get + End Property + + Public ReadOnly Property Action() As System.Data.DataRowAction + Get + Return Me.eventAction + End Get + End Property + End Class +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.xsc b/Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.xsc new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.xsd b/Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.xsd new file mode 100644 index 0000000..70625f2 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.xsd @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.xss b/Code/Chapter 9/VB.NET/Exercise 9.6/VariousTables.xss new file mode 100644 index 0000000..e69de29 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/app.config b/Code/Chapter 9/VB.NET/Exercise 9.6/app.config new file mode 100644 index 0000000..86af0c8 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/app.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.exe b/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..26c2f015c73b647c49ea25c0fdbe7bcf54166575 GIT binary patch literal 61440 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 X81cY}2Sz+F;(-wljCkOGxd;9qyq>}r literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.exe.config b/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.exe.config new file mode 100644 index 0000000..86af0c8 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.exe.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.pdb b/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..df0a99ef2e85eedf358ee25a0e781140c4eefe68 GIT binary patch literal 235008 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

    V+8BU_MNNRX@FQ!524k$K26WF@i| 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%0AmpqrU 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

    rn6A)BS8-0mmkB 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.vshost.exe.config b/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.vshost.exe.config new file mode 100644 index 0000000..86af0c8 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.vshost.exe.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.xml b/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.xml new file mode 100644 index 0000000..5095d51 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.6/bin/Exercise 9.6.xml @@ -0,0 +1,11 @@ + + + + +Exercise9.6 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/Exercise 9.6.exe b/Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/Exercise 9.6.exe new file mode 100644 index 0000000000000000000000000000000000000000..26c2f015c73b647c49ea25c0fdbe7bcf54166575 GIT binary patch literal 61440 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 X81cY}2Sz+F;(-wljCkOGxd;9qyq>}r literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/Exercise 9.6.pdb b/Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/Exercise 9.6.pdb new file mode 100644 index 0000000000000000000000000000000000000000..df0a99ef2e85eedf358ee25a0e781140c4eefe68 GIT binary patch literal 235008 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

    V+8BU_MNNRX@FQ!524k$K26WF@i| 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%0AmpqrU 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

    rn6A)BS8-0mmkB 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 + + + +Exercise9.6 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/Exercise_9_6.MyResources.resources b/Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/Exercise_9_6.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 an6SWv1tu&oVSxz?OjuyT0{`Dx;Qs=n#o^xo literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/TempPE/testDataSet.Designer.vb.dll b/Code/Chapter 9/VB.NET/Exercise 9.6/obj/Debug/TempPE/testDataSet.Designer.vb.dll new file mode 100644 index 0000000000000000000000000000000000000000..81df70d5f371cf6a9cd58fb3bd29f6ed8d055ed0 GIT binary patch literal 40960 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 + + Debug + AnyCPU + 8.0.40607 + 2.0 + {430EC97A-C92B-495A-86F1-B87A5956BFB1} + Exe + Exercise_9_7.Module1 + Exercise_9_7 + Exercise 9.7 + Windows + + + true + full + true + true + true + bin\ + Exercise 9.7.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 9.7.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/Exercise 9.7.vbproj.user b/Code/Chapter 9/VB.NET/Exercise 9.7/Exercise 9.7.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/Exercise 9.7.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/Module1.vb b/Code/Chapter 9/VB.NET/Exercise 9.7/Module1.vb new file mode 100644 index 0000000..dbc183d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/Module1.vb @@ -0,0 +1,68 @@ +Imports System.Data.OleDb +Imports System.Data.Common + +Module Module1 + Sub Main() + Dim dsUsers As New DataSet("Users") + + Try + ' Define a connection object + Dim dbConn As New _ + OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _ + "Password=;User ID=Admin;Data Source=db.mdb") + + ' Create a data adapter to retrieve records from DB + Dim daUsers As New OleDbDataAdapter("SELECT ID,fn,ln,cty,st" & _ + " FROM tabUsers", dbConn) + + ' Define each column to map + Dim dcmUserID As New DataColumnMapping("ID", "UserID") + Dim dcmFirstName As New DataColumnMapping("fn", "FirstName") + Dim dcmLastName As New DataColumnMapping("ln", "LastName") + Dim dcmCity As New DataColumnMapping("cty", "City") + Dim dcmState As New DataColumnMapping("st", "State") + + ' Define the table containing the mapped columns + Dim dtmUsers As New DataTableMapping("Table", "User") + dtmUsers.ColumnMappings.Add(dcmUserID) + dtmUsers.ColumnMappings.Add(dcmFirstName) + dtmUsers.ColumnMappings.Add(dcmLastName) + dtmUsers.ColumnMappings.Add(dcmCity) + dtmUsers.ColumnMappings.Add(dcmState) + + ' Activate the mapping mechanism + daUsers.TableMappings.Add(dtmUsers) + + ' Fill the dataset + daUsers.Fill(dsUsers) + + ' Declare a command builder to create SQL instructions + ' to create and update records. + Dim cb As New OleDbCommandBuilder(daUsers) + + ' Insert a new record in the DataSet + Dim r As DataRow = dsUsers.Tables(0).NewRow() + r("FirstName") = "Eddie" + r("LastName") = "Robinson" + r("City") = "Houston" + r("State") = "Texas" + dsUsers.Tables("User").Rows.Add(r) + + ' Insert the record in the database + daUsers.Update(dsUsers.GetChanges()) + + ' Align in-memory data with the data source ones + dsUsers.AcceptChanges() + + ' Print successfully message + Console.WriteLine("A new record has been" & _ + " added to the database.") + Catch ex As Exception + ' Reject DataSet changes + dsUsers.RejectChanges() + + ' An error occurred. Show the error message + Console.WriteLine(ex.Message) + End Try + End Sub +End Module diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/AssemblyInfo.vb b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..9987275 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyApplication.myapp b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyApplication.vb b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyResources.resx b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyResources.vb b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MySettings.settings b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MySettings.vb b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/app.config b/Code/Chapter 9/VB.NET/Exercise 9.7/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/bin/DB.MDB b/Code/Chapter 9/VB.NET/Exercise 9.7/bin/DB.MDB new file mode 100644 index 0000000000000000000000000000000000000000..e55e50099230c4943c2a808c07f15701f52780a3 GIT binary patch literal 139264 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.exe b/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..81fe258301d57a95f2d38aee952f5afc74b2f86a GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.exe.config b/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.pdb b/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ec457cc5493e58b529f510d8ef60aab3fbcabc27 GIT binary patch literal 38400 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

    w-7G1`&%-Br=_o-MfMg2a{l@HZ@-Uy3 zZ)&Qlt=d@8Bv~h@N3qyltmxLDJ{10H<#_ebdEnzjPK&vrc4K3GQ!Qq2DvV#RB5@w} zgyAfJd5&DVmOMN6V~4P}Bed7r(ZgS;L0Jw)dad}LO3~C(Q{NJ-<{E@y{QN&4_R}~b zaNWTC2YxeF{`zzLbv40;`liO9?4JS`Jt7$6b=oJd)<2B%h;QXHel2eh zJR-uSoeWIFaAcp&@rZ7v+=xSQ@|l4-x5F__GRd^HzV?i?3iJ5DS5ecQk!HBm^P>M% zF3x~+M2BTkSqJ)6>1Slfk*7G-HQvzk(O+uHg0+exKXr~G%{S<%pYm@mQ(_=99Z)~H z@0Ko$<*1+9uQ2VIqsKaOlkX>h+j)b)aavt5ZJ)(&4;j8(y$)qM>&I_Rev<+a@-otH z_wnrdT`CFd!??au`SIJqS}l>54s2_F6WB}&Gt_Y@Ba1&^{YH8#5!)<)9VvP%X^?y;`k5AMlM0p|}F5i#Q#ftYt zW8niTVlRG2BvF3NPe=+;Jl2%`-rE#rGWHL$O-rU%{b1TOt;0c zoaa$lFRjNPgr{)B!Keb5MtdiK2AbE#KywcBZ20MP)i0MMM4K*!un2sFd|Z5te7t-_IO~ITzx@6)--X2fCfB_3d(W~CT$kW% z1>bGt`;2^-5&jEx9?lQE9KgrE5>N`@oMIJVHGuV53s?uBX59fO0|Wr&08W4^0i3_V zWy^0o3%D%=CnIo2$hLzUfZuxNZvpVz&T@XS8TcN+7QjplTW4aS+%mZ>;I@F<0&WXT Hc?ft&}q literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.vshost.exe b/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..ce3f102c36be07551ba7c7fad64c8b24709bdb91 GIT binary patch literal 5632 zcmeHLX>3&26+Umg;MiccvX$*QEU{T$9osBr9ou8T!CO4GX{f1rGjlzDVoO|!Prgq~qltDz9r~?B;$Ix=|OT07mVmN>1Z}RE2drlP`Q)*5X zG<6uR8guNZqj#!d-Lh;?4GGnWTdHBHf%>4@X-9-MYENnj=gbf*dm1jLN#cftptQL=|aWNfvWlQP?*hWf2t+?Lo}%k$q{6hp9nL zgjRO$01v%$;r&I$YdXI8&)FG$2N&cn{PM~EIUlboSblZ6|HQ<{cD(w-H$Pi{GB!Q7 z|H6B@KUnhF)GHNJoBn(6mQTf)Ia@0-J4*9+&;GPbIdCa>RcoH#{Qln`m|0=hKQWNC z!#y@@!#j(1Un%|Q)aTD`kDfW+w4v>(rqa#M$bmyo{cgLmeRW{M$FpYm3da-W&f8x& z0nLKxvau(Eo?AGHIeD_NCo>0YuLwR+p^ze1#Ifrt(TcT2#Y;+-Fe_7rvIeo7wS(yA zX#bP}I_Nou6?Iv{Lq2$0&05=B9YEWMekRLTn0AN-P|#J@A{QJ}x~7y8++mAT5@Rw| z@Q22sG9U6Nxk<0GsfFs1h&|K+JVrkSo|br>`a#cB7|RvrMHFKBr(Uw zl5-@k@UiBtzD8d*9q>KoTQAp`O~3WAt@psmrLqha^n)4xjBMH^@f9F@n1~ujPf^Cu z1X8hoxc8RIqmNGBB-e08_V!a4+g72m#M~*saoB2`Xc84k`hJPumRK&aTH=EeACjm` zG$d}7*dy^#;3Rrn;NPL;}jK9&ZX=lbcdYSfRoToq2>!3ASPn#8u z^5_H5<0%vLR4N9}qQ$`Zh^$7XR0mux@nJd(I!OC~-=*IJ!;-UI&T=Kai#`PZNxBT& zOIH;?y#RZey+d~b$L>D*2U4BLHo7PZt&wf=(v$RGXdorBqSlVYO|go)+z#9IG|?@n z%JQ6^2HUVasx`un?b_|0)?&DE-3)s1h+%8%Ad2nU;Mif|y42~0ZO1f16zp+5(Mk28 zEh6lZ7WQn1YIVa(4rq;W%QHHKR%v&}3{yBk;dB{LLCFE;>z)xZOvCFb_i!dcaZe1+ z7VReV8n#8{t}8l2X3u)jvj&QWL{kF+Vd_0WBWeu|C7jb5g=@zhHd-g*o}-(Cj2hjF z#`S2LwxI3_6TXN_8!^$tUW;&C*dJ1wvR7@j+fFBZw=LZqR*HQcc5v8%N;}r$7|{;z zRXI0nx6BteC@kn? zx7}3wC`~t$^_JixeXZ}r;oYm_b%)++Tlw0>+HX%C`+@-Ake_bp%{*%iWKZ&%~jNE(TX9o*6g%-Rh7EHhP*OlHTd*KJ4?D*a4-;jvD#}$T zOIQn=@p>DHr7y*I8$Y743XSBB{D^C1B}AnPX@5AP4(=bd(sp9DBln=DmYb$353H*? z$g9&OB6vF%DKvX%LSbW(nz&Qd#HFe-r=+-e5z#jlnlL1prkZH9Lb+*IH9O7$Qj&K* zi1dqo@D0qF`iTGURq zl$y==AvIxC2iL{8P9EfJ^b+N0<`}+a;gbg`1N`W1H1*>kDp+;uS4JU@0csxjmC)CT zpTKMnR`9n2umfBdeGU9>R4z4m@TcTs(x)CoK$mlQycQmW;RnyOu?i1|k+nM%lbG(k zU)oNsIsglXDI;B4QqNAHkZxdK@%Jm&3M+mh+d;;>sRJgjdxC zjKDHcB4+hTNzOL=or(eXIE%yQ&!joDM74@5pgblnV%bN-JGR6=O_ohmcu4Tp%XjSM5Nh|8#A5K!MWx={dKuZ TBcLY!&!}P9UAq3eeA)j4ZC9R* literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.vshost.exe.config b/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.vshost.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.vshost.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.xml b/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.xml new file mode 100644 index 0000000..8311809 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/bin/Exercise 9.7.xml @@ -0,0 +1,11 @@ + + + + +Exercise9.7 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.exe b/Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.exe new file mode 100644 index 0000000000000000000000000000000000000000..81fe258301d57a95f2d38aee952f5afc74b2f86a GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.pdb b/Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.pdb new file mode 100644 index 0000000000000000000000000000000000000000..ec457cc5493e58b529f510d8ef60aab3fbcabc27 GIT binary patch literal 38400 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

    w-7G1`&%-Br=_o-MfMg2a{l@HZ@-Uy3 zZ)&Qlt=d@8Bv~h@N3qyltmxLDJ{10H<#_ebdEnzjPK&vrc4K3GQ!Qq2DvV#RB5@w} zgyAfJd5&DVmOMN6V~4P}Bed7r(ZgS;L0Jw)dad}LO3~C(Q{NJ-<{E@y{QN&4_R}~b zaNWTC2YxeF{`zzLbv40;`liO9?4JS`Jt7$6b=oJd)<2B%h;QXHel2eh zJR-uSoeWIFaAcp&@rZ7v+=xSQ@|l4-x5F__GRd^HzV?i?3iJ5DS5ecQk!HBm^P>M% zF3x~+M2BTkSqJ)6>1Slfk*7G-HQvzk(O+uHg0+exKXr~G%{S<%pYm@mQ(_=99Z)~H z@0Ko$<*1+9uQ2VIqsKaOlkX>h+j)b)aavt5ZJ)(&4;j8(y$)qM>&I_Rev<+a@-otH z_wnrdT`CFd!??au`SIJqS}l>54s2_F6WB}&Gt_Y@Ba1&^{YH8#5!)<)9VvP%X^?y;`k5AMlM0p|}F5i#Q#ftYt zW8niTVlRG2BvF3NPe=+;Jl2%`-rE#rGWHL$O-rU%{b1TOt;0c zoaa$lFRjNPgr{)B!Keb5MtdiK2AbE#KywcBZ20MP)i0MMM4K*!un2sFd|Z5te7t-_IO~ITzx@6)--X2fCfB_3d(W~CT$kW% z1>bGt`;2^-5&jEx9?lQE9KgrE5>N`@oMIJVHGuV53s?uBX59fO0|Wr&08W4^0i3_V zWy^0o3%D%=CnIo2$hLzUfZuxNZvpVz&T@XS8TcN+7QjplTW4aS+%mZ>;I@F<0&WXT Hc?ft&}q literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.vbproj.GenerateResource.Cache b/Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.vbproj.GenerateResource.Cache new file mode 100644 index 0000000000000000000000000000000000000000..5989df9f4916aba92a36842cd0b194b5a355126e GIT binary patch literal 786 zcma)3O-sW-5KU}T`=L+|(t{p~cn~b1Rf=AUV8su#;1}Y-%Qic~wcD)hB+~c`y!oR9 z5B?Vafd`!_DpG?uftO@<_RX7lj_WwiI|aWvW~K-(dn&L7O&I&ziPF+P7dXI1{Q@j1 z6Lr@7CO?gOH_>rop%Xz8TcI2EzOH`l{u#yulds6ft7oWV$8j0KW5>yAAtu}B{0>E+RJ-<}`b JIZkm@J^&U}>97C* literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.xml b/Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.xml new file mode 100644 index 0000000..8311809 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise 9.7.xml @@ -0,0 +1,11 @@ + + + + +Exercise9.7 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise_9_7.MyResources.resources b/Code/Chapter 9/VB.NET/Exercise 9.7/obj/Debug/Exercise_9_7.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYFm%Y>aKH7zGon#imwM+Jd<`$Ek8WFq@1bqTuz&G$hXHIJqOOVpNm_5wTH#6VNShi(Zzwx6#eZ^BKUbJ{mNiDP!#6o!^=?dO^0_mpgLsakj z)o?Mag_TOM=(8$wDASFx3B2c^A3@ZFU5EmRdK~m=bj~TzJ1bm(&MOE(p#}78muXnz zQ6B;_HMxRbELEDx*jL7bkHS)u$8;mtoGBxNue?LgV}w$d#bC6Pi|tg$Fz^~u2&@%( z)ZSyJU&gE}z+`bS#-=PLor{kQss0;CUimf2f)z&nPaKS>fc!V)V3#RSS<2GpZy|$9 z?QSuVfTkplQ^;N(Q`PEd@Xu$<_o7fjiK#lW8)l3>NA^655_wXbOZvH1 zTHa9d753d}r8s7pC>)}Plie#BICRPtQIrUQ@Z3oh%Z)po?bY?>)9rR=IMwxso1GQK z2Jl9ze&;o9<1K&5uXPT3350OZVD#M+MehuRM+j#Tp>ZMv+%zH60YtF@Dj`t)WI!xt z1W_VJiIm(FiD?q&NSsIE5N(wqJ0ll6=Ah=0d~-|$R}hB>q-PKBBc+3y4^c$O@!S!; zU^;HefQKA{nIksX<2u$Zj(yTL8$Cls(gJ+?^4_w4eST*<)WOy9)&7e{N09wnMR7E( zyPs#6hE~P8^yB-rDrT^W9>WvufOY%Z$C^ + + Debug + AnyCPU + 8.0.40607 + 2.0 + {4DA5DC03-F0B9-4266-B762-95BF35784181} + Exe + Exercise_9_8.Module1 + Exercise_9_8 + Exercise 9.8 + Windows + + + true + full + true + true + true + bin\ + Exercise 9.8.xml + 42016,42017,42018,42019,42032 + + + false + false + true + false + true + bin\ + Exercise 9.8.xml + 42016,42017,42018,42019,42032 + + + + + + + + + + + + + + + + + Code + + + Code + + + True + MyApplication.myapp + + + True + True + MyResources.resx + Code + + + True + MySettings.settings + Code + + + + + VbMyResourcesResXFileCodeGenerator + MyResources.vb + My.Resources + + + + + + MyApplicationCodeGenerator + MyApplication.vb + + + SettingsSingleFileGenerator + MySettings.vb + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/Exercise 9.8.vbproj.user b/Code/Chapter 9/VB.NET/Exercise 9.8/Exercise 9.8.vbproj.user new file mode 100644 index 0000000..97a12b8 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/Exercise 9.8.vbproj.user @@ -0,0 +1,7 @@ + + + 8.0.40607 + ProjectFiles + 0 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/Module1.vb b/Code/Chapter 9/VB.NET/Exercise 9.8/Module1.vb new file mode 100644 index 0000000..baeb17e --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/Module1.vb @@ -0,0 +1,77 @@ +Imports System.Data.Common +Imports System.Data.OleDb + +Module Module1 + Sub Main() + Dim dsUsers As New DataSet("Users") + + Try + ' Define a connection object + Dim dbConn As New _ + OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _ + "Password=;User ID=Admin;Data Source=db.mdb") + + ' Create a data adapter to retrieve records from db + Dim daUsers As New OleDbDataAdapter("SELECT ID,fn,ln,cty,st" & _ + " FROM tabUsers", dbConn) + + ' Define each column to map + Dim dcmUserID As New DataColumnMapping("ID", "UserID") + Dim dcmFirstName As New DataColumnMapping("fn", "FirstName") + Dim dcmLastName As New DataColumnMapping("ln", "LastName") + Dim dcmCity As New DataColumnMapping("cty", "City") + Dim dcmState As New DataColumnMapping("st", "State") + ' Define the table containing the mapped columns + Dim dtmUsers As New DataTableMapping("Table", "User") + dtmUsers.ColumnMappings.Add(dcmUserID) + dtmUsers.ColumnMappings.Add(dcmFirstName) + dtmUsers.ColumnMappings.Add(dcmLastName) + dtmUsers.ColumnMappings.Add(dcmCity) + dtmUsers.ColumnMappings.Add(dcmState) + + ' Activate the mapping mechanism + daUsers.TableMappings.Add(dtmUsers) + + ' Fill the dataset + daUsers.Fill(dsUsers) + + ' Set the primary key in order to use the Find() method + ' below. + Dim dcaKey() As DataColumn = _ + {dsUsers.Tables(0).Columns("UserID")} + dsUsers.Tables(0).PrimaryKey = dcaKey + + ' Declare a command builder to create SQL instructions + ' to create and update records. + Dim cb As OleDbCommandBuilder = New OleDbCommandBuilder(daUsers) + + ' Update an existing record in the DataSet + Dim r As DataRow = dsUsers.Tables(0).Rows.Find(8) + + If Not r Is Nothing Then + r("FirstName") = "Venus" + r("LastName") = "Williams" + r("City") = "Houston" + r("State") = "Texas" + + ' Update the record in the database + daUsers.Update(dsUsers.GetChanges()) + + ' Align in-memory data with the data source ones + dsUsers.AcceptChanges() + + ' Print success message + Console.WriteLine("The record has been updated " & _ + "successfully.") + Else + Console.WriteLine("No record found...") + End If + Catch ex As Exception + ' Reject DataSet changes + dsUsers.RejectChanges() + + ' An error occurred. Show the error message + Console.WriteLine(ex.Message) + End Try + End Sub +End Module diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/AssemblyInfo.vb b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..814cc00 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyApplication.myapp b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyApplication.myapp new file mode 100644 index 0000000..76de46d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyApplication.myapp @@ -0,0 +1,9 @@ + + + false + false + 0 + true + 0 + 3 + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyApplication.vb b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyApplication.vb new file mode 100644 index 0000000..0154603 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyApplication.vb @@ -0,0 +1,12 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyResources.resx b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyResources.resx new file mode 100644 index 0000000..3e18af9 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyResources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyResources.vb b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyResources.vb new file mode 100644 index 0000000..a8884f3 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MyResources.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + +Imports System +Imports System.IO +Imports System.Resources + +Namespace My.Resources + + ' + ' A strongly-typed resource class, for looking up localized strings, etc. + ' + 'This class was auto-generated by the Strongly Typed Resource Builder + 'class via a tool like ResGen or Visual Studio.NET. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + _ + Module MyResources + + Private _resMgr As System.Resources.ResourceManager + + Private _resCulture As System.Globalization.CultureInfo + + ' + ' Returns the cached ResourceManager instance used by this class. + ' + _ + Public ReadOnly Property ResourceManager() As System.Resources.ResourceManager + Get + If (_resMgr Is Nothing) Then + Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("$safeprojectname$.MyResources", GetType(MyResources).Assembly) + System.Threading.Thread.MemoryBarrier + _resMgr = temp + End If + Return _resMgr + End Get + End Property + + ' + ' Overrides the current thread's CurrentUICulture property for all + ' resource lookups using this strongly typed resource class. + ' + _ + Public Property Culture() As System.Globalization.CultureInfo + Get + Return _resCulture + End Get + Set + _resCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MySettings.settings b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MySettings.settings new file mode 100644 index 0000000..0bcb11d --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MySettings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MySettings.vb b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MySettings.vb new file mode 100644 index 0000000..3d12c6f --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/My Project/MySettings.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict Off +Option Explicit On + + + +Partial Friend NotInheritable Class MySettings + Inherits System.Configuration.ApplicationSettingsBase + + Private Shared m_Value As MySettings + + Private Shared m_SyncObject As Object = New Object + + _ + Public Shared ReadOnly Property Value() As MySettings + Get + If (MySettings.m_Value Is Nothing) Then + System.Threading.Monitor.Enter(MySettings.m_SyncObject) + If (MySettings.m_Value Is Nothing) Then + Try + MySettings.m_Value = New MySettings + Finally + System.Threading.Monitor.Exit(MySettings.m_SyncObject) + End Try + End If + End If + Return MySettings.m_Value + End Get + End Property +End Class diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/app.config b/Code/Chapter 9/VB.NET/Exercise 9.8/app.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/app.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/bin/DB.MDB b/Code/Chapter 9/VB.NET/Exercise 9.8/bin/DB.MDB new file mode 100644 index 0000000000000000000000000000000000000000..e8797dc351770a5c1500d26ab5ab949f8838abb0 GIT binary patch literal 139264 zcmeHw3v^t?nP%PYmelVn%fc9AqsHc8jAdF6WSamhS+cPe$+EExvC)F{#BIHdBpVz^ zEXZaugp&n^-H9P2fpD^fohOrIPcrxr6tnR{GME#B$%M%SoXqAVBn-*foXJz#@2lIT zzTIlIWm(9!{8#Jh{#}p1{`#tJb^U+Utx}d!TLxQt+gtkEWAz<_vAQ)1Uh1p8-qxLg zZ*Ke9Gq?9w|0nhMM?e42=*J%````Qj@t5&KKl;vR+y40{hd;mW51%}=@e{j$v9kH~ z$A5q1=+ggNbonQDZp*v7>i_-tN6+r-m|OeG_0LvZ{oejt9=YV6W%X~}^Qgb%;GbUK z-Lm0B7v0x++kgM@!P*ua(Uf%-#yy#%h7@(>z=%8UigdMG@aeS&3~=NKD!t0XB-5H6RM{ zG6S?!8oM+|Myvoc&mSvbIa1Ok#dRtoC9cni8)hA(vBEd93aPw|fDy~f0Pk2H4pyv& zsH#=cyZ!7wKNriIfevdLhO94F4@^7ee|G)33Iw{m7w1eGIJt zra+IfMn_fFzd~Tirb2hG{?9Z>l{L2GIR|OjCg_|rtPxhOu3$dE4D$K(SB8zbRG9X1 z@S8ub%m&|p@*#De&d-DYUR)97$NvDXLKVe-o0kgXe*{-l1@S+G3vCMj3vfB&jL9H` zARq_`0)l`bAP5Kof`A|(2%G^3{Bi24zfS3~o{6#;P0%~2b*xO5Nvk2Q@@=7N?x^Ps zDnit`xaf?@Kx@}fo8XnMu3FiYPbxkW>f>6EbwnU5Mg!ll%_GPgb)M-0YN|z5CjAPK|l}?1Ox#=KoB^y5b#*VOBahwVxhP zfQWh$JvEP=TvsqMV(9?i*kXWGKyDkuxcPXnD$@EtC!`awBLT5Z7efgzExy0C!z*tN&b%uLDwAzFDoF zRR3upa8e|-e5?yds{e*nMgT1bSySX^8YK)Xr(9fnkYW|Zih?%i{oSw$^k6x85DUut zVIkn^gDC#H!wO*|_^@7DZ(=(>?zIV*=r}h*m+#ctKbNn!Y0aKX@=dylW4U=P9OK31 z_k&6M!~mAJCt$TW@$&SAs7w7G2nv3mE`K zG}_)Ymc|&3w80`{g$2V{*V;;xB}@y-e;HvXgZ1Q5L?Ofp0)l`bAP5Kof`A|(2nYg# zfFN-8B4AnD&8y6+MDPDsX8$7kbhI_PDEj@#Baw}fK;*^nf$%lq--P}?)D^lc^mg#^ z;LX9J;6DZaJWv}L@qgVv=)cPU^MWsq@i}|Z5Xl7rK|l}?1O$OI4uRNoNK`l-Ow2|m z)4}Tu;K9iOaqj~H+HQZUe1}ez0n<+l6Fo(7iqcGrAdq2Np5tj@a*BXVU-IhdU^OjF zrb7_nG3ybSmbP|^Onlb8;fcFx{LovNeMLVJBjv|!Na@bUB2f+6PXd2nqW$0{?#w~p zz=M$GKvR8BeSKr&=B}>J`fZ!L_(K*gOa(R6cO^Y7$8$@2Vy6=;87Jy^ zB{tt$-?P2Fwd>~Xolabj3FvH3^f+E&$E&L`vAr|t6-j#S>jDQYiS79G)Hj$c6n(4% zJG=IEIbydr+_Jeb$-wUpOv;p(@^eS^rM!3bZBA@Y#?DW9k1s`m69{Sgx;7`AV$7kR z=YS*2t@Zob`+BtGa~*%m+0>wYypB&--_D)&iGAB!x3p{Tfa6V$O`ErDZ{5uOHdK_a za)=WI1OY)n5D)|e0YN|z5CjAPL11PO@L7BL>VH<}@%am5)kD||-9==LDV}F40tXzy zq5%@nIio=msPSls1m5L{hDrE9L`dN5fM}Ei*4{^L5?I#(V*vb~t+h325NP~AyydT zDiSb5*l|OY8KT?}6|^<5T*?q(LlluA)z|vt?8sch0RB`H`$UBP>KsbvPK7t4HQ)`Q6Qn0Bak?caY)Qd zT1@PKA%cboez54(lG{Ic{_M!$Wzhy2!~@U9Ugo%KeEaS*tnRws#2JZLeDTNa+vB+T1Bw z9axjS8--2ye!E8G*l;z9komdZVXnX&Mb5!|3&0#uH-c3+WL}}hf0n0M;U(A{tQvuJ zJL;u7DOX&L|Ex$c^W|i=1=ZHC5~#vKjple(amcDGhlRwRze&mRwmArzI{?(h+XLzP zC&vs8F$c4Cno*CIYPlN!S(cK@0wXX(t2WY@JEby>r4D#?qNu&Nx1$njl&bb78%`Z+ zzfP@6`&2m@RHN8%IWpLS%ILwT1qI))HXwse$bM}2ab)0`Tn5<5Ioaqx^Vo9TGN1px zb4R&UqjH*$yJa@vG1!fgv?Z~2N|644O$s8uR}GkKOZ~j|i`%#s-#xzx$P+}#;$22^}-6ZlW2>4-bulDH?E+a#FQs9LpF zvvWW9hE6{JWJfF=5R7c*?v^nf*%Qi$q=jsJ9%Y!ByPIhps_WQrGg^c%*&>_{Fufm0 z_5o~i++7n z?0~Q8;x`XI{HxaD;h&z}z4@!_AN<_%U+*!Pm~4-wV4^ZH zItt`obda-sTEC!|iRJQ|NqJq_nrej?^^**Fjh9Pa<2A$bnrvP2QVGhC*Lb<)HC{6; zugTUWFZHYpd5xD#UgI^x@|tX2@=}${kk@#*A?PW$m1XY>{hWbmmLzWSiC& zjU=w87??mm&mS9=Bp+;Ryw?aKx`s36p)%h*geO>j9Nk8ZKI_=lqaLeY#9w)JLyq)&m)wemZJsDdcWarV| zO$|DG(=g7ps*v&u0)l`bFjWL%Q%&ejM~&l@9mWH*$(aGnY%0?kQ5I*UcSeXZ9YQ!m z*i+*)bkfO1|JNErhKeov|9FGBGq64_`hPLh%o(=3;6a+D`hSL%0NsxLzUlv#wMgs# z?3TRhIeVX7Hul})^B2adhm@5;oOBl^2~HaVJcV8xqYM!?L=g#e8MbAJ2nh^^Y>y$L zhOkMX&$YdVC^WDW7lukfO_Wti2A9e}aG@AP5Kof`A|(2nYg#fFK|UoE8Mm z9GmgiPO1Dp>yMF%<^-trpAvIPeA*G9mJT;pk$@$sSQD@aoTmxs|K}URo~r&2&S)q0 z`OJdE{AsfYVDSMh6!Q)|gffU}K!YIv1OY)n5D)|e0YN|z5CjAPK|m0g8UmK}LH!mI zQ(Nj5#r^+Yh;~I6Mvp`~BU9s2O2ejCiXLpT6?H_cL{& zdbmmBZ_00w934r$`ob{deF1e>-%R2pc?kl7fFLky5b)-CEX-Y)et*`KOA0b21fExxbtbh3jz7#8WauSljLAXV zGb($#HF3YF0%+H%@eKD7#B=Gxh&8NMcG=v)!R%#4CST@-SrH z-cO4*!55Eu_2`_po_uz}+nEur$E@ziXh63_6UG)BGGCA(HnG($ek7@_@SQ`Byv3b8 z2>c16a-j_CkQePi?0ra!oBasfhz)J~pu@+oRV;ORZq<7-ZXPU%2Bj03mHz(gk6-l8 z<--=^y^zdg6LRdsHp^z0k(0@raf_74Vw(-)q8#*_j7#n|t5Vx3PbSs)IAM%J_`L8L znkfHQFFmNsZSHO^+_5&bH?%usa&#f`H`b4-ow)fokf`@5(>X5t^umf$4( zum_`Vf1HOM(~UCH=gNN#_JHp@>0UFHK@j7g6Se zrhqfKvt7_hJLB)n^t3a*yP^YY+JDo&UikEH$NkPs)XvfvG=E}DA=fQzTEU5JYZsx88G5v~$kFk3@U za9xROIj&M%($|>UKK1)d+8NC_pY3QUIVcx9lWX=x@KLxa^1Sh z(zWohN=m8(kE)LmUx8n3BaS$p;Bx{6g5bst$A32toZ>9}rjdn?HG9o>6s`+5gE z?iwVEIJ|D^=pRV*_15}eTHw03t?lwY^FVs%A%d3ij}2(^tjT(`JtP1R~}tc=%I zta4unuiLcdy2W)>b(Q7unzFU=s+E;BRjZr}p*PfCx45#bvSQ83idAb?@v2=3??~{L z^?d__v9)&%cJ#J)^v5>zcJ}?}Nbs`t$ds<^y1OBNd0kayytH=R>Ue2cS?#*gRck9N zO5^dGcpZ~%Ppehz&o2sCo}!W;e)C$N3Sa7}zt$6k z($)_s+WWdYuJ@Ef*&T!prVpC<6CL>B=~S0C!yLM-`G&gzOZm=tWktMH`F+0H0u}T` zt)h6mvg#vhN%@NSlK7H!>YC=8H*DOvwOMW1KQP$QQ&H||_O_L;80>CcqM91k#%lHs z_Px-9s_yGmw<-?~y0ebf)HT(u@n4TARDTV0-~ZV(WUW!Pj}8?)IAn!-FV-tg(4$b#qVk zKuddHdD(p%8&#sMzi*(g6SF%tZG(w@9UoG$x|YF~SQE}j>}VSth?TEUWwC}tYky1s zy!}J#m1W;|1i!I!?(@daEA+VS8Q*EahzX`9?heoEC(icmx`J6R9`$?tem28~aJO;} z%Phye6639P_$`eCUuyYNcm64izo=L2O^$!2o^vXt`&TgK`~FZIH;(E5a{~=G)if|8 z41Zo#ueRGu>?6@5uT1p0fhC`eORoRNBmCdqDN>KWf_DJmxc=X`LiMSF;CohF*8ZRE zYyT;~tpA@C>;Jh#>^M5MA*ebxVd|h8oohSp=6u>4VbtX@$k{`;BIGW_#Y;Wtl6mAT zC;n5Z!|1Z{(*i#pNgLI%csNHtrb_l>!kwv7-PGfdX;H8W_P?@I-4kv>pl4^SA? z5)G&>D2e3MiFm|jFo_$F-7VAyG~WS#{zUN*&B-KhJqdN;Sz-g+*P-L zY5mj1#Rd4u#SX9fXczSCSnq(44_PXduQpl1??ksT#@t(;z0mvM(dsX+TDIqohc>j) z@4Wx<=5Ze9O`0zAlyJxQr(gVL@jYLEz2WbkD*5d{Ewj6+l4o+`(Jzjx{lm>qw*8mi zYe z7=fE*lOqXE{P7q@FVAo8(OyOHvP^E7_2kZth)-{Bnf1I!mkoJfF_}|i)08W7%ui>GFC|yS`$5h$( z0W+AU!GSomfNBCxrk)4z-H|z0jkELhpgZ$eKl=u9RmYi-%V?3{^NL| z%Jbcv=q;-n{%De{C@(lrsJy<$mbNedLm`gIMZBuNSyG4zs7?KSoVFfNM9C^Zy=eU6f4z0VB`tm=59qluJu92cjGEFb2-kQyTa| z*GnQTE{lX?bmI)|BQH8jFX-Uh37t;`O(q^4fPu7j?M?t^p}g4wyvW&?Er6$^=4Avp zQzt$sioHn0`3N&l;L~c;$Fw+jvxUQxtbZO9jSD{MhV=gvr|}{U7l_i`um2ki^cRkS zNcenXVJy2Ye=1CWb>uJBrlo{d;HZLr5Q@xxikoz2+@6Ut|353{|4sXv@w<7?*RjsX z{(m!G0g|C0AP5Ko=OO~K|KGV->l2n)_Wzp@8VQ&c2#l@&Kc@A6mdU4{v-$r2FOojv z=l>_;Gb_-UHHA3fl*C>@0@ellLJ~0H*b5D@$PgD9qJ#vDM0U&&7aL-+A(oJUEyKRV z5SJR_GDBQW0x#p*OAT>_A(k29N)j*@*~<-4YKRqvxQZtWQf6~_p&d3pMIKU;wKoizwhD@J>d6_9|M9m~r>oHeBqK?MOpU}g~T=`HX^M{M=Iyr(za zduYd#yUW+^y?En}*NzY0|EnXfTR$z?{+q5ZzjJ5Z;kQ3K;H$d$&4UmB>a_=!-1C>` zJwN}kzk1-cViowoqNkR8;*Of9U;5ILM_0Y{FK_P3oBPLie{5g%^6MXXz4+RH`@(w* z|Mcwc&0k&r;OCbAdJkT9vs6JU+hfCFC9m+<F$%iHE4XzuV$zLCr~I|s42 z^@PkYrq995?0Z8-%du5y=4V-|h!z-eN+vX9q%n6&wGFcHC1ht?oCKEOa_gI8!!=4( zdy^Z0)giPF?-jZ~RZa%gdQ0Y98EnBTu03OGV>cj!PP`U)Z1{0x;F(+o-1!xyKtun` zW6O2ReE$2+or+KTYD8yqo%A;cj}1E|NdLdaDFK^4np84_pSNA9Gcb1q44Dj^_L+J~ zb3nhb&294EIGoPf`R2+1%`BP0kxQKn%-x;AW>c-p9N!%$ln%g9p@X?c*4p-u(@yt(oiXjo5 znBi8u=h~WlkNS_q>c#g!{X69fbSK|l}?1Ox#=KoAfF1OY+d zBoMHyS1hytzoq^ab_H>>2Z5KL=l%$e%eDy`_MjR+Z(&Y@yYP*g#}4UC{6 zXt)t@)6zBs4L1UA+O!QG6UpNyM=-MLbd9d~Ys{~=;^Gt;-Am4m(`DG?Rh%Fo2nYg# zfFSVxArP?Mvs3y%&i@lPix3d~e=?QHv6>mLO(y>Ajw498>sQbaG~5WdX=xjRh8qDl zZQ6$D|87)-76b$VK|l~VQxNc3ZIOi&2s6QMe-p$O?=ukruK&k;LW$Wquf*(=SK?t1 z-XJRRlEAx4B|Z{(rLIKp5r7x>O7iK0?E^~m_5nE1vcyjxoZM6rAQ1u)B!MF;OF|?t z*HNN3=ffV7C3-79yr)tUWf0!CDzQo6OwE!)5=9{9keCZX@8pLgDof_l2WOs@6sPw8 zQ;IJV+Hv}jC^JO4Au5t9g6OZR!3t| z6@4r6Lgb0aP-JIh5!6atspIH^R|OXa1Hr!t90+s=wg-;;kNOY!pYfObOZ;K~?+WfK z=qqS0*ii7@{BPv{b^fFIi}UULKjwX$TV#k61Ox#=;M_&PNBfXE4O{G)Y|Z9lu3h)c zu4OK-ncR=em90xSnEo>NPcvR7mTM!vnUvR+twB!q|C`4BAOR+KXw#cNruJ8a`8u;b z7%x|QFkUm<9!$2b_JCCZnerMhm%PR+m%K2d^WlYQAN!a6;oUFljrz=;J!xtWs4{GV zm2(fMY!0+!tWi+gJE`2-Ky|IgXFk9f-d ze?&p={x|FQ{|j*@3zKTuKA1-Hg%qZ|vWDh!nhoKY8_OAvNwl2dm~G1$&TSC0NoVrs zK6AOkd01SoaK8PND;!gYIm0o>m@^zG z21#t~xT|I0aurkOV`*}}@?mkaK9>P$rj~e;8Rl`>G$h;7vdfS+b@c8X7#+De(cPVB z=>e5fNSYl^wqP_BjE>YM+S(F*qa&LVd-m|wGBD6L(6+Z9^oGHf?)^*E#V|@m9W*lE z|8KWL_E(~}MGK?PMRr7f7d{wX8GbkPWN2%sAap2rThJHuz5F*Ysle)B;S&8Hkc$%p z1OY)n5D)~;Ed*qLnaR{Qhh@CP5dlHM-3|l|LBoxJo0hgAXt)t@)23~l>i#nSAKD-T AKmY&$ literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.exe b/Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.exe new file mode 100644 index 0000000000000000000000000000000000000000..e50282a4d0e6d2a01438eaaae291808cb0a54097 GIT binary patch literal 24576 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 DKfP%d literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.exe.config b/Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.exe.config new file mode 100644 index 0000000..bd31e48 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.exe.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.pdb b/Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.pdb new file mode 100644 index 0000000000000000000000000000000000000000..27bddd15d3bb85d78523baa6dcf2b22f82260a30 GIT binary patch literal 38400 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 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.xml b/Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.xml new file mode 100644 index 0000000..3cb268e --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/bin/Exercise 9.8.xml @@ -0,0 +1,11 @@ + + + + +Exercise9.8 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise 9.8.exe b/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise 9.8.exe new file mode 100644 index 0000000000000000000000000000000000000000..e50282a4d0e6d2a01438eaaae291808cb0a54097 GIT binary patch literal 24576 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 DKfP%d literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise 9.8.pdb b/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise 9.8.pdb new file mode 100644 index 0000000000000000000000000000000000000000..27bddd15d3bb85d78523baa6dcf2b22f82260a30 GIT binary patch literal 38400 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 IIK@%<01dP0M*si- literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise 9.8.xml b/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise 9.8.xml new file mode 100644 index 0000000..3cb268e --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise 9.8.xml @@ -0,0 +1,11 @@ + + + + +Exercise9.8 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise_9_8.MyResources.resources b/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Debug/Exercise_9_8.MyResources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HY%O)O+B^z(GYeUVM z1Mk3_aO1)a37&u#;0-vy%(k?licl3F#;f`HX6Bn2%eE}*H-7Y|uXqN<%O>wBsbv^@ zYY7*D*Jiq}7s}h9G?!8JwW#9Mwg>o$saiX9aK@uw_7Rp;mSMc6bNZYaxQMKz= z!liH}TwDy6d{$u&Wx6#of%gLRV~Fao2T=e~kApso&N&5ox4{MIyn+xET0qZsnT8D> z^&ucroh#_YQl*)UeQh-OFf28BN;h)NnKCl?$~*KtMJRPy42C<< z?LA@oRm{2qOcn=YY|3KNx%kMC>c4^HmEVvoXfW!3;&4O-G$nDILiXy2s@8{te?DJ*NX_I6C~^}dvM6jyOx2OyFk|dFvgc8h$dlq+($6*1 z@|KdXvF}bZ#WBl7;SfEX?0(6>p;NAiqC^OU=T4$nt=;SFtZ&wz?X)__Q{8;j?lcq| zz+0*Moj0_Ncl>34rE}OzAcT7kqwkLuy*m&dA)H5q+E@sL=hp!b0_qI z>9{Ea9&!j~PS{|d>sY%u_DS1p^b8eA3s8CgY0dui<%8`|2iHee`!5 zL7w9@v?|t>AK!0OFoR9>7@lYcth?VnuNXBEX4EuTi(mSB;7t@7HI2#o_+a`bc~4R0 H^cDU9PbFs? literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Exercise 9.8.vbproj.FileList.txt b/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Exercise 9.8.vbproj.FileList.txt new file mode 100644 index 0000000..6921ae1 --- /dev/null +++ b/Code/Chapter 9/VB.NET/Exercise 9.8/obj/Exercise 9.8.vbproj.FileList.txt @@ -0,0 +1,10 @@ +bin\Exercise 9.8.exe.config +bin\Exercise 9.8.exe +bin\Exercise 9.8.pdb +bin\Exercise 9.8.xml +obj\Debug\ResolveAssemblyReference.cache +obj\Debug\Exercise_9_8.MyResources.resources +obj\Debug\Exercise 9.8.vbproj.GenerateResource.Cache +obj\Debug\Exercise 9.8.exe +obj\Debug\Exercise 9.8.xml +obj\Debug\Exercise 9.8.pdb diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/Module1.vb b/Code/Chapter 9/VB.NET/SqlBulkCopy/Module1.vb new file mode 100644 index 0000000..bc52eef --- /dev/null +++ b/Code/Chapter 9/VB.NET/SqlBulkCopy/Module1.vb @@ -0,0 +1,24 @@ +Imports System.Data +Imports System.Data.SqlClient + + +Module Module1 + Dim connectionString As String = "Server=(local);Database=Test;Integrated Security=SSPI" + + Sub Main() + Using firstConnection As SqlConnection = New SqlConnection(connectionString) + Dim cmdAnimals As SqlCommand = firstConnection.CreateCommand() + cmdAnimals.CommandText = "Select * from Animals" + firstConnection.Open() + Dim dr As SqlDataReader = cmdAnimals.ExecuteReader() + + Using secondConnection As SqlConnection = New SqlConnection(connectionString) + Dim bc As SqlBulkCopy = New SqlBulkCopy(secondConnection) + bc.DestinationTableName = "AnimalsCopy" + bc.WriteToServer(dr) + bc.Close() + dr.Close() + End Using ' Dispose is called on secondConnection + End Using ' Dispose is called on firstConnection + End Sub +End Module diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Application.Designer.vb b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Application.Designer.vb new file mode 100644 index 0000000..d3dfa8c --- /dev/null +++ b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Application.myapp b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Application.myapp new file mode 100644 index 0000000..e62f1a5 --- /dev/null +++ b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/AssemblyInfo.vb b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/AssemblyInfo.vb new file mode 100644 index 0000000..f3cd7e0 --- /dev/null +++ b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/AssemblyInfo.vb @@ -0,0 +1,37 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Resources.Designer.vb b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Resources.Designer.vb new file mode 100644 index 0000000..cf08dbf --- /dev/null +++ b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Resources.Designer.vb @@ -0,0 +1,64 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If (resourceMan Is Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("SqlBulkCopyDemo.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Resources.resx b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Settings.Designer.vb b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Settings.Designer.vb new file mode 100644 index 0000000..da89603 --- /dev/null +++ b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Settings.Designer.vb @@ -0,0 +1,66 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:2.0.50215.44 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + + + + _ +Partial Friend NotInheritable Class Settings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As Settings = New Settings + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Object, ByVal e As EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As Settings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If +#End If + Return defaultInstance + End Get + End Property +End Class + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.SqlBulkCopyDemo.Settings + Get + Return Global.SqlBulkCopyDemo.Settings.Default + End Get + End Property + End Module +End Namespace diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Settings.settings b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Code/Chapter 9/VB.NET/SqlBulkCopy/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/SqlBulkCopy.vbproj b/Code/Chapter 9/VB.NET/SqlBulkCopy/SqlBulkCopy.vbproj new file mode 100644 index 0000000..3d2cf14 --- /dev/null +++ b/Code/Chapter 9/VB.NET/SqlBulkCopy/SqlBulkCopy.vbproj @@ -0,0 +1,84 @@ + + + + Debug + AnyCPU + 8.0.50215 + 2.0 + {E7BF4143-ADB4-4898-BF5D-54396DF72497} + Exe + SqlBulkCopyDemo.Module1 + SqlBulkCopyDemo + SqlBulkCopy + Console + + + true + full + true + true + bin\Debug\ + SqlBulkCopy.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + SqlBulkCopy.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + Settings.Designer.vb + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/SqlBulkCopy.vbproj.user b/Code/Chapter 9/VB.NET/SqlBulkCopy/SqlBulkCopy.vbproj.user new file mode 100644 index 0000000..6481ba3 --- /dev/null +++ b/Code/Chapter 9/VB.NET/SqlBulkCopy/SqlBulkCopy.vbproj.user @@ -0,0 +1,5 @@ + + + 8.0.50215 + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/bin/Debug/SqlBulkCopy.exe b/Code/Chapter 9/VB.NET/SqlBulkCopy/bin/Debug/SqlBulkCopy.exe new file mode 100644 index 0000000000000000000000000000000000000000..99aa395f719cb42b4ef29ab4e45f19965afb41ea GIT binary patch literal 24576 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 + + + +SqlBulkCopy + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopy.exe b/Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopy.exe new file mode 100644 index 0000000000000000000000000000000000000000..99aa395f719cb42b4ef29ab4e45f19965afb41ea GIT binary patch literal 24576 zcmeHPdu$xXdH-hjZtr-aSl&@D+LF8yDVLI{3nftxI#$A`NXDdIq$Il~DlLyoa-+N3 z)9z6g6T~@JabUx0qclNK$4V>L=|f4H+Kt;Jb?P#)0mrRvsE-se;-)g(KWr3e96&Ja zz>xdGsH zt;u%%nCZBdo!_@3-NCBjCoO8^5d2_Dl7}<9H(A;F!%G_bjkK3or{JzOOdyHL~ zUAwn;?d&u=_I9=0SlL{@Xyr`5_A#@l1e$QDr=S0^&9^FTFgZcAh5spS(K7NCH-=mZ zyoihae4>Q%5x0(We7xYIM52UKh6qYEbqKkghH#SZ;Ue}juoGKJ+v4+396VNHV+&r( zgF^6Ft-X9P4^@E271<3{p2B^EUIR~2+mKJRHThhU_V7Mmll-<7KF7BOElbiBlvdi% z<5gR@4B85vZL6wug>=x-a?sDCaW}8HE|$gG6YRIGiLLRiQBo3Hg>0*57krZ>HAUA~ zqP;h3_cHYTy9SEc(@h-;-3q;M6xw$asORB;if$CyT4JhXNl$wH|2m7i#a(Iuyy1?+Q3Q7-iV|=AibRG+!oN9BFTvJ5X)m) zBq$k)+nc?i3!Y#K&uxHPV*@ zNH-&5#7iE_zyw)_WwYBzN&f+4Qk2r(iKa-GaI1t}5`IQ|1CoEHv4*E5d`vnR54tP;)1AI!{2KcHNgpN-u7XbfAc?j@dl#74~^%CH{>QfZofQm_5 z(<+)!)ruNSmsoPm39%Zy5s5X$r^U^{X3N-l(FW{OW$Z7+E?}3+*guM1VBeA0ex+H- z0DHNNZB%CAm1`0^M>~})u*QvS%YNm9%4uM25=&CQau(RQ!~{($CHSu>G0*A=vHO2o>V%&YY!tkyD+^^OV`+FGhdAbYmM`TD!QbJ3@ zRteiB?3D2KGM(GmP7FIGyj{Z6k~=Tqy?|-)0BwrSi)LcaHxqk&GwqLl8Wi^MLo^xv z0`hFhBYJ)7yL+Hqw&@)JsrqzKU}KBFW7zo0Y&Hqi#awAd`+cEC2J zOXhnd9G38~gm+13NT^c_y^YpANWU)9^rYCPr0JA+81Nf1?}{%Y|8eoBfL|3G)HFRU z;W_aT^N`_hDJ;QBkLM(@tpa#@zb{>civu6+q4pqpqFeq^vh1=^074 zK+lSjEOm}Pjc#D#U;sogkA;Z5&Cz)M`hVZ>F?+Xu^_omOUl#Is^^d| zC|4!@RjKoJNg=_OkYEc{!Fp7|HL8N^QU&`&mt0*+wg48C7Ad(|Jc!q>ZprPI+&)R~ zlN$PD**>Y~q?9=+WlA!CNy3FPWE-x^JSl7mDNN~B?htR&RfTQ1N!)^7+AQu7zbSr8 z{Em1;{IS@m3@aJslroRs4t2MBoBAQOR~=A?)Q4yUxe@gO^&&llr^lUu6Y53a7qJ#T zg`h<6bdO8mAMp(uvzgiww zK7gme2WTDRw~yLWb6N94E9!!h?7%HnP^oykT74I1lHi?TT=jCY|h$K3^f* z?epD0-m}=}l$0+N*r1s=VXryGyydQ7=~^>+8Zxs59E99$J5yCn{>br8Ju2<5Sa8H+a9NzS@QC+jjn~g* zE>D6XSemU&iT#e9D^q$fTF)4~Zg{h!(!ZnggN{8{=(Dp~Z$$rGtA_JfOYK6%D6|g? zvQ^W&!D&-fDsq@F+2nD}pynd88)I zpgc>NG(|eGz6{>D9I`;0M~N}~4ndl>GA}FnMM!QzoQ9lDIplhv%|ecA#<9xkTD%WZ z1!$w4V{{r4y{I8er|_2V(fgq_hkTljAji*1wjd+({Fe1*&?AK3Eb;ML#X z^f`)u^J5donmeyP5P$5$Cq9|{LE<)5CxIgreAGp$`k1ydwML}s8HtyXI3vk2l4N8> z8CemDqYQ&M1Dv;k7tw{X7E0q0ol+~2X;9WvtWk*dgtS8l(YT&p!ohAL6}zuU8#0R4 zplYdR#C2RlGlO+FsSv=SwVA;>a9f$t%2;bu7b3YCM?QjEN>N=A4GpXD4m&zOZen!e z0TSEmolWCViG|9I^OCriB)w!sB*x7Kh%-ns;HHR%CP58&$qPIYa}X6`wMXzGp1-~?5vv}vyH+~u~_hyPM@B-@r9^qskflAU(gW=?4n=*dV^c8 z@G%fPhi)_(SnTkWA>rxeF)d}J%#;O~gE*x=p>YSKJ`szlspeEOw;{C-y~A(!&;qQr z?4rs$1ZmubrTe(HI7DNzLS*=uk7zx2?YOe)xMLLXfFC%UG39K>GK=>M>}n{s-S6Mc zf?9WUOl{v~Ozz&+WlVQ%>zv*_y=}5{`;Kj0lSb$C-j3a!U0pb%MXOK^#!0HO8tLD= ztm`{EI(A`$f?f&rPIv%UlRT4}=~FJrH^z^nm~EJwI4Wh-=%=@&k3?wuznsHWIGhYh+H%72Jva!v}gs^lkd+ zyxwcurzUvYJkd966tL6NyC#nHrVk8^2MB=&;)Ff<(FwWlmGNqK$#_YYf;Glvg^zJ%$^%6MzG_4I9JF+d(=2d>C*)@*Ms;@{{Xc zy}oiU{jlVE-yZv%G6{EqT;dpR=p5*=fd@9b8u43R>Xi zB_CgVMReFIU{euN7U(leXnF?~3;bsR{;w0ak2uz$ZhSi>D)M~e=i-Ks^%S75TF=rq zg#6zR!~^Azp}YeP)pFZ$d)QHlTwf#P{aa24*7Dut0l*x}5?Zm;O=KFpvywlAzjDC$ zxX91QlKx#KTRcOvu$e0NmsOfhmr2KOhipG?VlbZBj)StLGbroX;r9Sz@6DdQ(tn4b z$HqnRzV(%^X-CkLy2ma+-;~aW0i`!crqo>yEi_2jSLyCRR zV}QpKCLPAi(xK$d$Wn=rL&T3s01FEXpu8*p@qZA493p;9V(`BWch`hMq`xK@PIVW98vmcH7`VY0O*y<8;XDzQGZ%TLz!;6feNa zn!r=7R6}_Wh~PQuMfMKqDx1D(R z?boXwzgL{y@tu+*rT4$qY~GLcNJze!S}c%!+S>6TfJ`&$n&y_UB&s;o+O82qtw_ z$E*I^-uvz9*=INW*z=!18~KkXe*Va$F4UXo<;Sc3UwQdd&+Tu|`*q^^*Ps6CPwxA# zo2UpTbyml#{`Wm{WL3wL7wV4ucvkGVs6}tVbvHu^j92|1IsVO)kCuAQ&v}39>N&Sw z`jeaC-Q7H9OJEV!dFTvQPwwA|UILdcT)M!yooyWO2O9bV>jyT3YeVbSHPo(eYG|x& zT-z9^-LP(b6MP!Of%=Ak|6rdG?VEa95=kqS^0kJ-`-c;$o{p{ew`}*-`Z`B^t?~H& zo?yJ+>In{p5@{>xYwFq6>c79e+u_l5Alf<{-5-o6MtVBq{lig9a<(@0gcRdG&3GUZ z3q`?rXvEh?#$hrJ+l&wP`D0ev;gLEJ?E~X584qO{k8_Skd^?lz&spI#${`VrghS~_ zJmzn+QjvWzE6Fk%=QkPgC3J!zM}qy11h3s2rc%~WUvy+^Y#@GZ-%KYI(Ft9%H+s-Y z#fOt&D|LNp41%JQyDs(BWu?=R*uLxZaw(IV^WCbn-uwsXmKvCrH}T9q;r)32I!%pU zcUX;|M*wj=zv)eARiPw2C~QL0rZ&w0DT= zs$~uv-)0TP{hcHDuk9viSB*+zG#F?TRx&+;wpEZ;nRl=fvk{(`oEYys%wQTLskAjD z#60`AKNycj(Gh_CPpNz=8mGU1vxQzkB&_o(c_2KNibqk3i@>YX?8EZ!ill}^(biCk zjN|c*e8)n7kDg3+ii484>JI_QX%;lUS8@AnT|g!m5Q$IVW_&w1LrI=f2B$&>TbwfJn9e0N5tmMH67RcZ&ZQwhQ zzd^)hJVWcspeuu}4CdOvxegh0ijlE_zlZ#60jN0>k3HAIc^J+K(fx%G8Fp140|q~F z4EQ$S#h3$HgpuGPQ48<`8tl0wH9qu6`2;DKt?aoZbd@u-tDgs+1^nm06__!q68Fft zB<6`}tG;bv9$(ZvzNC5lrOl%$hljGyg?T)#d3;^-_=e46Qw|TMUkdYhPxE+R^SB^! z72YK%dF0QF)!@C308RqV0A2&U11Lj*_yCQ7oqz;jGCJq{Ul|(>+)Rb!-+8bNAERt! z@#M|_O#wY=O}M)T;I0AO=xcO^)`^X7Hgk3BF&LrK(*^SP0?2_Edjg~!aIUV+8VC(X z(+uPsK{;fh9`P8*(7E#9%EQel4`w_8+iB0MndWX}g?)xu!tk8D74w!wTdWp+n)0d&IRB5kwajy+sCEzF$`!?W5fOAaPb$@gT zIPL!-UAA_mgIgKY8TXCI;%z^Gohd1)?-(x)deWM3cRc8h2i@^t?wrgm4jrn+$DWfh z{f$p_f5X}Dh7R<8!N?sp3vCId2DzmkUQ+%ZhU{HLJjO9}uKc<3=gMF1d<@2~wmEZ( zk?F^nHHkyIv+tZ2g_rls4jJqoN!aoyFlm|w0qG5mD}S#1x$>85|1bt{%AXXWeA&CG z*8`pQ55K)9jO=yC)m~gYbFBR^^Vfp?thwnG0$qM z+aXWJ;oz0`DLlw=UodImY(Q_XIr!1rE9LML$lx=G%Xo&?l|xq!T{%>8c&A>MU+9p- z0-}VoG3xxsBAagX^B?!Vc`D zcjeZVTUTzC+)^GPD&kgKyrev)d-thRe1*U?q;}c*EEye#y9`}OBsvI6_o~Q7>l*^h2gkA2j!9jZDV+(lrb9kunYTO1d zV-9eI*bE-az+0k^(V1V@>qg3zr~WrNARP+)T_XafZyR^3fAWr z0~!H40fT@H;5gtk;2hw0fJ#(;4d8Azf=TYUj+cM_&uPO@Tyk|H--a*L*ua(vy z%{LH_aSWZS8{E5uB4NLKm(VD830;kDF#9yIcha5)Hlk<7&_-?#aWDwSzJqa?hVuTw z$Stn%>ot)m+e2&r&9$UXS$2WIr9+*4IK&6OJ+dMc&m%YnKUJQzG z&QoQ;;3>e1fHwdi0LsyiaNYQp0E^Vvh$ARtI%nSwbA{eYbS~KjWZ%wQ&4@?Z2*zh! zF^-`d%|>*Nn8?|C9j|82$UR5no};BrbN7>!u5G~rs?m#Xi zGn}8CiZ+jR=A!eHT+etM^1(H7to=%xW9C1x$JDl;1CeAZjoY(h>eg*3TSu`<`4z;a zEveRVdG9iQ3ZElxc&NW678#QFP0!Qwrb`{+{YfROuYliC@Ou#PJ2XG;=c9?d!$F_2 z!tq$YBQpr6tj|T z|1~hq3S_3BCooNPA67bbxL>U@3rm6y_s*jtrXy zD#o9JxA_RX*%!i?Svurb>_J5&07n5Q0h877o4$*t*L}$QPo71ih@gS9xtzdn;!`La ziSe8GSK9w+P4}FB9@62DY5IqB_)3jGqr>0T_^^%_(fELl*MvlvPK%~{Qa}H_#_t(= z{rn3}N5O=b__fB^|0171t)DA2|HCFf`uQ|}ZM{K?98&H5LzU(}72KSy{D z|DsGs3sf9(ii;0L^5_{O{K}MkS9*=kzf$-zIoV-ks+v(PHW*3%8J51``7Z%+ud`PtAaKSdirW1r_pqXe|-%N6v` z@-7jY_d2dwE8csdQ%lr>vwd;4iKD`Fob~K`syMvMSH*GOP?}9kh3j}5vU%ejq$-}e zS<$4U{53r$-c35ZFHzAuZ-L9Eqr!DOY?^VF!L(7zV45z20MapKzaS4fuqr$Wv!y=*4F;Ge>j=nU(&?|pUAIj46On0fso>DdR z%3ss>v9GK2IM1GzibAL9vieWa=(yo*T%La`6@?GTnRFG6j@zHLXU!PImgd+} z>&e(YmZv9=R{3e#wb?w;-z)Wa{_d{q`zRU}H{h^?++U^QW;bw{_fTOv4(y<*)AOhw zugKl>VdAJT9S1hh#9{hnGLP963=>C%={SydK>w+u*t4m|o&~aH#yQfdLQR?)-pWt& zMwz*8{7Qg2{?Dcda9oA$OdOprR{Y}voO?;29*#oiuYo_u2*!a1dkN^?KPwUbT*l!S zI`UFjKI%WS#a{5D<5)(r+KN*r+7;OU*g0Z<#G$^Wp>acS1KI~&@pL{V60#?%?s8=U zAADwvbj+s+>zkU^Z)|A~%2dWmr%IgU1_d~NbCT&CD#z&>?Fzn+P6wMiot?pT8=8Xa z8ap5?aK+zkmMDk3(!B^^VsE^C2Ge)S6-~2y5Qq2syFvrjjy`^`79>-51EM|9 zwqaw#MwJ1uDxQa1#7UipJ;(s_aPeP?&3?fI*oUV zzo$`_&aLEY8#V@-*6PrbCLw#9#Dn#$-wJ$A}7!PF~)BXZLSN9cRUq+b8XMVgBMdCe$u-gH2`SD(c-)MO`hcHu~ z`SIRF*m3}!u1fiv?@)q2CSHCR=k3k=(GD8Nc$}x_Tn=4+825vjGZGH$42g`I=^TT*gr^$Lc(pB2k1DRG5un4pqC(s!` z;xd^l&c>JGU8kboF%4}o_n(TD{p&@>zKKV+W5QK`n*N%7Gu#Me&L_jKS!!9u=KQAo zI47rcG(YJsE?u~Efo*}H{_qDJD^R%#$8Qzp{=Ml-;Fv$)d7?WSWWD#-#Gjj)T-Nb? z<=4J-@zvdfry$F9+at04{Q9n_i-m^pJ&?LoGF&%^E`^osi^jwImB#?S37o3CY9Wj-DAHMQTak?&Pr&88X zUvwmb%DG-?qMqWzNqiROy1#A8N~ifX=A49ScxM6Fc%SBqG~5sHKtorJ#>+(&8ZToE zX=pbhoPO*G(AeDppkdnupz(YGU<^8bPIR{rFUaA{5_DcLLQ!@f=K+2npr(F|w-v;u;FHo#^;2cR9W1+W!xz1#!WDP zUIMs+QOPpnw@gKKX?WFvn zD7$cxU<3oNW3;CBv<&nP1>Q!Yr(x6}M|W}zf0h=gpnPJ4+!s7V;d8Uaju{Mv1zTm( zj*)O`&ApOfi=4PnkC3C~V*X0#7|?ODS;uuN#k5{WUtCKmnvZ_*znyLE@Vw=6g|Or@ z-Iw1+uTW}aGViUTzdgp8 zZx0jpd?g?V#Q^5V@>*cjHBto%WNqvW9u!8HCuviekwYaG$-_L&zSOo?U!OD6oZ_f_ E00gk-tN;K2 literal 0 HcmV?d00001 diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopy.xml b/Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopy.xml new file mode 100644 index 0000000..ffcb574 --- /dev/null +++ b/Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopy.xml @@ -0,0 +1,24 @@ + + + + +SqlBulkCopy + + + + + + Returns the cached ResourceManager instance used by this class. + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + \ No newline at end of file diff --git a/Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopyDemo.Resources.resources b/Code/Chapter 9/VB.NET/SqlBulkCopy/obj/Debug/SqlBulkCopyDemo.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..06c24d06c1cab750788146ce052b37770f3fa530 GIT binary patch literal 180 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 L_$@GETHyZyqNJ7~ literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.vshost.exe b/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.vshost.exe new file mode 100644 index 0000000000000000000000000000000000000000..7b03e6f38267aa21843d5f45b4e032c70388c269 GIT binary patch literal 5632 zcmeHLeQXrR6@Tlq9bH4lsV=%Z{ECl^WK{`vtydpzeqkJ%0|6;ljtB?E>#lm4g(l2{MtK(bYRqp=?9g@ z6Vuyz3|EagcGS^()v#_^wx@=K>clP8u+%_vQ0=uNLK`zCe^yF$OD$2O;-g)OH8ttg z&QhULpyUya1_uq7!Z`pHwF;F%MU$1Z8>{tgQY}4 zCaQ=^I0(0wuA~_O$W6U{>~4K^&~z!4hyL;mdCe339{LmW0T`3M!tTtX5_M^g>x99S zwpD@1MJ+_lC{?gtbA)L_kV8gYsH|%uYDTFds>$d|@-qD5!nS2m4$*X?0AfB$_T_3k zOf70Mw6b#-@L%qJyk{Tle@^BccUK<2 zwzi`4;QL!Q6pjD>r-8b4&&*hRrfu5P#^BzfQ!DaT7K~ajt>X>v55=>u6i>@4DI&_B zv%3V&=g)mWHg+-Shf3~ePJwLfNz6e`)dW}6D5OY_ICg#ITA8+>tbG0gW@XDzE=4S7 zK1uW{+MoD92R+BIqAp7WupgXOGwWA31kkpje;Mj#)|hsP1yC?esfRfnQ@W~D5DeiJ zCnv|`R>2+`kIH<=qvWTo%B6N{#zt(R9^g)i@6vwI=Op?R=9fyWlekgh7KuA0{#4?7 z63*Q(Avo_I6Vk39G=nPAZ})z)46lrb{Kxm-tPI)e;*dJ|c0QL|vjG zakIn(a1w2m_#AL5?E%g}jCt)JO58_&-(Towr29UkebnbWOGoH6&>F3zZHh+E(|O?U+W0f(h3Xz0@4qB*GqPVb6A` zNjI$2fYvIyO^g_}Mb)k=dP8PnrAX8nrl|Ii@S(UT1_uJd)DuA?Y7Gq~)kBMG#~rLp zt3=#$baRl=s9Vvv9?j4e)IDLEh9~?sywby7yKr2rKcqBmNQ2dFJH0v^r<)^6v8^Kx zjyT}AV+qHI_ISgWMGPbH@Er#Hc5h6#62oT%M7JI{y=v3Y-8+rCVaJHE8^Z_N3@C7$0!3Da0qH2mEzjr`T7%^Y$BqSs(`RtZF$1|^gfbPSrUVQXIrafBX$=~UY%EN_i&c*}JwVhV~1Z{w}!p}~SK-Nft& z1qBX~ZsF)4NrfjT%PB!mcf8iPWkDyK?WXgPGITT9Yzd-p{rL6Q5C5j=-2*e9?LYm* zHz@CyTRPgORGxhf7bxB~q-3j#Qpk{%0~p`HWZuADnuSly0MRZS{ailw=(h%|=ksfZ zuhaWZUR`r^|C!4_(w=#J?EdRx{(0g0rq8y2_nNQI+}5~f$F!d>IsfvR4?aBd(aWb6 zPMDtcVu7>tzXLBlb@be0wNFO(PV_%!FUk1tF={Nqa(K96)Xj^26XjXfou zp}DV%xer|Z^TS@JJ@1pxpWN`)*rU52erW3Viu_`-+Ix6sWz+goJG1%T%6og+#;3-A zkiQs46|I9uSxj`!Q>dhSaYsmadU=Ou+oszQ5q%M(ucOYu8EuJ&Oe2i@LvyW1iE`K- z%2y~ySo2on!8ID*EyAZ3KYaKU8qFQ~-PI~9iIyp}c<@}RCH_)%FjrK+?Zj+H=9{Lf z)uyS+)9b1ZHqq%55smOUq*+5VN?J?RvxwPt)E39TPbbT(~ z%X}kuB$rAxR`T-futS@i4x?hx!W3VNMM9WPXH)Msrf)EaYyPQDG9!!%AY zUampf2&|=6Pz`v;u0p>7SO=QRq3laH__E`-(p;K-G~F(fqshPPg*hzEaKJ|=BSAOgCa%i~S3APhTrrVTGV z9A?(;P)uT`^;L51wATTw;L5oMWHWsn$(E%w2DYTHgowC1a{1Zy^8PE^id-(r-Ik&hx`9&``qsZ;`PDPr-(UU+2W5xdV0VD8>OER9#DOt`0_9-17?(q(fytgJj2;W*T--gaO_QK1E z$es7L1gC-hYKMI;=J1ND%*8l#@LsU*Nttr&Lm74 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.xml b/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.xml new file mode 100644 index 0000000..2bfc4a7 --- /dev/null +++ b/Code/Chapter 8/VB.NET/Exercise 8.5/bin/Exercise 8.5.xml @@ -0,0 +1,11 @@ + + + + +Exercise8.5 + + + + + + \ No newline at end of file diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.exe b/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.exe new file mode 100644 index 0000000000000000000000000000000000000000..ed66186972447c1e0a22b4b10d484fdb19e4ec2d GIT binary patch literal 28672 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 Jx=DS|oWm0_K?kA9gp~zo zV!LQ%f)dyhoe8@|ZxWnKVF%7DXAOZej#?9V(!#XI-vYfEobBuaH0c1f;UKYOAIb~3 zO>R2{KKDFM>!GuqXx@gtrS3S#rI`YYjA9&_7AKLnrp35ls&{cbOEm-^P z&B0GyG<<#ZJE04B4_^1j>Tukp&Wh-9!k@-bEFAF9jV;2?DI-A-2{JO*L--dVu{j7Dr=oUtFnJ9NQUz*-9zLLp)_qn_44AT&S(g=Q2Wr!-Vpj(a7`t`xN^HGjk(*VLled0cNLxNW%G*~B&m z?c7!1u&9keJGjl7e-ZPVnZUnp(y%F}G*)<4gkiLkn_C1BTqJlO!`K2T?+BKT3Vmoe z5}Aj+rh%y;b0UwdV+Pi{2lO~*Ru~h=Vy_36=VA8|bRTow#~k-D-w5y!00bG#WiW>U zJgHO!du;)1pvZOr|4b|br26~3M63FI!X^`b;Rrd-DYDT+__ah31ouN6KYqZ#a1(Jo z0Pn_03y_L6MT>{AyfeW4$1@xVET%|o>a2*S zX;24QLN(}=o;0Bl3B(QfDiXm~?E)|TPump`lVUTs5E{I9?dsiu7dnza>4hOJf`^1j*yVi3eSE=Xeb0UT(0x45g2AARJmNkc<*^SkBP<%C#mB_= zFG@gO8x8nk#V_E$Xz`I~@lkMjG*@DjVuut)k79>>P!ucv8ajZ~vDR4e)%t)QE4~ae z$}#NBrmJ3mk>o@+>JIOrXaK@(u{IuAo>-U|=r>Oy?%ts$gm^$afP%Z-x|k=(kk-iW zc=)(1e{=9#!U0EdB)64j$x21blF8KhYu28>;k;CG-TL#^u3fYCybWo9bsLha(`H-y znl-DjGmW1?M#~Foydxf8-P($@i{0mN^@4`k?B_%g#vQ~x7xx_8^L0OG9ArIzY)bPp ztI6=gb%r0#WAG@0$C&mqgI_av6(jreejZ=7r$2qw9ZR}D^UR0N z_{E{|A9Et-X&1 zl-SxcR7EJ|1AgP(V~t+1N4^pERFf0=^eEb@T{REXJW%sM%>y+L)I3o0K+OX+57azR z^FYl5H4oH0@PF+A9lv439|aN>`7a52@x(g>b-R9%{EnjZw6!Cj(tvg;Rf8iq2XP}{|5bXs|n@AI|#pPtz7dD z5&m|if*;q`0@+1_IMdmMbF7^x_0cw*o(A(vqw>EQ?8YyARaw4UPN!0$r|O&z?fkJ5E;gYRTgeq2yX0() zPYdOY5BxTqgSD1#{@cGO^-)nYnuexq6t>@BzUW95) z<1WSdQIt=A6%o|nAg<*Bh~i%q=K(KVJ+E!qCdQojA3uBD;oH*h4$GEfuHvJxa@xgH ztvHSHIuONk)Vw4{~d7$Qjng?ngsCl5~fj6iJI^6$X tO#H$(X#Z;6s(GO1ftm+u9;kVs=7E|AY96S0pyq*^2WlRud7$P2`fnubn>zpi literal 0 HcmV?d00001 diff --git a/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.pdb b/Code/Chapter 8/VB.NET/Exercise 8.5/obj/Debug/Exercise 8.5.pdb new file mode 100644 index 0000000000000000000000000000000000000000..e513b0342fc7e749d3cd52aabab8cd5e9564c3a6 GIT binary patch literal 54784 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise 7.1.pdb b/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise 7.1.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1e76b17c05d2206d3d5739a92317499124ca073e GIT binary patch literal 148992 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 literal 0 HcmV?d00001 diff --git a/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise_7.1.xml b/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise_7.1.xml new file mode 100644 index 0000000..0d57b45 --- /dev/null +++ b/Code/Chapter 7/VB.NET/Exercise 7.1/obj/Debug/Exercise_7.1.xml @@ -0,0 +1,24 @@ + + + + +Exercise7.1 + + + + +

  • 6%EqYb?4EgZD${its|d8ZrS}5J*LR{ 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∓}TA8epbV}-dFqC=k4zBCgTAwlU+WGLlHIlF|zVh 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 z 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�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