الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Dim dr As OleDbDataReader

بدأه azouzeg في 24 أكتوبر 2013 · 6 رد · 424 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
الاخوة

لماذا لم نستخدم new

مع الكائن 

         OleDbDataReader

 

تم تعديل هذه المشاركة بواسطة azouzeg في 24 أكتوبر 2013 في 14:31

عزوز عبداللاه
مدرب ومطور قواعد بيانات أكسس

الاهتمامات

VBA,VB.NET,ASP.NET,SQL SERVER, ORACLE

azouzeg@hotmail.com

01004147149

#2

لأنه لا يوجد New sub للكلاسس OleDbDataReader

 

فـNew Sub هو يقوم بإعداد متغيرات الكلاسس وإسناد القيم الجديدة إليها

 

بعض الكلاسات لا يوجد فيها new sub وبعضها فيها ..

 

ولكن هناك ما يسمى بالـObject كل شئ من هذا النوع يجب أن نضيف New إليه

 

 

أتمنى أن يمر أحد الخبراء للتوضيح  أكثر

 

تحياتي  ^_^

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#3

كل ما قاله bahbah صحيح ما عدا اخر جملة : لكن هناك ما يسمى بالـObject كل شئ من هذا النوع يجب أن نضيف New إليه

 

New تستخدم لخلق object جديد يقيمه الافتراضية ولكن ذلك لا يعني انك يجب ان تستعمل كلمة new

dim x as new stringdim x as string = "something"

كلاهما صحيح

 

بالنسبة لل OleDBDataReader فهي لا تقبل ان تنخلق بكلمة New لان لا وجود ل constructor لها اي لا تحتوي على Sub New()

 

اما لماذا لا تحتوي على Sub New لانها كلاس موروثة هكذا. اذا تابعت تسلسل الوراثة لها ستجد الاتي

 

System.Object >> System.MarshalByRefObject >> System.Data.Common.DbDataReader >>  System.Data.OleDb.OleDbDataReader

 

DataReader سو ترث من DbDataReader وال DbDataReader سوف ترث من MarshalByRefObject وهذه لا يوجد بها New Constructor بل تخلق ال object باستعمال امر CreateObjRef

 

لماذا هذا؟ لان DataReader المقصود بها هي Get Data from an object by Stream اي انها تحتاج لوجود another object to get data from لذلك فانك تلاحظ ان الطريقة الوحيدة لخلقها هي باستعمال Command.ExecuteReader ووجودها منفصلة عن ال command  لا معنى له حيث تحتاج ال شيء تقرا منه

تم تعديل هذه المشاركة بواسطة samir ibrahim في 24 أكتوبر 2013 في 16:32

Samir Ibrahim

VFP Blog

VB.NET Blog

#4

وعليكم السلام 

 

شكراً على التعقيب أستاذ سمير ولكن .. هناك بعض الأسهلة فأنا لست خبيراً في هذه التفاصيل ..

 

------------------------------------------

 

أنت وضعت مثال عن الـString ..

 

هل الـString كائن (Object)  ؟؟

 

ولكن ماذا لو كان الـString ليس أساسياً ، أي يجب إضافة مكتبة لإستعماله ...

 

هل حينها سنستعمل New ..

 

في الكثير من البرامج التي عملت عليها  ..

 

عندما أنسى كلمة New للـObject أعاني من الأخطاء بشدة

 

قد يكون الـString كائن ولكن لأنه مضاف أساساً مع مشروعك في قيمته الإفتراضية حينها لا تحتاج إستعمال New

 

تحياتي  ^_^

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#5
bahbah كتب:

أنت وضعت مثال عن الـString ..

 

هل الـString كائن (Object)  ؟؟

 

 

اجل

 

String يرث من object مباشرة :String Class

 

Object هو اصغر كائن معرف في كل مكتبة .Net

 

مثال:

    Dim Obj as New Object
    obj.Equals
    obj.GetHashCode
    obj.GetType
    obj.ToString

    Dim objstr As New String
    objstr.Equals
    objstr.GetHashCode
    objstr.GetType
    objstr.ToString
    objstr. etc etc etc

كائن obj من نوع  object لديه 4 خصائص

كائن objstr من نوع string ليده خصائص object الاربعة التي ورثها منه بالاضافة الى خصائصه الخاصة فيه

 

اقتباس

 

لكن ماذا لو كان الـString ليس أساسياً ، أي يجب إضافة مكتبة لإستعماله ...

 

هل حينها سنستعمل New ..

 

حسب المكتبة وميراثها. اذا كانت ترث من مصدر عنده New Sub() or CreateObjRef

 

اقتباس

 

عندما أنسى كلمة New للـObject أعاني من الأخطاء بشدة

 

هل بامكانك ان تعطي مثالا؟

 

اقتباس

 

قد يكون الـString كائن ولكن لأنه مضاف أساساً مع مشروعك في قيمته الإفتراضية حينها لا تحتاج إستعمال New

 

هذا صحيح تماما

 

تحياتي الك :)

 

تم تعديل هذه المشاركة بواسطة samir ibrahim في 24 أكتوبر 2013 في 18:52

1

Samir Ibrahim

VFP Blog

VB.NET Blog

#6

شكراً على الإجابة أستاذ سمير

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#7

اهلا فيك

Samir Ibrahim

VFP Blog

VB.NET Blog

مواضيع مشابهة