Entwickler-Ecke
WinForms - Überprüfung auf Richtigkeit der Eingabe im DGV
BlackMatrix - Di 05.07.11 19:48
Titel: Überprüfung auf Richtigkeit der Eingabe im DGV
Hi.
Ich habe eine Winform, wo ein DGV drauf ist. Nun kann der Benutzer darin URL + Benutzername + Kennwort eingeben.
Nun habe ich das Problem, dass wenn mein Benutzer in die URL "123" eingibt und das Programm schließt (wodurch die XML geschrieben wird), dass das XMLDokument beim nächsten Start nicht gelesen werden kann, weil "123" nicht vom Typ Uri ist. Wie löse ich das denn am effizentesten?
Mein Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| DataSet DataSet { get; set; }
const string _xmlPath = "data.xml";
public MainForm() { DataSet = new DataSet(); InitializeComponent();
if (File.Exists(_xmlPath)) DataSet.ReadXml(_xmlPath); else CreateTable();
dataGridView1.DataSource = DataSet.Tables["data"];
}
private void CreateTable() { DataTable dataTable = new DataTable("data"); dataTable.Columns.Add("url", typeof(Uri)); dataTable.Columns.Add("username", typeof(string)); dataTable.Columns.Add("password", typeof(string));
DataSet.Tables.Add(dataTable); }
private void MainFormClosing(object sender, FormClosingEventArgs e) { DataSet.WriteXml(_xmlPath,XmlWriteMode.WriteSchema); } |
Th69 - Di 05.07.11 20:00
Hallo BlackMatrix,
dann fange die entsprechende Exception mittels "try ... catch".
Und daher wäre es u.U. besser das Lesen der XML-Datei erst im Load-Event der Form zu machen (anstatt im Konstruktor).
Ralf Jansen - Di 05.07.11 20:09
Wenn du schon explizit sagst das die Spalte eine Uri ist solltest du das auch prüfen.
Die Uri Klasse hat dazu zum Beispiel eine IsWellFormedOriginalString() bzw. IsWellFormedUriString() Methode.
BlackMatrix - Di 05.07.11 20:51
Th69 hat folgendes geschrieben : |
| Und daher wäre es u.U. besser das Lesen der XML-Datei erst im Load-Event der Form zu machen (anstatt im Konstruktor). |
Freut mich, dass du mir auch Anregungen zur Verbesserung meines Codes gibst :zustimm:
Th69 hat folgendes geschrieben : |
| dann fange die entsprechende Exception mittels "try ... catch". |
Ich denke, da ist es zu spät, denn im Prinzip, soll ja in dieser XML Datei kein fehlerhafter Uri gespeichert werden. Demnach müsste ich beim Speichern schauen, ob da nicht fälschlicherweise falsche Uris eingetragen wurden.
Ralf Jansen hat folgendes geschrieben : |
Wenn du schon explizit sagst das die Spalte eine Uri ist solltest du das auch prüfen.
Die Uri Klasse hat dazu zum Beispiel eine IsWellFormedOriginalString() bzw. IsWellFormedUriString() Methode. |
Müsste ich demnach erst alle Element der DataTable durchlaufen und jeder URL prüfen. Hmm, hört sich so an, als ist es besser die URL lieber als string in der DataTable zu hinterlegen und dann an anderer Stelle zu prüfen, ob das überhaupt eine gültige Uri ist.
MfG BlackMatrix
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!