Je suis en train de mettre en œuvre SqlDependency dans mon application vb.net selon:C# VB.net conseils de conversion de syntaxe
http://www.dreamincode.net/forums/topic/156991-using-sqldependency-to-monitor-sql-database-changes/
Je vais avoir des problèmes avec le code involking, lorsqu'une notification est reçu l'application se bloque sans erreur. (Lorsque MyOnChanged est appelé via le deligate)
Est-ce que j'ai fait une erreur dans ma conversion C#> VB.net?
Private Sub GetNames()
Dim connectionString As String = "String..."
ListView1.Items.Clear()
SqlDependency.[Stop](connectionString)
SqlDependency.Start(connectionString)
Using cn As New SqlConnection(connectionString)
Using cmd As SqlCommand = cn.CreateCommand()
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT [finish_time], [file_name] FROM dbo.[log_table];"
cmd.Notification = Nothing
Dim dep As New SqlDependency(cmd)
AddHandler dep.OnChange, New OnChangeEventHandler(AddressOf MyOnChanged)
cn.Open()
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim ls As New ListViewItem(dr.Item("finish_time").ToString.Trim())
ls.SubItems.Add(dr.Item("file_name").ToString.Trim())
ListView1.Items.Add(ls)
End While
End Using
End Using
End Using
End Sub
Private Sub MyOnChanged(ByVal sender As Object, ByVal e As SqlNotificationEventArgs)
If ListView1.InvokeRequired Then
ListView1.Invoke(New MethodInvoker(AddressOf GetNames))
Else
GetNames()
End If
Dim dep As SqlDependency = TryCast(sender, SqlDependency)
AddHandler dep.OnChange, New OnChangeEventHandler(AddressOf MyOnChanged)
End Sub
Une astuce que vous pouvez essayer est de ce code en C#, obtenir la compilation, puis regardez le code Réflecteur .NET (recherche sur le Web pour cet outil). Cela vous permettra de prendre n'importe quel code .NET et de l'afficher dans n'importe quelle autre langue, telle que VB.Net. –
En outre, apprendre à utiliser le débogueur est extrêmement utile dans un cas comme celui-ci. –