public override void FormA_Load(...)
Gruß David
Dafür muss er aber FormA_Load in der Basisklasse als virtual deklarieren:
public virtual void FormA_Load(object sender, EventArgs e)
{
textBox1.Text = "Load Ereignis von Form A";
}
Sonst geht da gar nix.
Sowas steht allerhöchstens im Assembly Manifest (da kommst du glaub ich über Reflection ran).
Ich bezweifle aber, dass dort ein Timestamp für das Kompilierdatum angelegt wird.
Dann append halt Leerzeichen bis du die gewünschte Länge hast.
Das sind allerdings Grundlagen, die du bereits haben solltest.
Dann füg noch Leerzeichen oder Tabstops ein:
tw.WriteLine(Tei + "\t" +anf + "\t" + Men + "\t" + anf + "\t" + Lfd);
Da hast Recht. Wobei man erstmal so faul wie antoschka sein muss 😁
Hä? Warum nicht
string2 += string1;
?
Da die Authentifizierung so stattfindet wie hier beschrieben, wäre es recht einfach, die nötigen Header beim HttpRequest mitzugeben.
Bei MySQL muss man laut Manual aber noch
insertCommand.Prepare();
aufrufen.
Bei MySQL hab ich für die Parameter immer nur "?" verwendet und keine Namen vergeben, das war aber über ODBC. Ich weiss, dass das auch bei OleDB Probleme macht.
Probiers mal mit dem "@" Zeichen. So stehts auch im C# Samples hier.
Ich frag mich ja, wie du überhaupt den ersten Query hinbekommen hast. Was du willst ist trivial und du kennst die Antwort bereits. Es sei denn, du hast den obigen Query irgendwo abgeschaut und nicht verstanden.
Hast du deine FKs/Relationen auch im DataSet definiert? Mit den richtigen Rules? Für die neue Spalte (DataGridViewComboBoxColumn) musst du denke ich auch noch den DataPropertyName, Display und Value Member richtig setzen.
Left join von Tabelle 3 auf Tabelle 2 über TD_MARKE.
Sieht ausserdem falsch designed aus. Welche Relation besteht zwischen Marke und Version? 1:1, 1:n oder was?
Ich persönlich würde Kataloge mit ihren eigenen IDs für Namen, Marken und Versionen anlegen und diese dann in einer anderen Tabelle miteinander verknüpfen. Wie genau hängt allerdings von den Relationen ab. Beschreib das doch mal.
Würde mal drauf tippen, dass dieses Verhalten durch den Wechsel von MessageBox zu Form verursacht wird.
Könntest ja ganz simpel einen boolean setzen den du nach dem ersten mal auf true setzt und dann abfrägst.
Könntest das ja in EventHandlern zu CurrentChanged oder PositionChanged abfragen.
Mir scheint da hast du dich ein wenig vertan.
Drop deinen Constraint nochmal und führe das aus:
ALTER TABLE dbo.leiht
ADD CONSTRAINT fk_leiht_Mitarbeiter
FOREIGN KEY (id_Mitarbeiter)
REFERENCES dbo.mitarbeiter (id_Mitarbeiter) ON DELETE CASCADE
(Pass natürlich die Bezeichner noch an).
Meine Kristallkugel sagt mir, dass der Dateiname irgendwo anders überschrieben wird oder einfach leer ist.
Stichwort: ForeignKeys.
Du musst die DeleteRule für deinen ForeignKey dann auf "Cascade" stellen. Tigger sind für so eine simple Aufgabe unnötig.
Ausserdem gewährleistest du mit Foreign Keys referentielle Integrität.
Du musst das Bild erst in ein byte[] konvertieren. Das wird übrigens auch in dem Snippet getan, das ich gelinkt habe.
Hier nochmal ein Link zur Serialisierung:
Bild zu byte[]
MemoryStream memStream1 = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(memStream1, deinBild);
byte [] bytes = memStream1.GetBuffer();
memStream1.Close();
und wieder zurück:
MemoryStream memStream2 = new MemoryStream(bytes);
DeinBildTyp deinBild = (DeinBildTyp)formatter.Deserialize(memStream2);
In der MSSQL Tabelle ist das Feld vom Typ IMAGE
@Kubi
Das erklärt wohl alles.
Ein Bild wirst du nicht als String übergeben können. Nimm ein byte[] dafür und übergeb den Parameter als SqlType.Image.
Dafür musst du aber dein Bild-Objekt serialisieren, wie das geht findest du sicher über Google und die Forensuche.
Ausserdem hab ich dir hier noch schnell ein Snippet rausgesucht, das exakt beschreibt wies geht: http://www.primaryobjects.com/CMS/Article59.aspx.
Natürlich hast den. Einfach die benötigte Dll einbinden.
Gut, ich hab aber meine Zweifel, ob das mit ASP.NET funktioniert.
z.B.
int i = 5;
aTextBox.DataBindings.Add("Text", i, null);
Oder gleich über die Binding-Klasse gehen und diese hinzufügen.
Ich setz immer gerne den FormFreezer ein, da ich ab und an auch dem Flackern nie ganz Herr geworden bin.
Vielleicht baust du den ein wenig um und setzt ihn ein.
Die Statements werden komplett zur Datenbank geleitet und dort ausgeführt. Erst ein Commit oder ein Rollback veranlasst die Datenbank die Dinge, die während der Ausführung geschehen sind, dann zu persistieren oder zu verwerfen.
Dein Programm wartet so lange, bis die Aufgaben durchgeführt wurden. Ob ein Commit oder ein Rollback irgendwann später stattfindet, interessiert erstmal nicht.
Die beste Lösung für dein Problem ist eine Mischung aus Transaktionen in Stored Procedures, Scheduling (sowas wie dbms_job unter Oracle) und Locking (damit sich zwei Procedures nicht in die Quere kommen).
string wert = string.Format("\\x{0}",35);
MessageBox.Show(wert);
Gibt aus: \x35.
So sollte es auch sein. Der Fehler muss an anderer Stelle liegen.
Hast du das wirklich ausprobiert?
Das glaub ich jetzt erstmal gar nicht. Probiers mal aus.
string wert = string.Format("\\x{0}",var);
Du musst den "" escapen.
Schreib "\x" + var.
Das sollte zum gewünschten String führen.
http://www.pinvoke.net/default.aspx/kernel32/ReadProcessMemory.html
http://www.pinvoke.net/default.aspx/kernel32/WriteProcessMemory.html
Hier haste die Signaturen der Funktionen, die kannst du dann ganz "normal" von deinem C# aus verwenden.
Vielleicht suchst du dir noch ein Tutorial zu den System.Runtime.InteropServices. An einen ProcessHandle solltest du auch über die System.Diagnostics.Process Klasse herankommen.
Aber MDX liegt im Sterben. Das sollte keiner mehr anfangen.
Wenn der User das per Copy & Paste macht, muss er halt noch zusätzlich das Format spezifizieren.
Oder die Elemente direkt in Textfelder kopieren.
Ich würde mich auf ein Standard Format beschränken, oder aber das Format vor dem Spoolin angeben. Dass zwei verschiedene Formate im selben Datensatz auftauchen, halte ich für unwahrscheinlich.
Du könntest aber auch ein neuronales Netz implementieren und trainieren, das die Erkennung übernimmt.
also XNA ist müll.
Ich möchte anmerken, dass ich hier gänzlich anderer Meinung bin. Der Eintrag ist ja auch schon ein Jahr alt. XNA simplifiziert vieles und ist absolut ausreichend für die Tasks, für die ich es bisher gebraucht habe. Gerade im 2D Bereich lässt XNA kaum Wünsche offen. SDL und Konsorten sind hier wesentlich komplizierter und die C#-Bindings afaik kaum ausgereift, bzw. schlecht.
Siehe auch:
Was? Wenn die Werte eh statisch sind kannst sie ja einfach IRGENDWO reinschreiben, z.B. in eine ComboBox. Und zwar kannste dann auch nur die Werte da reinschreiben, die du dem Nutzer auch zugänglich machen willst.
Ja, warum dann nicht einfach eine where-clause mit Parameter angeben für den Select vom TableAdapter?
Den Parameter kannst ja dann von einer beliebigen Quelle aus setzen. Z.B. von einer ComboBox aus oder aus einem Config-File.
Warum würdest man sowas tun sollen? Hol dir halt einfach alle 3 Columns und stell dann im Programm nur eine da.
Probier mal XNA aus mit deinem VS2008. Das ist the way to go imho.
Welche dotnet Version? LINQ wäre optimal für das, was du erreichen willst.
Ansonsten könntest auch einfach über die Liste iterieren und gucken, ob die Person schon drin ist. Dies wäre allerdings über ein Predicate schöner gelöst. Du brauchst ja quasi ein Predicate(Person p), da könntest du dann über die Find Methoden nach dem Namen suchen. Oder nach beliebigen Inhalten.
Wenns wirklich nur 2 Elemente sind, die entfernt werden sollen, warum dann nicht REPLACE nutzen, wobei du die Kleinbuchstaben einfach durch gar nichts ersetzt.
Ich hab den Thread nicht ganz gelesen, aber:
Wie wäre es denn mit der HitTest zu arbeiten um die darunter liegende Zeile rauszufinden und die zumindest zu selektieren? Dann würde mit dem neuen Klick die DataGridView startklar gemacht und gleichzeitig der Select stattfinden.
Ja, prinzipiell ist das was du darunter verstehst schon richtig. Ich hab mich nur an dem Ausdruck "Members" ein wenig gestört, das z.B. Attribute auch Members sind, weswegen ich dann eher auf abstrakte Klasse getippt hätte (Interfaces und abstrakte Klassen sind sich teilweise recht ähnlich).
Ausserdem musst du den TypeConverter überschreiben um die "Sicht" auf das Objekt, die das Interface implementiert einzuschränken.
immer wieder beeindruckend was manche Entwickler in ihrer Freizeit auf die Beine stellen. Klasse 👍
Ich möchte erstmal Source Code sehen
Eine Schnittstelle ist keine Sicht auf eine Klasse. Sie beschreibt nur wie man mit einem Objekt, dass diese Schnitstelle "besitzt" interagieren kann.
Dein Verständniss nennt man "abstrakte Klasse".
Da eine Schnittstelle an sich kein Obekt ist - es gibt nur Objekte die diese Schnittstelle haben - kann sie so natürlich auch nicht ans PropertyGrid gebunden werden, da dieses wohl ein Objekt erwartet. Und dieses Objekt kann nunmal auch noch ganz andere Properties besitzen.
Da würde ich am besten eine Scriptsprache samt Interpreter einbauen. LUA z.B.
Der Serializer weiss halt nicht, welche Liste er serialisieren soll, weil du nur ein Interface als Member angegeben hast, würde ich mal denken.
Ersetz doch einfach mal IList<T> durch z.B. List<T>
Hallo, Loewchen0507!
Zunächst mal brauchst du ein Salt. Ein Salt ist ein beliebiger Wert (beliebiger String), den man mit dem Passwort konkateniert, um es sicherer zu machen. Es ist ganz ok, dafür die Systemzeit zu nehmen. Beachte nur, dass der String mindestens 10 und maximal 50 Zeichen haben muss.
Dann brauchst du eine Methode, die dir für einen String ein SHA1 Hash erstellt. Siehe auch diesen Link hier oder besser noch diesen.
Dein auth string muss dann so aussehen:
string salz = "beliebig1234567890";
string auth = salz + SHA1StringHash(salz + passphrase) + customerkey;
Dann klappts auch mit dem Login.
string auth = Systemtime + "&SHA1(" + Systemtime + "&" + passphrase + ")&" + customerkey;
Ähm, ist dir bewusst, dass die da wahrscheinlich ein SHA1-Hash haben wollen? Nicht einen String der mit SHA1 beginnt?
Poste doch mal die Spezifikation vom Auth-String.
Hallo, Loewchen0507!
Prinzipiell baust du erstmal Proxyklassen über ein mit dotnet mitgeliefertes Tool (aus der WSDL Datei, diese kannst du z.B. abrufen indem du an deine Webservice Url ein ?wsdl anhängst iirc).
Die Proxyklassen nehmen dir dann die ganze Kommunikation ab und du musst nur noch deine Logik einbauen.
Der Codeprojectartikel hier sollte dir weiterhelfen: http://www.codeproject.com/KB/cpp/bwcswebservicearticle.aspx
Hi!
Was bedeutet "bei externer Datenquelle"? Bei Verwendung von DataAdapter.Fill()?
Täte mich wundern, wenn das überhaupt ginge, einen Datensatz einzulesen, der gegen die Unique-Constraint verstößt.
Im DataSet kannst du zumindest EnforceConstraints auf False setzen.
Zum DataError:
Was betrachtest du als fehlerverursachende Zelle? Die Zelle die gerade aktiv ist verstößt gegen den Constraint und ist imho der Verursacher. Du könntest auf den ValueChange von so einer Zelle allerdings alle anderen Zellen, die dann den Constraint verletzen umsetzen.
Du verstehst das irgendwie falsch, denke ich. Sobald der Constraint nach einer Eingabe verletzt wird, kommt der DataError.