مدونة علم البرمجة والحاسوب
من حقك ان تتعلم اكثر

صنع محرك بحث خاص بك بأستخدام 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)
ext
Me.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 

سهله طبعا صح  ؟


===============


روابط المشاريع 



===================================
Read On

ايقونات برامج - Programs Icons

كيفكم اخوانى اعضاء وزوار منتديات المشاغب

الان اقدم لكم اضخم مجموعة ايقونات للسوفت وير
حصريا على موقع المشاغب
اليكم صور المجموعه














الحجم :112 ميجا

للتحميل اضغط على الروابط التاليه





password
micro-graphic

Read On

شرح طرق التعامل مع قواعد البيانات ( اضافه - تعديل - حذف - بحث ) بأفضل الأساليب (2) Visual Basic .net Database

نستعين بالله ونبداء



بعد مانتهينا من كتابه جمل 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 وظيفتها انها بتحول الانترفيس الخاص باكنترول من وضع الاضافه الى وضع العرض اذا لاحظنا ان السطور هانلاقى اننا بنحجم اليوزر علشان مايكون عنده امكانيه تعديل اى بيانات موجوده فى وقت العرض وده طبعا شىء خاصه بالفورم وبعيد كل البعد عن الداتا بيز دى حاجه اختياريه ليك مش اكتر

كود:
Sub Edit()
        Me.IDTextBox.ReadOnly = True
        Me.NameTextBox.ReadOnly = False
        Me.AgeTextBox.ReadOnly = False
        Me.ToolStrip1.Enabled = False
        Me.GroupBox2.Enabled = True
    End Sub
دى Sub ايضا بتقوم بعكس وظيفه الـ 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()
اول سطر احنا حطينا استدعاء للـ Sub الخاصه بأتاحه المستخدم للتعديل
تانى وضع اسم لنوع العمليه المراده وده شىء بنسميه فى البرمجه Flag علشان لما اجى اعمل سيف او تخزين للبيانات اقدر اعرف هاعمل سيف بناء على اضافه عنصر او تعديل عنصر وستضح الصوره لك بعد انتهاء الشرح ان شاء الله
بعد ذالك هاتلاقى متغير جديد من نوع Random وده علشان اصنع ارقاء عشوائيه علشان احطها فى خانه الرقم ID
وطبعا كل ده انا بشكل اختيارى وبرده بعيد كل البعد عن الداتا بيز

فى الزر الخاص بـ Update

كود:
Edit()
        Me.Mode = "Update"
هاعمل استدعاء فى اول سطر للـSub الى اسمها Edit
وايضا هاحدد نوع العمليه المراده عن طريق استخدام تكنيك الـ 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()
طبعا هانلاحظ جمله شرطيه علشان نتأكد من نوع العمليه المراده سواء كانت اضافه او تعديل وبناء عليه يتم عمليه الحفظ
Read On

شرح طرق التعامل مع قواعد البيانات ( اضافه - تعديل - حذف - بحث ) بأفضل الأساليب (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 بنجاح 






=======================


Read On

من انا ؟