تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] سؤال : الاستخدام الصحيح ل BackgroundWorker او Threading
#1
السلام عليكم ورحمة الله


اسفسر عن الطريقه الصحيحه في التعامل مع  ل BackgroundWorker او Threading

عندي كود شغال تمام بس المشكله عند عمل الكود يبحث في قاعدة البيانات واذا القاعدة كبيره يعلق البرنامج ويتاخر

بعد اذنكم محتاج الطريقه لصحيحه للتعامل مع الكود بدون ما يحصل هناك اي تعليق اي توقف

الكود هذا هو  

كود :
  Dim con As New SQLiteConnection(String.Format("Data Source= {0}\DB" & DBT & ".s3db", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))
       Dim com As String = String.Format("Select PFX From DB Where PFX='{0}' and Ba = '" & ban.Text & "'", Trim(PFX.Text))
       Dim ds = New DataSet
       Dim da = New SQLiteDataAdapter(com, con)
       da.fill(ds)
       If (ds.Tables(0).Rows.Count > 0) Then
           Multi.Text = PFX.Text

       Else
           Multi.Text = PFX.Text
           Multi.BackColor = SystemColors.Info

       End If



       If contestnx = "All Asian" And Continentx = "AS" and WORK.Text = "AS" And ban.Text = "160M" Then
           Points.Text = "3"

       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "AS" And ban.Text = "80M" Or ban.Text = "10M" Then
           Points.Text = "2"



       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "160M" Then
           Points.Text = "9"


       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "80M" Or ban.Text = "10M" Then
           Points.Text = "6"

       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "40M" or ban.Text = "20M" Or ban.Text = "15M" Then
           Points.Text = "3"


       ElseIf contestnx = "All Asiant" And Continentx = "NA" Or Continentx = "SA" Or Continentx = "EU" Or Continentx = "OC" And WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" Or WORK.Text = "NA" Then
           Points.Text = "0"


       ElseIf contestnx = "All Asiant" And WORKinfo.PFX.Text = PFXX Then
           Points.Text = "0"
       End If



بارك الله فيكم وجزاكم الف خير
الرد }}}
تم الشكر بواسطة:
#2
(04-10-17, 04:33 PM)dubai.eig كتب : السلام عليكم ورحمة الله


اسفسر عن الطريقه الصحيحه في التعامل مع  ل BackgroundWorker او Threading

عندي كود شغال تمام بس المشكله عند عمل الكود يبحث في قاعدة البيانات واذا القاعدة كبيره يعلق البرنامج ويتاخر

بعد اذنكم محتاج الطريقه لصحيحه للتعامل مع الكود بدون ما يحصل هناك اي تعليق اي توقف

الكود هذا هو  

كود :
  Dim con As New SQLiteConnection(String.Format("Data Source= {0}\DB" & DBT & ".s3db", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))
       Dim com As String = String.Format("Select PFX From DB Where PFX='{0}' and Ba = '" & ban.Text & "'", Trim(PFX.Text))
       Dim ds = New DataSet
       Dim da = New SQLiteDataAdapter(com, con)
       da.fill(ds)
       If (ds.Tables(0).Rows.Count > 0) Then
           Multi.Text = PFX.Text

       Else
           Multi.Text = PFX.Text
           Multi.BackColor = SystemColors.Info

       End If



       If contestnx = "All Asian" And Continentx = "AS" and WORK.Text = "AS" And ban.Text = "160M" Then
           Points.Text = "3"

       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "AS" And ban.Text = "80M" Or ban.Text = "10M" Then
           Points.Text = "2"



       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "160M" Then
           Points.Text = "9"


       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "80M" Or ban.Text = "10M" Then
           Points.Text = "6"

       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "40M" or ban.Text = "20M" Or ban.Text = "15M" Then
           Points.Text = "3"


       ElseIf contestnx = "All Asiant" And Continentx = "NA" Or Continentx = "SA" Or Continentx = "EU" Or Continentx = "OC" And WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" Or WORK.Text = "NA" Then
           Points.Text = "0"


       ElseIf contestnx = "All Asiant" And WORKinfo.PFX.Text = PFXX Then
           Points.Text = "0"
       End If



بارك الله فيكم وجزاكم الف خير

قم باضافه backgroundworker الى المشروع

كود :
   Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
       Dim con As New SQLiteConnection(String.Format("Data Source= {0}\DB" & DBT & ".s3db", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))
       Dim com As String = String.Format("Select PFX From DB Where PFX='{0}' and Ba = '" & ban.Text & "'", Trim(PFX.Text))
       Dim ds = New DataSet
       Dim da = New SQLiteDataAdapter(com, con)
       da.fill(ds)
       If (ds.Tables(0).Rows.Count > 0) Then
           Multi.Text = PFX.Text

       Else
           Multi.Text = PFX.Text
           Multi.BackColor = SystemColors.Info

       End If



       If contestnx = "All Asian" And Continentx = "AS" And WORK.Text = "AS" And ban.Text = "160M" Then
           Points.Text = "3"

       ElseIf contestnx = "All Asiant" And Continentx = "AS" And WORK.Text = "AS" And ban.Text = "80M" Or ban.Text = "10M" Then
           Points.Text = "2"



       ElseIf contestnx = "All Asiant" And Continentx = "AS" And WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "160M" Then
           Points.Text = "9"


       ElseIf contestnx = "All Asiant" And Continentx = "AS" And WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "80M" Or ban.Text = "10M" Then
           Points.Text = "6"

       ElseIf contestnx = "All Asiant" And Continentx = "AS" And WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "40M" Or ban.Text = "20M" Or ban.Text = "15M" Then
           Points.Text = "3"


       ElseIf contestnx = "All Asiant" And Continentx = "NA" Or Continentx = "SA" Or Continentx = "EU" Or Continentx = "OC" And WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" Or WORK.Text = "NA" Then
           Points.Text = "0"


       ElseIf contestnx = "All Asiant" And WORKinfo.PFX.Text = PFXX Then
           Points.Text = "0"

   End Sub
و في كود ال button استخدم الكود الاتي لتشغيل البحث 
كود :
           BackgroundWorker1.RunWorkerAsync

تستطيع ايضا وضع صوره GIF تدل على ان عمليه البحث جاريه 
اة مجرد كتابه عن طريق label 
اذا اردت فعل ذلك قم بعرض الصوره او النص عند بدء العمليه 
و قم بأخفاءها عند انتهاء عمل البحث في backgroundworker في الكود الاتي :

كود :
   Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
label1.Visible =False   
   End Sub


الرد }}}
تم الشكر بواسطة: dubai.eig , asemshahen5
#3
(04-10-17, 09:56 PM)Rabeea Qbaha كتب :
(04-10-17, 04:33 PM)dubai.eig كتب : السلام عليكم ورحمة الله


اسفسر عن الطريقه الصحيحه في التعامل مع  ل BackgroundWorker او Threading

عندي كود شغال تمام بس المشكله عند عمل الكود يبحث في قاعدة البيانات واذا القاعدة كبيره يعلق البرنامج ويتاخر

بعد اذنكم محتاج الطريقه لصحيحه للتعامل مع الكود بدون ما يحصل هناك اي تعليق اي توقف

الكود هذا هو  

كود :
  Dim con As New SQLiteConnection(String.Format("Data Source= {0}\DB" & DBT & ".s3db", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))
       Dim com As String = String.Format("Select PFX From DB Where PFX='{0}' and Ba = '" & ban.Text & "'", Trim(PFX.Text))
       Dim ds = New DataSet
       Dim da = New SQLiteDataAdapter(com, con)
       da.fill(ds)
       If (ds.Tables(0).Rows.Count > 0) Then
           Multi.Text = PFX.Text

       Else
           Multi.Text = PFX.Text
           Multi.BackColor = SystemColors.Info

       End If



       If contestnx = "All Asian" And Continentx = "AS" and WORK.Text = "AS" And ban.Text = "160M" Then
           Points.Text = "3"

       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "AS" And ban.Text = "80M" Or ban.Text = "10M" Then
           Points.Text = "2"



       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "160M" Then
           Points.Text = "9"


       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "80M" Or ban.Text = "10M" Then
           Points.Text = "6"

       ElseIf contestnx = "All Asiant" And Continentx = "AS" and WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "40M" or ban.Text = "20M" Or ban.Text = "15M" Then
           Points.Text = "3"


       ElseIf contestnx = "All Asiant" And Continentx = "NA" Or Continentx = "SA" Or Continentx = "EU" Or Continentx = "OC" And WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" Or WORK.Text = "NA" Then
           Points.Text = "0"


       ElseIf contestnx = "All Asiant" And WORKinfo.PFX.Text = PFXX Then
           Points.Text = "0"
       End If



بارك الله فيكم وجزاكم الف خير

قم باضافه backgroundworker الى المشروع

كود :
   Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
       Dim con As New SQLiteConnection(String.Format("Data Source= {0}\DB" & DBT & ".s3db", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))
       Dim com As String = String.Format("Select PFX From DB Where PFX='{0}' and Ba = '" & ban.Text & "'", Trim(PFX.Text))
       Dim ds = New DataSet
       Dim da = New SQLiteDataAdapter(com, con)
       da.fill(ds)
       If (ds.Tables(0).Rows.Count > 0) Then
           Multi.Text = PFX.Text

       Else
           Multi.Text = PFX.Text
           Multi.BackColor = SystemColors.Info

       End If



       If contestnx = "All Asian" And Continentx = "AS" And WORK.Text = "AS" And ban.Text = "160M" Then
           Points.Text = "3"

       ElseIf contestnx = "All Asiant" And Continentx = "AS" And WORK.Text = "AS" And ban.Text = "80M" Or ban.Text = "10M" Then
           Points.Text = "2"



       ElseIf contestnx = "All Asiant" And Continentx = "AS" And WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "160M" Then
           Points.Text = "9"


       ElseIf contestnx = "All Asiant" And Continentx = "AS" And WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "80M" Or ban.Text = "10M" Then
           Points.Text = "6"

       ElseIf contestnx = "All Asiant" And Continentx = "AS" And WORK.Text = "NA" Or WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" And ban.Text = "40M" Or ban.Text = "20M" Or ban.Text = "15M" Then
           Points.Text = "3"


       ElseIf contestnx = "All Asiant" And Continentx = "NA" Or Continentx = "SA" Or Continentx = "EU" Or Continentx = "OC" And WORK.Text = "SA" Or WORK.Text = "EU" Or WORK.Text = "OC" Or WORK.Text = "NA" Then
           Points.Text = "0"


       ElseIf contestnx = "All Asiant" And WORKinfo.PFX.Text = PFXX Then
           Points.Text = "0"

   End Sub
و في كود ال button استخدم الكود الاتي لتشغيل البحث 
كود :
           BackgroundWorker1.RunWorkerAsync

تستطيع ايضا وضع صوره GIF تدل على ان عمليه البحث جاريه 
اة مجرد كتابه عن طريق label 
اذا اردت فعل ذلك قم بعرض الصوره او النص عند بدء العمليه 
و قم بأخفاءها عند انتهاء عمل البحث في backgroundworker في الكود الاتي :

كود :
   Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
label1.Visible =False   
   End Sub





شكرا على الرد

بس غريبه ان الكود ما اشتغل

عندما احط الكود في ال button   بدون backgroundworker   يكون شغال تمام

بس عندما احط الكود في ال backgroundworker   لا يعمل


كذا الكود يكون شغال تمام
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Dim con As New SQLiteConnection(String.Format("Data Source= {0}\DB" & DBT & ".s3db", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))
      Dim com As String = String.Format("Select PFX From DB Where PFX='{0}' and Ba = '" & ban.Text & "'", Trim(PFX.Text))
      Dim ds = New DataSet
      Dim da = New SQLiteDataAdapter(com, con)
      da.fill(ds)
      If (ds.Tables(0).Rows.Count > 0) Then
          Multi.Text = PFX.Text

      Else
          Multi.Text = PFX.Text
          Multi.BackColor = SystemColors.Info

      End If




   End Sub




بس اذا حطيته في BackgroundWorker1_DoWork  لا يعمل والا يطلع لي رساله غلط 

كود :
 Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
         Dim con As New SQLiteConnection(String.Format("Data Source= {0}\DB" & DBT & ".s3db", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))
      Dim com As String = String.Format("Select PFX From DB Where PFX='{0}' and Ba = '" & ban.Text & "'", Trim(PFX.Text))
      Dim ds = New DataSet
      Dim da = New SQLiteDataAdapter(com, con)
      da.fill(ds)
      If (ds.Tables(0).Rows.Count > 0) Then
          Multi.Text = PFX.Text

      Else
          Multi.Text = PFX.Text
          Multi.BackColor = SystemColors.Info

      End If

  End Sub
      Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
Label14.Visible =False  
  End Sub
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       BackgroundWorker1.RunWorkerAsync
   End Sub



شكرا
الرد }}}
تم الشكر بواسطة:
#4
هل ال BackgroundWorker   لا يعمل مع SQLite  ؟ 

غريبه
الرد }}}
تم الشكر بواسطة:
#5
PHP كود :
Dim cmd As New SQLiteCommand("SELECT COUNT(id) FROM [DB] WHERE [PFX]=@param1 AND [Ba]=@param2"con)
cmd.Parameters.AddWithValue("@param1"Trim(PFX.Text))
cmd.Parameters.AddWithValue("@param2"ban.Text)
If 
con.State <> ConnectionState.Open Then con.Open()
If 
cmd.ExecuteScalar 0 Then
    Multi
.Text PFX.Text
    Multi
.BackColor Nothing
Else
 
   Multi.Text PFX.Text
    Multi
.BackColor SystemColors.Info
End 
If
con.Close() 
الرد }}}
تم الشكر بواسطة: dubai.eig
#6
(05-10-17, 12:24 AM)a.ahmed كتب :
PHP كود :
Dim cmd As New SQLiteCommand("SELECT COUNT(id) FROM [DB] WHERE [PFX]=@param1 AND [Ba]=@param2"con)
cmd.Parameters.AddWithValue("@param1"Trim(PFX.Text))
cmd.Parameters.AddWithValue("@param2"ban.Text)
If 
con.State <> ConnectionState.Open Then con.Open()
If 
cmd.ExecuteScalar 0 Then
    Multi
.Text PFX.Text
    Multi
.BackColor Nothing
Else
 
   Multi.Text PFX.Text
    Multi
.BackColor SystemColors.Info
End 
If
con.Close() 

شكرا عزيزي

بس نفس المشكله

 في ال button  شغال تمام 

وفي ال backgroundworker    غير شغال

غريبه
الرد }}}
تم الشكر بواسطة:
#7
PHP كود :
Private con As New SQLiteConnection(String.Format("Data Source= {0}\DB" DBT ".s3db"Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))

Private 
Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
    Button1
.Enabled False
    bg1
.RunWorkerAsync()
End Sub

Private WithEvents bg1 As New System.ComponentModel.BackgroundWorker
Private Sub bg1_DoWork(ByVal sender As ObjectByVal e As System.ComponentModel.DoWorkEventArgsHandles bg1.DoWork
    Dim cmd 
As New SQLiteCommand("SELECT COUNT(id) FROM [DB] WHERE [PFX]=@param1 AND [Ba]=@param2"con)
    
cmd.Parameters.AddWithValue("@param1"Trim(PFX.Text))
    
cmd.Parameters.AddWithValue("@param2"ban.Text)
    If 
con.State <> ConnectionState.Open Then con.Open()
    If 
cmd.ExecuteScalar 0 Then
        Multi
.Invoke(Sub() Multi.Text PFX.Text)
        
Multi.BackColor Nothing
    
Else
        
Multi.Text PFX.Text
        Multi
.BackColor SystemColors.Info
    End 
If
    
con.Close()
    
Button1.Invoke(Sub() Button1.Enabled True)
End Sub 
الرد }}}
تم الشكر بواسطة: dubai.eig , dubai.eig
#8
(05-10-17, 12:51 AM)a.ahmed كتب :
PHP كود :
Private con As New SQLiteConnection(String.Format("Data Source= {0}\DB" DBT ".s3db"Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))

Private 
Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
    Button1
.Enabled False
    bg1
.RunWorkerAsync()
End Sub

Private WithEvents bg1 As New System.ComponentModel.BackgroundWorker
Private Sub bg1_DoWork(ByVal sender As ObjectByVal e As System.ComponentModel.DoWorkEventArgsHandles bg1.DoWork
    Dim cmd 
As New SQLiteCommand("SELECT COUNT(id) FROM [DB] WHERE [PFX]=@param1 AND [Ba]=@param2"con)
 
   cmd.Parameters.AddWithValue("@param1"Trim(PFX.Text))
 
   cmd.Parameters.AddWithValue("@param2"ban.Text)
 
   If con.State <> ConnectionState.Open Then con.Open()
 
   If cmd.ExecuteScalar 0 Then
        Multi
.Invoke(Sub() Multi.Text PFX.Text)
 
       Multi.BackColor Nothing
    Else
        Multi
.Text PFX.Text
        Multi
.BackColor SystemColors.Info
    End 
If
 
   con.Close()
 
   Button1.Invoke(Sub() Button1.Enabled True)
End Sub 


تسلم تعبتك معاي 

نفس المشكله 

عندما اضغط على Button1_Click

ما يعطيني الناتج فقط يشغل لي امر تغيير اللون  Multi.BackColor = SystemColors.Info

اما الناتج الثاني ما يطلع 
 Multi.Text = PFX.Text

احترت في الموضوع 


للعلم جربة كود ثاني في ال BackgroundWorker 

واشتغل تمام  




هذا الكود

كود :
       conXC.Close()
       Try
           conXC.Open()
           Dim cmd As New SQLiteCommand("select * from DBqsos", conXC)
           Dim rd As SQLiteDataReader
           rd = cmd.ExecuteReader
           While rd.Read
               ComboBox2.Items.Add(rd(2))
           End While
           conXC.Close()
       Catch ex As Exception
           MsgBox(ex.Message)
           conXC.Close()
       End Try
       conXC.Close()
الرد }}}
تم الشكر بواسطة:
#9
اخيرا اشتغل الكود 

مع البحث حصلت موضوع يتكلم عن BackgroundWorker

طلع معاي الكود كذا

كود :
Private Sub checkstatus()

  Dim con As New SQLiteConnection(String.Format("Data Source= {0}\DB" & DBT & ".s3db", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))
      Dim com As String = String.Format("Select PFX From DB Where PFX='{0}' and Ba = '" & ban.Text & "'", Trim(PFX.Text))
      Dim ds = New DataSet
      Dim da = New SQLiteDataAdapter(com, con)
      da.fill(ds)
      If (ds.Tables(0).Rows.Count > 0) Then
          Multi.Text = PFX.Text

      Else
          Multi.Text = PFX.Text
          Multi.BackColor = SystemColors.Info

      End If

   End Sub

   Private Delegate Sub checkstatusDel()

   Private WithEvents bg1 As New System.ComponentModel.BackgroundWorker

      Private Sub bg1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles bg1.DoWork
 
        Invoke(New checkstatusDel(AddressOf checkstatus))
   End Sub


واشتغل تمام

ضفت فقط 
كود :
   Private Delegate Sub checkstatusDel()


و

كود :
        Invoke(New checkstatusDel(AddressOf checkstatus))


بصراحه ما عرفت سبب  ليش ما اشتغل الكود قبل ولماذا اشتغل الان مع التغييرات الواضحه فوق
الرد }}}
تم الشكر بواسطة:
#10
PHP كود :
Private con As New SQLiteConnection(String.Format("Data Source= {0}\DB" DBT ".s3db"Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)))

Private 
Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
    Button1
.Enabled False
    bg1
.RunWorkerAsync()
End Sub

Private WithEvents bg1 As New System.ComponentModel.BackgroundWorker
Private Sub bg1_DoWork(ByVal sender As ObjectByVal e As System.ComponentModel.DoWorkEventArgsHandles bg1.DoWork
    Dim cmd 
As New SQLiteCommand("SELECT COUNT(id) FROM [DB] WHERE [PFX]=@param1 AND [Ba]=@param2"con)
 
   cmd.Parameters.AddWithValue("@param1"Trim(PFX.Text))
 
   cmd.Parameters.AddWithValue("@param2"ban.Text)
 
   If con.State <> ConnectionState.Open Then con.Open()
 
   If cmd.ExecuteScalar 0 Then
        Multi
.Invoke(Sub() Multi.Text PFX.Text)
 
       Multi.BackColor Nothing
    Else
        Multi
.Invoke(Sub() Multi.Text PFX.Text)
 
       Multi.BackColor SystemColors.Info
    End 
If
 
   con.Close()
 
   Button1.Invoke(Sub() Button1.Enabled True)
End Sub 
الرد }}}
تم الشكر بواسطة: dubai.eig



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


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