Hallo!
@Totenkopfschwärmer:
Wie schon von den Vorrednern geschrieben, sind die Grundlagen absolut erforderlich. Dazu kann man ja, wie auch in den meisten Büchern begleitend üblich, eigene kleine Programme schreiben, um die Anwendung des neu erlernten zu üben.
Anschließend kann man sich entweder selbst eine Idee suchen und dazu ein Programm schreiben, oder man sucht sich ein kleines, fertiges Programm und analysiert dieses (wie bzw. warum werden die einzelnen Typen, Methoden, ... verwendet, ...), dabei aber immer kritisch bleiben (nur weil es funktioniert, muss es nicht zwingend der richtige Weg sein).
Deine Bot-Idee dringt in einen Bereich vor, welcher die C#-/.NET-Welt teilweise schon wieder verlässt und dafür die Windows-API benötigt. Und für so etwas sollte man zumindest C# sehr gut können.
Hallo!
@Beccy:
Die Fehlermeldung sagt doch alles aus: COMException ist ein Typ/Klasse, mit using darf man aber nur Namespaces einbinden.
Hallo!
@nighty2k:
Bei SQL gibt es auch für WHERE -Conditions das between-Schlüsselwort, um bei Zahlen oder Datumswerten einen bereich zu definieren.
Hallo!
Einige der Smileys scheinen (zumindest bei mir) nicht korrekt zu sein.
"Rotes Gesicht" ( 👍 ) wird bei mir als Daumen nach oben angezeigt, "Augen rollen" ( 🙄 ) als Daumen nach unten, "Zunge raus" habe ich zweimal ( 😜 👅 ), "Freude" ist ein "Achtung"-Schild ( ⚠ ) und "traurig" erinnert mich mehr an schlafen oder gähnen ( 😭 ).
Ist dass nur bei mir so, oder sonst noch keinem aufgefallen?
Hallo!
Habe ein ähnliches Problem.
Schau mal zum einen in der Registry nach (siehe dazu auch http://download.oracle.com/docs/cd/B13789_01/win.101/b10113/registry.htm).
Und dann gibt's noch unter c:\programme\oracle\inventory... irgendwo eine XML-Datei, wo die verschiedenen installierten versionen vermerkt sind. Evtl. zeigt eine dieser Einstellungen auf das falsche Unterverzeichnis.
EDIT: Ups, die Antwort kommt etwas spät 8o.
Hallo!
@all:
Habe gerade festgestellt, dass unter 64bit die Jet-Treiber nicht funktionieren, weil dies von MS nicht supported wird 😦. Werde also demnächst entweder nur noch eine x86-Version anbieten oder beide parallel.
EDIT: Habe noch ein paar Fehler bzgl. MSSQL gefunden (wenn z.B. in den Tabellen Leerzeichen sind). Und auch der Aufruf der Snippets aus dem Tray-Menü funktioniert noch nicht wie gedacht. An Lösungen wird gearbeitet.
Hallo!
@eveN:
ad 1.) Die Eigenschaftsdialoge für die Datenquelleneigenschaften werden alle dynamisch erstellt. Dass hat leider den nachteiligen Effekt, dass - zumindest beim ersten Aufruf eines MSSQL-Eigenschaftsfensters - dann erst die Datenbanken gesucht werden können (was mich zugegeben selbst auch manchmal stört).
Aber den Vorschlag der asynchonen Auffüllung der ComboBox greife ich auf, und werde ihn bei Gelegenheit umsetzen.
ad 2.) Ups, das war eigentlich erstmal nur für mich zum testen und sollte garnicht in die offizielle version rein 😁
ad 3.) DAS kann ich mir absolut nicht erklären. Da schau doch mal bitte in die LogFiles (oder Menü Hilfe, Zeige Protokoll) was da bzgl. dieser Anfrage drin steht.
Hallo!
Oder mit Komponenten des Database-Explorer (Beispiele sind im Thread).
Hallo!
@ibaxx:
Nimm' bloss schnell MessageBox.Show wieder raus: Je nachdem was deine Anwendung macht, kriegst du pro Sekunde bis zu einem Dutzend nachrichten, die dir den Bildschirm mit MessageBoxen vollhauen. Schreib die Daten lieber in die Debug-Konsole oder eine Textdatei.
Und der Fehler könnte auftreten, weil die ersten nachrichten angezeigt werden sollen, obwohl das handle des Hauptfensters noch nicht erstellt wurde.
Evtl. wird auch ein Event oder die KeyPreview-property nicht direkt in der Hauptform sondern im Designer-Code oder durch eine andere Komponente/Klasse gesetzt, vielleicht gibt es da noch Abhängigkeiten oder Erweiterungen.
Hallo!
Es gibt wieder eine neue Version, ist aber diesmal nicht viel dazu gekommen:*TrayIcon-Menü um datenbank-gebundene Snippet-Liste erweitert *Kontextmenü in der TreeView an einigen Punkten erweitert *Die zuletzt verwendeten Abfragen können nun pro Datenquelle über das Kontextmenü abgerufen werden (max. Anzahl in den Einstellungen, Standard ist 20) *Im- und Export von Snippets möglich (ACHTUNG! Z.Zt. noch keine Prüfung auf doppelte Einträge beim Import)
Bzgl. SQL-Parser bei den dateibasierten Datenquellen bin ich noch nicht weiter gekommen., ist ja doch eine etwas größere Aufgabe.
Hallo!
Erstmal die Frage, für welche Zielgruppe die Doku sein soll: Entwickler oder Endanwender.
Für ersteres kann man SandCastle verwenden, für zweiteres ist es eher ungeeignet.
Und da SandCastle meines Wissens nach lediglich aus den Assemblies un den erstellten XML-Dateien die Doku erstellt, sollte die verwendete IDE irrelevant sein.
Hallo!
@MagicAndre1981:
da aber in der Firma nur Windows XP zugelassen ist läuft das OS dementsprechend mit 32 Bit
Hallo!
Aus meiner persönlichen Erfahrung kann ich sagen, dass es am besten ist, wenn man sich ein Projekt aussucht, welches man selbst benutzen möchte, also wenn man z.B. eine konkrete Vorstellung hat, wie man bestimmte Aufgaben mit dem Computer einfacher lösen könnte.
Der Vorteil dabei ist, dass man aufgrund der eigenen Verwendung zum einen eine ganz andere Motivation hat und weiterhin auch viel mehr Ideen hat und bei der Verwendung auch kleinere Fehler relativ schnell entdeckt werden.
Dabei sollte man natürlich nicht gleich mit einem OCR-Projekt starten, welches vollautomatisch den gesamten Aktenbestand in der Wohnung erfasst, sondern eher mit was kleinem (z.B. der berühmten ersten Adress- oder Notiz-Verwaltung als großem Bruder des "Hallo Welt"-Programms).
Hallo!
Um versionsunabhängig auf Office-Instanzen zuzugreifen, bleibt dir entweder, alle dafür benötigten Office-Wrapper einzubinden, oder komplett auf COM-LateBinding umzusteigen, zu zweiterem gobt's sogar schon fertige Komponenten hier im Forum.
Hallo!
Man könnte auch alles in einen separaten Thread packen, und diesen dann bei bedarf beenden. Dadurch wird auch die Abfrage beendet.
Hallo!
Über DataGridView.Source hat man Zugriff auf die Datenquelle
Hallo!
Schau doch mal beim Starten des Programms in der Programm-Ausgabe nach, ob da WPF-Fehler angezeigt werden. Evtl. werden diese im laufenden betrieb irgendwie abgefangen oder ignoriert, und nur der Designer stellt sich da zickig an. Kenne zwar 2010 nicht (arbeite noch mit 2008), aber benutze eigentlich auch nur die Full XAML View, weil der Designer zumindest in 2008 grottenschlecht ist, gerade bei komplexeren Styles oder Layouts.
Hallo!
@Ostblock:
Ja, gibt es, heißt ColumnHeaderClicked oder so ähnlich.
@Minuert:
Wäre unlogiusch. Dann ändert sich ja auch gleichzeitig der selektierte Eintrag, was u.U. nicht gewünscht ist.
Hallo!
LGPL erlaubt die Verwendung in kommerziell genutzten oder vertriebenen Anwendungen, der Einsatz sollte in diesem Fall also kein Problem sein.
Ungeachtet dessen: Selbst wenn eine Anwendung nur innerhalb einer Firma verwendet werden soll ohne einen direkten Gewinn damit zu erzielen, bewirkt es ja trotzdem einen Mehrwert durch automatisierte Workflows für die einsetzende Firma.
Hallo!
Nur zum Verständnis: Wie kann denn der Garbage Collector durch die oben beschriebene DataTable derart beeinflusst werden?
Eine DataTable mit derart vielen Datensätzen hat auch entsprechend viele Verwaltungsobjekte für jede Spalte in jeder Zeile. Und mit jedem GC.Collect
müssen sämtliche Referenzen geprüft werden, bei 300.000 Datensätzen kann das schon etwas Zeit in Anspruch nehmen.
Hallo!
gibt es schon was neues in Bezug auf Abfragen nach dem Inhalt einer bestimmten Spalte für die DBASE Dateien?
Meinst du Konstrukte in der Form
select spalte1, spalte2 from...
Wenn nein: was dann.
Wenn ja: Ist in Arbeit, der Lexer und Syntax-Parser für SELECT-Statements ist bereits fertig, als nächstes steht die Integration in die entsprechenden Adapter auf dem Plan.
Hallo!
Der FileSystemWatcher hat ein Exception-Event. Registriere dieses und dann schau nach, ob das Event in deinem Szenario aktiviert wird.
Wenn ja, musst du danach vom FSW eine komplett neue Instanz erstellen, die alte ist nicht mehr valide.
Hallo!
Ein wirklich sehr interessantes Projekt. Ein kleiner Fehler steht noch in dem Sample: Beim Start ist die TextBox noch leer, und daher wird ein negativer Index berechnet, was zum Abbruch führt. Ausserdem könnte es für viele hilfreich sein, das Projekt nicht gegen .NET 4 sondern eine niedrigere Version zu erstellen.
Hallo1
Ich war kürzlich in einer ähnlichen Situation, und konnte nichts dergleichen finden. Selbst die NativeMethods in der MAPI.dll (in pinvoke und MSDN nachgeschlagen) bieten nur die Möglichkeit, einen Dateinamen anzugeben.
Das heisst nicht, dass es absolut keine Möglichkeit gibt, aber wenn, ist diese sehr gut versteckt 😉
Hallo!
Schau mal im EventLog nach, ob dort evtl. Fehlermeldungen stehen. Es ist möglich, das einige PlugIns es nicht mögen, wenn Outlook vor deren Initialisierung minimiert wird (ich vermute, weil dann der GDI-Treiber das Zeichnen irgendwie unterbindet bzw. verhindert).
Du kannst ja mal versuchen, Outlook zuerst normal zu starten, also ohne Minimierung. Wenn dann alles korrekt geladen wird, liegt es an der Minimierung.
Hallo!
Beim Tab-Namen könntest du versuchen, diesen in einfache Anführungszeichen zu setzen.
Das Auslesen erst ab einer bestimmten Zeile wirst du nach dem Einlesen selbst machen müssen, dafür bieten die Jet-Treiber keinen Support.
Alternativ könntest du die VSTO verwenden, damit könntest du beide Probleme in einem Rutsch lösen, wird aber auch etwas aufwendiger (aber ich vermute mal, das meiste ist Fleiß-Arbeit). Auch kann ich nicht sagen, wieviel langsamer das Einlesen dann wird.
Ab Office2007-Dateien (xlsx) kann man zudem noch das OpenDocument-SDK verwenden, für ältere Dateien (xls) kannst du dir auch mal NPOI anschauen.
Hallo!
@chanderegg:
geupdatet
Super Wort: Besser wäre noch "geupgedatetd".
Nein, mal ernsthaft: Was spricht gegen "aktualisiert" (dann krieg' ich wenigstens keine Entenpelle mehr).
Hallo!
Der Pfad, wo die Dateien abgelegt sind, ist in der Regel für alle User bis auf den DB-Admin gesperrt, d.h. ein normaler User hat dort keinen Zugriff drauf. Dass solltest du bedenken, wenn du die Software verteilst.
Evtl. kannst du einen Umweg gehen, indem du die Dateien in ein temporäres Verzeichnis legst und dann per Script den Import der Dateien veranlasst. Da man die anderen Einstellugen ebenfalls über T-SQL regeln kann, sollte das auch gehen.
EDIT: Ein Ansatz ist hier: mdf Datei auf den Server importieren oder auslesen - Forum Fachinformatiker.de (sp_attach_db
ist das Stichwort)
EDIT2: Hier die Quelle erster Wahl: sp_attach_db (Transact-SQL), sowie sp_attach_single_file_db (Transact-SQL)
Hallo!
@all:
Im ersten Beitrag ist nun auch ein Screenshot, welcher die Symbole und Bereiche erklärt
@Bundy.NET:
zu 2.) Da musst du nichts umstellen, wollte nur wissen, ob es daran liegt. Die Herausforderung dabei ist, dass diese Dialoge zur Laufzeit erstellt werden, da muss ich mal schauen, wie ich das mit in die Größenberechnung einbauen kann.
Hallo!
@Bundy.NET:
Zu 1.) MS SQL Compact setze ich mal mit auf meine Liste
Zu 2.) Hast du evtl. bei dir die DPI-Einstellung geändert?
Zu 3.) Der Access-Import ist z.Zt. äusserst rudimentär eingebunden und geht über den genannten OLE-Treiber. Der Connectionstring sieht so aus:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source={Name der Accessdatei}
. Die Treiber erhälst du hier:*Download details: Microsoft Access Database Engine 2010 Redistributable *So erhalten Sie das aktuelle Service Pack für die Microsoft Jet 4.0-Datenbank-Engine *Microsoft Download Center: Search Results
Und dann musst du noch aufpassen, wenn du ein 64bit-System hast, da gibt's wohl auch noch Unterschiede.
Hallo!
Das kommt, weil es sich um Properties handelt, welche vermutlich ihre Werte über die COM-Verbindung direkt laden.
Wenn die Verbindung nun gestört ist, wird bei Abfrage aller Werte die COM-Exception zurückgegeben.
Hallo!
@P.K.
Selbst ohne das ein Decompiler, an die
Informationen kommt?
Garnicht. Wenn einer den Code decompiliert, sieht er irgendwann auch deine Verschlüsselung. Je nach Grad der Verschlüsselung dauert es dann evtl. etwas länger, aber es ist möglich.
Die Frage ist wie üblich bei solchen Anliegen nicht, ob so etwas verhindert werden kann, sondern NUR, wieviel Aufwand man betreiben möchte, um es einem gegenpart so schwer wie möglich zu machen, an die Daten zu kommen.
Der normale User wird sicherlich einen Decompiler nicht kennen bzw. benutzen können und selbst dann muss man noch die Sprache beherrschen. Ein absoluter Freak wird sich durch sowas aber nicht wirklich abschrecken lassen.
Hallo!
ein Programm, das auch eingescannte Handschriften erkennt, ist mir noch nie über den Weg gelaufen .
Gibt es aber in vielen großen Unternehmen, wo eingehende Briefe ins interne DMS aufgenommen werden. Allerdings kostet so eine Software dann auch zwischen 100.000,- und 250.000,- Euro, die Erkennungsrate liegt zwischen 85-95% (was bei einigen Briefen bzw. handschriften schon erstaunlich ist 😄)
EDIT:
dass Handschriften meistens als Vektordaten vorliegen
Das würde aber andererseits bedeuten, dass man durch Umwandlung von Grafikdaten in Vektordaten bereits einen großen Schritt weiter kommen würde!?
Hallo!
Die Möglichkeit besteht.
Die Container-Klasse sollte von ICollection
, IEnumerable
, ICustomTypeDescriptor
und INotifyPropertyChanged
abgeleitet und entsprechend implementiert werden, die Property-Klasse von PropertyDescriptor
.
Weitere Hilfen findest du hier:* http://www.propertygridresourcelist.com
EDIT: Evtl. habe ich dich falsch verstanden: Zu einer bereits vorhandenen, "normalen" Klasse können zur Laufzeit KEINE zusätzlichen Properties hinzugefügt werden.
Hallo!
@Bundy.Net:
Danke für den Hinweis, hab's gerade behoben.
Folgende Änderungen sind dabei:*Bei MSSQL-DBs werden in der Tabellenliste nun keine Views mehr mit angezeigt
*Beim Drag'n'Drop von Dateien öffnet sich nun ein Kontextmenü mit den möglichen Optionen
*Bei Rechtsklick auf das TrayIcon öffnet sich nun ein Menü, u.a. mit den offenen Panels. Bei Auswahl wird das entsprechende Panel in den Vordergrund geholt, egal ob als TabPage oder als Form
*In der Toolbar der Panels gibt es nun einen neuen Button, welcher die verwendete Datenquelle im TreeView markiert (und den Namen als ToolTip enthält)
*Rudimentärer Ausdruck ist möglich (Druck-Einstellungen werden nicht gespeichert)
*Kleinere Fehler beim XLSX-Import per OpenDocument behoben
Hallo!
offtopic:
Wenn man nicht genau weis, was es macht, nennt man es Manager (trifft nicht nur auf Software zu)
Hallo!
@steffen_dec:
Was genau geht den "irgendwie" nicht?
Hallo!
Bei mir in der Firma (knapp 20 Mitarbeiter) wird auch MS CRM 4.0 eingesetzt.
Ich denke mal, einmal eingerichtet, reicht eine Person aus, welche ab und zu mal etwas anpasst. Sollte nur alles gute dokumentiert werden.
Das MS CRM kann auch über WebService abgefragt werden, auch Änderungen sind möglich, und wenn man sich in der DB-Struktur SEHR (!!) gut auskennt, kann man auch da Änderungen durchführen.
Zudem gibts frei erhältlich von MS ein SDK mit detaillierten Beschreibungen zu allen Entitäten, den Zusammenhängen und natürlich zum gesamten WebService, oft auch mit Code-Beispielen.
Dann gibt's noch MS Navision, das geht aber mehr in Richtung ERP.
EDIT: Da MS CRM webbasiert ist, muss auf den Clients nur für die Outlook-Integration ein AddIn installiert werden.
Hallo!
Wenn es eine xlsx-Datei ist (also Excel2007 oder höher) kannst du das OpenXml-SDK verwenden. Dann kannst du die Datei als Package (in .NET 3.0 in der WindowsBase-Assembly) einladen und über die Objekt-Struktur den Inhalt auslesen. Ich habe das im Database-Explorer ebenfalls so gemacht.
Hallo!
@ala86:
Wie bringe ich jezt dieses Start.cmd in das Form2 ?
Exakt diese Frage wird in den oben verlinkten Beiträgen beantwortet.
Hallo!
Evtl. hilft schon, anstatt das Symptom zu bearbeiten, bereits die Ursache zu untersuchen.
Schau dir mal AppDomain.CurrentDomain.AssemblyResolve
an, dort kannst du zumindest schonmal feststellen, was er nicht findet.
Dann wird entweder deine Meldung exakter oder du kannst gleich auf den korrekten Pfad verweisen und der Fehler tritt erst garnicht auf.
Hallo!
@herbivore:
Ich muss leider zugeben, dass mir diese Doppeldeutigkeit bisher entgangen ist 8o.
Zwar kenne ich Smalltalk als Entwicklungssprache, aber hier im Forum bin ich nie darauf gekommen, eine Assoziation dazu herzustellen.
Im Nachhinein werd' ich jetzt wahrscheinlich andauern daran denken 😁
Hallo xheinrich!
.NET passt in die Tabelle genauso rein wie Java. JEE ist zwar in Java geschrieben, Java selbst ist aber nur die Basis. Wenn du ein in .NET implementiertes Application Framework findest - unter der Voraussetzung, es hat einen ähnlichen Verbreitungsgrad wie die bereits beschriebenen Frameworks -, dann könnte dieses mit in die Tabelle aufgenommen werden.
Mit .NET selbst kann man Transportprotokolle unterschiedlichster Art unterstützen (z.B. TCP/UDP), bei den Anwendungstransportprotokollen gibt es ebenfalls manigfaltige Möglichkeiten (FTP und HTTP sind sogar bereits integriert).
Alle weiteren Differenzierungen der Tabelle bauen meinem Verständnis nach auf diesen und höheren ISO/OSI-Schichten auf, und sind daher ebenfalls nicht als Vergleich in diesem Fall geeignet.
Als Analogie könnte man die Versionsverwaltung heranziehen: Bei einem Vergleich zwischen CSV und SVN passt .NET auch nicht dazu, weil dieses beide Formen realisieren könnte, selbst aber nur die Mittel dafür zur Verfügung stellt.
EDIT: Spellcheck
Hallo!
verwendetes Datenbanksystem: Verschiedene
Ich überlege gerade, wie ich möglichst unabhängig des verwendetet Datenbanksystems in einem Interface den Zugriff auf Objekte wie Funktionen, Prozeduren, Indizees, Schlüssel, ... einer Datenbank definieren kann.
Dazu habe ich erstmal grob überlegt, welche möglichen Eigenschaften die Objekte haben könnten:
Trigger: Tabellenname, Aktion, ...
Primärschlüssel: Tabellenname, Spaltenname Tabelle
Fremdschlüssel: Tabellenname, Spaltenname Tabelle, Fremdtabellenname, Spaltenname Fremdtabelle
Index: Tabelle, Spaltenliste, DB-spezifische Eigenschaften (z.B. Schemagebunden(MS SQL)), eindeutig, …
Prozedur, Tabellenfunktion, Skalarfunktion: Parameterliste, DB-spezifische Eigenschaften (z.B. Schemagebunden(MS SQL)), …
Ein Problem dabei ist, dass z.B. bei Triggern, Indizees und Schlüsseln eine Einschränkung nach Tabelle/View möglich ist, bei den anderen nicht
Nun sehe ich zwei Alternativen:
string
-Liste mit den Objektnamen, eine zweite Methode, welche nach Übergabe des Namens spezifische Informationen zurückkgibtDer Vorteil bei der ersten Methode ist die Sicherheit, dass Parameter und Rückgabewert genau definiert sind, Nachteil ist die Fixierung auf die unterstützten Objekte (wenn z.B. Trigger erst später implementiert werden sollen, müssten dafür alle abgeleiteten Implementationen angepasst werden, auch wenn einige Datenquellen dies garnicht unterstützen).
IDataSource.GetFunctions():List<IFunctionDefinition> // Liste mit Funktionsnamen
IDataSource.GetProcedures():List<IFunctionDefinition> // Liste mit prozedurnamen
IDataSource.GetScalarFunktions():List<IFunctionDefinition> // Liste mit Funktionsnamen
IDataSource.GetIndexes(TableName):IIndexDefinition
IDataSource.GetPrimarykey(TableName):string // Spaltenname
IDataSource.GetForeignKeys(TableName):IForeignKeyDefinition
...
Der Vorteil bei der zweiten Methode ist die Flexibilität bzgl. möglicher Unterstützung zusätzlicher Objekte bzw. die Freiheit innerhalb eines Adapters, die entsprechende Funktionalität für ein bestimmtes Objekt zu unterstützen oder nicht.
Der Nachteil ist aufgrund der DB-Systeme die unterschiedliche Menge an Eigenschaften und deren Definition, ggf. dadurch zu umgehen, dass der Rückgabewert eine von einem Interface abgeleitete Klasse darstellt, welche nach der Abfrage in einem Programm gecastet werden muss.
IDataSource.GetElements(ElementType):List<string> // Rückgabewert ist Liste mit Namen, ElementType=(TableFunctions, ScalarFunctions, Procedures, Indexes, PrimaryKeys, ForeignKeys)
IDataSource.GetTableElements(TableElementType,TableName):List<string> // Rückgabewert ist Liste mit Namen, TableElementType=(Indexes, PrimaryKeys, ForeignKeys)
IDataSource.GetElementDefinition(ElementName):IElementInformation
Ich würde prinzipiell die zweite Alternative wählen, habe aber noch kein schlüssiges Konzept für "GetElementDefinition", genauer den Rückgabewert.
Interessieren würde mich nun eure Meinung: Gibt's evtl. noch eine weitere Alternative, seht ihr bestimmte Gründe für eine der hier genannten, ...
Hallo!
Im Forum gibt's bereits fertige Klassen, welche INI-Dateien einlesen, bearbeiten und auch wieder speichern können.
EDIT: Z.B. Ini-Datei-Klasse
Hallo!
Sehr schöner Artikel.
Allerdings hat die Komponente mit der expliziten Angabe der Quell- und Ziel-Controls einen Schönheitsfehler.
Kann eine Anwendung über AddIns so erweitert werden, dass auch zusätzliche UI-Elemente dazu kommen, welche u.U. ebenfalls Daten draggen könnten, müsste jedes AddIn die entsprechende Dropper-Instanz suchen, sich dort eintragen und ggf. beim Entladen wieder austragen.
Evtl. könnte man EINEN Dropper instanziieren, welcher dann für sämtliche Drag'n'Drop-Vorgänge zuständig wäre (dann müssten bei AddJob 3 Parameter angegeben werden: Quell-Control, Ziel-Control, Effect) und man könnte diese Instanz in einen DI-Container packen.
Hallo!
Meine Hauptsorge z.Zt. ist, dass ich eine Version online stelle, wo ich dann nach kurzer Zeit in größerem Umfang Schnittstellen anpassen muss (hatte ich in meinem Weihnachtsurlaub, wo ich den Database-Explorer begonnen hatte).
Da ich aber mittlerweile die meisten Interfaces (zumindest meiner Meinung nach) halbwegs zukunftssicher habe, wage ich mal die Behauptung, bis Ende des Monats eine Veröffentlichung ermöglichen zu können.
Sobald dies der Fall ist, werde ich es hier selbstverständlich vermelden 😉
Hallo!
Ja, die Ressourcen wären immer vorhanden & es handelt sich um das Internet. 😉
Aha, du kannst also garantieren, dass die Verbindung des Kunden zum Internet jederzeit gewährleistet ist (darauf zielten die vorherigen Fragen nämlich primär ab) ?!
Problem: Beim Kunden ist ein Handwerker vor Ort, welcher die DSL-Leitung kappt, weil er seinen Bohrer nicht unter Kontrolle hatte, oder ein Bagger auf der Strasse haut die Leitungen des Ganzen Blocks kurz und klein.
Bis das behoben ist, wäre der Kunde nicht in der Lage, dein Programm zu benutzen.
Hallo!
Ich kenne mich mit dem DataReader nicht aus, aber kann es evtl. sein, dass die while-Schleife umgedreht werden müsste, d.h. das erste Ergebnis bereits vom Reader vorgehalten wird.
Alternativ kannst du ja mal alles nicht über einen Reader sondern direkt als DataTable abrufen und vergleichen.