Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Talon
Thema: Aktion direkt beim Starten ausführen
Am im Forum: Grundlagen von C#

Ein kleiner Nachtrag zum Thema.
Ich würde das ganze in eine extra Methode packen. Dadurch hast Du deine Aktion, in deinem Fall das laden einer URL, zentral an einer einzigen Stelle im Quellcode. Solltest Du die URL ändern wollen musst Du das nur noch an einer Stelle im Quellcode und nicht an verschieden. Das reduziert mögliche Fehlerquellen.


public MainPage()
{
         this.InitializeComponent();
         openURL();
}

private void goNavigateButton_Click(object sender, RoutedEventArgs e)
{
         openURL();
}

private void openURL()
{
         //load URL
}

Thema: Splitten eines Datums (Schulaufgabe)
Am im Forum: Grundlagen von C#

Zitat von Abt

if (s.Trim() != "")
wäre aber !String.IsNullOrWhiteSpace
Mein Fehler.

Thema: Splitten eines Datums (Schulaufgabe)
Am im Forum: Grundlagen von C#

Wie Abt schon schreibt genügt ein einzelner Punkt für dein Split.

Worauf ich noch hinweisen möchte ist das fehlende Error handling. Ich kann nicht sagen ob dein Lehrer/Prof darauf keinen Wert legt aber meiner Meinung nach gehört so etwas zwingend mit dazu. Ein paar einfache Überprüfungen schaden nicht.

Zum Beispiel kann man nach dem Split prüfen ob das Array die Größe 3 hat.

Du verwendest in deinem Code

if (s.Trim() != "")
Das ist schlechter Stil. Hier bietet sich String.IsNullOrEmpty an.

Was passiert wenn der übergebene String keine Zahl ist? Dann fliegt dir ConvertToInt um die Ohren. Hier wäre Int32.TryParse die bessere Wahl.

Thema: Klasse ohne direkten Namen erstellen
Am im Forum: Grundlagen von C#

Wie genau willst Du die Einzeltelegramme später weiter verarbeiten? Einfach der Reihe nach oder gezielter Zugriff auf einzelne Telegramme?

Wenn Du die eingehenden Telegramme später nur der Reihe nach abarbeiten willst brauchst Du dir keine Gedanken um Variablennamen zur Laufzeit und ähnliches machen.

Ein kleiner Denkansatz wie Du das z.B. lösen könntest

 List<einzeltelegramm> lstET = new List<einzeltelegramm>();
einzeltelegramm ET = null;

for (int i = 0; i < 1000; i++)
{   //Beispiel 1000 Instanzen
    ET = new einzeltelegramm(daten);
    lstET.Add(ET);
}

Thema: Visual C# richtige Sprache für Projekt
Am im Forum: Grundlagen von C#

Das sind alles Dinge die Du bereits durch deinen C Kurs kennen und auch lösen können solltest.

Ich würde Dir erst einmal ein paar Grundlagenübungen empfehlen. Das beantwortet automatisch alle deine bisherigen Fragen.
Visual C# 2012 aus der Sammlung Openbooks des Rheinwerk Verlags.
C# Tutorials
Visual C# Videos

Thema: Performance: MySql-Abfrage oder DGV-Schleife
Am im Forum: Datentechnologien

Zitat von schorge
Ich befülle ein DGV - Zeilenweise mit Daten aus MySQL Tabellen (Kein DataSet etc.
hat seine Gründe!)
Na der interessiert mich jetzt aber. Mit einem DataSet/DataTable könntest Du im Programm z.B. mit LINQ arbeiten.

Thema: MainWindow und app.konfig Verknüpfung, wie ist dies zu realisieren?
Am im Forum: GUI: WPF und XAML

Vielleicht hilft dir das weiter.
Tutorial - Konfigurationsmodell im .NET Framework

Thema: Einsteigerfragen zu Datentypen und Operatoren
Am im Forum: Grundlagen von C#

Zitat von Lalgeriano
Es wird erst einmal gesagt, dass man mit && bzw. || Ausdrücke verknüpfen kann. Sind bei && beide Ausdrücke wahr, ist das Ergebnis ebenfalls war. Ist bei || einer der beiden Ausdrücke wahr, ist das Ergebnis ebenfalls wahr. Das verstehe ich und ist logisch.
-> Irgendwie habe ich da noch ein Problem mit, ich glaube, dass ich dort irgendwo noch etwas falsch nachvollziehe :D Über weitere Hilfe (gerne an einem eigenen Beispiel) wäre ich dankbar! :-)
Vielleicht hilft dir das weiter.
&& Operator (C# Reference) und || Operator (C# Reference).

Thema: SQL Statement für alle Einträge ohne jene aus 2. Tabelle
Am im Forum: Datentechnologien

Meiner Meinung nach viel zu kompliziert gedacht. Bei nur 2 Tabellen musst Du keine "wilden" JOIN Konstrukte bauen. Das geht auch deutlich einfacher.
Hier ein Beispiel wie dein geschildertes Problem umgesetzt werden könnte.


SELECT *
FROM Triggers AS t, Triggers_Done AS d
WHERE t.OID = d.Trigger_ID AND NOT d.Username = '123'
Das würde dir aus beiden Tabellen alle verknüpften Datensätze zurück liefern deren Username in Triggers_Done nicht 123 ist.

Thema: Nenne deinen Fall, wo du denkst, ohne modalen Dialog geht es nicht, und ich nenne eine Alternative
Am im Forum: Rund um die Programmierung

Zugegeben. Das Beispiel von dN!3L sieht schickt aus. Deutlich ansprechender wie eine 0815 MessageBox.

Aber mal ernsthaft. Der Aufwand für die Umsetzung ist doch deutlich höher verglichen mit einer schlichten MessageBox.

Im konkreten Fall muss man mit der Hintergrundfarbe des Panel herum spielen, es muss ein Text und ein Icon angezeigt werden und natürlich muss alles wieder rückgängig gemacht werden wenn es korrigiert wurde.
Bleibt noch die Frage wann dN!3L die optische Information einblendet. Erst wenn der Nutzer auf speichern klickt oder doch schon während der Eingabe? Muss der Nutzer dann noch einmal auf speichern klicken wenn er die vorhandene Abfrage überschreiben will? Ist das nicht etwas verwirrend? Im Hintergrund muss man das ja alles aus programmieren mit dem "ja Nutzer will überschreiben" usw.

Da ist mir eine MessageBox mit MessageBoxButtons.OKCancel deutlich lieber. Das ganze erschlage ich mit deutlich weniger Codezeilen und der Nutzer ist sich ohne weitere Beschreibung im klaren "Abbruch" bricht das speichern ab und er kann einen anderen Namen eintragen.

Thema: Daten aus Formular in Tabelle speichern?
Am im Forum: Datentechnologien

Zum lokalen speichern von Daten kann ich SQLite empfehlen. Das ganze ist eine Serverlose SQL Datenbank. Man muss also nicht erst groß irgendwelche SQL Server einrichten.

Thema: Stücklisten Problem (Abbildung mittels composite pattern)
Am im Forum: Datentechnologien

Zitat von Franklin
Das mit der zwischen Tabelle habe ich nicht ganz verstanden. Könntest du das bitte noch ein bisschen näher erklären?
Vielleicht solltest Du dich erst einmal mit den Grundlagen des Datenbank Designs beschäftigen.
Relationale Datenbank
Normalisierung
ER Modell

Thema: Dataset durchsuchen
Am im Forum: Datentechnologien

DataTable.Select-Methode

Nutzt das heutzutage keiner mehr?

Thema: [erledigt] Daten aus Datagridview speichern (vor Beenden der Anwendung)
Am im Forum: GUI: Windows-Forms

Zitat von peterbe
Ich wollte es eigentl vermeiden eine Datenbank zu benutzen.
Da es ein kleines Programm ist.
SQLite. Klein, kompakt & benötigt keinen Server. Nach außen hin ist es "nur" eine Datei.

Thema: Eine DLL in vielen Projekten: Verhindern, dass man bei Änderungen alle Projekte kompilieren muss
Am im Forum: Rund um die Programmierung

Zitat von Tuxinator09
Geht es irgendwie, dass ich diese DLLs nur in meine Toolsammlung integriere und darüber dann an die letztendlichen Projekte weiterreichen kann?
Natürlich geht das. Wieso auch nicht. Es ist allerdings die Frage ob es Sinnvoll ist alles in eine "eierlegende Wollmilchsau" zu packen.
Ich persönlich erstelle mir für jede solcher DLLs einzelne Wrapper die ich dann bei Bedarf in das jeweilige Projekt einbinde.
Das gilt übrigens auch für eine "Tool Sammlung". Auch hier sollte man Sinnvoll nach Bereichen trennen und entsprechend einzelne Projekte erstellen.

Thema: [solved] komplexe MySQL-Datenbank mit mehreren Tabellen aus DataGrid updaten
Am im Forum: Datentechnologien

Zitat von Romschn
Nur ist es so, dass ich nicht die MainTable-Update sondern eine auf die das JOIN zugreift - Funktioniert das trotzdem so einfach wenn ich dann die ID habe? Muss diese als PK definiert sein oder reicht es wenns so eindeutig ist?
Hast Du jetzt in jeder Tabelle in deiner Datenbank eine eindeutige ID oder nicht? Es spielt dabei ja keine Rolle ob es eine extra ID Spalte ist oder eine Kombination aus verschiedenen Spalten. Wichtig ist nur die Eindeutigkeit.

Ich hoffe mal das ich dich richtig verstanden habe.

Du holst also mittels JOIN aus verschiedenen Tabellen Informationen in ein GridView.
Jetzt willst Du eine bestimmte Information in eine bestimmte Tabelle deiner DB zurück schreiben.

Dann frage ich mich wo ist das Problem? Es gibt nur 2 Möglichkeiten.
Hast Du die eindeutige ID des Datensatzes aus der gewünschten Tabelle mach deinen Update. Das ist kein Hexenwerk.
Wenn diese ID in deinem GridView allerdings nicht vorliegt wirst du auch kein Update machen können. Du bzw. den SQL Statement weiß ohne die eindeutige ID ja nicht wohin mit den Informationen.

Thema: Finden von Duplikaten bei Strings, die nicht nur direkt identisch sind (A1Q1 ist auch gleich Q1A1)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von falsecode
Wenn ich das ganze alphabetisch sortiere zerstöre ich damit erstmal die ganze Logik.
Welche Logik? A1Q1 ist in deinem Fall ja auch Q1A1. Egal wie herum Du das sortierst. Der "Spieler" kann auf seiner Hand auch jederzeit die Kartenreihenfolge wechseln ohne das sich seine Hand dadurch ändert.
Zitat von falsecode
...Natürlich könnte man das ganze danach wiederherstellen...
Was überhaupt keinen Sinn ergeben würde (siehe oben).
Zitat von falsecode
...Um die nervösen Moderatoren zu beruhigen, wenn man mir ein Codesnippet als Hilfe anbietet...
Die Beiträge hier sind als Denkanstoß zu verstehen. Hier zeigt man dir normalerweise nur die Richtung. Den Rest musst Du dir schon selbst erarbeiten. Nur so wirst Du auch verstehen was Du da gerade machst.

Zurück zum Thema.
Ich persönlich wurde deine Liste erst einmal sortieren (wie bereits weiter oben vorgeschlagen) und das ganze dann in ein Hashtable oder eine Sorted List packen.
Da Du ja nur jeweils 2 Karten in Kombination hast bietet sich das an.

Thema: Inhalt der TextBox wird erst nach 2maligem Beenden des Programms in eine .txt-Datei gespeichert
Am im Forum: GUI: Windows-Forms

Dein "Speichern" oben macht irgendwie nichts.
Du öffnest zwar den SaveFileDialog aber das war es dann auch schon. Zumindest ist in deinem schlecht formatierten Codeschnipsel nicht wirklich mehr.

Deine erste if Anweisung läuft völlig ins leere (wohl beim Copy & paste eines Beispielcodes zu viel raus gelöscht?)
Danach füllst Du zwar deine SortedList aber was dann? Weiter machst Du hier nichts. Wo genau soll dein Code deine SortedList als Textdatei speichern oder hast Du das absichtlich nicht geposted?

Übrigens empfinde ich es als schlechten Programmierstil eine SortedList ohne Key & Valuetypen zu deklarieren. Dazu kommt noch, dass Du ungeprüft Werte in selbige schreibst. Wenn Du einen bereits vorhandenen Schlüssel noch mal hinzu fügst fliegt dir das ganze mit einer Exception um die Ohren.

Wie weit kommst Du im Code? Debugger? Irgendwo muss ja das eigentliche "speichern" in deinem Code sein sonst würde dein Programm ja keine Textdatei erstellen. Mit dem Debugger würdest Du erkennen wieso dein Programm beim "Speichern_Click" eben nicht das macht was Du erwartest.

Für mich sieht das alles sehr nach fehlenden Grundlagen aus.

Thema: MSSQL - Tabellen aktualisieren
Am im Forum: Datentechnologien

Versuch es einmal mit Timestamp.

Thema: Wer kennt dieses eCommerce Ticket Sales System?
Am im Forum: Web-Technologien

Schon mal bei den Firmen direkt angefragt? Die beißen nicht.

Thema: Projekt beim Kompilieren in mehrere DLLs aufsplitten
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich verstehe nicht ganz wo das Problem liegt? 1mal das Projekt für deine Klasse erstellen und dieses dann einfach einbinden. VS erstellt beim kompilieren die DLL von selbst und Du kannst deine eingebundene Klasse weiter bearbeiten.

Thema: MsAccess: Select mit Join - Mehrere Tabellen auslesen
Am im Forum: Datentechnologien

Zitat von andy777
Ich muss mit einer ACCESS Datenbank arbeiten. Du weisst ja...
Alles muss perfekt funktionieren darf aber nix kosten :-)
Dann nimm doch SQLite. Kostet nichts und Du hast eine vernünftige Datenbank.

Thema: DriveInfo auslesen - Das Gerät ist nicht bereit
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von OrtnerPeter
...ich werde versuchen den VolumeName als Array zu speichern und zu vergleichen...
Bevor Du nun hier mit der Kirche ums Dorf baust.
Gewusst wie: Überwachen eines Ausdrucks im Debugger
Du musst nichts irgendwie irgendwo speichern. Setze dir nach

DriveInfo[] allDrives = DriveInfo.GetDrives()
einfach einen Haltepunkt und sehe dir die Variable bzw. deren Inhalt in der Überwachung an.

Thema: DriveInfo auslesen - Das Gerät ist nicht bereit
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von OrtnerPeter
Fehler
"System.IO.IOException, {"Das Gerät ist nicht bereit.\r\n"}"
Das lässt sich vermeiden indem Du deinen gesamten Code in dein

if(d.IsReady) { /*Anweisungen*/ }
packst und nicht nur deine Consolenausgabe.

Hast Du denn schon mal nachgesehen was dir

d.VolumeLabel
als Wert zurück liefert? Vielleicht entspricht das VolumeLabel nicht deinem erwarteten Anzeigenamen.

Thema: Die Spalte 'xy' hat die Einschränkung, dass sie eindeutig sein muss.
Am im Forum: Datentechnologien

Um solche Probleme von vornherein zu vermeiden verwende ich bei meinen Tabellen für Schlüsselfelder immer die Kürzel PK (primary key) bzw. FK (foreign key). In deinem Fall hätte ich also die Schlüsselspalten PK_meta_id & FK_meta_id genannt. So hast Du anschließend auch kein Problem wenn Du mal schnell einen SQL mit SELECT * los lässt.

Allerdings muss ich FZelle zustimmen, dass man qualifizierte SQL Syntax verwenden sollte. SELECT * ist quick and dirty und nur zu gebrauchen wenn man kurz etwas testen will.

Thema: Bestimmte Werte aus DataTable nach string[]
Am im Forum: Datentechnologien

Mit einer foreach Schleife durch alle Zeilen deines Datatable. Einfach die Spalte mit der Mailadresse auslesen und weg schreiben.
Hat es einen besonderen Grund wieso es unbedingt ein String Array sein muss? Ein List<T> wäre hier meiner Meinung nach besser.

Thema: Einschränkungen non-null, unique or foreign-key verletzt
Am im Forum: Datentechnologien

Zitat von Tweaky
Dennoch die Frage: Warum beim SELECT erst?
Wurde denn beim INSERT die Limitierung auf VARCHAR(100) missachtet und der überlange Name geschrieben? Entsteht das Limit erst dadurch das die DB Typisierung dem Anfragenden (.Net DataTable) diese info gibt und dort dann der Fehler entsteht, dadurch das der überlange Name aus der DB in die DT geladen wird?
Ein einfacher Test ohne diesen überlangen Datensatz könnte dir deine Frage beantworten. Kommt man heutzutage nicht selbst auf solche einfachen Ideen? Das würde dir sofort zeigen ob dein Code soweit funktioniert.

Thema: SqlLite Datenquelle im VS hinzufügen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

In SQLite erstellst Du Tabellen praktisch auf die gleiche weise wie in anderen Datenbanken.
Mit der Datenbankdatei verbinden und einfach Tabellen erstellen.
Hier eine Übersicht von Befehlen die von SQLite verstanden werden.

Vielleicht hilft es wenn Du dir erst mal in Ruhe die SQLite Seite etwas durchstöberst. Das sollte an sich die meisten deiner Fragen beantworten.

Thema: SqlLite Datenquelle im VS hinzufügen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von stuffle
Aber wie?
System.Data.SQLite
Der Rest ist dann das übliche. Connection, DataAdapter, Command....

Thema: Zweite Spalte einer DataGridView mit Daten aus einer zweiten Liste befüllen
Am im Forum: GUI: Windows-Forms

Weil Du erst eine weitere Spalte anfügen musst. Ich persönlich würde das ganze allerdings über ein Datatable lösen.

/Nachtrag:
DataGridView
Es würde dir viel helfen dich erst einmal mit dem DataGridView zu beschäftigen.