تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيفية البحث عن رقم داخل حقل في الجدول
#1
اخوتي الاعزاء كيف حالكم 

لدي مشكلة بسيطة وهي 

لدي صنف يحتوي علي رقم باركود  12345
ولدي صنف اخر يحتوي علي رقم باركود  67890

قمت بدمج اصناف من خلال رقم الباركود 

بحيث اصبح رقم باركود الصنف 1234567890

واريد عند قراءة الباركود عن طريق جهاز قاري الباركود يقوم بقراءة جسب الرقم المدخل 

بمعني 

لو قمت بقراءة الصنف الاول يقوم باضافة الي القانورة 
ولو قمت بقراءة الصتف الثاني يقوم باضافة الكمية فقط للفاتورة

كود :
           Dim cmd As New SqlCommand("Select * From Tbl_all_store where Bar_code = '" & BunifuTextBox3.Text & "'and Store_Name='" & Label13.Text & "' ", conn)
الرد }}}
تم الشكر بواسطة: أشرف كريم 2 , ابراهيم ايبو
#2
الان الصنف 1234567890 هو صنف ثالث جديد ام هو تعبير عن صنفان معا ؟
برجاء التوضيح اكثر هل المطلوب هو البديهي هو عند قراءة رقم البار كود يتم اضافة الصنف الى الفاتورة ؟
الرد }}}
#3
(03-11-21, 03:36 PM)Anas Mahmoud كتب : الان الصنف 1234567890 هو صنف ثالث جديد ام هو تعبير عن صنفان معا ؟
برجاء التوضيح اكثر هل المطلوب هو البديهي هو عند قراءة رقم البار كود يتم اضافة الصنف الى الفاتورة ؟

تعبير عن الصنفان معا 

توضيح 

انا استخدم الدمج الاصناف علي سيبل المثال 

الصنف الاول : حليب  صباح بنكهة الفراولة ورقم الباركود 12345
والصنف الثاني : حليب صباح بنكهة الموز ورقم الباركود 67890

وهم يحملان نفس اسم الشركة 


انا قمت بدمج الاصناف معنا بحيث اسم الصنف حليب صباح فقط واصبح يحمل رقم الباركود 1234567890

المطلوب ؟

اريد عندما اقم بقراءة الباركود يعرض ليا اسم الصنف 

بحيث عندما اقوم بقراءة الحليب بنكهة الفرولة   يظهر لي حليب صباح 
وعندما اقوم بقراءة الحليب بنكهة الموز   يطهر لي حليب صباح ايضا 


يعني اريد يقراءة من اي جزء في الحقل علي حسب القيمة المدخلة
الرد }}}
تم الشكر بواسطة: ابو انس , Anas Mahmoud , ابراهيم ايبو
#4
أنت تبحث عن المعامل Like بدلا من = 

يستخدم المعامل Like للبحث عن حقل يحتوي على النص المطلوب وليس شرطا ان يساويه 

بحيث تصبح صورة الاستعلام 


كود :
Select * From Tbl_all_store where Bar_code Like '%12345%'and Store_Name='Store one'
يجدر الإشارة إلى أن استخدام & BunifuTextBox3.Text & بهذه الطريقة لتمرير قيم الى الاستعلام هو مدخل لنقطة ضعف كبيرة جدا وشهيرة اسمها SQL Injection 
يجب الابتعاد عنها تمام واستخدام 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 لبناء الاستعلامات
الرد }}}
تم الشكر بواسطة: أشرف كريم 2 , ابراهيم ايبو
#5
(03-11-21, 05:23 PM)Anas Mahmoud كتب : أنت تبحث عن المعامل Like بدلا من = 

يستخدم المعامل Like للبحث عن حقل يحتوي على النص المطلوب وليس شرطا ان يساويه 

بحيث تصبح صورة الاستعلام 


كود :
Select * From Tbl_all_store where Bar_code Like '%12345%'and Store_Name='Store one'
يجدر الإشارة إلى أن استخدام & BunifuTextBox3.Text & بهذه الطريقة لتمرير قيم الى الاستعلام هو مدخل لنقطة ضعف كبيرة جدا وشهيرة اسمها SQL Injection 
يجب الابتعاد عنها تمام واستخدام 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
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو
#6
حسنا دعني اخبرك ان عليك الاختيار بين اما ان يبحث عن الكود بعينه او ان يكون الكود جزء من كود اخر
بامكانك التخلص من المشكلة تمام من خلال تعديل بسيط في تصميم قاعدة البيانات
بامكانك عمل جدول للباركود منفصل عن جدول الاصناف ، تجعله مربوط بالجدول الاصلي الخاص بالاصناف عن طريق Id الصنف ، وبالتالي يمكنك في هذه الحالة اضافة اكثر من بار كود للصنف الواحد ،

   


   

   


الان عندما تبحث عن اي من هذه الباركودات فانك تستعلم عن Id الصنف الموجود معه في نفس الجدول وبالتالي يمكنك ايجاد باقي معلومات الصنف  

PHP كود :
select Tbl_all_store.Product_Name,Tbl_all_store.Price,Tbl_all_store.Exp_Date
from dbo
.Tbl_all_store 
inner join dbo
.Tbl_Barcodes 
on dbo
.Tbl_all_store.Id dbo.Tbl_Barcodes.Product_Id
where dbo
.Tbl_Barcodes.Barcode='12345' 


   

   
الرد }}}
تم الشكر بواسطة: أشرف كريم 2 , ابراهيم ايبو
#7
(03-11-21, 06:17 PM)Anas Mahmoud كتب : حسنا دعني اخبرك ان عليك الاختيار بين اما ان يبحث عن الكود بعينه او ان يكون الكود جزء من كود اخر
بامكانك التخلص من المشكلة تمام من خلال تعديل بسيط في تصميم قاعدة البيانات
بامكانك عمل جدول للباركود منفصل عن جدول الاصناف ، تجعله مربوط بالجدول الاصلي الخاص بالاصناف عن طريق Id الصنف ، وبالتالي يمكنك في هذه الحالة اضافة اكثر من بار كود للصنف الواحد ،









الان عندما تبحث عن اي من هذه الباركودات فانك تستعلم عن Id الصنف الموجود معه في نفس الجدول وبالتالي يمكنك ايجاد باقي معلومات الصنف  

PHP كود :
select Tbl_all_store.Product_Name,Tbl_all_store.Price,Tbl_all_store.Exp_Date
from dbo
.Tbl_all_store 
inner join dbo
.Tbl_Barcodes 
on dbo
.Tbl_all_store.Id dbo.Tbl_Barcodes.Product_Id
where dbo
.Tbl_Barcodes.Barcode='12345' 

شكرا باش مهندس سوف اعمل علي ذلك

(03-11-21, 06:17 PM)Anas Mahmoud كتب : حسنا دعني اخبرك ان عليك الاختيار بين اما ان يبحث عن الكود بعينه او ان يكون الكود جزء من كود اخر
بامكانك التخلص من المشكلة تمام من خلال تعديل بسيط في تصميم قاعدة البيانات
بامكانك عمل جدول للباركود منفصل عن جدول الاصناف ، تجعله مربوط بالجدول الاصلي الخاص بالاصناف عن طريق Id الصنف ، وبالتالي يمكنك في هذه الحالة اضافة اكثر من بار كود للصنف الواحد ،









الان عندما تبحث عن اي من هذه الباركودات فانك تستعلم عن Id الصنف الموجود معه في نفس الجدول وبالتالي يمكنك ايجاد باقي معلومات الصنف  

PHP كود :
select Tbl_all_store.Product_Name,Tbl_all_store.Price,Tbl_all_store.Exp_Date
from dbo
.Tbl_all_store 
inner join dbo
.Tbl_Barcodes 
on dbo
.Tbl_all_store.Id dbo.Tbl_Barcodes.Product_Id
where dbo
.Tbl_Barcodes.Barcode='12345' 
باش مهنس 

انا استخدم في Transaction في حالة اكثر من جدول 

هل تفي بالغرض ام توجد طريقة اخري لباقي الاجراءات الاضافة والتعديل والحدف 
تكون افضل واسهل 
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيفية منع ظهور الأخطاء من إعدادات البيسيك mmaalmesry 2 848 29-08-25, 10:30 AM
آخر رد: mmaalmesry
  [سؤال] طريقة توسيط النص داخل اداة comboBox سمير1404 7 3,858 24-08-25, 01:01 PM
آخر رد: أبو خالد الشكري
  كيفية جلب أسماء الأعمدة بجدول من جداول sql heem1986 2 745 17-08-25, 09:15 PM
آخر رد: heem1986
  كيفية حفظ إعدادات البرنامج بحيث لا تتغير أحمد إبراهيم سعد 4 3,001 06-08-25, 06:34 PM
آخر رد: Taha Okla
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,221 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  [VB.NET] استفسار بخصوص البحث في RichTextBox SerialPort dubai.eig 2 662 18-06-25, 11:09 AM
آخر رد: dubai.eig
  كيفية احتساب الفرق بين تاريخين بناء على عدد معين مصمم هاوي 2 552 15-01-25, 02:02 PM
آخر رد: مصمم هاوي
  كيفية التعامل مع inputbox في فيجوال ستوديو أسامة حسين 4 3,501 14-01-25, 02:04 AM
آخر رد: أبو خالد الشكري
  استدعاء من جدولين داخل اداه FlowLayoutPanel برجاء الافادة للضرورة جداً modymody300894 7 634 15-11-24, 11:02 AM
آخر رد: modymody300894
  كيفية معرفة الجهاز رئيسي ام فرعي المتألق9 1 396 13-11-24, 06:41 PM
آخر رد: justforit

التنقل السريع :


يقوم بقرائة الموضوع: