صنع محرك بحث خاص بك بأستخدام Google search API ) كود + شرح - Visual Basic Internet Search with Google Search API
ذكرت فى موضوعى السابق عن طريق استخدام Google API Translator مع الفيجوال استديو دوت نت ولكن هل سنتوقف استخدام مزايا جوجل الى هذا القدر ؟ ( لا )
فا اليوم احبائى الكرام جئت لكم بموضوع اتمنى انه يعجبكم ويفيدكم ويفيد المبرمج العربى بقدر المستطاع اليوم ان شاء الله رغم الخلافات والحروب بين شركات التطوير للسوفت وير فى العالم
لكن فى النهايه المستفاد بأكبر قدر هوه المستخدم واليوم سنتعلم كيفيه عمل محرك بحث لصفحات الانترنت خاص بك بأستخدام Google Search API بهذه الاداه يمكننا الاستفاده من ناتج محرك البحث كما نشاء والفعل به اى شىء نريد كما سوف نراه بعد قليل ....
الان سوف اعرض عليكم مثال على هذه الاداه بشكل برنامج يمكننا الاستفاده منه وانا كتبته بواسطه Visual Basic.net 2008 وتم وضع بعض الامكانيات لتقويه عرض ناتج محرك البحث مع بعض الاداوات والمزايا المفيده
على بركه الله نبداء ...
كما نرى هذا شكل المثال الذى صنعته لكم والان سنتكلم عن المزايا الموجوده فى البرنامج ..
1- التحكم فى عدد ظهور نتائج البحث
2- للتحكم فى لغه ناتج البحث سواء كان انجليزى او عربى
3- يمكنك وضع روابط ناتج البحث الى المفضله Favorites
4- يمكنك فتح اى رابط تريده من الناتج وسيكون على شكل New Tab
5- يمكنك فتح جميع روابط البحث فى مره واحده وسيكون الفتح على شكل New Tabs
6- تحويل اللغه اوتوماتيكيا بعد اختيارها من البرنامج
كما نرى احبائى الكرام مميزات بعضها موجود فى صفحه جوجل والبعض غير موجود ايضا كان من الممكن الاستفاده بمزايا اكثر ولكن انا هانتظر التطوير منكم وافكار جديده منك جى تفيدنا جميعا
ولان تعالوا بينا نرى كيفيه بناء هذا البرنامج :
اول مرحله هيه ادراج Google API Translate الى المشروع عن طريق Add Reference الموجوده فى solution explorer وتم اختيار ملف الـ API كما فى الشكل التالى
بعد اتمام هذه المرحله احب ان اذكركم بهذه الصوره التى كانت فى موضوع ( اصنع بنفسك قاموس ومترجم بأستخدام Google API )
حتى نتفهم اننا نستخدم وسيط نحدثه حتى نصل الى ناتج البحث الذى نريده
فى المرحله الثانيه سوف نكتب الكود الخاص بأرسال بحثنا الى محرك جوجل للبحث للرد علينا بناتج البحث كما فى الكود التالى :
كود:
Dim results1 As IList(Of IWebResult) = i.Search(Me.TextBox1.Text, Me.NumericUpDown1.Value, Nothing, Nothing, SafeLevel.GetDefault(), Language.Arabic, DuplicateFilter.GetDefault())For Each result1 As IWebResult In results1 ListView1.Items.Add(result1.Url).SubItems.Add(result1.Title)extMe.ListView1.Items.Item(Me.ListView1.Items.Count - 1).Font = New Font("Tahoma", 10, FontStyle.Regular)N
كما نرى ان ارسال كلمه البحث المراد عنها ليست الوحيده فى متطلبات الارسال ولكن ايضا يجب وضع اللغه المراد اظهار الناتج بها وعدد الناتج وايضا نوع الفلتر ودرجه الحمايه فى روابط ناتج البحث ولكنى تركتها كما هيه ويمكن معرفه معلومات من Google Help وعند انتهاء وظيفه محرك جوجل للبحث يرجع لنا الناتج على شكل مصفوفه من المواقع الالكترونيه وبعض المعلومات عنها واذا ذكرنا المصفوفا يجب ان نذكر الـ Looop حتى نستطيع قراءه هذه المصفوفه ونعرضها للمستخدم وسيتين كل هذا لكم بعد قراءة وتجربه هذا الكود
عذرا ( هاطول عليكوا شويه )
هذه ليست الطريقه الوحيده فى البحث فى جوجل عن طريق البرمجه يوجد نوعان غير الذى شرحته وهم :-
1- بحث عن طريق Google Search API "Web Service وهيه خاصه بتطبيق كل ما ذكر ولكن فى تطبيقات الويب Web Application ( وهيه مشابه كثير لمثالنا السابق )
2- بحث بطريقه الروابط المركبه ( وهذا ما سوف نشرحه )
سيكون هذا الناتج بهذا الشكل
كما نرى ممكن البحث ضعيف الى حد ما وغير مطور كما ذكرنا نحن فى مثالنا السابق ولكن على على رأى المثل ( كل برغوت على قد كووده )
وهوه مش محتاج شرح كل ما عليك كما فى الكود التالى
كود:
Me.WebBrowser1.Navigate("http://www.google.com.eg/search?hl=ar&source=hp&q=" & Me.TextBox1.Text)
ووضع Input للمستخدم كمان وضعت فى الكود السابق Textbox
سهله طبعا صح ؟
===============
روابط المشاريع
===================================
شرح طرق التعامل مع قواعد البيانات ( اضافه - تعديل - حذف - بحث ) بأفضل الأساليب (2) Visual Basic .net Database
نستعين بالله ونبداء
بعد مانتهينا من كتابه جمل SQL - Insert,Update,Delete يتبقى لنا استدعاء هذه الجمل فى المثال فا الجزء الى احنا هانتكلم فيه كله كود
فا انا هارفع الاول المشروع علشان تشوفوا معايا الشرح وتقدروا تتباعوا كلامى
حمل المشروع من هنا
بعد تحميل الملف نبداء نفتح صفحه الكوود وتابعوا الشرح علشان هاشرحه جزء جزء
[CODE] Dim Mode As String
اول سطر هانلاقى متغير
متغير هوه Mode ووظيفته تخزين مؤقت لنوع العمليه المراده وسيتم ايضاحه فيما بعد
دى Sub وظيفتها انها بتحول الانترفيس الخاص باكنترول من وضع الاضافه الى وضع العرض اذا لاحظنا ان السطور هانلاقى اننا بنحجم اليوزر علشان مايكون عنده امكانيه تعديل اى بيانات موجوده فى وقت العرض وده طبعا شىء خاصه بالفورم وبعيد كل البعد عن الداتا بيز دى حاجه اختياريه ليك مش اكتر
دى Sub ايضا بتقوم بعكس وظيفه الـ Sub الى قبلها
الكود ده زى ماحنا شايفين فى الكود انه فى وقت تحميل الفورم والسطر الاول هوه وظيفته انه بيعمل تعبئه للبيانات من الداتا بيز الى الداتا سيت
والسطر الى فيه كلمه View
دى طبعا الـSub الى اتكلمنا عليها قبل كده بس هنا انا بعمل ليها Call
التول بار ده موجود فيه عمليات الداتا بيز الى راح تتعمل على البرنامج ده يعنى اليوزر قبل ما يبتدى يشتغل على العمليه الى عايزها لازم يختار النوع بتعها من التول بار وبناء عليه سيتم بداء العمليه بعد اختياره واتمام العمليه بالضغط على زر حفظ او الغاء
اول زر هوه Insert او الاضافه
اول سطر احنا حطينا استدعاء للـ Sub الخاصه بأتاحه المستخدم للتعديل
تانى وضع اسم لنوع العمليه المراده وده شىء بنسميه فى البرمجه Flag علشان لما اجى اعمل سيف او تخزين للبيانات اقدر اعرف هاعمل سيف بناء على اضافه عنصر او تعديل عنصر وستضح الصوره لك بعد انتهاء الشرح ان شاء الله
بعد ذالك هاتلاقى متغير جديد من نوع Random وده علشان اصنع ارقاء عشوائيه علشان احطها فى خانه الرقم ID
وطبعا كل ده انا بشكل اختيارى وبرده بعيد كل البعد عن الداتا بيز
فى الزر الخاص بـ Update
هاعمل استدعاء فى اول سطر للـSub الى اسمها Edit
وايضا هاحدد نوع العمليه المراده عن طريق استخدام تكنيك الـ Flag
نيجى بقى للزر Delete وده هايكون كوده مؤثر وله علاقه بالداتا بيز بشكل مباشر
عند كتابه هذا السطر Me.TestTableAdapter سوف يظهر لنا جميع جمل الـ SQL التى تمت كتابتها فى الدرس السابق
ولو فى برامتر للجمله مثل رقم الـ ID نفتح قوس ونبتدى نكتبهم
والأن مع زر Save
طبعا هانلاحظ جمله شرطيه علشان نتأكد من نوع العمليه المراده سواء كانت اضافه او تعديل وبناء عليه يتم عمليه الحفظ
بعد مانتهينا من كتابه جمل SQL - Insert,Update,Delete يتبقى لنا استدعاء هذه الجمل فى المثال فا الجزء الى احنا هانتكلم فيه كله كود
فا انا هارفع الاول المشروع علشان تشوفوا معايا الشرح وتقدروا تتباعوا كلامى
حمل المشروع من هنا
بعد تحميل الملف نبداء نفتح صفحه الكوود وتابعوا الشرح علشان هاشرحه جزء جزء
[CODE] Dim Mode As String
اول سطر هانلاقى متغير
متغير هوه Mode ووظيفته تخزين مؤقت لنوع العمليه المراده وسيتم ايضاحه فيما بعد
كود:
Sub View() Me.IDTextBox.ReadOnly = True Me.NameTextBox.ReadOnly = True Me.AgeTextBox.ReadOnly = True Me.ToolStrip1.Enabled = True Me.GroupBox2.Enabled = False End Sub
كود:
Sub Edit() Me.IDTextBox.ReadOnly = True Me.NameTextBox.ReadOnly = False Me.AgeTextBox.ReadOnly = False Me.ToolStrip1.Enabled = False Me.GroupBox2.Enabled = True End Sub
كود:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.TestTableAdapter.Fill(Me.AdventureWorksDataSet.Test) View() End Sub
والسطر الى فيه كلمه View
دى طبعا الـSub الى اتكلمنا عليها قبل كده بس هنا انا بعمل ليها Call
التول بار ده موجود فيه عمليات الداتا بيز الى راح تتعمل على البرنامج ده يعنى اليوزر قبل ما يبتدى يشتغل على العمليه الى عايزها لازم يختار النوع بتعها من التول بار وبناء عليه سيتم بداء العمليه بعد اختياره واتمام العمليه بالضغط على زر حفظ او الغاء
اول زر هوه Insert او الاضافه
كود:
Edit() Me.Mode = "Insert" Dim RND As New Random Me.IDTextBox.Text = RND.Next(99, 9999999) Me.NameTextBox.Clear() Me.AgeTextBox.Clear()
تانى وضع اسم لنوع العمليه المراده وده شىء بنسميه فى البرمجه Flag علشان لما اجى اعمل سيف او تخزين للبيانات اقدر اعرف هاعمل سيف بناء على اضافه عنصر او تعديل عنصر وستضح الصوره لك بعد انتهاء الشرح ان شاء الله
بعد ذالك هاتلاقى متغير جديد من نوع Random وده علشان اصنع ارقاء عشوائيه علشان احطها فى خانه الرقم ID
وطبعا كل ده انا بشكل اختيارى وبرده بعيد كل البعد عن الداتا بيز
فى الزر الخاص بـ Update
كود:
Edit() Me.Mode = "Update"
وايضا هاحدد نوع العمليه المراده عن طريق استخدام تكنيك الـ Flag
نيجى بقى للزر Delete وده هايكون كوده مؤثر وله علاقه بالداتا بيز بشكل مباشر
كود:
Me.TestTableAdapter.DeleteQuery(Me.IDTextBox.Text) Me.TestTableAdapter.Fill(Me.AdventureWorksDataSet.Test)
عند كتابه هذا السطر Me.TestTableAdapter سوف يظهر لنا جميع جمل الـ SQL التى تمت كتابتها فى الدرس السابق
ولو فى برامتر للجمله مثل رقم الـ ID نفتح قوس ونبتدى نكتبهم
والأن مع زر Save
كود:
If Me.Mode = "Insert" Then Me.TestTableAdapter.InsertQuery(Me.IDTextBox.Text, NameTextBox.Text, Me.AgeTextBox.Text) ElseIf Me.Mode = "Update" Then Me.TestTableAdapter.UpdateQuery(Me.NameTextBox.Text, Me.AgeTextBox.Text, Me.IDTextBox.Text) End If Me.TestTableAdapter.Fill(Me.AdventureWorksDataSet.Test) View()
شرح طرق التعامل مع قواعد البيانات ( اضافه - تعديل - حذف - بحث ) بأفضل الأساليب (1) Visual Basic .net Database
ان شاء الله اليوم سوف اشرح ابسط واسرع طرق التعامل مع قواعد البيانات وكيفيه اجراء العمليات المشاعه ولتى نكثر فى استخدامها فى مشاريعنا المربوطه بالداتا بيز وهيه مثل ..
( اضافه - تعديل - حذف - بحث )
وسوف اشرح ايضا افضل الطرق لتصميم وجهه لتعامل المستخدم مع الداتا بيز
بالنسبه لمحرك الداتا بيز الى هانستخدمها فى درس اليووم هوه SQL Server 2005
وبالنسبه الى الغه المستخدمه للتعامل مع الداتا بيز هيه Visual Basic.net 2008
وبأذن الله نبداء الشرح
=========================
قبل اى شىء لازم نجهز الداتا بيز التى سنعمل عليها فا اول شىء لازم نعمل دون لوود لداتا بيز من هذا الرابط
وهيه بأسم AdventureWorksDB
والحجم 27.3 MB
وطريقه استخدامها كالتالى :-
بعد تحميل الملف
1- نفتح SQL Server Management Studio Express
2- كليك يمين على مجلد Database من القائمه ثم اختر Attach
3-ثم نضغط على زر Add (سوف يتم فتح المسار للداتا بيز الموجود على جهازك )
4- نختار اسم الداتا بيز بتعتنا وهيه AdventureWorksDB ونضغط على زر OK
5- بعد الاختيار لآتمام العمليه نضغط OK
علشان يكون عندنا الشكل انهائى مل هذا
بعد الانتهاء من اضافه الداتا بيز ننتقل الى Visual Studio لبدايه العمل على الداتا بيز
ننشاء مشروع بأسم وليكن مثلا Absba Training
فى هذا سنتعلم التعامل مع الداتا بيز بدون كوود يعنى هانشتغل بطريقه Wizard وهيه فى الفيجوال استديو 2008 قويه جدا وبنقدر نحدد منها كل شىء نريده
فى ناس كتير لحد الآن بتستخدم الكوود من فى التعامل مع الداتا بيز وينسوا بقى كود معين ويطلع ايرور غريب بالنسبه ليهم فالطريقه دى بتوفر وقت ومجهود
بس قبل ما تستخدمها لازم تكون فاهم الادوات الى بنحتاجها للتعامل مع الدتا بيز مثل
(data set ,data adapter ) الخ الخ
اول خطوه بعد انشاء المشروع هيه الأتصال بالداتا بيز وخطوتها كالتالى
لازم الاول نظهر قائمه الدتا سورس كالتالى :-
ثم
سيظهر وجهه لآختيار نوع الداتا سورس والافتراضى لها هوه database ثم نضغط على زر Next
ثم
ثم
ثم نختار اسم SQL Server ونختار اسم الداتا بيز الى راح نشتغل عليها
ثم
ثم نختار الجداول الى بنريد نستخدمها فى مشروعنا طبعا انا فى المثال ده اخترت كله
طيب لو فرضنا اننا عايزين نضيف جدول جديد فى الدتا بيزز وحبيت اضيفه عندى فى الداتا سورس كيف راح يتم ده ؟
بكل بساطه نذهب الى SQL Server لآضافه الجدول كالتالى
ثم نجهز الجدول بالشكل ده
ثم نعمل Save بأسم Test
الى هذا الحد ينتهى عملنا مع SQL server ثم ننتقل الى Visual Studio ونتبع التالى
ثم نختار اسم الجدول المراد اضافته
وتمت الاضافه بنجاح
بعد التعرف على الاتصال باداتا بيز ننتقل الى طريقه ربط الداتا بيز مع وجهه البرنامج
احنا هانتعامل مع الجدول الى احنا عملناه ( TEST)
مبدئيا احنا محتاجين نصمم وجهه مثل هذا الشكل
كما هوه موضح امامكم الفورمه بسيطه موجود فيها اداه ToolStrip و Group Box و Button
وهانشرح استخدمنا لهذه الوجه لاحقا
الان بعد ما خلصنا التصميم الغير مربوط بالدتا بيز نيجى للخطوه التاليه وهيه وضع الكنترول المربوطه بالداتا بيز
كل ما علينا هوه استخدام طريقه ( السحب والافلات ) او (Drag and Drop ) لآعمده الجدول المراد ربطه بالوجهه وفى مثالنا هذا سوف نستخدم جدول TEST الى احنا عملناه مسبقا كالتالى
بعد انتهاء من هذه المرحله نعدل الشكل ليصبح كالتالى :
لو احنا عملنا RUN للبرنامج فى هذه المرحله راح يظهر الداتا الموجوده فى الجدول TEST
وهذا بسبب وجود كود تم كتباته تلقائيا عند سحب وافلات الاعمده الى وجهه البرنامج وهوه راح يكون بهذا الشكل
طيعا احنا ملاحظين ان الكود موجود فى حدث Form Load
طيب احنا لقينا كوود موجود جاهز احنا عايزين نعمل كود زى ده بس على حسب احتياجتنا احنا السؤال هوه كيف نضيف جمل الـ SQL للآضافه سجل او تعديله او ازالته واين جمله الـ FIll المستخدمه فى حدث الـ Form Load التى امامنا كل هذه اسئله سيتم اجابتك عليها حالا
احنا لو تفقدنا الناحيه اليمنى من الفيجوال استديو سنجد قائمه بأسم Solution explorer
وسنجد شكل بأسم AdventureWorksDataSet.xsd كما فى الشكل التالى
افتحها (دبل كليك عليها ) سترى جميع الجداول الموجود فى الدتا بيز AdventureWorksDB وجميع العلاقات ما بين الجداول وبعضها
وسنرى ايضا جدولنا TEST موجود بالشكل التالى
نلاحظ وجود جمله الـ Fill واذا اخذنا الفضول لآستكشاف ما بداخلها من كود سنتبع التالى
نضغط كليك يمين على الجمله ثم
ونلاحظ التالى
الجمله التى امامنا هيه المسئوله فى جمله الـ Fill او ملىء البيانات من Data Base الى Data Set
الان وقد وضح الينا الامر واجابه السؤال ( اين سنضع جمل الـ SQL الخاصه بنا )
والأن نبداء بأضافه جمله Insert
نتبع التالى
ثم
ثم نحدد نوع العمليه
ثم سنرى ان الفيجوال استديو قد كتب الكود تلقائيا
ثم نحدد اسم جمله الـ SQL
ثم
وهاقد انتهينا من باضافه الجمله بشكل صحيح
والان مع جمله التعديل
طريقه اضافه جمله التعديل تكون بنفس طريقه اضافه جمله الأضافه ولكن سوف يختلف فى امرين
اولا :- سوف نختار Update بدلا من Insert
ثانيا :- مش هاتلاقى كوود مكتووب جاهز وده لازم تعمله بنفسك تعالى نشووف مع بعض
نعدل الاختيار الى Update
ولى اضافه الجمله الخاصه بـ Update اتبع التالى
ثم
ثم نضيف الجدول المراد التعامل معه
ثم
ثم نكتب جمله الـ UPdate
جمله من اساسيات جمله الـ Update انه يجب ان يكون به شرط مثل
كود:
Where ID=@ParID
وهيه تعنى انه عدل الصف بالبيانات Name and Age عندما يكون الـ ID يساوى @ParID
اى كلمه تيجى بعد رمز @ فا هوه متغير او بارمتر وهنا احنا عندنا ثلاث متغيرات
الاسم
والسن
ورقم الـ ID
وكلهم متغيرات حيث ان تعاملنا معه سيكون عن طريق المستخدم وليس شىء ثابت قد تعرفه اثناء كتابتك للبرنامج
بعد ذالك نكمل عمليه اتمام اضافه جمله الـ Update
ثم تمت بنجاح
والان مع الجمله الاخيره وهيه Delete
وهيه كامثل خطوات جمله Update فا هيه لا تنشاء بشكل اوتوماتيكى كامثل جمله الـ Insert
ويجب ايضا وضع شرط لها وسيكون معناه ( امسح عندما يكون رقم الـ ID = ؟ ) فا هنا يجب ايضا استخدام المتغير راح يكون اوله @
لنرى كيف ذالك
ثم
ثم
وانتهينا من جمله الـ Delete بنجاح
=======================