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

نام تاپیک: مشکل جستجو وابسته به پر شدن textbox ها

  1. #1
    کاربر تازه وارد آواتار hamedjonjon
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    man inja zendegi mikonam,khoneie babam!!!
    سن
    34
    پست
    93

    مشکل جستجو وابسته به پر شدن textbox ها

    سلام
    من یه فرم دارم که 5 تا textbox و یک datagridview و یک دکمه جستجو داره
    dataGridView متصل به یک دیتابیس است که 5 فیلد متناظر با 5 تا textbox داخل فرم داره
    میخوام برنامه ای بنویسم که کاربر با پر کردن هر کدام از textbox ها جستجو در دیتابیس را انجام دهد.
    مثلا اگر textbox1 تنها پر شد, تنها براساس textbox1 جستجو را انجام دهد
    اگر textbox1 و textbox2 پر شدند, براساس textbox1 و textbox2 جستجو را انجام دهد
    اگر textbox2 و textbox5 پر شدند, براساس textbox2 و textbox5 جستجو را انجام دهد
    و ...
    اولین راهی که خودم به ذهنم رسید استفاده از if و else های زیاد است( با توجه به وجود 5 تا textbox تعداد if ها برابر 5! یعنی 125 تا می شود) که این کار به هیچ وجه اصولی نمی باشد

    دومین راه :
    فکر میکنم بتوان با استفاده از query صحیح نیز این کار را انجام داد
    مثلا :

    SELECT *FROM table
    WHERE column1 = ??

    آیا راهی وجود دارد که بتوان در صورتی که textbox خالی بود در قسمت where چیزی شبیه * قرار داد تا آن را بی اثر کند و تمام ردیف ها را برگرداند؟(البته خودم می دونم که * درست نیست)

    لطفا اگر کسی تا بحال این کار را انجام داده است و یا ایده ای دارید کمک نمایید
    سپاس گذارم

  2. #2
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1390
    پست
    560

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها

    سلام.می تونی بررسی کنی که اگر TextBox ای خالی بود در کد Sql در شرط مربوط به اون TextBox یک or 1=1 اضافه کنی.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها

    سلام،یه ایده به ذهنم رسید که واست یه چیزی رو نوشتم( من هر 5 فیلد رو رشته ای در نظر گرفتم، شما بر حسب نیازت اصلاح کن)،همچنین برای اینکه کوئری نهایتا خالی نباشه یکی از شرطها رو اجباری کردم( میتونید یکی از فیلدهای جدولت رو که بی تاثیر هست و در همه رکوردها یکسان هست به جای شرط اجباری بزاری . کد رو تست کنید و نتیجه رو اعلام کنید.ممکنه یه روز به درد یه نفر دیگه هم بخوره.
    موفق باشید.
     
    string s = "select * from tblname where [filde yeksan] ='meghdare fild'";
    if (textBox1.Text != "")
    s += "'and username ='" + textBox1.Text.Trim();
    if (textBox2.Text != "")
    s += "' and family ='" + textBox2.Text.Trim();
    if (textBox3.Text != "")
    s += "' and phone ='" + textBox3.Text.Trim();
    if (textBox4.Text != "")
    s += "' and Address = '" + textBox4.Text.Trim();
    if (textBox5.Text != "")
    s += "' and city = '" + textBox5.Text.Trim();
    s += "'";
    SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=KHODRO;Integrated Security=True");
    SqlDataAdapter da = new SqlDataAdapter(s, con);
    con.Open();
    DataTable dt = new DataTable();
    da.Fill(dt);
    if (dt.Rows.Count != 0)
    dataGridView1.DataSource = dt;
    else
    MessageBox.Show("هیچ رکوردی یافت نشد");
    con.Close();
    آخرین ویرایش به وسیله veniz2008 : جمعه 16 تیر 1391 در 18:48 عصر

  4. #4
    کاربر تازه وارد آواتار hamedjonjon
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    man inja zendegi mikonam,khoneie babam!!!
    سن
    34
    پست
    93

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها

    ممنون از راهنمایی شما
    این روش درسته و جواب میده اما مشکل من اینه که در داده های فارسی جدول خالی برمیگرداند
    مثلا این query با وجود داشتن نام "حامد" در ستون "donator" دیتابیس هیچ ردیفی را بر نمی گرداند

    SELECT *
    FROM Table
    Where donator = 'حامد'


    اما اگر "ali" که به صورت انگلیسی نوشته شده باشد را وارد کنم درست کار می کند

    SELECT *
    FROM Table
    Where donator = 'ali'


  5. #5
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها

    سلام، برای داده های فارسی یه حرف N ( با حرف بزرگ ) قبل از رشته بذار یعنی اینطوری(اینطوری هم فارسی ها هم انگلیسی ها رو نشون میده):
    "select * from table where donator = N'" + textBox1.Text + "'"

  6. #6
    کاربر تازه وارد آواتار hamedjonjon
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    man inja zendegi mikonam,khoneie babam!!!
    سن
    34
    پست
    93

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها

    آقا محمد انصافا دمت گرم
    مشکل ما رو حل کردی
    خدا خیرت بده

    اما یه سوال:
    چرا با استفاده از N مشکل فارسی حل میشه؟
    این روش برای محیط ویژوال استودیو استفاده میشه یا مخصوص تمام محیط هاست(و از اصول query نوشتنه) ؟

  7. #7
    کاربر دائمی آواتار iman_me
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    Microsoft Visual Studio
    پست
    338

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها



    این همه کد واسه یه کار به این سادگی
    خوب یه تابع میزاشتی

  8. #8
    کاربر تازه وارد آواتار hamedjonjon
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    man inja zendegi mikonam,khoneie babam!!!
    سن
    34
    پست
    93

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها

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


    این همه کد واسه یه کار به این سادگی
    خوب یه تابع میزاشتی
    لطفا اگه میخواهید راهنمایی نمایید لطفا منظورتونو واضح بیان کنید
    ممنونم

  9. #9
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها

    نقل قول نوشته شده توسط hamedjonjon مشاهده تاپیک
    چرا با استفاده از N مشکل فارسی حل میشه؟
    این روش برای محیط ویژوال استودیو استفاده میشه یا مخصوص تمام محیط هاست(و از اصول query نوشتنه) ؟
    در این مورد داخل سایت خیلی بحث شده، لطفا جستجو کنید.

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


    این همه کد واسه یه کار به این سادگی
    خوب یه تابع میزاشتی
    خوشحال میشم کد کمتر و بهینه تری رو ارائه بدید.

  10. #10

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها

    میشد انتخاب فیلد رو در داخل یک کمبو در اختیار کاربر میزاشتید و با یه دستور case مقدار valuemember رو با تو جه به selectedvalue تعیین میکردی و دستور select رو بصورت زیر تغییر میدادید
    "select * from"+ combobox1.valuemember+"where donator = N'" + textBox1.Text + "'"


    اگه متوجه نشدید بگید تا بشتر توضیح بدم

  11. #11
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها

    نقل قول نوشته شده توسط sobijoon مشاهده تاپیک
    میشد انتخاب فیلد رو در داخل یک کمبو در اختیار کاربر میزاشتید و با یه دستور case مقدار valuemember رو با تو جه به selectedvalue تعیین میکردی و دستور select رو بصورت زیر تغییر میدادید
    "select * from"+ combobox1.valuemember+"where donator = N'" + textBox1.Text + "'"


    اگه متوجه نشدید بگید تا بشتر توضیح بدم
    اگر میخواستن بر اساس یک فیلد جستجو کنن حرف شما صحیح بود ولی دوستمون میخواستن که همزمان بتونن براساس چند فیلد جستجو داشته باشن.

  12. #12

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها

    بله.
    میتونه از این روش هم استفاده کنه
       private void textBox4_TextChanged(object sender, EventArgs e)
    {
    if (textBox4.Text != String.Empty)

    dw.RowFilter = "ln like '%" + textBox4.Text.Trim() + "%'";
    else

    dw.RowFilter = "";
    }

    برای هر کدوم از تکس باکس ها

  13. #13

    نقل قول: مشکل جستجو وابسته به پر شدن textbox ها

    نقل قول نوشته شده توسط sobijoon مشاهده تاپیک
    بله.
    میتونه از این روش هم استفاده کنه
       private void textBox4_TextChanged(object sender, EventArgs e)
    {
    if (textBox4.Text != String.Empty)

    dw.RowFilter = "ln like '%" + textBox4.Text.Trim() + "%'";
    else

    dw.RowFilter = "";
    }

    برای هر کدوم از تکس باکس ها
    آقا dw اینجا چیه؟

تاپیک های مشابه

  1. مشکل جستجو در یک فیلد با استفاده از like
    نوشته شده توسط moohssenn در بخش PHP
    پاسخ: 8
    آخرین پست: سه شنبه 18 بهمن 1384, 11:55 صبح
  2. مشکل جستجو
    نوشته شده توسط arminela در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: سه شنبه 29 شهریور 1384, 01:16 صبح
  3. مشکل جستجو با استفاده از Full Text Search
    نوشته شده توسط مهدی کرامتی در بخش SQL Server
    پاسخ: 16
    آخرین پست: دوشنبه 17 مرداد 1384, 19:50 عصر
  4. مشکل جستجو
    نوشته شده توسط (امید) در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 0
    آخرین پست: چهارشنبه 01 بهمن 1382, 11:56 صبح

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

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