طريقه وضع زر الاشتراك في اليوتيوب في مدونتك
السلام عليكم ورحمه الله وبركاته
عزيزي القارئ ،، سنتعلم في هذا الدرس إضافة مربع الإشتراك في القناة إلى مدونتك وبذلك لا يضطر الزائر أن يغادر مدونتك للاشتراك في القناة بل يمكنه ذلك وبكل سهولة من خلال مدونتك وبضغطة زر واحدة.
إليك الطريقة:
من لوحة التحكم ----- التخطيط ----- اضافة اداة --------- تختار html/java script
ثم تضع هذا الكود
<script src="https://apis.google.com/js/plusone.js"></script>
<div class="g-ytsubscribe" data-channelid="YsOVoRs_cqdpp6kIY9orEg" data-layout="full"></div>
<div class="g-ytsubscribe" data-channelid="YsOVoRs_cqdpp6kIY9orEg" data-layout="full"></div>
ولاتنسي ان تغير هذا الجزء YsOVoRs_cqdpp6kIY9orEg الي اسم المستخدم الخاص بك
ويمكنك الحصول علي اسم المستخدم من هنـــا
وفقكم الله
التنقل بين السجلات في الجدول
السلام عليكم ورحمه الله وبركاته
لذلك سنشرح طريقه الانتقال من خلال رقم السجل في الداتا تيبل
الفكره بأختصار سنقوم بعمل متغير عام من النوع الرقمي Integer وسنضع به رقم السجل الحالي وبهذا نستطيع التنقل بين السجلات من خلال رقم السجل الحالي .
ربما تقول الان لماذا لا نعتمد علي طرق مباشره للتنقل بين السجلات ؟؟
بكل بساطه سأجيب عليك اهم شئ لتصبح مبرمج هو ان يكون لديك افكار مختلفه لتنفيذ الكود وليس روتين في تكرار الاكود
واعتقد ان هذه الفكره ستفيدك في استخدامها في اشياء اخري ..
نبدأ بتنفيذ الكود:
سنقوم بأضافه اربع Button (الاول - التالي - السابق - الاخير )
واداه Label لنكتب بها رقم السجل
نقوم بالتصريح عن متغير عام في الفورم
Dim x As Integer = 0
حتي نسهل علي انفسنا سنقوم بعمل اجراء واحد لنستخدمه مع جميع ازرار الانتقال
Private Sub rowSelection()
If DataGridView1.RowCount = 0 Then Label4.Text = "0 of 0 " : Exit Sub
With DataGridView1
' الغاء التحديد في الجريد
.ClearSelection()
'تحديد السجل حسب الرقم
.Rows(x).Selected = True
'التركيز (الانتقال) الي السجل المعروض
.FirstDisplayedScrollingRowIndex = x
TextBox1.Text = .Rows(x).Cells(0).Value.ToString
TextBox2.Text = .Rows(x).Cells(1).Value.ToString
TextBox3.Text = .Rows(x).Cells(2).Value.ToString
Label4.Text = x + 1 & " of " & dt.Rows.Count
End With
End Sub
كود السجل الاول
x = 0 rowSelection()
كود السجل السابق
If x > 0 Then x -= 1 rowSelection() End If
كود السجل التالي
If x < dt.Rows.Count - 1 Then x += 1 rowSelection() End If
كود السجل الاخير
x = dt.Rows.Count - 1 rowSelection()
واخير نضيف هذه السطر في اخر الاجراء Loadgrid حتي تتحدث ارقام السجلات مع عمليات الاضافه والحذف
rowSelection()
وبهذا نكون تعلمنا طريقه التنقل بين السجلات
لتحميل المثال اضغط هـــنـا
حذف البيانات من الجدول | Delete
السلام عليكم ورحمه الله وبركاته
لحذف البيانات في الجدول نستخدم جمله Delete وتكتب الجمله بهذاالشكل :
DELETE FROM table_name WHERE column_name = some_value
كما تعودنا نذهب للمثال لنري الكود بشكل عملي
وستلاحظ ان الكود سيختلف اختلافات بسيطه فقط عن كود التعديل والاضافه
'Command وضعنا جمله الاستعلام في متغير نصي ثم اسنادها الي كائن الامر
sql = "Delete from employees Where Emp_code = @Emp_code "
Cmd.CommandText = sql
' وضع القيمه الخاصه بالبارميتر
Cmd.Parameters.Clear()
Cmd.Parameters.AddWithValue("@Emp_code", TextBox1.Text)
If Cn.State = ConnectionState.Closed Then Cn.Open()
'تنفيذ الاستعلام
Cmd.ExecuteNonQuery()
' غلق الاتصال
Cn.Close()
MessageBox.Show("تم الحذف بنجاح", "حذف ", MessageBoxButtons.OK, MessageBoxIcon.Information)
تذكر :
- لابد من وجود شرط في جمله الحذف حتي لا يتم حذف بيانات الجدول بالكامل .
- لا تنسي ان تحذف البيانات من البارميتر قبل استعماله حتي تتجنب الاخطاء .
- لاحظ اننا استخدمنا ExecuteNonQuery ايضا لان الاستعلام لا يرجع لنا ببيانات فقط سيقوم بتنفيذ التعديل دون الرجوع ببيانات .
رابط تحميل المثال هــنــا
تعديل البيانات في الجدول | UPDATE
UPDATE table_name SET column_name1 = new_value , column_name2 = new_value,.... WHERE column_name = some_value
يمكنك من خلال هذه الجمله تعديل عمود او اكثر فقط بكتابه اسم العمود في الجمله column_name1 = new_value
ولكن لابد من وجود شرط في جمله التعديل حتي لا يتم تعديل بيانات الجدول بالكامل
نكمل علي مثالنا لنري كيفيه كتابه كود التعديل :
' Command وضعنا جمله التعديل في متغير نصي ثم اسنادها الي كائن الامر
sql = "UPDATE employees set Emp_name = @Emp_name ,Emp_phone=@Emp_phone Where Emp_code = @Emp_code "
Cmd.CommandText = sql
' وضع القيم الخاصه بكل بارميتر
Cmd.Parameters.Clear()
Cmd.Parameters.AddWithValue("@Emp_name", TextBox2.Text)
Cmd.Parameters.AddWithValue("@Emp_phone", TextBox3.Text)
Cmd.Parameters.AddWithValue("@Emp_code ", TextBox1.Text)
'التأكد من حاله الاتصال
If Cn.State = ConnectionState.Closed Then Cn.Open()
'تنفيذ الاستعلام
Cmd.ExecuteNonQuery()
' غلق الاتصال
Cn.Close()
MessageBox.Show("تم التعديل بنجاح", "تعديل ", MessageBoxButtons.OK, MessageBoxIcon.Information)
- لابد من وجود شرط في جمله التعديل حتي لا يتم تعديل بيانات الجدول بالكامل .
- انت غير ملزم ان يكون ترتيب الاعمده في جمله الاستعلام بنفس ترتيب الجدول.
- لا تنسي ان تحذف البيانات من البارميتر قبل استعماله حتي تتجنب الاخطاء .
- حاول ان يكون ترتيب البارميترات في الكود بنفس ترتيبها في جمله التعديل .
- لاحظ اننا استخدمنا ExecuteNonQuery لان الاستعلام لا يرجع لنا ببيانات فقط سيقوم بتنفيذ التعديل دون الرجوع ببيانات .
(ExecuteNonQuery و ExecuteScalar و ExecuteReader )
رابط تحميل المثال هــنــا
اضافه البيانات في الجدول | Insert into
السلام عليكم ورحمه الله وبركاته
سنتعلم في هذا المثال :
- الترقيم التلقائي
- الاضافه في الجدول عن طريق البارميترات
- مسح محتويات جميع التيكست بوكس علي الفورم
- نقل بيانات السطر المحدد في الداتا جريد الي التيكست بوكس
- تنسيق العرض في الداتا جريد
لا ضافه البيانات في الجدول نستخدم Insert into وتكتب الجمله بهذاالشكل :
لاضافه صف كامل بالجدول تكون بالشكل التالي :
INSERT INTO table_name VALUES (value1, value2,....)
ويمكنك ايضا تحديد الحقول المطلوب إضافتها فقط وتكون كالتالى :
INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....)
شرح اهم الاكواد في المثال :
- كود الترقيم التلقائي
Cmd.CommandText = "Select Max(Emp_code) from employees "
If Cn.State = ConnectionState.Closed Then Cn.Open()
Dim Max As Integer = Val(Cmd.ExecuteScalar.ToString) + Val("1")
من خلال max في جمله الاستعلام نحصل علي اكبر رقم في حقل الكود ،، ثم نقوم بتنفيذ الاستعلام ونضيف عليه واحد
وهكذا نكون حصلنا علي ترقيم تلقائي
لاحظ اننا استخدمنا ExecuteScalar لان ناتج الاستعلام خليه واحده كما ذكرنا في الدرس السابق
- كود الاضافه
' Command وضعنا جمله الاستعلام في متغير نصي ثم اسنادها الي كائن الامر
sql = "Insert into employees values (@Emp_code ,@Emp_name,@Emp_phone)"
Cmd.CommandText = sql
' وضع القيم الخاصه بكل بارميتر
Cmd.Parameters.Clear()
Cmd.Parameters.AddWithValue("@Emp_code ", Max)
Cmd.Parameters.AddWithValue("@Emp_name", TextBox2.Text)
Cmd.Parameters.AddWithValue("@Emp_phone", TextBox3.Text)
'تنفيذ الاستعلام
Cmd.ExecuteNonQuery()
' غلق الاتصال
Cn.Close()
- مسح محتويات جميع التيكست بوكس علي الفورم
For Each ctrl As Control In Me.Controls
If TypeOf ctrl Is TextBox Then
CType(ctrl, TextBox).Clear()
End If
Next
- نقل بيانات السطر المحدد في الداتا جريد الي التيكست بوكس
في حدث CellClick للداتا جريد نكتب هذا الكود
TextBox1.Text = DataGridView1.Rows(e.RowIndex).Cells(0).Value.ToString TextBox2.Text = DataGridView1.Rows(e.RowIndex).Cells(1).Value.ToString TextBox3.Text = DataGridView1.Rows(e.RowIndex).Cells(2).Value.ToString
وقمنا بالحصول علي رقم السطر المحدد في الداتا جريد من خلال e.RowIndex
ان شاء الله يكون الدرس واضح ومفهوم
اذا واجهك اي صعوبه في الكود لا تتردد في السؤال
عرض البيانات في | DataGridView | الوضع المتصل
السلام عليكم ورحمه الله وبركاته
اليوم بمشيئه الله سنستعرض كيفيه استدعاء بيانات من قاعده البيانات وعرضها في DataGridView
كنا في الدرس السابق تكلمنا عن كائن الاتصال Connection
كائن الامر Command
هو الكائن المسؤل عن تنفيذ جمل الاستعلام Sql مثل (select – insert – delete - update)
أو تنفيذ الإجراءات المخزنة StoredProcedure .
وله ثلاث حالات :
ExecuteReader : تستخدم عند رجوع الاستعلام بسجل او اكثر مثل الاستعلام عن بيانات
ExecuteScalar : تستخدم عند رجوع الاستعلام بخليه واحده مثل الاجمالي او اكبر قيمه وهكذا ،،،
كائن DataTable
من خلال هذا الكائن يتم التعامل مع الجداول الموجودة في قاعدة البيانات وهو عبارة عن جدول يحتوي على مجموعة من الصفوف والأعمدة .
وكما يقال بالمثال يتضح المقال ...
الخطوه الاولي (انشاء قاعده البيانات)
سنقوم بأنشاء قاعده بيانات جديده ونسميها بالاسم db
ثم نقوم بأنشاء جدول بسيط مكون من ثلاث اعمده
Emp_code Number
Emp_name Text
Emp_phone Text
ثم نسمي الجدول بالاسم employees
ننتقل الي الخطوه الثانيه ( تصميم الفورم )
افتح برنامج الفيجوال Microsoft Visual Studio
وقم بأنشاء مشروع جديد
اضف اداه DataGridView علي الفورم
الخطوه الثالثه والاخيره (كتابه الاكواد)
نقوم بأستدعاء مكتبات الدوت نت كما تعلمنا في الدرس السابق بكتابه هذا الكود في منطقه التصريحات العامه
Imports System.Data.OleDb
ثم نكتب الكود التالي في حدث Form1_Load
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'الاتصال بقاعده البيانات
Dim Cn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source= " & Application.StartupPath & "\db.mdb ")
'اسناد جمله الاستعلام ومصدر الاتصال الي كائن الامر
Dim Cmd As New OleDbCommand("SELECT * FROM employees ", Cn)
Cn.Open() ' فتح الاتصال
'انشاء متغير من نوع DataTable
Dim dt As New DataTable
' تحميل السجلات العائده من الاستعلام في الداتا تيبل
dt.Load(Cmd.ExecuteReader)
' ربط مصدر البيانات للدات جريد
DataGridView1.DataSource = dt
Cn.Close() ' غلق الاتصال
End Sub
الي هنا انتهينا من عرض البيانات .. ولكن دعنا نقوم بتنسيق العرض قليلا في اداه DataGridView
قم بكتابه الاجراء التالي
Private Sub grid()
' كود التحكم في عرض الخلايا
DataGridView1.Columns(2).Width = 150
DataGridView1.Columns(0).Width = 150
' الكود التالي لتوسيط الأعمدة
DataGridView1.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
DataGridView1.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
DataGridView1.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
'تحديد السطر بالكامل وليس خليه واحده
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
' تغير اسامي العناوين للهيدر
DataGridView1.Columns(0).HeaderText = "الكود"
DataGridView1.Columns(1).HeaderText = "الاسم"
DataGridView1.Columns(2).HeaderText = "التليفون"
' توسيط الهيدر
DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
' كود جعل ثاني خليه 'الاسم' تأخذ باقي عرض الداتا جريد
DataGridView1.Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
' تلوين سطر وسطر
DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGray
End Sub
ولاستدعاء هذا الاجراء قم بكتابه هذا الكود في اخر سطر في الحدث Form1_Load
الي هنا انتهينا من هذا الدرس ،،، لتحميل المثال من هـــنـاCall grid()






