تقنية المعلومات
شركة تيم سيرف للخدمات وحلول الإنترنت المتكاملة

Buy and Sell text links


العودة   تقنية المعلومات > ::::: تقنية المعلومات التطويرية::::: > تطوير المواقع > تقنيات مبرمجى ASP.NET

تقنيات مبرمجى ASP.NET يناقش هذا المنتدى برمجة صفحات ويب لتعمل من جهة السيرفر باستخدام منصة الدوت نت باحدى لغاتها المختلفة VB.NET C# J# C++/CLI Delphi .NET ويناقش القسم أيضا كل مايتعلق ببرمجة ال XML Web Services وطرق تصميمها



إضافة رد
 
LinkBack LinkBack أدوات الموضوع انواع عرض الموضوع
  #1 (permalink)  
قديم 2008-11-08, 04:10 AM
:: إدارة تقنية المعلومات ::
 
تاريخ التسجيل: 01-11-2008
المشاركات: 141
افتراضي كود للبحث المتقدم

البحث المتقدم في مكتبة الكترونية بالاعتماد على عدة حقول بحيث يهمل الحقل الذي ليس به قيمة من شرط جملة الاستعلام...
و هي تحتاج الى الكثير من العمليات الشرطية و الاحتمالات.
مثلا لو كان لديك مربعي نص txt_1 و txt_2 فعليك كتابة 2*2 = 4 جملة شرطية ..
و تخيل مثلا لو كان لديك في فورم البحث 20 مربع نص و 4 قوائم انزلاقية مثلا و غيرها من خيارات البحث , عندئذ ستحتاج الى مئات الجمل الشرطية للخروج بجملة الاستعلام SQL و ما يرافقها من خربطة وو جع راس.

الحل يكمن في عمل ميثود لكل حقل من حقول البحث في الفورم (أدوات ASP.NET) , بحيث يعيد الميثود الخاص بكل كونترول احدى قيمتين : اما القيمة المخزنة في الكونترول أو لاشيء("") , وهذا مثال للتوضيح :
تخيل معي ان فورم البحث يحتوي على DropDownList باسم DDL و 3 مربعات نص باسم TXT_1 & TXT_2 & TXT_3 .
طبعا نحن نريد جملة SQL واحدة من كل هذه العملية ..



كود PHP:

 
protected void Button1_Click(object senderEventArgs e)
               {
                   
string Str_SQL "";
                   
Str_SQL "SELECT somethings FROM somwhere " GettWhere() +  GettTXT_1() + GettTXT_2() + GettTXT_3() + GettDDL();
                   
//
                   // --- اتصل بقاعدة البيانات بالاعتماد على جملة السكيوال المولدة اعلاه و افعل ما يحلو لك   
                   //
                   
Response.Write(Str_SQL); //---لمشاهدة جملة الاستعلام المولدة
               
}



        
//------------------- قيمة TXT_2 ----------------------
         
string GettTXT_2()
         {
             if (!(
TXT_2.Text==""))
             {
                 if (
TXT_1.Text == "") { return "   related to TXT_2 DataBase field =" TXT_2.Text; }
                 else { return 
"   AND  related to TXT_2 DataBase field =" TXT_2.Text; } // AND/OR  Whatever u like...
             
}
             else
             { return 
""; }
         }



        
//------------------- قيمة TXT_3 ----------------------
         
string GettTXT_3()
         {
             if (!(
TXT_3.Text == ""))
             {
                   if ((
TXT_1.Text == "") & (TXT_2.Text == "")) { return "   related_to_TXT_3_database_field =" TXT_2.Text; }
                   else { return 
"   AND  related_to_TXT_3_database_field =" TXT_3.Text; }
             }
             else
             { return 
""; }
         }



          
string GettDDL()
         {
             if (!(
DDL.SelectedIndex == 0)) // غير الشرط حسب منطق كودك
             
{
                 if ((
TXT_1.Text == "") & (TXT_2.Text == "")) { return "   related_to_DDL_database_field =" DDL.SelectedItem.Value; }
                 else { return 
"  AND  related_to_DDL_database_field =" DDL.SelectedItem.Value; }
             }
             else
             { return 
""; }
         }



            
string GettWhere() 
         {
             if ((
TXT_1.Text == "") & (TXT_2.Text == "") & (TXT_3.Text == "") & (DDL.SelectedIndex == 0))
             { return 
""; }
             else
             { return 
"   where   "; }
         } 
رد مع اقتباس
قديم 2008-11-08, 04:15 AM   المشاركة رقم: 2 (permalink)
الكاتب
:: إدارة تقنية المعلومات ::
تاريخ التسجيل : 01-11-2008
رقم العضوية : 20
المواضيع : 109
الردود : 32
مجموع المشاركات : 141
مشاركتي في اليوم بمعدل: 0.12
معدل التقييم : 10
معدل تقييم المستوى :
آخر تواجد : ()
الإتصال IM.com غير متواجد حالياً


كاتب الموضوع : IM.com المنتدى : تقنيات مبرمجى ASP.NET
افتراضي

وهذه طريقه أخرى يتم استخدام Session

لقد قمت بتصميم قاعدة بيانات للتجربة واسميتها Users فقط بهدف التجربة

واضفت جدولا واحدا اسمه Users ايضا واضفت له ثلاثة حقول هي

UserNumber
UserName
UserAge
UserCountry

واضفت عليه بعض البيانات

وفي الصفحة قمت بوضع ثلاثة مربعات نصوص وDropDownList واحدة لأجل Country

ثم استخدمت AJAX Update Panel ووضعت فيها العناصر الاربعة السابقة

ثم اضفت GridView وربطه مع قاعدة البيانات

واضفت زر لعمل البحث

ألية البحث:

في حدث Page_Load وضعت الكود التالي

كود

كود PHP:
If Not IsPostBack Then

Session
.Add("CR""")

End If 
لكي اقوم ببدء قيمة داخل الSession اسميتها CR ستحتفظ بنص البحث

ثم قمت بإضافة اجراء الى الصفحة بالشكل التالي
كود PHP:
Public Sub AddtoCrtiria(ByVal Name As StringByVal value As String)

Session("CR") = Session("CR") & Name "='" value "' AND "

End Sub 

حيث يقوم بالتعديل على نص البحث المخزن في Session

الان في كل مربع نص في حدث Changed وضعت الكود التالي
كود
كود PHP:
If TextBox1.Text <> "" Then

AddtoCrtiria
("UserName"TextBox1.Text)

End If 
طبعا Textbox1 يرسل UserName و TextBox2 يرسل UserNumber وهكذا

في الزر الخاص بعملية البحث أضفت الكود التالي

كود
كود PHP:
Dim mystring As String

mystring 
Session("CR")

mystring Left$(mystringLen(mystring) - 4)

SqlDataSource1.FilterExpression mystring

MsgBox
(mystring''فقط بغرض التوضيح للمبرمج

Session
("CR") = "" 
وكما تلاحظ قمت بحذف الحروف الاربعة الاخيرة ليتم حذف اخر كلمة AND من جملة البحث

ولكم مني كل الاحترام والتقدير












عرض البوم صور IM.com   رد مع اقتباس
قديم 2008-11-09, 03:24 PM   المشاركة رقم: 3 (permalink)
الكاتب
:: Mohamed Oraby ::
:: إدارة تقنية المعلومات ::
 
الصورة الرمزية Mohamed Oraby
تاريخ التسجيل : 20-10-2008
رقم العضوية : 3
الإقامة : مصر
الهواية : الفوتوشوب
المواضيع : 85
الردود : 229
مجموع المشاركات : 314
مشاركتي في اليوم بمعدل: 0.26
العمر : 23
معدل التقييم : 10
معدل تقييم المستوى :
آخر تواجد : ()
الإتصال Mohamed Oraby غير متواجد حالياً


كاتب الموضوع : IM.com المنتدى : تقنيات مبرمجى ASP.NET
افتراضي

جميل اوى والله وفى انتظار باقى الطرق لو فى تانى ....



M.ORaBY












التوقيع

  • إسم الشركة : تيم سيرف للخدمات وحلول الانترنت المتكاملة
  • صاحب الشركة : إسلام عطية السيد
  • مقر الشركة : الزقازيق - جمهورية مصر العربية
  • خدمات الشركة : استضافة - ريسلرات - سيرفرات - VPS - SMS - ADSL - برمجة - تصميم - ديجي شات - راديو
  • هاتف الشركة : 0020552311408/0020173392593
  • بريد الشركة : oraby_sales@teamserv.com
  • روابط الشركة : www.teamserv.com.eg
  • تذاكر الدعم الفني : www.support.teamserv.com
  • رقم السجل التجاري: شركة رسمية مسجلة برقم 118068
عرض البوم صور Mohamed Oraby   رد مع اقتباس
قديم 2008-11-09, 11:20 PM   المشاركة رقم: 4 (permalink)
الكاتب
:: عضو تقنية جديد ::
تاريخ التسجيل : 09-11-2008
رقم العضوية : 27
الإقامة : German
الهواية : الرياضة
المواضيع : 0
الردود : 17
مجموع المشاركات : 17
مشاركتي في اليوم بمعدل: 0.01
معدل التقييم : 10
معدل تقييم المستوى :
آخر تواجد : ()
الإتصال tiger+78 غير متواجد حالياً


كاتب الموضوع : IM.com المنتدى : تقنيات مبرمجى ASP.NET
افتراضي













عرض البوم صور tiger+78   رد مع اقتباس
قديم 2008-11-10, 05:14 PM   المشاركة رقم: 5 (permalink)
الكاتب
:: عضو تقنية مجتهد ::
 
الصورة الرمزية S4TCc.CoM
تاريخ التسجيل : 28-10-2008
رقم العضوية : 16
الإقامة : EGYPT
الهواية : MoNTaDa!aT
المواضيع : 25
الردود : 88
مجموع المشاركات : 113
مشاركتي في اليوم بمعدل: 0.09
العمر : 23
معدل التقييم : 10
معدل تقييم المستوى :
آخر تواجد : ()
الإتصال S4TCc.CoM غير متواجد حالياً


كاتب الموضوع : IM.com المنتدى : تقنيات مبرمجى ASP.NET
افتراضي












التوقيع

للتواصل عبر البريد الإلكترونى

s4tcc@s4tcc.com
smart@s4tcc.com



عرض البوم صور S4TCc.CoM   رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة

الانتقال السريع



الساعة الآن 11:22 AM بتوقيت مسقط


Powered by vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd
جميع الحقوق محفوظة لـتقنية المعلومات العربية للمساعدة والتدريب 2010 ©