السلام عليكم ورحمة الله وبركاته
أتمنى أن أفيد أعضاء المنتدى بما أستطيع كما استفدت منهم كثيرا
وهذا مثال مرفق يوضح طريقة الإكمال التلقائي للـ TextBox من قاعدة بيانات
أسأل الله أن يجد من يستفيد منه
والسلام
السلام عليكم ورحمة الله وبركاته
أتمنى أن أفيد أعضاء المنتدى بما أستطيع كما استفدت منهم كثيرا
وهذا مثال مرفق يوضح طريقة الإكمال التلقائي للـ TextBox من قاعدة بيانات
أسأل الله أن يجد من يستفيد منه
والسلام
أولا - أهلا بك عضوا مفيدا في المنتدى
مثال حلو وإلى الأمام - وأرجو أن أرى المزيد من مواضيعك المفيدة
بس عندي طلب
ياريت تشرح الطريقة خطوة خطوة مشكورا حتى تكمل الفائدة من موضوعك إلى النهاية
تم تعديل هذه المشاركة بواسطة محمد سامر أبو سلو في 23 مارس 2007 في 00:22
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
جزاك الله خير على الرد
وإن شاء الله اشرح الكود قريبا جدا حينما أجد الوقت مباشرة
والسلام
شكرا اخى الكريم و اهلا بيك فى المنتدى صديق
و شكرا على هذا المثال
bodaman22 كتب:شكرا اخى الكريم و اهلا بيك فى المنتدى صديقو شكرا على هذا المثال
أشكرك على الرد
محمد سامر أبو سلو كتب:بس عندي طلبياريت تشرح الطريقة خطوة خطوة مشكورا حتى تكمل الفائدة من موضوعك إلى النهاية
وهذا الشرح هو إجابة لطلبك أخي محمد ونسأل الله أن ينفع به
شرح مبسط لميزة الإكمال التلقائي على TextBox من قاعدة بيانات
أولا : هذا الكود الكامل لتنفيذ الطريقة
Imports System.Data Imports System.Data.OleDb Public Class Frm1 Friend strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\autocompletecity.mdb;User Id=admin;Password=;" Friend strSQL As String = "SELECT Name FROM city ORDER BY Name;" Friend cn As New OleDbConnection(strConn) Friend citydata As New OleDbDataAdapter(strSQL, cn) Private Sub Frm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim TheSearchTable As DataTable = New DataTable Dim i As Integer cn.Open() citydata.Fill(TheSearchTable) txt1.AutoCompleteMode = AutoCompleteMode.SuggestAppend txt1.AutoCompleteSource = AutoCompleteSource.CustomSource If TheSearchTable.Rows.Count <> 0 Then For i = 0 To TheSearchTable.Rows.Count - 1 txt1.AutoCompleteCustomSource.Add(TheSearchTable.Rows(i)(0)) Next i End If cn.Close() End Sub End Class
شرح الكود
تجهيز لوازم الاتصال بقاعدة البيانات
Imports System.Data Imports System.Data.OleDb Public Class Frm1 Friend strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\autocompletecity.mdb;User Id=admin;Password=;" Friend strSQL As String = "SELECT Name FROM city ORDER BY Name;" Friend cn As New OleDbConnection(strConn) Friend citydata As New OleDbDataAdapter(strSQL, cn)
الآن العمليات الأساسية سوف تكون في حدث Form_Load
تكوين متغير من نوع DataTable وإنشاء جدول بيانات جديد فيه
Dim TheSearchTable As DataTable = New DataTable
فتح الاتصال بقاعدة البيانات وتعبئة الجدول TheSearchTable بمحتواها
cn.Open() citydata.Fill(TheSearchTable)
الآن محتوى قاعدة البيانات موجود بالذاكرة وتحديدا في الجدول TheSearchTable
سوف نقوم الآن بتعديل خواص الـ TextBox الموجود على الفورم والذي نريد إضافة ميزة الإكمال التلقائي له
وتعديل الخواص هنا سوف يكون بالكود و الـTextBox في مثالنا اسمه txt1
تحديد نمط الإكمال التلقائي سوف يكون اثناء الكتابة في tx1 وأيضا مع عرض كل الاقتراحات المشابهة
txt1.AutoCompleteMode = AutoCompleteMode.SuggestAppend
تحديد مصدر البيانات التي سوف تستخدم في عرض الاقتراحات للإكمال التلقائي على أنه مصدر مخصص
txt1.AutoCompleteSource = AutoCompleteSource.CustomSource
وبهذه الخاصية CustomSource يمكنك من إضافة عناصر الإكمال التلقائي بنفسك عنصر عنصر هكذا
txt1.AutoCompleteCustomSource.Add("مكة")
txt1.AutoCompleteCustomSource.Add("المدينة")
txt1.AutoCompleteCustomSource.Add("الأسكندرية")ولكن في مثالنا سوف نضيف محتوى الجدول TheSearchTable إلى قائمة الإكمال التلقائي المخصص بدلا من كتابة العناصر
ملاحظة: محتوى الجدول هو حقل واحد(عمود واحد) به أسماء المدن
If TheSearchTable.Rows.Count <> 0 Then For i = 0 To TheSearchTable.Rows.Count - 1 txt1.AutoCompleteCustomSource.Add(TheSearchTable.Rows(i)(0)) Next i End If
هكذا تمت إضافة العناصر إلى قائمة الإكمال التلقائي المخصصة
ولم نعد بحاجة إلى استمرار الاتصال بقاعدة البيانات أو المتغيرات المتعلقة بها فيمكن تحرير الذاكرة منها واستعادة موارد النظام بهذه الطريقة
cn.Close() cn.Dispose() citydata.Dispose() TheSearchTable.Dispose()
والآن تمتع بميزة الإكمال التلقائي الرائعة
والسلام
تم تعديل هذه المشاركة بواسطة mangawy في 23 مارس 2007 في 13:24
الأخ mangawy الآن اكتمل الموضوع
جزاك الله خيرا
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
رائع أخى
قولنا الطريقة دى قبل كدة كذا مناسبة بس بقى بال Datareader لانه أسرع
Dim cm As New OleDb.OleDbCommand(strSQL, cn) With cm.ExecuteReader While .Read txt1.AutoCompleteCustomSource.Add(.Item(0).ToString) End While End With
Practice makes perfect 2007*
البرمجة بلا انطباعات
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…