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

طريقة ربط SilverLight بالdatabase

بدأه احمد طلال في 27 فبراير 2011 · 11 رد · 2,972 مشاهدة · في SilverLight
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة .....

طريقة ربط السيلفر لايت بالداتابيز

اولا يجب التنبية على خطوة وهي اننا لن نقوم بربط الداتابيز بالسيلفر لايت مباشرتاً لكن عن طريق وسيط وهو WCF فلو تلاحظو في الUSING التي تتبع مشروع السيلفر لايت لايمكننا من إضافة

ال using التي تدعم الado وغيرها مثل المشروع معمول بMicrosoft Visual Studio 2010 طبعاً .

بسم الله نبداء....

اولا نقوم بإنشاء مشروع جديد SilverlightApplication ثم نقوم بإضافة textbox و Button

في الكود التالي

<StackPanel>
            <TextBox Name="t1" Height="20" Width="300"></TextBox>

            <Button Height="20" Width="100" Name="b1" Content="ok" Click="Button_Click" ></Button>
        </StackPanel>

ثم نقوم بأضافة silverlight-enabled WCF service

وهذا عن طريق النظر الى solution explore ونلاحظ ان المشروع يتكون من قسمين SilverlightApplication1 و SilverlightApplication1.Web نضغط باليمين على القسم الثاني

ونقومadd >new Item ثم من اليسار قسم السيلفر لايت نضيف silverlight-enabled WCF service .....

نلاحظ تكون ملف بأسم Service1.svc هذا هو الملف اللذي سوف يكون الوسيط ..... ثم نقوم بالضغط على الملف باليمين view in browse وسوف تفتح لنا صفحة نقوم بنسخ رابط تلك الصفحة .

وندهب الى القسم الاول من المشروع وهو SilverlightApplication1 ونضغط علية باليمين ايضا add Service References ونقوم بلصق الرابط في الخانة الاعلى ثم go ونلاحظ ظهور الدالة

التي موجودة في Service1.svc وهي dowork ...

بعدها نعود للService1.svc.cs ونقوم بعمل الusing

using System.Data;
using System.Data.SqlClient;

ثم نقوم بالتعديل على الدالة طبعا تستطيع تغيير الاسم او إضافة دالة اخرى حسب الحاجة ....

نقوم بأنشاء الكنكشن والاستعلام وغيرة للأتصال بالداتا بيز

وهذا الكود كمثال بسيط ...

[OperationContract]
        public string DoWork(int x)
        {
            // Add your operation implementation here
            SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=123;database=twd");
            SqlDataAdapter da = new SqlDataAdapter("select name from stu where id=" + x, con);
            DataSet ds = new DataSet();
            da.Fill(ds, "stu");

            return ds.Tables["stu"].Rows[0]["name"].ToString();

        }

بعدها نقوم بالرجوع للصفحة الرئيسية اي MainPage.xaml

ونقوم بعمل

using SilverlightApplication2.ServiceReference1;

في الusing للصفحة

لكي نستخدم الدالة dowrk طبعا ...

وبعدها نقوم بأنشاء كائن من نوع Service1Client

وهذا مثال للكود

private void Button_Click(object sender, RoutedEventArgs e)
        {
            Service1Client obj = new Service1Client();
            obj.DoWorkCompleted += new EventHandler<DoWorkCompletedEventArgs>(obj_DoWorkCompleted);
            obj.DoWorkAsync(1);
        }

ثم نقوم بأضافة الsender تبع الدالة ويكون الكود النهائي

   private void Button_Click(object sender, RoutedEventArgs e)
        {
            Service1Client obj = new Service1Client();
            obj.DoWorkCompleted += new EventHandler<DoWorkCompletedEventArgs>(obj_DoWorkCompleted);
            obj.DoWorkAsync(1);
        }
        private void obj_DoWorkCompleted(object sender, DoWorkCompletedEventArgs e)
        {
            t1.Text = e.Result;
        }

طبعا الداتا بيز حسب الكود المعطى يمكنك من إنشاء داتابيز بأسم twd ولديها جدول يحوي ثلاثة اعمدة الاول id من نوع int والثاني name من نوع nvarchar والثالث mark من نوع int

واسم الجدول stu

وقم بتعبأتة بأي بيانات لتقوم بتسجيل رقم الطالب في الtextbox ويحظر لك اسمة

المثال

والحمد لله رب العالمين.......

تم تعديل هذه المشاركة بواسطة احمد طلال في 27 فبراير 2011 في 23:53

3

وقال تعالى(( وَلَن تَرْضَى عَنكَ الْيَهُودُ وَلاَ النَّصَارَى حَتَّى تَتَّبِعَ مِلَّتَهُمْ قُلْ إِنَّ هُدَى اللّهِ هُوَ الْهُدَى وَلَئِنِ اتَّبَعْتَ أَهْوَاءهُم بَعْدَ الَّذِي جَاءكَ مِنَ الْعِلْمِ مَا لَكَ مِنَ اللّهِ مِن وَلِيٍّ وَلاَ نَصِيرٍ ))......

للمزيد من المشاريع الجاهزة ودورات برمجة المواقع اضغط هنا

#2

شكراً جزيلاً .. استفدت من هذا المقال

#3

الله يجزيك الخير

لي سؤال هل هذا يعني انه لا يمكنني إستخدام نسخة ال sql server Express

لانني حاولت اضافة الملف database ولم أفلح لانني لم أجده بين القوائم المتاحة

In bad state

#4

السلام عليكم ورحمه الله وبركاته

اخي انصحك بعمل Web Service او WCF Service وقم من خلالها بعمل اجراءات للتعامل مع قاعدة البيانات حتى لو كانت SQL Server Express, لأن البرمجة في السلفرلايت غير متزامنة Asynchronous!!

1

.:: Wish to become better and better ::.

#5

جزاك الله خير على المعلومه

#6

ماذا قصدت البرمجة غير متزامنة Oo

هل قصدت نقل البيانات بين الزبون والسيرفر

سؤال آخر في حال وضع سلسلة الاتصال مثلا أثناء البرمجة وجلب قيم البيانات بدون WCF هل سيتم تحميل الكود الى الزبون وعن طريق برنامج يقوم بعمل عكس واخراج بيانات حساب كلمة المرور

الاستفسار انا لم أجد أنه يمكنني إ ضافة ملف داتا بيس MS sql server Express

In bad state

#7

السلام عليكم ورحمه الله وبركاته

اخي شوف المقال التالي عن البرنجة الغير متزامنة /index.php?showtopic=243793, اما بالنسبة للتعامل مع قواعد البيانات يتم بطريقة غير متزامنة ضمن الكود يعني تقوم باستدعاء خدمة ويب مثلا لجلب المعلومات, طبعا التطبيق يستجيب لي لأي حدث اخر والا فان عملية جلب البيانات قد تأخذ مدة زمنية وقدرها حسب كمية البيانات المسترجعة واكيد سيتوقف التطبيق عن الاستجابة لتجنب هذا الشىء يقوم تطبيق السلفرلايت بتنفيذ الكود بصورة غير متزامنة

1

.:: Wish to become better and better ::.

#8

تمام الله يجزيك الخير

لكن ما زالت الاجابة غامضة بشأن سلسلة الاتصال

لو لم استخدم web service واستخدمت الاتصال مباشرة ضمن الكود هل بامكان الزبون بعض أخذ ملف Xap وتحويله ل zip ومن ثم

reflector ان يحصل على كلمة المرور أم لا

In bad state

#9

السلام عليكم ورحمه الله وبركاته

اخي بالنسبة للبرمجة في تقنية السلفرلايت لا يمكنك الاتصال مباشرة مع قاعدة البيانات إلا عبر Web Service او WCF Service او RIA Service .. الخ

1

.:: Wish to become better and better ::.

#10

تمام

ولكن لي سؤال بخصوص العنوان الذي سيخرج معه

بحسب التعليق

لنفترض أن يكون لديي ال service هي

http://localhost:49670/Service1.svc

بعد انشاء تطبيق السيلفر لايت

ونشره على موقع مثلا

http:/www.example.com/Service1.svc

ماذا ستكون النتيجة

احمد طلال كتب:

نلاحظ تكون ملف بأسم Service1.svc هذا هو الملف اللذي سوف يكون الوسيط ..... ثم نقوم بالضغط على الملف باليمين view in browse وسوف تفتح لنا صفحة نقوم بنسخ رابط تلك الصفحة .

In bad state

#11

السلام عليكم ورحمه الله وبركاته

اخي عند نشر الموقع على الانترنت تضطر لعمل تحديث لرابط خدمة الويب ليتم التعامل مع الخدمة الموجودة على الانترنت وليس على الجهاز, وبعدها يمكنك استدعاء أي اجراء بطريقة غير متزامنة!!

.:: Wish to become better and better ::.

#12

السلام عليكم ورحمة الله وبركاته

كما ذكر الاخ vb helper بالنسبة لتحديث صفحة خدمة الانترنت.....انا اذكر أنني قمت مرة بعمل عرض للصور ببرنامج ال Expression Blend والاداه كانت عملية جداً ...وحبيت ربطها بالداتا بيز ....واستخدمت نفس الطريقة....لكن كان يتطلب مني تحديث صفحة خدمة الانترنت اي تشغيل كامل المشروع ......والاخ vb helper كفاء ووفاء بخصوص الService1.svc...

والسلام عليكم ورحمة الله وبركاته

تم تعديل هذه المشاركة بواسطة احمد طلال في 16 يوليو 2011 في 06:54

وقال تعالى(( وَلَن تَرْضَى عَنكَ الْيَهُودُ وَلاَ النَّصَارَى حَتَّى تَتَّبِعَ مِلَّتَهُمْ قُلْ إِنَّ هُدَى اللّهِ هُوَ الْهُدَى وَلَئِنِ اتَّبَعْتَ أَهْوَاءهُم بَعْدَ الَّذِي جَاءكَ مِنَ الْعِلْمِ مَا لَكَ مِنَ اللّهِ مِن وَلِيٍّ وَلاَ نَصِيرٍ ))......

للمزيد من المشاريع الجاهزة ودورات برمجة المواقع اضغط هنا

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