09-09-14, 03:05 AM
السلام عليكم ورحمة الله وبركاااته
أسعد الله أوقاتكم بكل خييير
أنا كنت بعمل برنامج جديد وكان في البرنامج فورم للبحث من الداتابيز وعرض النتائج في DataGridView1
ولكن عند الضغط على زر بحث جديد وكتابة بحث جديد فإن DataGridView1 يقوم بعرض نتاج البحث الأول والثاني
وأنا فقط أريده أن يبحث عن المطلوب فقط
وهذا هو الكود
------------------> الكود أعطاني إيه أحد الإخوة ... أنا فقط قمت بالتعديل عليه ليعمل بشكل جيد
Imports System.Data.OleDb
Imports System.IO
Imports System.Data.SqlClient
Imports System.Data
Public Class Form2
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
Const CS_DBLCLKS As Int32 = &H8
Const CS_NOCLOSE As Int32 = &H200
cp.ClassStyle = CS_DBLCLKS Or CS_NOCLOSE
Return cp
End Get
End Property
Dim Connectionstring As String = "provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\Employe.mdb;user id=admin;jet oledb:database password=12345b#"
Dim newconnection As New OleDbConnection(Connectionstring)
Dim DataSet1 As New DataSet
Dim SQLstr As String
Dim m As String
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.TopMost = True
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Static m As Integer = 0
'اذا كان التكست المخصص للبحث فارغ يتم الخروج من الاجراء لعدم حدوث اخطاء
' If TextBox1.Text = Trim("") Then Beep() : Exit Sub
If TextBox1.Text = "" Then
' MessageBox("لا توجد نتيجه",48, "تنبيه")
MsgBox("لا توجد نتيجه", 48, "تنبيه")
End If
If RadioButton9.Checked = True Then
ExactSearch()
' ExactSearch()
ElseIf RadioButton10.Checked = True Then
GeneralSearch()
End If
Try
newconnection.Open()
Dim DataAdapter1 As New OleDbDataAdapter(SQLstr, newconnection)
DataAdapter1.Fill(DataSet1, "main")
newconnection.Close()
' DataGridView1.Rows.Clear()
DataGridView1.ColumnHeadersVisible = False
DataGridView1.DataSource = DataSet1
DataGridView1.DataMember = "main"
DataGridView1.AllowDrop = True
Button1.Enabled = False
If Me.BindingContext(DataSet1, "main").Count = 0 Then
MsgBox("لا توجد نتيجة", 48, "تنبيه")
Exit Sub
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Sub ExactSearch()
If RadioButton1.Checked = True Then
SQLstr = "SELECT * FROM main WHERE scode LIKE '" & TextBox1.Text & "'"
ElseIf RadioButton2.Checked = True Then
SQLstr = "SELECT * FROM main WHERE EMP LIKE '" & TextBox1.Text & "'"
End If
End Sub
Public Sub GeneralSearch()
If RadioButton1.Checked = True Then
SQLstr = "SELECT * FROM main WHERE scode LIKE '%" & TextBox1.Text & "%'"
ElseIf RadioButton2.Checked = True Then
SQLstr = "SELECT * FROM main WHERE EMP LIKE '%" & TextBox1.Text & "%'"
End If
End Sub
Public Sub ChangePosition()
Try
If Me.BindingContext(dataset1, "main").Count = 0 Then
Label22.Text = "قاعده البيانات فارغه"
Exit Sub
End If
Label22.RightToLeft = Windows.Forms.RightToLeft.Yes
Label22.Text = "السجل " & Me.BindingContext(DataSet1, "main").Position & _
" من " & Me.BindingContext(DataSet1, "main").Count
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Try
Me.BindingContext(DataSet1, "main").Position += 1
ChangePosition()
Catch ex As Exception
End Try
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Try
Me.BindingContext(DataSet1, "main").Position -= 1
ChangePosition()
Catch ex As Exception
End Try
End Sub
Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click
Me.Close()
End Sub
Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
-------------------------------> المشكلة هنا .. أنا هذا الزر يقوم بتفريغ الداتا جريد فيو ... ولكن عند البحث من جديد فإنه يقوم بعرض جميع النتائج السابقة ... لماذا ؟؟؟
TextBox1.Clear()
Button1.Enabled = True
' DataGridView1.Refresh()
DataGridView1.DataSource = Nothing
' DataGridView1.Rows.Clear(
'Call CType(DataGridView1.DataSource, DataTable).Rows.Clear()
End Sub
End Class
أسعد الله أوقاتكم بكل خييير
أنا كنت بعمل برنامج جديد وكان في البرنامج فورم للبحث من الداتابيز وعرض النتائج في DataGridView1
ولكن عند الضغط على زر بحث جديد وكتابة بحث جديد فإن DataGridView1 يقوم بعرض نتاج البحث الأول والثاني
وأنا فقط أريده أن يبحث عن المطلوب فقط
وهذا هو الكود
------------------> الكود أعطاني إيه أحد الإخوة ... أنا فقط قمت بالتعديل عليه ليعمل بشكل جيد
Imports System.Data.OleDb
Imports System.IO
Imports System.Data.SqlClient
Imports System.Data
Public Class Form2
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
Const CS_DBLCLKS As Int32 = &H8
Const CS_NOCLOSE As Int32 = &H200
cp.ClassStyle = CS_DBLCLKS Or CS_NOCLOSE
Return cp
End Get
End Property
Dim Connectionstring As String = "provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\Employe.mdb;user id=admin;jet oledb:database password=12345b#"
Dim newconnection As New OleDbConnection(Connectionstring)
Dim DataSet1 As New DataSet
Dim SQLstr As String
Dim m As String
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.TopMost = True
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Static m As Integer = 0
'اذا كان التكست المخصص للبحث فارغ يتم الخروج من الاجراء لعدم حدوث اخطاء
' If TextBox1.Text = Trim("") Then Beep() : Exit Sub
If TextBox1.Text = "" Then
' MessageBox("لا توجد نتيجه",48, "تنبيه")
MsgBox("لا توجد نتيجه", 48, "تنبيه")
End If
If RadioButton9.Checked = True Then
ExactSearch()
' ExactSearch()
ElseIf RadioButton10.Checked = True Then
GeneralSearch()
End If
Try
newconnection.Open()
Dim DataAdapter1 As New OleDbDataAdapter(SQLstr, newconnection)
DataAdapter1.Fill(DataSet1, "main")
newconnection.Close()
' DataGridView1.Rows.Clear()
DataGridView1.ColumnHeadersVisible = False
DataGridView1.DataSource = DataSet1
DataGridView1.DataMember = "main"
DataGridView1.AllowDrop = True
Button1.Enabled = False
If Me.BindingContext(DataSet1, "main").Count = 0 Then
MsgBox("لا توجد نتيجة", 48, "تنبيه")
Exit Sub
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Sub ExactSearch()
If RadioButton1.Checked = True Then
SQLstr = "SELECT * FROM main WHERE scode LIKE '" & TextBox1.Text & "'"
ElseIf RadioButton2.Checked = True Then
SQLstr = "SELECT * FROM main WHERE EMP LIKE '" & TextBox1.Text & "'"
End If
End Sub
Public Sub GeneralSearch()
If RadioButton1.Checked = True Then
SQLstr = "SELECT * FROM main WHERE scode LIKE '%" & TextBox1.Text & "%'"
ElseIf RadioButton2.Checked = True Then
SQLstr = "SELECT * FROM main WHERE EMP LIKE '%" & TextBox1.Text & "%'"
End If
End Sub
Public Sub ChangePosition()
Try
If Me.BindingContext(dataset1, "main").Count = 0 Then
Label22.Text = "قاعده البيانات فارغه"
Exit Sub
End If
Label22.RightToLeft = Windows.Forms.RightToLeft.Yes
Label22.Text = "السجل " & Me.BindingContext(DataSet1, "main").Position & _
" من " & Me.BindingContext(DataSet1, "main").Count
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Try
Me.BindingContext(DataSet1, "main").Position += 1
ChangePosition()
Catch ex As Exception
End Try
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Try
Me.BindingContext(DataSet1, "main").Position -= 1
ChangePosition()
Catch ex As Exception
End Try
End Sub
Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click
Me.Close()
End Sub
Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
-------------------------------> المشكلة هنا .. أنا هذا الزر يقوم بتفريغ الداتا جريد فيو ... ولكن عند البحث من جديد فإنه يقوم بعرض جميع النتائج السابقة ... لماذا ؟؟؟
TextBox1.Clear()
Button1.Enabled = True
' DataGridView1.Refresh()
DataGridView1.DataSource = Nothing
' DataGridView1.Rows.Clear(
'Call CType(DataGridView1.DataSource, DataTable).Rows.Clear()
End Sub
End Class