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

نام تاپیک: مشکل در جستجو C#‎

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1396
    محل زندگی
    همین نزدیکی ها ایران ♥
    پست
    44

    Lightbulb مشکل در جستجو C#‎

    سلام خسته نباشید

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

    بنده دو فیلد جستجو بر اساس

    نام و فامیل دارم

    هنگامی که سرچ بر اساس نام هست تمام اسامی بعنوان مثال محمد را نمایش میدهد ولی زمانی که سرچ بصورت نام فامیل صورت میگید مثل محمد احمدی سرچ درست عمل نمیکند و اسامی غیر احمد را هم در سرچ نمایش میدهد

    کد جستجو بر اساس نام :
      if (txtSearch.Text.Trim() != "")            {
    OleDbConnection con = new OleDbConnection(Connection);
    //OleDbDataAdapter da = new OleDbDataAdapter("Select ID,FName,LName,PIC From info Where FName Like'%" + txtSearch.Text + "%'", con);




    OleDbDataAdapter da = new OleDbDataAdapter("Select ID,FName,LName,PIC,Date1 From info Where FName Like'%" + txtSearch.Text + "%'", con);


    DataSet ds = new DataSet();
    da.Fill(ds);
    dataGridView1.DataSource = ds.Tables[0].DefaultView;
    }
    else
    {
    BindGrid();
    }



    کد جستجو بر اساس فامیل
     if (txtSearch2.Text.Trim() != "")            {
    OleDbConnection con = new OleDbConnection(Connection);
    OleDbDataAdapter da = new OleDbDataAdapter("Select ID,FName,LName,PIC,Date1 From info Where LName Like'%" + txtSearch2.Text + "%'", con);


    DataSet ds = new DataSet();
    da.Fill(ds);
    dataGridView1.DataSource = ds.Tables[0].DefaultView;
    }
    else
    {
    BindGrid();
    }

  2. #2

    نقل قول: مشکل در جستجو C#‎

    نقل قول نوشته شده توسط marya0030 مشاهده تاپیک
    سلام خسته نباشید

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

    بنده دو فیلد جستجو بر اساس

    نام و فامیل دارم

    هنگامی که سرچ بر اساس نام هست تمام اسامی بعنوان مثال محمد را نمایش میدهد ولی زمانی که سرچ بصورت نام فامیل صورت میگید مثل محمد احمدی سرچ درست عمل نمیکند و اسامی غیر احمد را هم در سرچ نمایش میدهد

    کد جستجو بر اساس نام :
      if (txtSearch.Text.Trim() != "")            {
    OleDbConnection con = new OleDbConnection(Connection);
    //OleDbDataAdapter da = new OleDbDataAdapter("Select ID,FName,LName,PIC From info Where FName Like'%" + txtSearch.Text + "%'", con);




    OleDbDataAdapter da = new OleDbDataAdapter("Select ID,FName,LName,PIC,Date1 From info Where FName Like'%" + txtSearch.Text + "%'", con);


    DataSet ds = new DataSet();
    da.Fill(ds);
    dataGridView1.DataSource = ds.Tables[0].DefaultView;
    }
    else
    {
    BindGrid();
    }



    کد جستجو بر اساس فامیل
     if (txtSearch2.Text.Trim() != "")            {
    OleDbConnection con = new OleDbConnection(Connection);
    OleDbDataAdapter da = new OleDbDataAdapter("Select ID,FName,LName,PIC,Date1 From info Where LName Like'%" + txtSearch2.Text + "%'", con);


    DataSet ds = new DataSet();
    da.Fill(ds);
    dataGridView1.DataSource = ds.Tables[0].DefaultView;
    }
    else
    {
    BindGrid();
    }
    من تفاوت خاصی بین کد های شما نمی بینم اما مستقیما txtSearch.Text رو آوردید داخل دستور SELECT. یعنی کاربر مجازه هر چیزی که خواست در SELECT تون درج کنه، بدون محدودیت.
    یعنی عمدا یا سهوا میتونه شرط روتین SELECT شما رو به میل خودش تغییر بده یا حتی کدی رو اجرا کنه که خوشایند شما نیست.
    همچین کدی مستعد SQL Injection ئه، بهتره عادت کنید که اینکار رو در هیچ کدی انجام ندید. txtSearch.Text رو بصورت پارامتر دربیارید و به عنوان پارامتری به SELECT تون اضافه کنید.
    پارامتر ها علاوه بر اینکه فرمت نوشتاری رو بصورت خودکار رعایت می کنند جلوی SQL Injection رو هم میگیرند.

    OleDbConnection con = new OleDbConnection(Connection);
    OleDbDataAdapter da = new OleDbDataAdapter("Select ID,FName,LName,PIC,Date1 From info Where FName Like @search", con);
    da.SelectCommand.Parameters.AddWithValue("@search" , "%" + txtSearch.Text + "%");



    OleDbConnection con = new OleDbConnection(Connection);
    OleDbDataAdapter da = new OleDbDataAdapter("Select ID,FName,LName,PIC,Date1 From info Where LName Like @search", con);
    da.SelectCommand.Parameters.AddWithValue("@search" , "%" + txtSearch2.Text + "%");

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1396
    محل زندگی
    همین نزدیکی ها ایران ♥
    پست
    44

    نقل قول: مشکل در جستجو C#‎

    دوست عزیز ممنون از راهنمایی کاملتون

    ببینید بنده میخوام وقتی کاربر اسم شخص رو نوشت افراد را که اول اسم انها بعنوان مثال با "الف" و اول فامیل آنها با "س" است در دیتاگرید نمایش بدهد اگر کد شما این امکان را دارد ممنون میشم کاملش بگذارید چون برای من عمل نکرد
    آخرین ویرایش به وسیله marya0030 : سه شنبه 19 آذر 1398 در 19:02 عصر دلیل: خطای ویراستاری

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1396
    محل زندگی
    همین نزدیکی ها ایران ♥
    پست
    44

    نقل قول: مشکل در جستجو C#‎

    ببنید این تصویر سرچ منه و اتفاقی که می افتد جستجو براساس نام و فامیل ولی فقط فامیل لحاظ شده است با کدهایی که جنابعالی دادین و البته کدهای خودم هم به این نحو است pop.JPG

  5. #5

    نقل قول: مشکل در جستجو C#‎

    نقل قول نوشته شده توسط marya0030 مشاهده تاپیک
    ببنید این تصویر سرچ منه و اتفاقی که می افتد جستجو براساس نام و فامیل ولی فقط فامیل لحاظ شده است با کدهایی که جنابعالی دادین و البته کدهای خودم هم به این نحو است pop.JPG
    ایراد در LIKE نیست، ایراد در شرط WHERE ای است که می نویسید. شما دو تا فیلد رو باید در یک کوئری جستجو داشته باشید، نه دو تا SELECT مجزا.
    اون if ها رو هم حذف کنید، شما با TextBox متن خالی هم می توانید همون نتیجه رو بگیرید و نیازی به بررسی خالی بودن txtSearch1.Text یا txtSearch2.Text نیست.

    OleDbDataAdapter da = new OleDbDataAdapter("Select ID,FName,LName,PIC,Date1 From info Where (FName Like @fname) AND (LName Like @lname)", con);
    da.SelectCommand.Parameters.AddWithValue("@fname", "%" + txtSearch.Text.Trim() + "%");
    da.SelectCommand.Parameters.AddWithValue("@lname", "%" + txtSearch2.Text.Trim() + "%");
    var dt = new DataTable();
    da.Fill(dt);
    dataGridView1.DataSource = dt;

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1396
    محل زندگی
    همین نزدیکی ها ایران ♥
    پست
    44

    نقل قول: مشکل در جستجو C#‎

    واقعااااااااااااااااااااا ااا ازت ممنونمممممممممممممممممممم ممممممممممممممم حل شد مشکلم خیلی خوشحالم کردی
    ایشاالا از خدا هرچی میخوای بهت بده

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

  1. پاسخ: 5
    آخرین پست: چهارشنبه 22 شهریور 1402, 14:26 عصر
  2. آموزش: پرشین استخر،بزرگترین سایت آموزش ساخت استخر How Make Swimmin Pools-Persian Pool
    نوشته شده توسط soroushm در بخش آگهی‌ها
    پاسخ: 0
    آخرین پست: یک شنبه 12 شهریور 1396, 07:35 صبح
  3. استخدام برنامه نویس در استان همدان شهرستان تویسرکان
    نوشته شده توسط alvandyhamed در بخش آگهی های استخدام
    پاسخ: 0
    آخرین پست: جمعه 07 مرداد 1390, 17:26 عصر

برچسب های این تاپیک

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

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