03-11-21, 05:31 PM
(03-11-21, 05:23 PM)Anas Mahmoud كتب : أنت تبحث عن المعامل Like بدلا من =
يستخدم المعامل Like للبحث عن حقل يحتوي على النص المطلوب وليس شرطا ان يساويه
بحيث تصبح صورة الاستعلام
يجدر الإشارة إلى أن استخدام & BunifuTextBox3.Text & بهذه الطريقة لتمرير قيم الى الاستعلام هو مدخل لنقطة ضعف كبيرة جدا وشهيرة اسمها SQL Injectionكود :
Select * From Tbl_all_store where Bar_code Like '%12345%'and Store_Name='Store one'
يجب الابتعاد عنها تمام واستخدام Parameters لتمرير القيم الى الاستعلام هكذا :
كود :
Dim cmd As New SqlCommand("Select * From Tbl_all_store where Bar_code Like @barcode and Store_Name=@storename", conn)
cmd.Parameters.AddWithValue("@barcode", "%" & BunifuTextBox3.Text & "%")
cmd.Parameters.AddWithValue("@storename", Label13.Text)
راجع الموضوع التالي لمزيد من المعلومات عن ال SQL Injection وخطورته :
خطورة ال Sql Injection ولماذا يجب عليك استخدام Parameters لبناء الاستعلامات
لقد جربت % تظهر لي مشكلة وهي
اني يوجد ليا صنف رقم الباركود 02112345
عندما ابحث علي 12345
انا اريد يقوم يقراءة 123456 ويتجاهل 021
