الحلقة الحادية عشر
الجزء الثالث من استخدام جمل Sql مع الفيجوال بيسك
خامسا : استخدام العامل Like
حيث تستخدم لعرض القيم تبدا بحرف او تنتهي بحرف أو تحتوي على حرف مثل عندما تريد عرض أسماء الطلاب التي تحتوي على كلمة محمد مثلا :
الشكل العام للجملة يكتب كالتالي :
CODE
Select * from tab
Where col like string
حيث تمثل string قيمة النص الذي نريد عرضه وهو كالتالي :
أولا : إذا كنت تستخدم قاعدة البيانات أكسس فيكون النص كالتالي :

ثانيا : إذا كنت تستخدم قاعدة البيانات Sql server فيكون النص كالتالي :

وهنا ملاحظة ان الرموز مع الكائن ado هي المستخدمة مع sql server حتى ولو كنت تستخدم access
مثال تطبيقي 10
لعرض جميع حقول الجدول بحيث أن اسم الطالب يحتوي على حرف m
اضغط على الزر SQL10 مرتين ثم اكتب الكود التالي :
CODE
Dim sql As String
sql = "Select * From St_inf where st_name like *m*"
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs1
مثال آخر تطبيقي 11
لعرض جميع الأسماء في قائمة اسم الطالب عندما نكتب أي حرف في مربع النص الذي فوقها
اضغط على مربع النص الذي فوق list box مرتين ثم اختار الحث Change لمربع النص ثم اكتب الكود التالي :
CODE
Dim sql
sql = "select * from st_inf where st_name like '%" + txt6.Text + "%'"
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set dblist1.RowSource = rs1
dblist1.ListField = "st_name"
dblist1.Refresh
سادسا : جملة الترتيب Order By
حيث تستخدم لترتيب البيانات المعروضة حسب حقل أو أكثر :
الشكل العام للجملة يكتب كالتالي :
CODE
Select * from tab
Where condition
Order by col1,col2,…[Asc,Desc]
حيث يمكنك ترتيب البيانات حسب حقل أو أكثر ترتيبا تصاعديا وهو الوضع الافتراضي للترتيب أو ترتيبا تنازليا حيث يلزمك استخدام البارامتر Desc
مثال تطبيقي 12
لعرض جميع الأسماء مرتبة ترتيبا تصاعديا حسب اسم الطالب
اضغط على الزر Sql11 مرتين ثم اكتب الكود التالي :
CODE
Dim sql
sql = "select * from st_inf where st_no>6 order by st_name"
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs1
الحقول المحسوبة داخل جملة Select
حيث يمكنك إجراء عمليات حسابية على البيانات المعروضة وهذه العمليات تكون مفيدة جدا في حالات لا تجد إلا الحقول المحسوبة مثل إيجاد مجموع البيانات داخل حقل أو إيجاد أكبر قيمة .....
الدوال التي يمكن استخدامها في جملة select هي :
1 – دالة المجموع Sum()
حيث يمكنك استخدامها لإيجاد مجموع القيم الموجودة في حقل معين
مثال تطبيقي 13
مثلا لحساب مجموع القيم الموجودة في الحقل st_no وهو الحقل الرقمي الموجود بالجدول
اضغط على الزر Sql12 مرتين ثم اكتب الكود التالي :
CODE
Dim sql
sql = "select sum(st_no) from st_inf "
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
text1.text = rs1.Fields(0)
2 – دالة أكبر قيمة Max()
حيث يمكنك استخدامها لإيجاد أكبر القيم الموجودة في حقل معين
مثال تطبيقي 14
مثلا لحساب أكبر القيم الموجودة في الحقل st_no وهو الحقل الرقمي الموجود بالجدول
اضغط على الزر Sql13 مرتين ثم اكتب الكود التالي :
CODE
Dim sql
sql = "select max(st_no) from st_inf "
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
text1.text = rs1.Fields(0)
3 – دالة أقل قيمة Min()
حيث يمكنك استخدامها لإيجاد اقل القيم الموجودة في حقل معين
مثال تطبيقي 14
مثلا لحساب اقل القيم الموجودة في الحقل st_no وهو الحقل الرقمي الموجود بالجدول
اضغط على الزر Sql14 مرتين ثم اكتب الكود التالي :
CODE
Dim sql
sql = "select min(st_no) from st_inf "
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
text1.text = rs1.Fields(0)
4 - دالة المتوسط Avg()
حيث يمكنك استخدامها لإيجاد متوسط القيم الموجودة في حقل معين
مثال تطبيقي 15
مثلا لحساب مجموع القيم الموجودة في الحقل st_no وهو الحقل الرقمي الموجود بالجدول
اضغط على الزر Sql15 مرتين ثم اكتب الكود التالي :
CODE
Dim sql
sql = "select avg(st_no) from st_inf "
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
text1.text = rs1.Fields(0)
5 – دالة عدد السجلات Count()
حيث يمكنك استخدامها لإيجاد عدد السجلات الموجودة في حقل معين حيث يتم تجاهل القيم الخالية إلا إذا استخدمت علامة *
مثال تطبيقي 16
مثلا لحساب عدد السجلات الموجودة في الحقل st_no وهو الحقل الرقمي الموجود بالجدول
اضغط على الزر Sql16 مرتين ثم اكتب الكود التالي :
CODE
Dim sql
sql = "select count(st_no) from st_inf "
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
text1.text = rs1.Fields(0)
6 – يمكنك إجراء عملية حسابية على حقل معين
مثل ضرب الحقل رقم الطالب في 10
مثال تطبيقي 17
مثلا لضرب الحقل st_no في العدد 10
اضغط على الزر Sql17 مرتين ثم اكتب الكود التالي :
CODE
Dim sql
sql = "select st_no,st_no*10 as account from st_inf "
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
set datagrid1.datasource = rs1
نكمل إن شاء الحلقة القادمة
|