2012-09-11 6 views
10

Ich habe eine ziemlich einfache .NET-Desktop-Anwendung geschrieben in C#, die einige Daten in einer Tabelle auf einem SQL Server (2005) eingefügt anzeigen müssen. Die Daten selbst sind ziemlich einfach, nur eine Zeile von etwa 10 Spalten (meistens zählen andere Daten).Push-Daten von Sql Server zu Desktop-Anwendung

Ich konnte nur den SQL-Server aus der Anwendung jedes x-Intervall abfragen, aber meine Präferenz ist es, den SQL-Server die Daten zu dieser Anwendung, wenn möglich zu schieben, da das Timing der "neuen Daten" oft unregelmäßig ist.

Kurz gesagt, ich würde gerne wissen, ob dies möglich ist. Bevor ich diese Frage gestellt habe, habe ich ein paar Möglichkeiten gefunden.

1) SignalR: Ich habe this Frage gefunden, die vielversprechend schien, aber dies scheint im Kontext einer Webanwendung statt einer Desktop-Anwendung zu sein. Nach Überprüfung des signalR-Wiki schien es mir, dass es eine Art von Web-Service oder andere http-Verbindung erfordert, die ich lieber vermeiden würde.

2) Sql-Server-Änderungsverfolgung, von this Frage. Erstens, ich bin nicht auf SQL 2008, also nehme ich an, dass ich es installieren oder konfigurieren müsste (was kein Problem ist), aber ich bin mir auch nicht sicher, ob dies liefern wird, was ich brauche.

Ich werde auch erwähnen, dass diese Client-Anwendung auf mehr als 100 verschiedenen PCs existieren könnte, die alle über die Datenänderung informiert werden müssten.

Also, ist so etwas möglich? Ich entschuldige mich, wenn die Frage ein wenig vage ist - und danke im Voraus für Ihre Hilfe!

+1

haben Sie gesehen? http://msdn.microsoft.com/en-us/library/ms130764.aspx – Paparazzi

+0

@Blam Interessant. Ich werde das einen kurzen Wirbel geben und zu dir zurückkommen :) – Mansfield

+0

Nun, das ist vor 3 Jahren, aber ich frage mich nach der gleichen Sache. Irgendwelche Updates mit .NET 4 oder 4.5.2? –

Antwort

4

Die Klasse SQLDependency soll genau auf das Szenario ausgerichtet sein, auf das Sie sich beziehen. Während ich keine persönliche Erfahrung mit dieser haben, scheint this article in Einklang mit Ihrem Szenario zu sein

+0

Okay, ich habe das, und es funktioniert .. .So'ne Art. Ich versuche nur, die Abfrage Benachrichtigungen korrekt auf dem SQL Server einzurichten, so dass Benachrichtigungen nur gesendet werden, wenn bestimmte Daten in einer Tabelle geändert werden. – Mansfield

+1

Und ich habe es funktioniert! Mein Problem war, dass ich zwei Teiltabellennamen in meinem Befehl angeben musste. Danke für Ihre Hilfe! – Mansfield

+0

Ich frage mich, ob dies eine Art von Anfrage weiter unten verwendet oder wenn es eine echte Push von der SQL-Server ist - jedenfalls scheint es seit .NET 2.0 nicht unterstützt werden –