ADO.NET

advertisement
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‬‬
Download