منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف اضيف Where لجملة استعلام *SELECT بها جدولين
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
اريد اضافة تلك الجملة لهذا الكود ولاكن لم تزبط معي اريد ان ابحث بواسطة رقم الفاتورة بالجدولين

اريد الفلترة عبر Textbox1.text بالجدولين
& Where Customers.billnumber=" & Textbox1.text&
& Where Tailor.billnumber=" & Textbox1.text&

PHP كود :
Using Cmd As New OleDbCommand("SELECT Customers.productA,Customers.itemnumber,Customers.price,Customers.Total,Customers.billnumber,Customers.dates,Tailor.T1,Tailor.T2,Tailor.T3,Tailor.T4,Tailor.T5 FROM Customers inner join Tailor on Customers.ID=Tailor.ID"connLoadCustomerData
لإضافة شرط WHERE للبحث عبر النص الموجود في TextBox1.Text في الجدولين، يمكنك تعديل الاستعلام SQL ليشمل هذا الشرط. إليك كيفية القيام بذلك:

PHP كود :
Dim query As String "SELECT Customers.productA,Customers.itemnumber,Customers.price,Customers.Total,Customers.billnumber,Customers.dates,Tailor.T1,Tailor.T2,Tailor.T3,Tailor.T4,Tailor.T5 FROM Customers inner join Tailor on Customers.ID=Tailor.ID WHERE Customers.billnumber='" TextBox1.Text "' OR Tailor.billnumber='" TextBox1.Text "'"

Using Cmd As New OleDbCommand(queryconnLoadCustomerData)
 
   ' استخدم استعلام SQL المعدل هنا
    ' 
...
End Using 
اضفت الكود بها الطريقة ... ومازبطت معي


تطلع لي رسالة : System.Data.OleDb.OleDbException: 'Data type mismatch in criteria expression.'


PHP كود :
Dim connLoadCustomerData As New OleDbConnection(ConfigurationManager.ConnectionStrings("LAUNDRY_SYSTEM.My.MySettings.Laundry_DatabaseConnectionString").ConnectionString)
                    
Dim query As String "SELECT Customers.productA,Customers.itemnumber,Customers.price,Customers.Total,Customers.billnumber,Customers.dates,Tailor.T1,Tailor.T2,Tailor.T3,Tailor.T4,Tailor.T5 FROM Customers inner join Tailor on Customers.ID=Tailor.ID WHERE Customers.billnumber='" INVOICENUMBER "' OR Tailor.billnumber='" INVOICENUMBER "'"
                    
Using Cmd As New OleDbCommand(queryconnLoadCustomerData)
                        
Cmd.CommandType CommandType.Text
                        Using sda 
As New OleDbDataAdapter(Cmd)
                            
Using dt As New DataTable()
                                
sda.Fill(dt)
                                
CustomersDataGridView.DataSource dt
                            End Using
                        End Using
                    End Using 
إذا كان الحقل رقمي 
يجب الكتابة بهذا الشكل
كود :
WHERE Customers.billnumber=" & INVOICENUMBER & " OR Tailor.billnumber=" & INVOICENUMBER & ""
               

تم تعديلها هكذا بنفس طريقتك وزبط معي الكود ... بس لم يقم بالفلترة المطلوبة من الجدولين ... هل يوجد تعديل في السطور الي تحت المفروض اعدله

PHP كود :
Dim connLoadCustomerData As New OleDbConnection(ConfigurationManager.ConnectionStrings("LAUNDRY_SYSTEM.My.MySettings.Laundry_DatabaseConnectionString").ConnectionString)
 
                   Dim query As String "SELECT Customers.productA,Customers.itemnumber,Customers.price,Customers.Total,Customers.billnumber,Customers.dates,Tailor.T1,Tailor.T2,Tailor.T3,Tailor.T4,Tailor.T5 FROM Customers inner join Tailor on Customers.ID=Tailor.ID WHERE Customers.billnumber=" INVOICENUMBER " OR Tailor.billnumber=" INVOICENUMBER ""
 
                   Using Cmd As New OleDbCommand(queryconnLoadCustomerData)
 
                       Cmd.CommandType CommandType.Text
                        Using sda 
As New OleDbDataAdapter(Cmd)
 
                           Using dt As New DataTable()
 
                               sda.Fill(dt)
 
                               CustomersDataGridView.DataSource dt
                            End Using
                        End Using
                    End Using 
جرب هذا التعديل في كود الاستعلام

PHP كود :
Dim query As String "SELECT Customers.productA, Customers.itemnumber, Customers.price, Customers.Total, Customers.billnumber, Customers.dates, Tailor.T1, Tailor.T2, Tailor.T3, Tailor.T4, Tailor.T5 FROM Customers INNER JOIN Tailor ON Customers.ID = Tailor.ID WHERE Customers.billnumber = " INVOICENUMBER " OR Tailor.billnumber = " INVOICENUMBER " AND (Customers.billnumber = " INVOICENUMBER " OR Tailor.billnumber = " INVOICENUMBER ")" 
مرحبا اخي ... تم تعديل ... الكود شغال مافي اخطاء ... ولاكن ايضا للأسف لم يقم بعملية الفلترة او جلب البيانات للداتا جيرد
هل يمكن جلب نسخة للتعديل
يوجد عناصر مشتركة في رقم الفاتورة بين جدولين اريد جلب عناصر من الجدولين موضخ الشرح بالصورة ادناه
تم تعديل الكود ... الكود يعمل ولاكن اذا كان عدد الصفوف بقاعدة البيانات صفين .. يقوم الكود بتكرير الصفوق تصبح 4 صفوف وهكذا موضح بالصورة

PHP كود :
Dim query As String "SELECT Customers.productA,Customers.itemnumber,Customers.price,Customers.Total,Customers.billnumber,Customers.dates,Tailor.T1,Tailor.T2,Tailor.T3,Tailor.T4,Tailor.T5,Tailor.T6  FROM Customers inner join Tailor on Customers.billnumber = Tailor.billnumber  WHERE Customers.billnumber = " INVOICENUMBER ""
 
                   Using Cmd As New OleDbCommand(queryconnLoadCustomerData)
 
                       Cmd.CommandType CommandType.Text
                        Using sda 
As New OleDbDataAdapter(Cmd)
 
                           Using dt As New DataTable()
 
                               sda.Fill(dt)
 
                               CustomersDataGridView.DataSource dt
                            End Using
                        End Using
                    End Using 
الصفحات : 1 2