تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 8 از 8

نام تاپيک: در این مقاله نحوه جستجوی ساده در بانک اطلاعاتی Sql Sever را آموزش داده ام

  1. #1
    داره خودمونی میشه ahmadirad1365's Avatar
    تاريخ عضويت
    Sep 2008
    محل سكونت
    تهران
    پست ها
    105

    پيش فرض در این مقاله نحوه جستجوی ساده در بانک اطلاعاتی Sql Sever را آموزش داده ام

    جستجو در بانک اطلاعاتي :

    يکي از پر کاربرد ترين بخش هاي هر سايتي ، بخش جستجو سايت مي باشد.

    جستجو در سايت بدليل کاهش زمان کاربر در رسيدن به هدف بسيار مهم است ، از آنجايي که امروزه قريب به اتفاق سايت هاي پويا از بانک هاي اطلاعاتي استفاده مي کنند و مطالب و محتويات سايت را داخل اين بانک هاي اطلاعاتي قرار ميدهند مبحث جستجو در بانک هاي اطلاعاتي اهميت قابل توجهي پيدا کرده است.

    خوب فرض کنيد يک ثبت نام اينترنتي انجام داده ايد! و از هر کاربر 1 سوال در مورد علايق او پرسيده ايد و اطلاعات زير را ثبت کرده ايد !

    1- نام و نام خانوادگي

    2- علايق شخص

    و اين اطلاعات را داخل يک جدول بانک اطلاعاتي SQL Server 2005 به نام Search ذخيره کرده ايد ! و قصد داريد از اطلاعات جمع آوري کرده استفاده کنيد .

    بنابراين جدول بانک اطلاعاتي شما داراي 3 ستون به شرح زير مي باشد :

    1- UserID : کد کاربر ( که بصورت خود کار داده مي شود )

    2- UserFamily : نام و نام خانوادگي کاربر

    3- UserAnswer : پاسخ کاربر به سوال پرسيده شده

    خوب اسم اين جدول را TblUSers مي گذاريم .

    بنابراين اکنون يک ديتابيس به نام Search به همراه يک جدول به نام TblUsers در اختيار داريم :

    خوب حالا چند رکورد براي تست وارد اين جدول کنيد !



    جستجو در بانک اطلاعاتي چيزي نيست جز يک عمل Select که به همراه يک شرط و کليد واژه Like به کار مي رود .

    فرض کنيد مي خواهيد تمامي رکورد هاي جدول بانک اطلاعاتي را فراخواني کنيد به شرطي که نام کاربر “rad” باشد ! براي اينکار دستور Sql زير را مي نوشتيم :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و از کاراکتر N به منظور شناسايي کارکتر هاي Unicode استفاده مي کرديم.

    عمل فوق تنها رکوردي را براي ما بر ميگرداند که ستون UserFamily در آن دقيقا "rad" باشد و اگر داخل بانک رکوردي به نام "ahmadi rad" وجود داشته باشد دستور فوق آنرا بر نمي گرداند.

    بدين منظور است که از کليد واژه Like به همراه کارکتر هاي % استفاده مي کنيم :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کاراکتر % در سمت چپ و راست کلمه "rad" به SQL Server مي گويد که کاربر قصد جستجوي کلمه دلشاد را دارد و چون هم قبل و هم بعد آن % وجود دارد بدين معني است که ما اهميتي نمي دهيم که قبل و بعد از کلمه دلشاد چه کاراکتر هايي موجود است فقط کافيست آن رکورد کلمه "دلشاد" را شامل باشد .

    نکته جالب اينجاست که اگر از کاراکتر هاي % استفاده نکنيد ، کليد واژه Like دقيقا مانند عملگر "=" عمل خواهد کرد ( با توجه به گفته بالا کاملا منطقي به نظر ميرسد )

    با توجه به نکات فوق قصد داريم يک جستجو در اين جدول توسط Asp.NET و به زبان C# انجام دهيم .

    براي اينکار ابتدا نرم افزار ويژوال استوديو دات نت را باز کرده و يک پروژه جديد به نام Search مي سازيم.

    داخل صفحه Default.aspx شده و يک کنترل Gridview به نام Grv_Search، يک Textboxبه نام Txt_Search و يک باتن به نام Btn_Submit به صفحه اضافه مي کنيم.

    وارد CodeBehind ابتدا کتابخانه هاي زير را پيوست مي کنيم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ميخواهيم يک جستجوي ساده بنويسيم به اين صورت که کاربر کلمه کليدي خود را داخل TextBox وارد کرده و پس از اينکه کليد جستجو را فشرد تمامي رکورد هايي که شامل کلمه کليدي هستند داخل GridView نمايش مي يابند .
    بدين منظور زير روال BindGridview را بصورت زير تعريف مي کنيم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در زير روال فوق پس از اتصال به بانک و اجراي دستور دلخواه که توضيح دادم ، Gridview را بايند مي کنيم .

    در اينجا من از ExecuteReader بصورت مستقيم استفاده کردم ، شما ميتوانيد از ديتاست ، ObjectDataSource و... استفاده کنيد !

    دستور Select را طوري نوشتم که داخل ستون UserAnswer هر کلمه کليدي را جستجو نمايد . کلمه کليدي نيز به اين دستور بصورت پارامتر @KeyWord پاس مي شود.

    خوب در روال مربوط به رويداد کليک شدن Btn_Submit به اين صورت مي نويسيم :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    کار تمام است ميتوانيد جستجو را تست کنيد

    اميد وارم به دردتون بخوره

    نظر فراموش نشه تا زحمت نوشتن اين مطلب هم ضايع نشه!!!

  2. 11 کاربر از ahmadirad1365 بخاطر این مطلب مفید تشکر کرده اند


  3. #2
    حـــــرفـه ای Ultimator's Avatar
    تاريخ عضويت
    May 2007
    محل سكونت
    NetFrameWork.
    پست ها
    3,239

    پيش فرض

    ممنون دوست عزیز ..

    اما چیز جدیدی هم نبود با جستجو نمونه های زیادی میشد پیدا کرد ..

    به هر حال ممنون

  4. #3
    حـــــرفـه ای Ship Storm's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    IRAN - ALBORZ وضعیت فعلی: Intelligent Processing
    پست ها
    15,454

    پيش فرض

    ممنون دوست عزیزم
    فقط کاش میتونستید یک نمونه از برنامه که تکمیل شده و آماده کار کردن هستش رو آپلود میکردید تا با این قضایا بیشتر آشنا بشیم
    با تشکر

  5. #4
    داره خودمونی میشه ahmadirad1365's Avatar
    تاريخ عضويت
    Sep 2008
    محل سكونت
    تهران
    پست ها
    105

    پيش فرض

    ممنون دوست عزیزم
    فقط کاش میتونستید یک نمونه از برنامه که تکمیل شده و آماده کار کردن هستش رو آپلود میکردید تا با این قضایا بیشتر آشنا بشیم
    با تشکر
    یقینا اگه خودتون زحمت انجام مراحلو بکشید بهتر میفهمید و ماندگاریش هم بیشتره در ذهن.
    اما چشم اگه تونستم فایل مربوطه رو میزارم

  6. این کاربر از ahmadirad1365 بخاطر این مطلب مفید تشکر کرده است


  7. #5
    در آغاز فعالیت
    تاريخ عضويت
    Jan 2009
    پست ها
    1

    پيش فرض

    سلام ده علیچم . شوما چوجوری میتونید ها ولی منا نم تونمی .

    کژتاب بیدید.

  8. #6
    در آغاز فعالیت
    تاريخ عضويت
    Aug 2009
    پست ها
    2

    پيش فرض

    سلام من همین جستجو رو یجور دیگه نوشتم : دستور Select رو داخل Gridviwe گذاشتم جواب هم میده ولی اگه بخوام یکم پیشرفته ش کنم مثلا جستجو بر اساس نام نام خانوادگی و نام کاربری اگه هر3 رو طرف وارد کرد 1 نتیجه بده اگه فقط یکی از اینا رو وارد کرد هم بازم نتیجه بده حالا ممکنه نتیجه چندتا باشه
    ممنون میشم کمکم کنید

  9. #7
    در آغاز فعالیت
    تاريخ عضويت
    Sep 2009
    پست ها
    1

    پيش فرض

    سلام منم این ها رو وارد کردم ولی جواب نمی ده..
    اینم برنامه من است دکمه که می زنیم چیزی پیدا نمی کنه لطفا راهنمایی فرمایید؟
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  10. #8
    داره خودمونی میشه RezaNrzdh's Avatar
    تاريخ عضويت
    Feb 2013
    محل سكونت
    شهر باران
    پست ها
    51

    پيش فرض

    سلام.
    query که نوشتید مشکل داره باید به این صورت باشه
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اما خب این سبک نوشتن خیلی اذیت میکنه.اول اینکه بعدا بخواین کانکشن استرینگ رو توی وبسایت تغییر بدید.باید یکی یکی تمام جاهایی که sqlconnection نوشتید رو بازنویسی کنید.دوم هم برمیگرده به خود کوئری..استفاده از like توی جستجو ها شاید برای رکورد های پایین جواب بده اما در رکورد های زیاد دچار مشکل میشه..که توصیه میشه از full text search ها استفاده بشه

  11. این کاربر از RezaNrzdh بخاطر این مطلب مفید تشکر کرده است


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •