منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة : عملية البحث في قاعدة sql من الفيجوال بيسك
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

ملاحظه قبل كل شيء أنا استخدم SQL2008 وفيجوال بيسك 2010 ..... والأهم الإتصال بقاعدة البيانات وكل تعاملي بقاعدة البيانات عن طريق المعالج المدمج مع الفيجوال

--------------------------------------------------------------------------------------------------------------------------------

أخواني عندي مشكلة طفشتني حياتي ليش عملية البحث في قاعدة بيانات الـ SQL عن طريقة برنامج الفيجوال بيسك مقعده جداً وتطلب مني ألف شرط وشرط والله شيء يطفش الواحد

في البداية ظهرت لي مشكلة إن بعد كتابة كود البحث ظهر لي خطأ ان نوع الحقل (ntext) غير مقبول لعملية البحث وأضطريت إني أغير جميع الحقول إلى nvarchar(MAX)

وبعدها ظهرت لي مشكلة ثانية ان اي حقل إذا كان نتيجته (NULL) عملية البحث ما تنطبق عليه وما يعطيني أي نتيجه يعني لو مثلا بأبحث بواسطه الأسم وعنوان السكن ورقم الجوال وأحد السجلات كان حقل العنوان (NULL) ما راح يظهر لي هذا الحقل في النتيجه نهائياً

اللي يقدر يحط لي مثال لقاعدة بيانات SQL ويكون الإتصال بالقاعدة والأكواد والبحث عن طريق المعالج أكون شاكر له جداً ( طبعا البحث يكون بدون شرط تطابق الكلمه يعني لو كتبت نص الكلمه يبحث ويعطيني النتيجه )


والسؤال اللي يطرح نفسه :
لماذا قاعدة بيانات الأكسس ما فيها هذا التعقيد كله وسهل التعامل معاها جداً ؟!؟!؟!؟
بالإضافة إلى موضوع الحقل من نوع (Date)

طيب انا في هذه الحاله مواجه مشكلة كبيره جداً لإني ما أقدر أكتب أي شيء داخل الحقل إلى تاريخ فقط .. لو حبيت أحط فراغ مثلا عشان أشيل كلمة (NULL) لا يقبل وعطيني خطأ يعني يا أكتب تاريخ أة اتركه (NULL)
عزيزي الزهراني ما دمت تتعامل مع السيكوال فلابد ان تنسي استخدام هذه الانواع من البيانات ntext ,text,image لا تستخدمهم حيث ان
ميكروسوفت سوف تقوم بازالتهم مستقبلا

ثانيا انا لم افهم جزئية البحث هذه وال null اما عن التاريخ فلابد ان يأخذ قيمه حيث انه من النوع value type ويقوم الفيجوال بتخزينه عل انه double لذلك في حال عدم كتابة تاريخ قم بوضع قيمة افتراضيه وليكن 01/01/1900 مثلا
طيب أنا أفهمك أخوي أمجد

عندي جدول ( اسم الموظف - عنوانه - رقم الجوال ) .......... والبحث عندي بواسطه الثلاث كلهم يعني ممكن أبحث عن البيانات بواسطه الاسم او العنوان او رقم الجوال

عملت سجل جديد وكتبت اسم الموظف ورقم جوال فقط ، وتركت العنوان بدون ما اكتب فيه شيء في هذه الحاله لو دخلت على قاعدة البيانات ألاقي العنوان مكتوب فيه (null) وهذه الكلمه مسببه لي أزمه والله

طيب لو عملت عملية بحث اللحين لو السجل يحمل كلمة null ما راح تظهر النتجيه وهذه هي مشكلتي .. قمت تغلبت على هذا الشيء بإني وضعت نقطه اذا ما كتبت المستخدم شيء مع ان هذا الحل ما عجبني نهائياً

يعني بإختصار لو كلمة null موجودة نتيجة البحث ما تظهر حتى لو انطبق باقي البيانات على السجل
متي لا تظهر النتيجه عندما تبحث بالعنوان فقط
أخوي أمجد الحمد لله وجدت الحل بعد ما طلعت عيني وهذه جملة الإستعلام اللي أستخدمتها :

PHP كود :
LIKE ISNULL(N'%' + @Name N'%'N'%'

(( طبعاً كلمة Name اسم الحقل ))

ألف شكر لك أخوي أمجد لعى وقفت دائماً معاي ما قصرت تحياتي لك