| |
VB.NET - FortgeschritteneSqlDependency - Threadübergreifender Vorgang | | | Autor: korn3l | Datum: 20.08.11 09:59 |
| Hallo VB Community,
ich hoffe ihr könnt mir wiedermal weiterhelfen.
Hintergrund: Ich hab eine Textbox die als "Logfile" benutzt wird. Hier sollen Änderungen in einer bestimmten SQL Tabelle angezeigt werden. Dafür benutze ich SQL Dependency. Das klappt auch soweit ohne Probleme, jedoch möchte ich dass in der Textbox bei jeder aktualisierung ganz nach unten gescrollt wird.
Dafür verwende ich :
TextBox1.SelectionStart = TextBox1.Text.Length
TextBox1.ScrollToCaret() Hier bekomme ich aber:
[u]Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement TextBox1 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.
Mein Code:
Private Sub dependency_onchange(ByVal sender As Object, ByVal e As _
SqlNotificationEventArgs)
If CType(Me, ISynchronizeInvoke).InvokeRequired Then
Dim d As New OnChangeEventHandler(AddressOf dependency_onchange)
CType(Me, ISynchronizeInvoke).BeginInvoke(d, New Object() {sender, _
e})
End If
Dim dependency As SqlClient.SqlDependency = CType(sender, _
SqlClient.SqlDependency)
RemoveHandler dependency.OnChange, AddressOf dependency_onchange
getData()
End Sub Private Sub getData()
Using connection As New SqlConnection(My.Settings.connstring)
connection.Open()
Using command As New SqlCommand("select message from msg where" & _
"fromuid = '" & dgv_msg.Item(1, dgv_msg.CurrentRow.Index).Value & _
"' and touid = '" & usern & "' or fromuid = '" & usern & "' and" & _
"touid = '" & dgv_msg.Item(1, dgv_msg.CurrentRow.Index).Value & _
"'", connection)
Dim dependency As New SqlClient.SqlDependency(command)
AddHandler dependency.OnChange, AddressOf dependency_onchange
TextBox1.Text = CType(command.ExecuteScalar(), String)
TextBox1.SelectionStart = TextBox1.Text.Length
TextBox1.ScrollToCaret()
End Using
End Using
End Sub Bitte um Hilfe, bin schon langsam am verzweifeln!
Danke schon im voraus!
~Kornel | |
Re: SqlDependency - Threadübergreifender Vorgang | | | Autor: korn3l | Datum: 20.08.11 11:03 |
| Danke für deine Antwort!
Wieso ist es aber möglich den Text zu aktualisieren aber das Scrollen nicht?
Hast du vielleicht ein Beispiel bei der Hand wie das mit dem Invoke funktioniert? - Ich blick bei den ganzen Threads überhaupt nicht durch...
Danke!
~Kornel | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|