Was mach ich falsch und was muss ich tun?
Was du falsch machst ist, dass du Versuchst aus einer Klasse X auf deine Form zuzugreifen. - Das geht nicht und darf auch nicht gehen.
Wieso muss die Klasse auf den Button zugreifen? - Schau dir mal die 3-Schichten-Architektur an.
Deine Klasse darf maximal über Rückgaben bzw. über Events mit dem Form kommunizieren. - Alles was die Form betrifft sollte auch nur im Code-Behind der Form passieren.
Hallo Forum,
ich möchte Datenbankobjekte beschreiben. Wenn ich selbst eine null in der Hand habe, dann möchte ich keine null in das Datenbankobjekt schreiben, weil es dann auf der Datenbankseite explizit eine null ware und nicht die DbNull. Außerdem möchte ich nur eine bestimmte Feldgröße schreiben.
WennNichtNull(DBObjekt.FeldX, WriteAtMax(Data, 20))
Nur wenn Data nicht Null werden maximal die ersten 20 Zeichen aus Data in das Feld DBObjekt.FeldX geschrieben.
Kann ich das irgendwie eleganter und kürzer schreiben? Da gab es doch irgendwelche angeflanschten Funktionen, so dass ich im Source sowas schreiben könnte:
DBObjekt.FeldX = WriteAtMax(Data, 20)
oder:
DBObjekt.FeldX = {Data, 20}
DBObjekt liegt nicht im Source vor. Die Feldgrößen ermittle ich manuell indem ich in die Tabellendefinition im MS SQL Management Studio nachschaue.
Mir reichen ein paar Stichworte, das ich nach Beispielen im Internet sehen kann.
Vielen Dank
Peter
KN4CK3R schrieb:
Jetzt ist wieder alles public nur halt in Wrappern
klar ist es public. aber eben nur als parameter-ersatz.
class xyz
{
void update()
{
var param = new data_update_xyz();
{
param.a = m_foo;
param.b = 3;
//...
}
database.update_xyz( param );
}
}
Mach einen Constructor der den Datenbanktyp (zB eine DataRow) entgegegen nimmt und sich daraus initialisiert. Das könntest du dann noch per internal verstecken.
1. versteckt internal nicht
2. geht das beim update/set aber nicht beim select/get
oder?
KN4CK3R schrieb:
und auf die protected Member kann die Datenbank auch nicht zugreifen.
soll (und darf!) sie ja auch gar nicht; deshalb ists ja protected und nicht public...
die basis-klasse hat im prinzip nur eine aufgabe:
(relevante) änderungen an der tabelle an sich kann ich sofort im code übertragen und der compiler sagt mir dann, ob alles gut ist oder ich was anpassen muss...
@hustbaer:
ich habs bisher zugegebenermaßen nicht komplett gelesen sondern meist nur überflogen; sehe aber nicht, wie das zu meiner frage passt weil da nur die grundsätzliche design-entscheidung diskutiert wird (objekt- oder relationen-bezogen). evtl wurde auch nicht so ganz deutlich, dass ich das ganze nur zwischen objekt und datenbank verwende; mich beim design also schon recht deutlich entschieden habe
ich werds die tage mal komplett lesen; aber heut abend nicht mehr
Bei mir wird das Icon angezeigt, das du dir wünschst.
Ich verwende VS 2015 Express und .NET Framework 4.
Wie sieht denn dein Dialog aus? Kannst du da mal einen Screenshot anhängen?
Ok, habe es nun doch hinbekommen.
Das ist zwar etwas frickelig, aber für den programmatischen Speichervorgang muss ich ja an das Objekt der Zieldatei gelangen. Dieses hole ich mir über das aktive Dokument der Wordapplication:
Document oDocTarget = oDoc.MailMerge.Application.ActiveDocument;
Danach kann ich das über SaveAs2 ohne Datenquelle speichern.
Hallo Experten,
das Ziel ist einer ListView das Verhalten beizubringen wie es von
z.B. Nothon-Commander her bekannt sein dürfte.
Das Problem ist, mit ENTER in ein Verzeichnis wechseln zu wollen und auch
wieder zurück. Beim Wechsel in ein Verzeichnis wird das Problem nicht so
ganz deutlich wie aus einem Verzeichnis heraus. Da im ersten Fall der
selektierte Eintrag die oberste Zeile ist mit ".."
Im anderen Fall kann ich auch das Ursprungsverzeichnis selektieren, es scheint
alles soweit perfekt zu funktionieren.
Das Problem, mit ENTER erhält die ListView den Focus und nicht das angesteuerte
Item. Resultat ist, dass zweimal mit der Pfeiltaste gedrückt werden muss
um die Selektion wirksam zu ändern.
Besonders auffällig beim Herauswechsel in das Übergeordnete Verzeichnis
springt die Selektion beim ersten "Pfeil" -Druck in den ersten ".." Eintrag
hoch.
Jetzt ist der Focus an der richtigen Stelle, das Verhalten ist so aber nicht
gewünscht.
<ListView ... FocusVisualStyle="{x:Null}">
<ListView.InputBindings>
<KeyBinding Command="{Binding FtpLocalDirectory.ChangeDirectoryCommand}" Key="RETURN"
CommandParameter="{Binding ElementName=FtpLocalDirectory, Path=SelectedItem}">
</KeyBinding>
</ListView.InputBindings>
....
</ListView>
Ohne [FocusVisualStyle="{x:Null}"] wird das Problem auch optisch sichtbar.
Es wird nach "ENTER"-Druck eine gestrichelte Linie dem ListView-Rahmen
hinzugefügt.
Das Verhalten sollte ohne Code-Behind realisierbar sein.
Ich stelle die Frage nun nach dem ich 2 Tage versucht habe das Problem zu lösen
Hallo Forum,
ich habe ein paar Klassen die mit dem XmlSerializer auf die Platte geschrieben werden und von dort wieder geladen werden. Mir fehlen jedoch Beispiel Daten. Ich könnte also jetzt von jeder Klasse ein Objekt anlegen und es mit irgendwelchen 123 Daten füllen und dann auf die Platte schreiben um ein Beispiel zu haben. Gibt es vielleicht ein Stückchen Code das dieses für mich macht?
Die XML Dateien sollen dann später händisch erstellt werden. Was fehlt ist eine halbwegs ausgefüllte Strukturvorlage.
Vielen Dank
Peter
Th69 schrieb:
Dein Beispielcode funktioniert: http://ideone.com/Aj18H9
Zeige deinen Originalcode und die entsprechende Fehlermeldung!
Danke für den Hinweis! Und für den nützlichen Link!
Gerade habe ich ein Update für VS2015 eingespielt -was aber BESTIMMT NICHTS damit zu tun hat...
...aber nun funktioniert das mir vorher Unverständliche.
Also herzlichen Dank und LG
Ich hab bisher "nur" mit WPF gearbeitet, WinForms nur nach Anfrage selten)! Ich denke man muss ich eben durchbeißen, egal welches Framework.. erst wenn man Erfahrung gemacht hat und es "etwas" kann ist man effektiv und schnell und macht spass..
Somit findet man automatisch andere Frameworks, mit denen man sich kaum auseinander gesetzt hat als kompliziert und scheisse ,weil man halt 'noch' net rafft )
Müsste ich jetzt was in WinForms machen (was wohl nich ganz so komplex ist), würde ich fluchen und länger brauchen als beim komplexen WPF)
Hey guten morgen leute,
peinlich es lag nich an der Linq.. ich hatte bei der Zeitmessung ein Thread.sleep drin.. mensch .. ahh.. tut mir leid für den unsinnigen thread..
danke trotzdem;) und nen schönen tag euch
@Seuma
Verwendest du Newtonsoft Json.NET?
ps: Und kannst du den JSON-String den du deserialisieren möchtest hier posten? Anhand des Screenshots kann ich mir zwar vorstellen wie der vermutlich aussieht, aber besser wäre 1:1 der JSON String wie er vom Server zurückkommt.