Ah, hervorragend!
Vielen Dank für die schnelle Antwort, klappt tadellos!
DAS gibt sonst schöne Effekte bei Datenbank-Anwendungen...schwärm
Hallo,
ich arbeite an einem .NET 2.0 Datenbankprogramm mit C#.
Ich würde jetzt gerne erreichen, dass die Anwendung zu einem Zeitpunkt auf dem lokalen Rechner generell nur ein mal zur gleichen Zeit gestartet werden kann. Wie kann man denn sowas machen?
Hi,
ich arbeite gerade ein einer C# .NET 2.0 Datenbankanwendung, welche mit dem MS SQL Server 2005 Express Edition arbeitet.
Könnte ich eine solche Anwendung unter der GNU GPL anbieten? Weil diese sich ja Komponenten bedient, die nicht unter dieser Lizenz stehen...
Hi,
ja, das hab ich eben noch vergessen zu erwähnen:
SelectedItem war nur ne Beschreibung des Verhaltens, ich lese ohnehin .Text aus, weil das in einen BindingSource-Filter übertragen wird.
Aber direkt nach dem KeyUp wird der Wert sowohl des selectedIndex als auch des zugehörigen Anzeigetextes auf das erste Element gesetzt. Und dann lese ich dummerweise auch immer .Text des ersten Elementes aus.
Und das find ich doch eher verwunderlich...
Hi,
Es handelt sich um ein .NET 2.0 Datenbankprojekt.
Ich habe eine Combobox mit einer zugrundeliegenden DataSource. Die Elemente werden alle in der Combobox angezeigt, Auswählen klappt, Autovervollständigen klappt.
"Wenn KeyUp und Key=RETURN, dann nimm den Wert des SelectedIndex und mach was damit."
Soweit, so gut. Nur will ich jetzt, dass man nicht mehr auswählen kann (also keine klassische Combobox mehr hat), sondern nur ein Textfeld, welches anhand der Daten aus der DataSource Autovervollständigung praktiziert.
Sollte eigentlich auch ganz einfach sein, denn das klingt ja zunächst mal nach ComboBoxStyle=Simple
Sah im ersten Moment auch gut aus! Nur, immer wenn der Wert bestätigt wird (welcher auch tadellos per Autovervollständigung vorgeschlagen wird), dann wird eben leider nicht der Index des vervollständigten Wertes genommen wie beim "normalen" ComboBox-Syle, sondern die Box nimmt wieder den Index 1 (oder 0? Naja, den ersten Eintrag eben) und meine Methode hinter besagtem KeyUp-Event arbeitet folglich immer mit dem ersten Eintrag, egal was eingegeben wurde.
Was mach ich falsch? Bzw. an welcher Schraube muss ich noch drehen, um damit Erfolg zu haben?
Entschuldigt bitte, aber wenn ich aus der doku schlau geworden wäre, hätte ich nicht gefragt.
Nicht jeder Entwickler ist gleich gut bei so was, ich musste eben leider auf die Erfahrung anderer Leute zurückgreifen.
Ich ziehe mich jetzt zurück und übe gaaaanz viel, um viel viel besser zu werden und alles verstehen zu können.
Ah, ok!
Und wenn man nun wieder was im dgv ändert und dann speichert, dann ist die tatsache, dass die bindingsource gefiltert ist, aber kein problem? Die Datensatze, die in der bs dann eben herausgefiltert sind in dem Moment werden dann in der Tabelle nicht beeinflusst oder gar gelöscht?
kapier ich jetzt nicht so wirklich. Gibts denn keine andere möglichkeit, das DataGridView zu filtern?
Ich könnte ja an der Stelle auch eine Connection auf die DB-Tabelle machen und mit ein Select-Statement basteln und anwenden. Das Ergebnis wäre dann ein DataReader. Nur wie würde ich dann den Inhalt des DataReader in das dgv bekommen? grübel...
@Jürgen:
Ja, das Beispiel hab ich schon gesehen und das dann auch so angewendet. Leider ohne Erfolg irgendwie...
bzw: Danach hatte ich dann nur noch das Datum zur Wahl, auf das ich gefiltert hab. Scheinbar ist die BindingSource nun gefiltert. Wie stelle ich jetzt nur die gefilterte Tabelle in dem dgv dar?
Tja, selbst wenn man den Filter "hart codiert" setzt und dann im String Filter "Datum = 2.12.2006" steht...
dann kommt ne Exception
das Token '.' an der Position 13 wurde nicht erkannt.
Ich bin ratlos!
Könnte man auch irgendwie den Datentyp der Spalte im Filter umgehen indem man ein Stringliteral des Spaltenwertes bekommt? Wie könnte man das machen, wenn überhaupt?!