تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في DataGridView1
#1
Exclamation 
السلام عليكم ورحمة الله وبركاااته

أسعد الله أوقاتكم بكل خييير

أنا كنت بعمل برنامج جديد وكان في البرنامج فورم للبحث من الداتابيز وعرض النتائج في 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
الرد }}}
تم الشكر بواسطة:
#2
في بداية أي إجراء يقوم بعملية البحث ووضع ناتج البحث في DataGridView1 عليك اولا افراغ محتويات الاداة عن طريق الكود datagridview1.clear
الرد }}}
تم الشكر بواسطة:
#3
فعلت ما قلته لي ... ولكن لم ينجح بعد

هذا هو كود زر إبحث

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Static m As Integer = 0
DataGridView1.Rows.Clear()

'اذا كان التكست المخصص للبحث فارغ يتم الخروج من الاجراء لعدم حدوث اخطاء
' 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


وهذا كود زر بحث جديد

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
الرد }}}
تم الشكر بواسطة:
#4
قبل البحث
DataSet1.clear
الرد }}}
تم الشكر بواسطة: رحوووم
#5
الحمد لله نجح ... بارك الله فيك أخوي محمود رغمان
الرد }}}
تم الشكر بواسطة:



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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم