السلام عليكم ورحمة الله وبركاته
كيف ابحث بحقل واحد عن عدة كلمات
مثلا لدي خلية تحوي التالي منتدى فيجوال بيسك لكل العرب
معلوم تفصل بين الكلمات مسافات انا ريد ان ابحث كالتالي اكتب من كل كلمة حرفين اوحرف وافصل بمسافة
اي اكتب من في بي فيظهر لي النتيجة منتدى فيجوال بيسك لكل العرب
استخدم السكول سيرفر اريد استعلاما يفعل ذلك
وشكرا
Dim SQLDAP As New SqlDataAdapter("SELECT * FROM TabelName where Name like '%" + TextBox1.Text + "%'", Con)
Dim ds As New DataSet
SQLDAP.Fill(ds)
' فرضاً لو أرتد عرض النتيجه في داتا قريد فيو
DataGridView1.dataSource = dt
اخ عادل انا استخدم هذا الكود ولكن عندما تضع فراغ وتكتب الكلمة الثالثة يذهب الى لا شيء ارجو ان تكون الفكرة وصلت
وشكرا على ردك السريع وانا استخدم هذا الكود
Dim sqltb007 As String = "SELECT TOP (100) PERCENT ID, b1, b2, b3 FROM TB7 WHERE (b3 LIKE '%" & txttbl007 & "%') ORDER BY ID "
(22-10-16, 05:24 AM)adel27 كتب : أبد ياغالي تحت أمرك وأن شاء الله تنحل مشكلتك
أنا عملت لك مثال وهو عبـاره عن البحث بطريقتين أختر أي طريقه تناسبك
الطريقه الأولى تعبة الكمبو بكس
والثانيه بدون كمبو بكس أنا أفضل الطريقه الأولى
اولا اشكرك من كل قلبي
ثانيا هذه الطريقة اعرفها من قبل اظن انني لم استطع ان اوصل الفكرة كما يجب هل هناك طريقة غير like للبحث
بقواعد البيانات
وشكرا على ردك والسلام
توجد طريقة ترجع بأي سطر يحتوي عمود محدد على أي كلمة من الكلمات الموجودة في TextBox1
وهذا هو الكود لعمل ذلك
كود :
Dim mLike As String = "([column1] LIKE '%" & Join(Me.TextBox1.Text.Trim.Split, "%') OR ([column1] LIKE '%") & "%')"
Dim sql As String = "SELECT * FROM [Tabel1] WHERE " + mLike
لو وضعنا في TextBox1.Text النص التالي "من في بي" فإن جملة SQL راح تكون
كود :
SELECT * FROM [Tabel1] WHERE ([column1] LIKE '%من%') OR ([column1] LIKE '%في%') OR ([column1] LIKE '%بي%')
22-10-16, 06:55 PM (آخر تعديل لهذه المشاركة : 22-10-16, 07:00 PM {2} بواسطة myalsailamy.)
نفس طريقتي يا اخ ممدوح ،
كما انه يوجد طرق اخرى و لكن هذه اسهلها ايضا يوجد طريقة CONTAINS و FreeText و تمرر مجموعه من الكلمات كمصفوفه و لكنها صعبه قليلاً كمبتدأ في ادارة قواعد البيانات يعني يبغى لها اضافات اثناء تثبيت SQL Server ، و في الحقيقه لم اجربها و انما قرات عنها سابقا و احببت اضافتها لعلك تجد ضالتك فيها ، و هذا رابط يشرح طريقتها في الاستخدام :
ايضا شيء اخر لو اردت ان تبحث في جميع الاعمده النصيه الموجوده في قاعدة البيانات بنفس طريقة الاخ ممدوح فقط قم بدمج الاعمده و طبق عليها عملية like مثال :
WHERE ([column1]+[column2] LIKE '%من%') OR ([column1]+[column2] LIKE '%في%') OR ([column1]+[column2] LIKE '%بي%')
22-10-16, 09:54 PM (آخر تعديل لهذه المشاركة : 22-10-16, 09:56 PM {2} بواسطة العواد الصغير.)
(22-10-16, 12:40 PM)ممدوح كتب : وعليكم السلام ورحمة الله وبركاته
توجد طريقة ترجع بأي سطر يحتوي عمود محدد على أي كلمة من الكلمات الموجودة في TextBox1
وهذا هو الكود لعمل ذلك
كود :
Dim mLike As String = "([column1] LIKE '%" & Join(Me.TextBox1.Text.Trim.Split, "%') OR ([column1] LIKE '%") & "%')"
Dim sql As String = "SELECT * FROM [Tabel1] WHERE " + mLike
لو وضعنا في TextBox1.Text النص التالي "من في بي" فإن جملة SQL راح تكون
كود :
SELECT * FROM [Tabel1] WHERE ([column1] LIKE '%من%') OR ([column1] LIKE '%في%') OR ([column1] LIKE '%بي%')
جربها يمكن تطلع مطابقة لسؤالك
السلام عليكم
الطريقة هذه تزيد الصفوف ولا تنقصها or هي او اي ستزيد الصفوف بذلك لان اي حقل
فيه احد الكلمات سيظهر على كل اشكرك اتعبتك معي
وجزاك الله خيرا
(22-10-16, 06:55 PM)myalsailamy كتب : نفس طريقتي يا اخ ممدوح ،
كما انه يوجد طرق اخرى و لكن هذه اسهلها ايضا يوجد طريقة CONTAINS و FreeText و تمرر مجموعه من الكلمات كمصفوفه و لكنها صعبه قليلاً كمبتدأ في ادارة قواعد البيانات يعني يبغى لها اضافات اثناء تثبيت SQL Server ، و في الحقيقه لم اجربها و انما قرات عنها سابقا و احببت اضافتها لعلك تجد ضالتك فيها ، و هذا رابط يشرح طريقتها في الاستخدام :
ايضا شيء اخر لو اردت ان تبحث في جميع الاعمده النصيه الموجوده في قاعدة البيانات بنفس طريقة الاخ ممدوح فقط قم بدمج الاعمده و طبق عليها عملية like مثال :
WHERE ([column1]+[column2] LIKE '%من%') OR ([column1]+[column2] LIKE '%في%') OR ([column1]+[column2] LIKE '%بي%')
اخي الفاضل تم اجابتك بمنطقيه بحيث من الممكن أن تعيد استخدام الاكواد كما تريد مثلا في هذه الحاله بدلا من OR استخدم And و معناه لابد ان العمود يحتوي جميع الكلمات الموجود في مفاتيح البحث
(22-10-16, 10:19 PM)myalsailamy كتب : اخي الفاضل تم اجابتك بمنطقيه بحيث من الممكن أن تعيد استخدام الاكواد كما تريد مثلا في هذه الحاله بدلا من OR استخدم And و معناه لابد ان العمود يحتوي جميع الكلمات الموجود في مفاتيح البحث
انا لست متذمرا بل شاكرا للتعاونكم اعلم انكم اجبتم بما علمتم وجزاكم الله خيرا والشكر موصول لكم ولهذا
المنتدى الحميل