Hallo Mossos,
ich verwende DevZest - WPF Data Virtualization, funktioniert ohne weitere Probleme. Man kann auch angeben wie viele Elemente bei Bedarf nachgeladen werden. Mit einer kleinen Modifikation kann man auch erreichen dass der Anfangswert der geladen wird vom der Anzahl der Elemente die nachgeladen werden sich unterscheided, was meist auch gewünscht ist.
Gruß
Michael
Hallo Tott666,
nur kann ich darin keine Funktion bauen
vs
nur eine Deklarieren
Dies ist der Unterschied zwischen Methoden überschreiben (von Base-Klassen) und Methoden implementieren (von Interfaces).
Ein Interface definiert nur den Bauplan, bauen musst du es selbst.
Wenn du eine Methodenimplementation welche in verschiedenen Klassen gleich implementiert ist zusammenfassen willst solltest du eine Base-Klasse erstellen.
Gruß
Michael
Hallo david.ka,
müsste im Sql Server Configuration Manager
drinnen stehen.
Gruß
Michael
Er bringt keine Fehlermeldung, sondern bricht einfach ab
Dann fängst du den Fehler irgendwo weiter oben.
Wenn du
try
{
[...]
}
catch(Exception e)
{
//Hier Brakepoint
}
machst, siehst du auch welcher Fehler gewofen wird.
Die Aufteilung in Subnetze ergibt nicht 192.168.2.X und 192.168.3.X sondern 192.168.2.0-127 und 192.168.2.128-256.
Kein Problem, wenn du die Subnetmaske von
255.255.255.0 auf 255.255.255.128 erhöhst.
Die Hostbereiche liegen zwar etwas anders, aber dies hat nichts zur Sache
Gruß
Michael
Hallo BeZi,
ich kenne keinen Grund eine 1:1 zu machen, denn eine 1:1 kann immer zu einer Tabelle zusammengefasst werden. Ausnahmen gibt es keine.
Wenn du es trotzdem mit einer 1:1 machen willst, versuche es in einer Transaction.
Da du MySql verwendest sollte folgende funktionieren:
BEGIN TRANSACTION
SET FOREIGN_KEY_CHECKS = 0;
INSERT...
INSERT...
SET FOREIGN_KEY_CHECKS = 1;
COMMIT TRANSACTION
Dies wär nur ne Möglichkeit, obs schön ist oder sinn macht ist eine andere Frage. Meine Meinung dazu steht oben.
Gruß
Michael
First wirft einen Fehler wenn die Kostenstelle nicht vorhanden wäre. Nimm dann lieber FirstOrDefault oder besser mein Vorschlag mit SingleOrDefault.
Klassennamen generell großgeschrieben
Du könntest den Benutzer die Kostenstelle über eine ComboBox auswählen lassen an welcher die zugehörigen Kostenstelle Objekte gebunden sind, dann fällt das Zuweisen aus.
Oder du könntest das entsprechende Objekt in der Datenbank suchen und dieses dem Mitarbeiter anfügen:
Kostenstelle ks = context.Kostenstelle.SingleOrDefault(k=>k.Name = eingegebnerName);
m.Kostenstelle = ks ?? new Kostenstelle(eingegebeneName);
Hallo InSiDeR,
255.255.0.0 ist eben leine gültige Ip-Adresse eines Computers. Desswegen funktionierts eben nicht.
Wenn du von 72.16.x.x
einen WOL auf 72.17.x.x
machen willst musst du dementsprechend beim Router sicherstellen dass beim Router des 72.16
er Netz das 72.17
er Netz gerouted wird.
Gruß
Michael
Hallo Dijon,
kannst du etwas Code herzeigen?
Generell ist folgendes
Mitarbeiter m = new Mitarbeiter();
m.Kostenstelle = new Konstenstelle {Name = "K1"};
Mitarbeiter m1 = new Mitarbeiter();
m1.Kostenstelle = new Konstenstelle {Name = "K1"};
[...]//hinzufügen und speichern
nicht gleich folgendem:
Kostenstelle ks = new Konstenstelle {Name = "K1"};
Mitarbeiter m = new Mitarbeiter();
m.Kostenstelle = ks;
Mitarbeiter m1 = new Mitarbeiter();
m1.Kostenstelle = ks;
[...]//hinzufügen und speichern
Ersteres wirft dir den Fehler da du die Kostenstelle mit Namen K1 zweimal hinzufügst (angenommen Name hat einen UNIQUE Constraint)
Zweitere fügt die Kostenstelle K1 nur einmal hinzu, da Sie auch nur einmal erstellt wird.
Gruß
Michael
Generell unterstützt dies kein Framework.
Man muss sich selbst dazu kümmern dass sobald man eine Änderungsbenachrichtigung bekommt man diese Änderun richtig auswerted und gegebenfalls die vorhandenen Daten aktualisiert bzw neue Daten hinzufügt.
Gruß
Michael
Hallo ´#`*,
schreibend hast du wenig Probleme. Die Probleme fangen beim Lesen an.
Nehmen wir an:Thread1 iteriert mit foreach durch die Liste. Thread2 schreib rein, oder löscht. Dementsprechend wird dann in Thread1 ein Fehler geworfen dass sich die Liste geändert hat.
Bzw kann beim Zugriff mit einem Indexer das Element überschrieben oder gelöscht werden.
Verwende lieber die BlockingCollection<T>
Gruß
Michael
using(SqlConnection....)
{
using(SqlCommand comm....
{
if(comm.ExecuteNonQuery() > 0)
{
Debug.WriteLine("Daten aktualisiert");
}
}
}
Hallo Leute,
Ohne Yield müsste man erst die 10 Millionen Datensätze in eine List<> speichern, was recht schnell den Hauptspeicher sprengt.
Zusätzlich kann man einen Schleife welche sich einem yield Enumerator bedient abbrechen und weitere Iterationen verwerfen. Bei einer Liste sind die Daten schon geladen.
Gruß
Michael
Wunderbar dass es funktioniert.
PMSKReader.Close(); PMSKConn.Close(); PMSKConn.Dispose(); PMSKReader.Dispose();
in einem using Block sind diese Schritte unnötig.
Gruß
Michael
Hallo kom2006,
mach mal ein Dispose oder ein
using(var PMSKConn = new FbCon[...]
{
//hier alles rein.
}
Gruß
Michael
Du könntest dir den Model Generator T4 Template umschreiben, sodass GUIDs anders behandelt werden als andere Properties anderer Typen.
Unterm strich sollte dann so etwas herauskommen:
private Guid? _myGuid;
public Guid MyGuidColumn
{
get
{
return _myGuid ?? Guid.Empty;
}
set
{
_myGuid = value != Guid.Empty ? value : null;
}
}
Wie kann man das lösen, dass es die Exception anzeigt?
catch(IOException ex)
{
MessageBox.[...]
}
Gruß
Michael
Hallo opelig,
Warum das Rad neu erfinden:
Stichwort: Jugendschutz für Vista aufwärts.
Gruß
Michael
Hallo m.grauber,
Darf man so etwas grundsätzlich nicht tun? Es wurde dadurch das Binding gestört.
Versteh auch nicht was du genau meinst, aber generell soll die Eigenschaft an welche gebunden wird beim setzen des Wertes ein PropertyChangedEvent schmeißen, damit die GUI auch mitbekommt dass sich etwas geändert hat. Ansonsten zeigt die GUI ein Objekt an und die Logik arbeitet mit einem anderen.
Für SQL-Compact brauchst du dann den Benutzern auch nur direkt durchs Projet die zwei benötigten dlls mitgeben. Dann muss der SQL-Compact gar nicht erst installiert werden.
Gruß
Michael
Aber sollte es nicht folgendermasen heißen:
Das hängt davon ab wie dein Command.Property aufgebaut ist.
Generell erbt ein Command von ICommand, und dort gibt es keine weiteren Eigenschaften, aber wenn du ein CustomCommand erstellst welche Properties bereitstellen kannst du auch daren binden.
MyViewModel
{
public ICommand MeinCommand{get;private set;}
public string MeineProperty{get;set;}
}
Meine Vorstellung von Parts:
Korrekt.
und dies dann auch wirklich der Fall ist
Andernfalls sollte es nicht funktionieren.
Siehst du eine Möglichkeit, die Animation des AnimatedTabControls auch ohne Code-Behind implementieren zu können
Nein, da man nur die Animationen per Trigger machen kann, jedoch nicht den Content-Austausch. Somit musst du wie du, bzw die Prism Leute es gelöst haben bei Halbzeit den Content austauschen.
Mein Ziel wäre, dass ich, wenn ich ein themenspezifisches Control implementieren will
Unter themenspezifisch, verstehe ich immer Styles usw.
Dies sollte wenn möglich auch die Code-Behind-Datei miteinbeziehen, um ggbfs. weitere PARTS "vorrauszusetzen"
Am besten du erstellst dir dann ein Control welches die PARTS sich holt welche es benötigt, oder wenn du komplett auf diese verzichten möchtest (was ich nicht empfehle. Im WPF Standard werden bei jedem Control PARTS verwendet, damit das Design benutzerdefiniert angepasst werden kann), kannst du dir per Code selbst eines zusammenschreiben welches das Aussehen hat so wie du es vorherbestimmt hat und nicht anders. Sprich: Erstellen der GUI wie zu WINFORMs Zeiten ohne Designer.
So stellt das ProgressBar-Control einen Part_GlowRect bereit, der in Control Templates eingebaut werden kann.
Stimmt nicht so genau. Der Benutzer muss dafür sorgen dass die ProgressBar den PART_GlowRect
bekommt um dessen Funktionen zu benutzen.
Wie du im SourceCode von ProgressBar siehst wird dies so gemacht:
_glow = GetTemplateChild(GlowingRectTemplateName) as FrameworkElement;
Lies dir eventuell mal einige Tutorial zu Custom Controls durch, dann ist vieles leichter verständlich.
Bezüglich des Contents austauschen denke ich mir dass du es gut gelöst hast, dass bei Halbzeit das Control getauscht wird.
Hallo thorran
nun mag ich zum einen das Komando an einen Button binden (funktioniert auch)
Das Text-Binding funktioniert gleich
<Button Command="{Binding Path=MeinCommand}" Content="{Binding Path=MeineProperty}"
Gruß
Michael
Hallo Fi.as.ko,
bins mal kurz überflogen, werds mir abends genauer angucken. Auf den ersten Moment siehts gut aus.
Mit dem Austausch der Styles bzw. Ressourcen-Wörterbücher fällt die Möglichkeit weg, Parts in Code-Behind zu manipulieren.
Die PARTS_xxx soll der Benutzer auch nicht per Code manipulieren können. Er soll nur das Aussehen ändern. Dies wird über ein Style durch setzen der Eigenschaft Template
gemacht.
In der Dokumentation wird ein entsprechendes TemplatePartAttribute vermerkt.
In der Dokumentation wird vermerkt welche PART_xxx du in deiner XAML-Template Implementierung vorhanden sein sollten damit das Control ordnungsgemäß funktioniert.
Dies machst du bei TabControl, welches ein PART_SelectedContentHost
benötigt, auch richtig indem du ein
<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" Margin="20"/>
drinnen hast.
Hallo sh33p,
um Syntaxfehler zu vermeiden benutze die SqlConnectionStringBuilder Klasse.
Die Datenbank wird nicht geupdated.
Irgendwelche Fehlermeldung? (Timeout, Login-Failed, etc...)
Gruß
Michael
Hallo Fi.as.ko,
willkommen im Forum
durch letzterem Absatz "Hintergrund" deutet meiner Meinung alles auf einen XAML-Theme Austausch hin.
wie diese Verzögerung umsetzbar wäre
Trigger in Kombination mit Storyboars durch setzen von BeginTime.
Loading WPF themes at runtime
Das Aufrufen des SelectionChanged-Events um eine halbe Sekunde verzögern muss.
SelectionChanged ist in WPF ein RoutedEvent und somit wunderbar durch oben genannte Trigger in XAML abfangbar, damit das StoryBoard gestartet werden kann.
Dementspreched würde ich sagen dass das Dynamische setzen eines Themas über AttachedProperties der falsche Weg sein wird, da das tauschen der Theme.xaml datei viel einfacher ist.
Gruß
Michael
Wenn die Animation der Controls in einem eigenen Thread läuft - und das sollte sie - ist das Sleep nicht so schlimm.
Verbessere mich wenn ich mich irre, aber er invoked zwar die Action, jedoch ist in diesem invoke Block wiederrum ein Thread.Sleep drinnen, welcher im GUI-Thread ausgeführt wird und somit die GUI blockiert wird.
@Briefkasten,
wenn du die Controls im Abstand von .9 Sekunden fokusieren möchtest, schiebe alles zusammen in einen DispatcherTimer, der dir alle .9 Sekunden eine Aktion ausführt. Dort in dieser Aktion kannst du deine Controls fokusieren und machen was du willst, da die Aktion immer im GUI-Thread ausgeführt wird
Gruß
Michael
Hallo Xqgene,
hatte zwar nie dieses Problem, aber ich denke dass die RichTextBox nicht scrollt.
Versuch mal HorizontalScrollBarVisibility aus ScollBarVisibility.Visible zu stellen und/oder die RichtextBox aus dem Scope der ScollBar zu entfernen.
Btw Mach dir mit DataBinding das Leben einfacher und fülle die Controls nicht per Code
Gruß
Michael
Hallo Shinzo,
netsh benötigt Admin Rechte,
versuch mal folgendes, bei mir Funktionierts.
ProcessStartInfo procStartInfo = new ProcessStartInfo("netsh", lla1);
procStartInfo.CreateNoWindow = true;
Process p = new Process();
p.StartInfo = procStartInfo;
p.StartInfo.Verb = "runas";
p.Start();
Gruß
Michael
Hallo BloodyLove,
genau für deine Denkansätze wurden u.a. O/R Mapper gemacht.
Einfach gesagt, arbeitet man dabei mit den direkten Daten der Datenbank, d.h. die Object-Schicht stellt 1:1 die Datenbank da.
Ich habe auch noch keinen Ansatzpunkt, wie ich das mit dem Zurückschreiben in die DB realisieren soll.
Bei O/R: Daten im Object ändern und SaveChanges
aufrufen, und fertig.
ohne immerzu die ganze Liste durchzugehen mit Schleifen und nach der Objekt ID zu suchen?!?
Bei O/R "gehst" du die Listen mit LINQ-Abfragen durch. Vereinfacht sind LINQ-Abfragen auf Listen ähnlich wie SQL-Abfragen auf der Datenbanktabellen mit JOINS und allem drum und dran.
z.b.
meinobject = objectContext.MeineTabelle.Single(i=>i.Id == 5);
Wird dann auf Datenbankebene:
SELECT TOP(1) * FROM MeineTabelle WHERE Id = 5
Weitere Stichpunkte: Code First, Database first
Gruß
Hallo BloodyLove,
mach ein Interface mit ID
als Eigenschaft und nimm als Parameter der getKategoIdFromSelected ein Object des Interface Typs.
Stichwort: Vererbung
Bitte beachte bei solchen Fragen immer 1.1 & 1.1.1 von [Hinweis] Wie poste ich richtig?
Gruß
Michael
Die Funktionen welche die Express Version nicht hat findet man in der Englischen Version des Wikipedia-Eintrages.
Wobei sofort der erste Punkt etwas ungenau definiert ist:
No IDE support for databases other than SQL Server Express and Microsoft Access
Unter "IDE Unterstützung" wird dort verstanden dass man über Visual Studio das DB-Design anschauen kann und Queries ausführen kann (Server Explorer), jedoch NICHT im Express das EF-Diagramm erstellen kann.
Hallo ArnoNuehm,
Was mache ich den falsch?
Es funktioniert nicht, da deine Methode c12.doIt
nicht den Parameter object nimmt.
Bitte beachte bei Kompilierfehler immer [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen) und auch ParameterizedThreadStart Delegate
Gruß
Michael
@winSharp93,
man kann auch direkt von VHDs booten, damit kann man diese dann als ganzes auch hin und her kopieren.
Unter anderem ist ein Systemabbild, welches durch das Windows-Backup erstellt werden kann, unter Umständen auch bootbar.
Gruß
Michael
Hallo Double_A,
die Stichpunkte die du suchst liegen bei:*Datenbanken mit Dot.NET *Master Detail *O/R Mapper *WPF-DataBinding (Hirarchial Databinding) (WPF TreeView using the ViewModel Pattern) *MVVM
Leider setzen wir besonders DataBinding bereits, wie unter 1.1 und 1.1.1 in [Hinweis] Wie poste ich richtig? beschrieben, als Grundlagen voraus.
Gruß
Michael
Hallo Leute,
ich verwende VMs auch wie ihr nur zum Testen und Uni bedingt. Jedoch habe ich dann doch den einfacheren und performanteren Weg eingeschlagen und mir ein Dual-Boot eingerichtet.
Andernfalls teste ich in den VM, auf denen XP mit minimalen Updateinstallationen läuft, meine Programme.
Hebivores Idee mit der auslieferung zukünftiger Programme sehe ich nicht von so weit hergeholt, denn M$ macht in letzter Zeit sehr vieles mit den sogenannten VHDs.
Jedoch wenn Programme mit VHD ausgeliefert werden, können diese als Platte eingebunden werden und es wird keine Lizenz benötigt.
Der Sinn jedes Programm in einer VM laufen zu lassen lasse ich so außen stehen.
Gruß
Michael
Hallo joshua,
ich arbeite immer mit dem Entity Framework. Und ja dort wird eine Datenklasse entsprechend aller Spalten und Beziehungen der Datenbankschicht erstellt.
Denn durch diese Wrapper-Klassen vereinfacht man sich die Arbeit mit der Datenbank sehr.
Stichpunkt: O/R-Mapper
Gruß
Michael
Hallo herbivore,
ich habe den Samsung Syncmaster BX2450 ist zwar ein 16:9 aber er ist mir sehr angenehm. Zusätzlich habe ich noch einen 22" aber ich denke dieser ist dir zu klein 😃
BTW, bin ich auch derselben Meinung wie Abt.
Gruß
Michael
Du kannst den Lizenz-Key direkt über VS eingeben.
Ich finde nicht, dass man das Premium Paket für das Entity Framework "braucht".
Nein, denn dazu reicht die normale Professional ohne MSDN auch.
Hallo Leute,
Die Unterschiede sind "nur" die weiteren Toolunterstützungen die gfoidl genannt hat
Dies ist korrekt, aber wenn mit dem Entity Framework arbeitet (DB-First) wird man bei der Express in die Röhre schauen. (Ausgenommen SQLCE, dort gehts auch mit Express).
Zusätzlich ist die Express Version nicht Plugin geschweige denn Third Party fähig und Extensions welche über den Extension Manager installiert werden können funktionieren auch nicht alle.
Gruß
Michael
Hallo adeptus,
anmerkend möchte ich sagen dass beim normalen VS2010Pro eine 1 Jahres MSDN Essentials Subscription im Preis inbegriffen ist.
Gruß
Michael
Hallo #coder#,
ähnliches wurde schon mal besproche. Siehe unter anderem Erfahrungen mit Office 365
Gruß
Michael
Nebenbei überschreibst du auch noch deinen INSERT mit deinem SELECT.
Wenn schon beide Queries ausgeführt werden sollen trenne diese beide mit einem ;
ExecuteNonQuery gibt nur die Anzahl an Zeilen zurück die durch die abgegebene Query direkt geändert wurden.
Gruß,
Michael
Hallo chris32,
parallel zum Plain Connection String gibs auch noch die zwei Helper-Klassen SqlConnectionStringBuilder bzw: EntityConnectionStringBuilder.
Wenn du EntityFramework verwendest kannst du auch den Standardkonstruktor abschalten und direkt mit einem Connectionstring den Context initialisieren.
Das musst du sogar, solltest du deinen ConnectionString nicht in der app.config definiert haben.
Ich möchte kurz gesagt die Verbindungszeichenfolge während der Laufzeit ändern
Speichere die relevanten Sachen ab (Username,Servername,...) . Wenn du dann meine vorgeschlagenen Klassen benützt, ist es ein leichtes den Connection-String zusammenzubauen
Gruß
Michael
Hallo ZeroQool,
ich bin z.Z. auf Vorbereitung auf den MCITP: Server Administrator und dieser kostet je Prüfung ca 180€, informiere dich aber bei deinem Microsoft Certified Trainer ob diese dir eine Vaucher für einen Second Shot, bzw Ermäßigung geben könnten.
Gruß
Michael
Oder poste etwas WPF-Code damit wir sehen wie du es z.Z. machst, evtl auch die Eigenschaft mit welcher du das Binding erstellst.
Gruß
Michael
Hallo Gabriel,
du kannst auf Projektebene (Assembly), und Ordnerebene (Namespace) einen rechtsklick machen und dir das Classendiagram anzeigen lassen.
Gruß
Michael