منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
البحث في قاعدة البيانات - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41)
+--- الموضوع : البحث في قاعدة البيانات (/showthread.php?tid=362)



البحث في قاعدة البيانات - السندباد المصري - 02-10-13

السلام عليكم ورحمة الله وبركاتة
لدي قاعدة بيانات للطلاب واريد طريقة البحث في الاسماء حيث ان لدي عمود للاسم الاول وعمود للاسم الثاني وعمود للاسم الثالث
وفي المقابل
يوجد بالفورم 3 تكست بوكس لكل منهم اريد طريقة للبحث المتقدم عند كتابة اسم الاول والثاني معا او الثاني والثالث معا او الاول والثالث معا او احداهما


RE: البحث في قاعدة البيانات - تركي قرمزلي - 02-10-13

السلام عليكم و رحمة الله و بركاته
كود :
    Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
        Dim sqlSearch As String
        If txtName1.Text <> "" And txtName2.Text.Trim <> "" And txtName3.Text.Trim = "" Then
            sqlSearch = "Select * from MyTable where Name1 like '" & txtName1.Text & "' and Name2 like '" & txtName2.Text & "'"
        ElseIf txtName1.Text <> "" And txtName2.Text.Trim = "" And txtName3.Text.Trim <> "" Then
            sqlSearch = "Select * from MyTable where Name1 like '" & txtName1.Text & "' and Name3 like '" & txtName3.Text & "'"
        ElseIf txtName1.Text = "" And txtName2.Text.Trim <> "" And txtName3.Text.Trim <> "" Then
            sqlSearch = "Select * from MyTable where Name2 like '" & txtName2.Text & "' and Name3 like '" & txtName3.Text & "'"
        ElseIf txtName1.Text <> "" And txtName2.Text.Trim <> "" And txtName3.Text.Trim <> "" Then
            sqlSearch = "Select * from MyTable where Name1 like '" & txtName1.Text & "' and Name2 like '" & txtName2.Text & "' and Name3 like '" & txtName3.Text & "'"
        ElseIf txtName1.Text <> "" And txtName2.Text.Trim = "" And txtName3.Text.Trim = "" Then
            sqlSearch = "Select * from MyTable where Name1 like '" & txtName1.Text & "'"
        ElseIf txtName1.Text = "" And txtName2.Text.Trim <> "" And txtName3.Text.Trim = "" Then
            sqlSearch = "Select * from MyTable where  Name2 like '" & txtName2.Text & "'"
        ElseIf txtName1.Text = "" And txtName2.Text.Trim = "" And txtName3.Text.Trim <> "" Then
            sqlSearch = "Select * from MyTable where Name1  Name3 like '" & txtName3.Text & "'"
        Else
            MsgBox("فضلا إملأ على الأقل اسم واحد", MsgBoxStyle.Information, "خطأ")
            Exit Sub
        End If
    End Sub


السلام عليكم و رحمة الله و بركاته


RE: البحث في قاعدة البيانات - @@أبورائد@@ - 02-10-13

السلام عليكم ورحمة الله وبركاته


عندي طريقة أستخدمتها قديماً، أرجو أن تفيدكم (لاحظوا: توجد مسافة موجود في نهاية كل جملة نصية)
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim sql As String = "SELECT * FROM [table1] "

    Dim where As String = ""
    If Me.txtName1.Text.Trim <> "" Then where &= "AND [name1] = @name1 "
    If Me.txtName2.Text.Trim <> "" Then where &= "AND [name2] = @name2 "
    If Me.txtName3.Text.Trim <> "" Then where &= "AND [name3] = @name3 "

    If where <> "" Then sql &= "WHERE " & where.Substring(4)

    Dim comm As New OleDb.OleDbCommand(sql, conn)
    If Me.txtName1.Text.Trim <> "" Then comm.Parameters.AddWithValue("@name1", Me.txtName1.Text.Trim)
    If Me.txtName2.Text.Trim <> "" Then comm.Parameters.AddWithValue("@name2", Me.txtName2.Text.Trim)
    If Me.txtName3.Text.Trim <> "" Then comm.Parameters.AddWithValue("@name3", Me.txtName3.Text.Trim)

    MsgBox(sql)
    Dim dt As New DataTable

    Dim da As New OleDb.OleDbDataAdapter(comm)

    If da.Fill(dt) > 0 Then
        '
        '
        '
    End If

End Sub


السلام عليكم ورحمة الله وبركاته