ADO.NET التعامل مع قواعد البيانات إنشاء قاعدة بيانات ضمن مشروع إنشاء قاعدة البيانات إنشاء الجداول إنشاء الحقول إنشاء العالقات بين الجداول عناصر تحكم البيانات قراءة وتعديل البيانات االتصال بقاعدة بيانات العناصر األساسية في ADO.NET قراءة بيانات تعديل بيانات • • مصادر البيانات عناصر عرض البيانات Data Access Architecture Web Application (ASP .NET) Data Layer (ADO .NET) Provider Provider Provider Data Store (XML) Data Store (SQL Server) Data Store (Oracle) - Connection - Command - DataReader - DataAdapter ADO.NET نظرة عامة على Windows forms Web forms DataAdapter DataColumn SelectCommand DataConstraint UpdateCommand DataRow InsertCommand DataRelationCollection Connection DataTable Command .Net Data Provider DataSet Data Source DeleteCommand DataReader ADO.NET is not a revision of Microsoft ActiveX Data Objects (ADO) but a new way to manipulate data that is based on disconnected data and Extensible Markup Language (XML). In a traditional client/server application, components usually open connections to data sources, and the connections remain open as long as the application is running. Open connections to data sources not only consume resources and increase network traffic but also reduce application performance and scalability. ADO.NET has been designed to work with disconnected DataSets to help overcome the problems listed earlier. Applications are connected to the data source only long enough to fetch and update data. ADO.NET uses XML as the universal transmission format. This guarantees platform interoperability as long as the receiving component runs on a platform on which an XML parser is available. Any software component can share ADO.NET data as long as it uses the same XML schema as the format for the transmitted data. Web.config <configuration> <appSettings/> <connectionStrings> <add name="EmployeesCnn" connectionString="Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\DBBinding.mdf; Integrated Security=True; User Instance=True" providerName="System.Data.SqlClient" /> <add name="OracleConnectionString“ connectionString="Data Source=LabDB.com; User ID=mylab; Password=xx; Unicode=True" providerName="System.Data.OracleClient" /> </connectionStrings> </configuration> Connection & Command االتصال واألمر using System.Data.SqlClient; SqlConnection Conn = new SqlConnection(); Conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["EmployeesCnn"]. ConnectionString; Conn.Open(); SqlCommand Cmd = new SqlCommand(); Cmd.Connection = Conn; Cmd.CommandText = "SELECT * FROM Employees"; Command األمر Command ExecuteReader SqlDataReader DR; DR = Cmd.ExecuteReader(); ExecuteScalar ExecuteNonQuery int ID; ID = int.Parse(cmd.ExecuteScalar()); int RowsAffected; RowsAffected = Cmd.ExecuteNonQuery(); النموذج المنفصل Disconnected Model DataAdapter + DataSet DataSet هي المقابل البرمجي لقاعدة البيانات الفيزيائية ويمثل وسط التخزين المالئم لهندسة التطبيقات المنفصلة. ال ترتبط مجموعة البيانات DataSetباتصال محدد Connectionلتحقيق عمليات الملء أو التحديث بل نحتاج إلى بناء غرض من الصف مكيف البيانات DataAdapterلتحقيق هذه الغاية الذي يقوم باالتصال بمخزن البيانات ويقوم بتنفيذ االستعالمات التي تمأل أو تحدث مجموعة البيانات DataSet عبر الطريقتين Fillو .Update ;SqlDataAdapter DA ;)(DA = new SqlDataAdapter ;DA.SelectCommand = SelectCmd ;DA.UpdateCommand = UpCommand ;DA.InsertCommand = InsertCommand ;DA.DeleteCommand = DeleteCommand ;DataSet myRecords ;)(myRecords = new DataSet ;)DA.Fill(myRecords DataTable & TableRow مجموعة من الخصائص والطرق التي تسمحDataTable يوفر الغرض من أكثر. على حدةDataSet بالتعامل مع كل جدول من جداول غرض وAcceptChanges وClear الطرق استخداما ً هي الطرق إال أنهاDataSet وهي مطابقة لتلك التي يدعمها الغرضRejectChanges .DataTable تطبق فقط على جدول وحيد هو الجدول الذي يؤشر إليه الغرض DataRowCollection DataRow • Add •Remove •RemoveAt •Find •AcceptChanges, RejectChanges •BeginEdit, EndEdit, CancelEdit •Delete •GetChildsRows •SetColumnError •GetColumnsInError DataView يقوم الغرض DataViewبالتعامل مع جدول أو مجموعة من الصفوف في جدول .يمكن إنشاءه باستخدام الغرض DefaultViewالخاص بالجدول أو من خالل الغرض DataTableالذي يقوم باختيار مجموعة جزئية من الصفوف في الجدول. بصورة عامة إن أفضل طريقة للتعامل مع محتويات الجدول ضمن الغرض المراد استخدامه ثم استعمال الطرق التي يوفرها: DataView •AddNew •Delete •Find •FindRows •GetColumnsInError النموذج المتصل Connected Model DataReader يعد استخدام الغرض DataReaderمن أنجع الحلول لتحقيق: سحب سجل أو أكثر أو سحب قيم من حقول محددة. تنفيذ تعبيرات .INSERT ،UPDATE ،DELETE عندما يكون لدينا فيها كمية كبيرة من البيانات أكبر من أن تتسع لها أغراض .DataSet ربط عناصر التحكم من جهة المخدم. DataReader •Read •GetValue •GetValues •Getxxxxxx •NextResult •Close