تبليغات X
جستجو کلید واژه ای در بانک های اطلاعاتی ( قسمت اول )

HOW 2 LEARN ASP.NET
نویسنده : delshad
تاریخ  : ۱۳۸۶/۱/۲۳
امتیاز :
بازدید : 6942
موضوع : جستجو کلید واژه ای در بانک های اطلاعاتی ( قسمت اول )
توضیحات : در این مقاله نحوه جستجوی ساده در بانک اطلاعاتی SQL SEVER را آموزش داده ام.
  دانلود مقاله   نسخه قابل چاپ

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

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

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

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

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

2-      علایق شخص

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

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

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

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

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

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

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

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

 

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

فرض کنید می خواهید تمامی رکورد های جدول بانک اطلاعاتی را فراخوانی کنید به شرطی که نام کاربر دلشاد باشد ! برای اینکار دستور Sql زیر را می نوشتیم

 

Select * From TblUsers Where UserFamily=N'دلشاد'

 

 

و از کاراکتر N   به منظور شناسایی کارکتر های Unicode استفاده می کردیم.

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

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

Select * From TblUsers Where UserFamily Like N'%دلشاد%'

 

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

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

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

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

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

 

وارد CodeBehind ابتدا کتابخانه های زیر را پیوست می کنیم :

 

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

 

 

میخواهیم یک جستجوی ساده بنویسیم به این صورت که کاربر کلمه کلیدی خود را داخل TextBox وارد کرده و پس از اینکه کلید جستجو را فشرد تمامی رکورد هایی که شامل کلمه کلیدی هستند داخل GridView نمایش می یابند .

بدین منظور زیر روال BindGridview  را بصورت زیر تعریف می کنیم :

 

using (SqlConnection Con = new SqlConnection("Data Source=(local);Initial Catalog=search;Integrated Security=SSPI;"))

        {

            string SqlStr = "Select * From TblUsers Where UserAnswer Like N'%'+@KeyWord+'%'";

            SqlCommand Cmd = new SqlCommand(SqlStr, Con);

            Cmd.Parameters.AddWithValue("@KeyWord", KeyWord);

 

            Con.Open();

 

            Grv_Search.DataSource = Cmd.ExecuteReader();

            Grv_Search.DataBind();

 

            Con.Close();

 

        }

 

در زیر روال فوق پس از اتصال به بانک و اجرای دستور دلخواه که توضیح دادم ، Gridview را بایند می کنیم .

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

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

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


BindGridview(Txt_Search.Text);

کار تمام است میتوانید جستجو را تست کنید .

 فایل پروژه را میتوانید از این لینک دانلود کنید :

 http://how2learnasp.net/Projects/search.rar


 

 

 
امتیاز بدهید :

نویسنده : s.morabi report.classic@yahoo.com ۱۳۸۸ يازدهم مهر
ba arze salam be nahayat sepasgozaram
نویسنده : اکبر ekber1@hotmail.com ۱۳۸۷ بيست و ششم بهمن
واقعا عالی بود دستت درد نکند
نویسنده : صلاح الدین salah.shiraz1363@gmail.com ۱۳۸۷ بيست و هشتم آذر

بسمه تعالی

با سلام و تشکر از سایت خوب شما این مقاله خیلی برایم مفید بود  ولی من یه مشکل دیگه هم دارم و آن این است که چه طوری  یا به عبارت دیگر Grid view را برای دستور select و دستورات دیگر sql تنظیم کنیم چون من تمام این مراحل  را انجام دادم و یک خطایی رخ داد که در پایان این متن می نویسم یه جورهایی فکر کنم مربوط  تنظیماتش است ممنون می شوم راهنماییم کنید

Both DataSource and datasourceID are defined on GrideView1.Remove One definition.

نویسنده : صلاح الدین salah.shiraz1363@gmail.com ۱۳۸۷ بيست و هشتم آذر

بسمه تعالی

با سلام و تشکر از سایت خوب شما این مقاله خیلی برایم مفید بود  ولی من یه مشکل دیگه هم دارم و آن این است که چه طوری  یا به عبارت دیگر Grid view را برای دستور select و دستورات دیگر sql تنظیم کنیم چون من تمام این مراحل  را انجام دادم و یک خطایی رخ داد که در پایان این متن می نویسم یه جورهایی فکر کنم مربوط  تنظیماتش است ممنون می شوم راهنماییم کنید

Both DataSource and datasourceID are defined on GrideView1.Remove One definition.

نویسنده : hadi @yahoo.comhadi2008goodboy ۱۳۸۷ دهم شهريور

salam site shoma khili bahale vaghean tahsin mikonam ke hanoz kesani pyda mishan ke dar jahat elm afrozi dar inkeshvar talash mikonan

mamnon misham be man email bezanin .man baraye hamishe karbare iteton khaham shod batashakor

 

نویسنده : عاطفه طالبی زاده atefehtalebi91@gmail.com ۱۳۸۷ هشتم شهريور

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

با تشکر 


 
نظر بدهید :
لطفا سوالات فنی خود را در تالار گفتگو www.forum.how2learnasp.net مطرح نمایید
نام :  
ایمیل :    
نظرات :
 
Xml rss feed

 

Valid CSS! Atom rss feed
Ali Delshad Official Site