Man kann auch "ISNULL(spalte, ersatzwert)" in die Abfrage reinschreiben.
Bzw. die Variante von GPC ist auch ein guter Ansatz.
In unseren Server-Programmen (C++, ändert diesbezüglich aber nix) haben wir das auch immer so (GPC-Variante) gemacht.
Nein, du solltest auf jedenfall die vorhandene Methode nutzen.
Um das DB Seitig zu sortieren wäre ein weiterer Parameter (columName) zu verwenden in diese Methode.
Falls aber lieber codemässig:
HolePersonenNummer().OrderBy(x => x.Name).toList();
ich glaube so müsste das aussehen.
AngelaMerkel schrieb:
Kann man in einer for-Schleife auch continue verwenden, um bestimmte Schleifen-Nummern zu übergehen - oder wie macht man das?
Beispiel:
for(int i=0; i<20;i++)
{
if (i==15) continue;
textBox.Text = i.ToString();
}
bei mir werden ab einer bestimmten Menge (i=16) nur noch wirre Daten ausgegeben und ich habe keine Ahnung warum
Anstatt das Problem mit fragwuerdigen continues zu umgehen, solltest du vielleicht mal deine Werte checken mit denen du da rumhantierst.
micha7 schrieb:
Meine Idee war, bei Form1_SizeChanged die Höhe zu berechnen und entsprechend zu setzen, aber das geht nicht.
Hab meinen Fehler schon gefunden. Der Zugriff erfolgt nicht über Form1.height sondern über this.height.
Gruß
Michael
Wie erhalte ich die Scrollposition, etwa bei einer ComboBox oder CheckedListBox ? ComboBox und CheckedListBox sind nicht von ScrollableControl abgeleitet. Um den Index zu berechnen brauche ich neben den relativen MausKoordinaten auch noch den Offset der ComboBox. Damit meine ich den vorgerückten Abstand des ComboBox-Fensters.
µ schrieb:
TobiBob schrieb:
Ich habe jetzt alle Invoke()-Aufrufe durch BeginInvoke() ersetzt.
Das ist eine Lösung. Mit den Konsequenzen die hustbaer angesprochen hat.
Nämlich dass nach der Beendigung des Abbruchcodes und nach Threadende doch noch Aufträge in der GUI ausgeführt werden können.
Und noch eine andere eher ungünstige Konsequenz, wie ich gerade festgestellt habe: (eine eher seehr ungünstige)
Wenn die Übergaben an die GUI zu viele werden, kommt sie nicht mehr hinterher und man bringt den GUI-Thread auf herrliche Weise zum Abstürzen. Das Programm läuft zwar weiter, lässt sich aber dann nur noch über den Tastmanager beenden...!
Ich muss also ne andere Lösung finden. (... s.u.)
µ schrieb:
(...) Nur falls Du im aufrufenden Thread die Ergebnisse synchron erhalten willst, ist EndInvoke gefragt. Kleine Anmerkung: Mit den Methoden BeginInvoke und EndInvoke von Delegaten, kann jede Methode asynchron ausgeführt werden.
(...)
Du kannst in einem anderen Thread einer GUI kein Control hinzufügen.
Ok. Gut zu wissen.
µ schrieb:
Bei hoher Updatefrequenz von berechneten Daten sollte man sich nach dem menschlichen Benutzer richten. (...)
Dann währe es vielleicht eine bessere Lösung, die Daten gar nicht aus dem Workthread heraus anzuzeigen, sondern über einen Timer, der alle 1 oder 1/2 Sekunde die Daten aus dem Objekt ließt und anzeigt? Ich kann bei meiner kleinen Simulation die Geschwindigkeit anpassen. Wenn man also die Daten mitverfolgen will, kann man es langsam laufen lassen. Aber wenn es zu schnell läuft, bringt eine Datenanzeige im 1ms-Takt natürlich auch nix.
@hustbaer: ja, ich weiß, was Du meinst. Könnte auch so aussehen, und das tut den Augen weh:
public partial class Form1 : Form
{
private Thread t;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
t = new Thread(new ThreadStart(Start));
t.Start();
this.Close();
}
private void Start()
{
Thread.Sleep(100);
try
{
this.button1.BeginInvoke((MethodInvoker)delegate
{
this.button1.Text = "Bam!";
});
}
catch { } // Uuaaahh!
}
}
T_G schrieb:
Ist wahrscheinlich grundsätzlich auch besserer Stil?!
Ja. Weil man dadurch
a) "gezwungen" wird darüber nachzudenken welchen Wert die Variable haben sollte wenn der folgende Code sie nicht überschreibt und
b) man beim Lesen auch gleich sieht welchen Wert die Variable haben wird wenn sie nicht später überschrieben wird.
Vielleicht kannst du deine Loesung hier praesentieren, das nachfolgende Personen mit diesem Problem auch die Loesung bekommen. Ausserdem interessiert mich es auch
WIA scheint zum Teil sehr langsam zu sein. Kannst im Inet mal suchen gehen nach "WIA slow" und du findest einige Threads aber ohne Lösungen. Mir ist zumindest noch nie eine Lösung vor die Augen gekommen, nicht mal eine mögliche Erklärung.
Du könntest statt WIA allerdings DirectShow einsetzen. Wie man DirectShow für sowas verwendet oder wenn du gleich eine fertige Implementierung willst, dann schau dir mal Aforge.Net an.
Aforge.Net dürfte womöglich sowieso interessant sein, wenn du danach das Bild in irgendeiner Weise bearbeiten möchtest.
Grüssli
Ok, ich werd die frage zum webservice dann nochmal unter webzeugs posten.
Falls es noch probleme mit den Eventhandlern gibt, melde ich mich hier nochmal.