السلام عليكم
و كل عام و انتم بخير
ADO.NET 2.0 Dataset,DataTable
DataSet هي تمثيل منفصل الاتصال للبيانات في الذاكره تدعم البرمجه العلائقيه بغض النظر عن مصدر البيانات
الجديد في DataSet , DataTable
1 زياده الاداء و السرعه مقارنه بالاصدار السابق خصوصا في حاله كبر حجم البيانات
2 تعزيز ال Serialization
اولا ال Serialization هو عمليه تحويل كائن في الذاكره الي سلسله من ال Bytes و لذلك لتخزينها علي الديسك
او ارسالها الي برنامج اخرRemoting
و ال Deserialization العكس
في الاصدار السابق
كانت ال DataSet تدعم ال Serialization و لكن ال DataTable لم يدعمها
و لعمل Serialization ل dataTable يجب وضعه فيه DataSet اولا
و كان ال dataSet تدعم XML Serialization فقط اي تحويل محتوياتها الي XML و العكس
و ذلك عن طريق داله Load و Save
حاليا في ADO.NET 2.0
اصبح ال DataTable اكثر استقلالا من السابق فيمكنه عمل Serialization
تم اضافه امكانيه عمل Binary Serialization اي تحويل البيانات الي Binary
و هذا يقلل حجم البيانات مقارنه بال XML التي تزيد من حجم البيانات
وذلك عن طريق الخاصيه الجديده RemotingFormat التي تحدد نوع ال Serialization
BinaryFormatter binaryFormatter = new BinaryFormatter();
FileStream fileStream = new FileStream("c:\\serialization.bin", FileMode.CreateNew);
DataSet DS = GetDatat(); //return any data.
DS .RemotingFormat = SerializationFormat.Binary;
binaryFormatter.Serialize(fileStream,DS );
fileStream.Close();لاحظ استخدام SerializationFormat Enumeration
يمكنك استخدام SerializationFormat.XML مع ال XML
3 امكانيه مفيده جدا
تحويل DataReader الي DataTable او DataSet و العكس
يحتوي ال DataTable و DataSet علي داله Load التي يمكن استخدامها لتحميل DataReader
string connectionString ="SomeConnection";
SqlConnection Conn = new SqlConnection(connectionString);
Conn.Open();
SqlCommand Cmd = new SqlCommand("Select Query", Conn );
SqlDataReader Reader = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
DataTable dataTable = new DataTable("tab");
dataTable.Load(Reader);التحويل الي DataReader باستخدام الداله GetDataReader الموجوده في ال DataTable و DataSet
و في حاله وجود اكثر من جدول داخل ال DataSet يتم مليء ال DataReader باكثر من ResultSet
للحديث بقيه ان شاء الله
