• 0
thelover77

الاستعلام في أكثر من جدول

سؤال

الرجاء المساعدة في استعلام بين عدة جداول بحيث أن الجدول الأول رئيسي كالآتي

البحث في أكثر من جدول بمعلومية حقل في الجدول الأول وحفظ الناتج في ملف نصي والصورة المرفقة توضح 

SQLL.png

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

7 إجابة على هذا السؤال .

  • 0

أخي karimSoft أشكرك على اهتمامك وردك 

ولكن أريد أن يكون البحث باستخدام الحقل A2  في الجدول الأول 

مع العلم أن الجداول غير مستاوية في عدد الحقول

فقط الحقل الثاني موجود في كل الجداول

وجزاكم الله عنا كل خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وضح ما الغرض من هذا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بارك الله فيك على اهتمامك

سأحاول أن أوضح الفكرة 

لدي ثلاثة جداول غير متساوية في عدد الحقول مثلا:

الجدول الأول (T1) يحتوي على الحقول (F1 - F2 - F3 - F4)

الجدول الأول (T2) يحتوي على الحقول (d1 - d2 - d3 )

الجدول الأول (T3) يحتوي على الحقول (s1 - s2 - s3 - s4 - s5)

حيث أن الجدول الأول (T1) يحتوي على بيانات الموظفين  الأساسية 

حيث أن الجدول الأول (T2) يحتوي على بيانات إجازات الموظفين

حيث أن الجدول الأول (T3) يحتوي على بيانات مرتبات الموظفين 

بحيث أن الحقول f2   ,  d2   , s2  تحتوي على رقم الموظف في الثلاث جداول

أريد إدراج جميع الموظفين في ملف نصي بحيث يكون سجل الموظف البيانات الآساسية ويليه سجل نفس الموظف الإجازات ويليه سجله المرتبات

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

TRY THIS CODE

Imports System.Data
Imports System.Data.SqlClient
Imports System.IO

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim con As New SqlConnection("Data Source=PC\SQLEXPRESS12;Initial Catalog=Alasmrat;Integrated Security=True")
        Dim da As New SqlDataAdapter("spSocialGovernorateSelect", con)
        da.SelectCommand.CommandType = CommandType.StoredProcedure

        Dim ds As New DataSet

        da.Fill(ds, "SocialGovernorate")

        da.SelectCommand.CommandText = "spSocialDepartmentSelect"
        da.Fill(ds, "SocialDepartment")

        da.SelectCommand.CommandText = "spSocialUnitSelect"
        da.Fill(ds, "SocialUnit")

        Try
            Dim stm = New StreamWriter(Server.MapPath("tblProducts.txt"), False)
            Dim i As Integer
            For Each SocialGovernorateRow As DataRow In ds.Tables("SocialGovernorate").Rows
              
                Dim array() As Object = SocialGovernorateRow.ItemArray

                For Each Item As Object In array
                    stm.Write(Item.ToString() + ControlChars.Tab)
                Next Item
                stm.WriteLine()

                ''''''''''''''''''''''''''''''''''''''''''''''''''
                Dim SocialDepartmentRows() As DataRow = ds.Tables("SocialDepartment").Select("pnSocialGovernorateCode=" & SocialGovernorateRow(0).ToString())
                For Each SocialDepartmentRow As DataRow In SocialDepartmentRows

                    Dim SocialDepartmentArray() As Object = SocialDepartmentRow.ItemArray

                    For Each Item As Object In SocialDepartmentArray
                        stm.Write(Item.ToString() + ControlChars.Tab)
                    Next Item
                    stm.WriteLine()
                    '''''''''''''''''''''''''''
                    Dim drs1() As DataRow = ds.Tables("SocialUnit").Select("pnSocialGovernorateCode=" & SocialGovernorateRow(0).ToString())
                    getData(stm, drs1)
                    stm.WriteLine()
                    '''''''''''''''''''''''''''
                Next SocialDepartmentRow

                stm.WriteLine()
                stm.WriteLine()

                 
            Next SocialGovernorateRow

                stm.Close()
            Label1.Text = "job done!"
        Catch ex As Exception
            Label1.Text = ex.Message

        End Try

    End Sub
    Public Sub getData(ByRef stm As StreamWriter, ByRef drs() As DataRow)
        For Each oDataRow As DataRow In drs

            Dim array() As Object = oDataRow.ItemArray

            For Each Item As Object In array
                stm.Write(Item.ToString() + ControlChars.Tab)
            Next Item
            stm.WriteLine()

        Next oDataRow
    End Sub

End Class

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أشكرك أخي على اهتمامك والرد على سؤالي وجعله الله في ميزان حسناتك ورحم الله والديك 

عذرًا أخي فلم أفهم الكود فهمًا كاملا 

إذا تكرمت أخي وشرحت لنا الكود وتطبيق الجداول عليه لتصل الفكرة وشكر الله سعيك وجزاك عنا كل خير

الجدول الأول (T1) يحتوي على الحقول (F1 - F2 - F3 - F4) بيانات الموظفين الأساسية

الجدول الأول (T2) يحتوي على الحقول (d1 - d2 - d3 ) بيانات الإجازات للموظفين

الجدول الأول (T3) يحتوي على الحقول (s1 - s2 - s3 - s4 - s5) بيانات المرتبات

بحيث أن الحقول f2   ,  d2   , s2  تحتوي على رقم الموظف في الثلاث جداول

أريد إدراج جميع الموظفين في ملف نصي بحيث يكون سجل الموظف البيانات الآساسية في السطر الأول

ويليه سجل نفس الموظف الإجازات  في السطر الثاني

ويليه سجله المرتبات في السطر الثالث

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim con As New SqlConnection("Data Source=.;Initial Catalog=db;Integrated Security=True")
        Dim da As New SqlDataAdapter("", con)
        
        Dim ds As New DataSet

		da.SelectCommand.CommandText = "select f1,f2,f3,f4 from t1"
        da.Fill(ds, "t1")

        da.SelectCommand.CommandText = "select d1,d2,d3 from t2"
        da.Fill(ds, "t2")

        da.SelectCommand.CommandText = "select s1,s2,s3,s4,s5 from t3"
        da.Fill(ds, "t3")

        Try
            Dim stm = New StreamWriter("c:\tblProducts.txt", False)
            Dim i As Integer
            For Each t1Row As DataRow In ds.Tables("t1").Rows
              
                Dim array() As Object = t1Row.ItemArray

                For Each Item As Object In array
                    stm.Write(Item.ToString() + ControlChars.Tab)
                Next Item
                stm.WriteLine()

                ''''''''''''''''''''''''''''''''''''''''''''''''''
                Dim t2Rows() As DataRow = ds.Tables("t2").Select("d2=" & t1Row(1).ToString())
                For Each t2Row As DataRow In t2Rows

                    Dim t2Array() As Object = t2Row.ItemArray

                    For Each Item As Object In t2Array
                        stm.Write(Item.ToString() + ControlChars.Tab)
                    Next Item
                    stm.WriteLine()
                    '''''''''''''''''''''''''''
                    Dim drs1() As DataRow = ds.Tables("t3").Select("s2=" & t1Row(1).ToString())
                    getData(stm, drs1)
                    stm.WriteLine()
                    '''''''''''''''''''''''''''
                Next t2Row

                stm.WriteLine()
                stm.WriteLine()

                 
            Next t1Row

                stm.Close()
            Label1.Text = "job done!"
        Catch ex As Exception
            Label1.Text = ex.Message
        End Try

    End Sub
    Public Sub getData(ByRef stm As StreamWriter, ByRef drs() As DataRow)
        For Each oDataRow As DataRow In drs

            Dim array() As Object = oDataRow.ItemArray

            For Each Item As Object In array
                stm.Write(Item.ToString() + ControlChars.Tab)
            Next Item
            stm.WriteLine()

        Next oDataRow
    End Sub

End Class
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim con As New SqlConnection("Data Source=.;Initial Catalog=db;Integrated Security=True")
        Dim da As New SqlDataAdapter("", con)
        
        Dim ds As New DataSet

		da.SelectCommand.CommandText = "select f1,f2,f3,f4 from t1"
        da.Fill(ds, "t1")

        da.SelectCommand.CommandText = "select d1,d2,d3 from t2"
        da.Fill(ds, "t2")

        da.SelectCommand.CommandText = "select s1,s2,s3,s4,s5 from t3"
        da.Fill(ds, "t3")

        Try
            Dim stm = New StreamWriter("c:\tblProducts.txt", False)
            Dim i As Integer
            For Each t1Row As DataRow In ds.Tables("t1").Rows
              
                Dim array() As Object = t1Row.ItemArray

                For Each Item As Object In array
                    stm.Write(Item.ToString() + ControlChars.Tab)
                Next Item
                stm.WriteLine()

                ''''''''''''''''''''''''''''''''''''''''''''''''''
                Dim t2Rows() As DataRow = ds.Tables("t2").Select("d2=" & t1Row(1).ToString())
                For Each t2Row As DataRow In t2Rows

                    Dim t2Array() As Object = t2Row.ItemArray

                    For Each Item As Object In t2Array
                        stm.Write(Item.ToString() + ControlChars.Tab)
                    Next Item
                    stm.WriteLine()
                    '''''''''''''''''''''''''''
                    Dim drs1() As DataRow = ds.Tables("t3").Select("s2=" & t1Row(1).ToString())
                    getData(stm, drs1)
                    stm.WriteLine()
                    '''''''''''''''''''''''''''
                Next t2Row

                stm.WriteLine()
                stm.WriteLine()

                 
            Next t1Row

                stm.Close()
            Label1.Text = "job done!"
        Catch ex As Exception
            Label1.Text = ex.Message
        End Try

    End Sub
    Public Sub getData(ByRef stm As StreamWriter, ByRef drs() As DataRow)
        For Each oDataRow As DataRow In drs

            Dim array() As Object = oDataRow.ItemArray

            For Each Item As Object In array
                stm.Write(Item.ToString() + ControlChars.Tab)
            Next Item
            stm.WriteLine()

        Next oDataRow
    End Sub

End Class

 

تم تعديل بواسطه KARIMSOFT
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .