نمایش نتایج 1 تا 5 از 5

نام تاپیک: جستجوی پیشرفته با storedprocedure

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1390
    پست
    38

    جستجوی پیشرفته با storedprocedure

    سلام
    چطور سرچ پیشرفته را با stored procedure بنویسم؟ به طوری که اطلاعات از چند فیلد که کاربر در فرم پر میکند با اطلاعات دیتابیس مقایسه میشود.

  2. #2

    نقل قول: جستجوی پیشرفته با storedprocedure


    create proc prc
    @p1 int=0, @p2 nvarchar(100)=null /*,...*/
    as
    begin
    select * from tbl
    where
    (@p1 =0 or id=@p1) and
    (@p2 is null or name = @p2)
    /*and ...*/
    end


    توی برنامه، مثلا اگه فقط میخوای به پارامتر دوم مقدار بدی، میتونی به پارامتر یک مقدار default بدی، یا یک مقداری بدی که توی شرط ها در نظر گرفته نشه.
    من حالت اول رو میگم:

    string s="exec prc default,'mohammad' ";
    //execute and read it...

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1390
    پست
    38

    نقل قول: جستجوی پیشرفته با storedprocedure

    نقل قول نوشته شده توسط Rejnev مشاهده تاپیک

    create proc prc
    @p1 int=0, @p2 nvarchar(100)=null /*,...*/
    as
    begin
    select * from tbl
    where
    (@p1 =0 or id=@p1) and
    (@p2 is null or name = @p2)
    /*and ...*/
    end


    توی برنامه، مثلا اگه فقط میخوای به پارامتر دوم مقدار بدی، میتونی به پارامتر یک مقدار default بدی، یا یک مقداری بدی که توی شرط ها در نظر گرفته نشه.
    من حالت اول رو میگم:

    string s="exec prc default,'mohammad' ";
    //execute and read it...
    خیلی ممنون. میشه در مورد مقدار default بیشتر توضیح دهید، چون همون مقدار default در شرط ها در نظر گرفته میشه و روی نتیجه جستجو اثر میذاره.

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    مهر 1389
    محل زندگی
    تهران
    پست
    78

    نقل قول: جستجوی پیشرفته با storedprocedure

    این هم یه نمونه از AdvancedSearch ولی توسط LINQtoSQL



    var q1 = from a in linq.Books

    where (a.Title.Contains(txt_Book_Title.Text.Trim()) || txt_Book_Title.Text.Trim() == string.Empty) &&
    (a.Author.Contains(txt_Book_Author.Text.Trim()) || txt_Book_Author.Text.Trim() == string.Empty) &&

    (a.ISBN == txt_Book_ISBN.Text || txt_Book_ISBN.Text.Trim() == string.Empty) &&
    (a.Translator.Contains(txt_Book_Translator.Text.Tr im()) || txt_Book_Translator.Text.Trim() == string.Empty) &&
    (a.Description.Contains(txt_Book_Description.Text. Trim()) || txt_Book_Description.Text.Trim() == string.Empty)
    select a;


  5. #5

    نقل قول: جستجوی پیشرفته با storedprocedure

    مقدار default رو وقتی به استورد پراک پاس بدیم یعنی اس کیو ال، از مقدار پیشفرض پارامت استفاده کنه...
    مثلا توی اون مثال، توی تعریف پروسیجر، به اس کیو گفتم که مقدار پیشفرض پارامتر1، مقدار صفره... پس وقتی از کلمه دیفالت استفاده کنیم، این پارامتر مقدار صفر خواهد گرفت. اگر هم توی تعریف، مقدار پیشفرض تعیین نکنیم، مقدار نول خواهد گرفت.
    سوال و مشکل شما به پاسکاری پارامترها و اینا زیاد مربوط نیست، به این مربوطه که اگه یک پارامتر مقدار نگرفته بود، توی شرط چطوری این رو کنترل کنیم. که اینجا من با دستور "یا" این کار رو انجام دادم... این نکته ش بود

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •