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

حاجات مش فاهمها في ADO.NET

مغلق
بدأه hazzoom في 7 يوليو 2005 · 6 رد · 1,545 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :

وأنا بقرأ في ADO.NET وجدت كام حاجه مش فاهمه ,

الأولي هي Command.parameter

فما هي وظيفة ال parameter وكيف يستخدم ؟

الثانيه هي ال Storedprocedure

فما هي ومتي وكيف تستخدم ,

الثالثه هي ال Tabledirect

فما هو ومتي وكيف يستخدم ,

اللي يعرف أي حاجه عن أي واحده منهم يا ريت مايبخلش عليا (((((شرح (و) مثال))))) ,

وجزاكم الله خيرا ,,,

#2
اقتباس
فما هي وظيفة ال parameter وكيف يستخدم ؟

الباراميتر هو المعامل او المتغير الذى تقوم بامراره لجملة ال SQL لتنفيذ امر بدلالة هذا المعامل / المتغير

اقتباس
الثانيه هي ال Storedprocedure

احتاج شرح وافى لكل من trigger و stored procedure,

الثالثة لا اعرفها حقيقة

راجع ايضاً هذا الموضوع

التعامل مع الإجراءات المخزنة (Stored Procedures)

و هذا الرد شرح عن استخدام الباراميتير

ردى لشرح الباراميترات

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#3

ال Tabledirect هي ثالث ثلاثة (Text - StoredProcedures) و هي خاصية تابعة للكلاس CommandType

فاذا كانت Text تقوم بتنفيذ جملة SQL على Table او قاعدة بيانات معينة و ال StoredProcedures تقوم بما سبق الأخ طارق و ذكره فال TableDirect تقوم باستيراد Table كامل تقوم بتحديد اسمه في الخاصية Text و ال TableDirect لا تستعمل الا مع ال Provider OLE DB.

كيف اذا يمكن عمليا العمل به ؟؟؟ أعرف أنك تطرح هذا التساؤل على نفسك :)

لنفرض أن OledbConnection1 هي التي تحتوي على الارتباط مع ال Data Base الخاصة بك

و في هذه ال Data Base يوجد لدينا فرضا 3 جداول

الأول Data

الثاني Products

الثالث Country

و نريد أن نضع في DataGrid محتويات الجدول Counry فقط ... لكن باستعمال TabeDirect

سنقوم بكل بساطة أول بانشاء New Instance من الكلاس OleDbCommand نسميه مثلا OCommand

Dim OCommand As New OleDbCommand

ثم نقوم بانشاء New Instance أيضا من الكلاس DataTable الذي سنضع فيه محتويات الجدول و من بعد نضعه في ال DataGrid و ليكن أسمه DTable

Dim DTable As New DataTable

و طبعا نقوم بانشاء نسخة من ال OleDbDataAdapter الذي كما تعلم يعتبر حلقة وصل بين قاعدة البيانات و ال DataTable او DataSet ... و ليكن اسمها OleDA

Dim OleDA As OleDbDataAdapter

ممتاز الى هنا كل شئ جميل

اذا الكود الأولي (الخاص بتعريف المتغيرات) سيكون كالتالي

Dim OCommand As New OleDbCommand
Dim DTable As New DataTable
Dim OleDA As OleDbDataAdapter

الآن سوف نحدد خاصية OCommand.Connection لتساوي طبعا ال OledbConnection1 التي ذكرناها أعلا و التي تحتوي على الارتباط مع ال Data Base

ثم بعد ذلك سوف نستعمل الخاصية Text المنبثقة (هههه حلوة منبثقة دي :D ) من الكلاس OleDbCommand وذلك من أجل تحديد الجدول الذي نريد الحصول على معلوماته ثم نحدد نوع الأمر CommandType (و الذي هو أيضا خاصية منبثقة من نفس الكلاس السابق ذكر ) على CommandType.TableDirect بعد ذلك نقوم باعادة تعريف ال OleDA ك New Instance (لأننا كما لاحظت في الكود أعلاه لم ننشئ منه New Instance ) و نمرر له بارامتر و هو طبعا OCommand الذي أصبح الآن يحتوي على Connection و معلومات حول نوع الداتا الذي سيأتي بها من ال Data Base و لا يبقى لنا أخيرا الا ملئ ال DTable بمحتوى ال OleDA ووضع محتوى ال DTable بدوره في ال DataGrid ليكون كود هذا الجزء بهذا الشكل

OCommand.Connection = OleDbConnection1
        OCommand.CommandText = "table1"
        OCommand.CommandType = CommandType.TableDirect
        OleDA = New OleDbDataAdapter(OCommand)
        OleDA.Fill(DTable)
        Me.DataGrid1.DataSource = DTable

وليكون الكود النهائي كالتالي

 'Part 1
        Dim OCommand As New OleDbCommand
        Dim OleDA As OleDbDataAdapter
        Dim DTable As New DataTable
'Part 2
        OCommand.Connection = OleDbConnection1
        OCommand.CommandText = "table1"
        OCommand.CommandType = CommandType.TableDirect
        OleDA = New OleDbDataAdapter(OCommand)
        OleDA.Fill(DTable)
        Me.DataGrid1.DataSource = DTable
 'End

هذا كل شئ

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

تم تعديل هذه المشاركة بواسطة crazy-man في 8 يوليو 2005 في 04:34

#4

السلام عليكم

سبقوني بها أعمدة المنتدى و تركوا لي أن أرفق المثال

 Dim cmd As OleDbCommand
    Dim cnn As OleDbConnection
    Dim strSql As String = "Vacation"
    Dim ds As New DataSet("ds")
    Dim da As New OleDbDataAdapter

    Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load

        Try

            cnn = New OleDbConnection( _
             "provider=Microsoft.Jet.OLEDB.4.0; data source=" & _
            Application.StartupPath & "\db.mdb")
            cmd = New OleDbCommand(strSql, cnn)
            cmd.CommandType = CommandType.TableDirect
            da.SelectCommand = cmd
            da.Fill(ds)
            Me.DataGrid1.DataSource = ds
            Me.DataGrid1.DataMember = ds.Tables(0).TableName
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

TableDirectApp.zip

في المثال يتضح المقال

#5

تعجز الكلمات عن الشكر ,انتوا وضحتوا كتير خالص العمليه بقيت تمام التمام ,

بس لماذا أجد ال parameter دائما يبدأ ب @

أخ crazy-man

اقتباس
بعد ذلك نقوم باعادة تعريف ال OleDA ك New Instance (لأننا كما لاحظت في الكود أعلاه لم ننشئ منه New Instance )

لماذا مع انه لو أنشئته في البدايه وتعاملت معه سوف يعمل ببساطه ؟

Dim da As New OleDbDataAdapter

da.SelectCommand = cmd
da.Fill(ds)

حاجه كمان ما هو ال Command Builder وكيف ومتي يستخدم ؟؟؟

يا ريت برضه شرح ومثال .....,,,

ومره أخري شكرا جزيلا لكم جميعا ,,,

#6

أخي Hazzoom كلامك صحيح وانا فعلت ذلك لأني كثيرا كا اتعامل مع الكلاسات عن طريق ال Constructors الخاصة بها و كما رأيت أنا قمت أولا باعلان المتغيرات ثم بعد ذلك أعطيت لل Command خصائصها لذلك لم أكن أستطيع تمرير ال Command كبرامتر لل DataAdapter قبلا

و الطريقتين صحيحتين الاختلاف فقط في الأسلوب

#7
اقتباس
حاجه كمان ما هو ال Command Builder وكيف ومتي يستخدم ؟؟؟

يا ريت برضه شرح ومثال .....,,,

هذا الموضوع مغلق.

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