Benutzer mit den meisten Antworten
Datagridview daten, richtig aufgelistet in die Textbox laden

Frage
-
Hallo,
ich würde gerne die daten so angeordnet haben das man diese als Ldif verwenden kann.
mein Code sieht wie folgt aus momentan.
int count_row = dataGridView1.RowCount; int count_cell = dataGridView1.Rows[0].Cells.Count; int count_column = dataGridView1.ColumnCount; txtconvert.Text = ""; txtconvert.Text += Environment.NewLine; string kopfzeile = ""; foreach (DataGridViewColumn column in dataGridView1.Columns) { if (String.IsNullOrEmpty(kopfzeile)) { kopfzeile = column.HeaderText.ToString().Trim(); } else { kopfzeile += "=" + column.HeaderText.ToString().Trim(); } txtconvert.Text = kopfzeile; } txtconvert.Text += Environment.NewLine; for (int cell_index = 0; cell_index < count_cell; cell_index++) { string datenzeile = String.Empty; for (int row_Index = 0; row_Index < count_row - 2; row_Index++) { if (String.IsNullOrEmpty(datenzeile)) { datenzeile = dataGridView1.Rows[row_Index].Cells[cell_index].Value.ToString().Trim(); } else { datenzeile += "=" + dataGridView1.Rows[row_Index].Cells[cell_index].Value.ToString().Trim(); } } txtconvert.Text += datenzeile + Environment.NewLine; } SaveFileDialog saveFileDialog1 = new SaveFileDialog(); //"txt files (*.Ldif)|;*.txt | All files(*.*) | *.* " saveFileDialog1.Filter = "LDIF (* .Ldif) | * .Ldif"; saveFileDialog1.FilterIndex = 2; saveFileDialog1.RestoreDirectory = true; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { System.IO.File.WriteAllText(saveFileDialog1.FileName, txtconvert.Text);
momentan wird es mir so augegebenn.ID=Vorname=Name=Telefonnummer=Abteilung=Stadt 1=2=3=4=5=6=7=8=9 Andrea=Maria=Andy=Natalie=Andreass=Marco=Neo=Felix=Kristina peters=Mamasita=Maier=Portman=peteer=peter=Matrix=Groß=Luft 0128342=0127845=01721307283=01902742=0128342=0127742=991881=01902832=0901822 Elektrik=Wartung=Elektrik=Büro=Produktion=Kantine=Wartung=Entwicklung=Lehrerin Rohstock=Rohstock=Lospan=Jaske=Rohstock=Stuttgart=Berlin=Stuttgart=Nagold
hätte es aber gerne so, dies ist nur eine testdatei.ID=1 Vorname=Andrea Name=Peters Telefonnummer=0147852 Abteilung=Elektrik Stadt=stuttgart ID=2 Vorname=Maier Name=Locke Telefonnummer=123654789 Abteilung=Verwaltung Stadt=Stuttgart ID=3 Vorname=Lore Name=Salz Telefonnummer=123456789 Abteilung=Büro Stadt=München
ich finde leider den Fehler nicht, was ich zu ändern habe.Donnerstag, 26. November 2020 09:34
Antworten
-
Hallo,
ich habe das Problem vor kurzem gelöst.
ich habe eine Datatable erstellt aus einer CSV.-Datei diese habe ich in ein datagridview geladen. Daraus wollte ich eine Ldif.-Datei erstellen. da ich es individuell machen wollte, dass es keine festen werte gibt wusste ich nicht wie, aber nun schon.
so sieht das jetzt aus war doch recht simple, habe leider sehr kompliziert gedacht.
hier ist der Code wie ich es gelöst habe.
int count_row = dataGridView1.RowCount; int count_cell = dataGridView1.Rows[0].Cells.Count; int count_column = dataGridView1.ColumnCount; string Inhalt = ""; string newline = Environment.NewLine; for (int row_Index = 0; row_Index < count_row - 1; row_Index++) { for (int cell_index = 0; cell_index < count_cell; cell_index++) { { Inhalt += dataGridView1.Columns[cell_index].Name + "=" + dataGridView1.Rows[row_Index].Cells[cell_index].Value.ToString().Trim() + newline; } } } txtconvert.Text = Inhalt + Environment.NewLine;
Grüße Marco
- Als Antwort vorgeschlagen Stefan FalzModerator Donnerstag, 26. November 2020 14:38
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 8. Dezember 2020 11:39
Donnerstag, 26. November 2020 12:57
Alle Antworten
-
Habe nun mein Code etwas umgeändert, der sie nun folgend aus.
string Inhalt = ""; string newline = Environment.NewLine; for(int row_Index = 0; row_Index < count_row - 2; row_Index++) { Inhalt += "sr=" + dataGridView1.Rows[row_Index] + newline; Inhalt += "givenname=" + dataGridView1.Rows[row_Index] + newline; Inhalt += "telefonnumber=" + dataGridView1.Rows[row_Index] + newline; Inhalt += "objectclass=" + dataGridView1.Rows[row_Index] + newline; Inhalt += "objectclass=" + dataGridView1.Rows[row_Index] + newline; Inhalt += "objectclass=" + dataGridView1.Rows[row_Index] + newline; } txtconvert.Text += Environment.NewLine;
- Bearbeitet Calmine01 Donnerstag, 26. November 2020 11:12
Donnerstag, 26. November 2020 11:10 -
Hi,
leider schreibst Du recht wirr und postest Codefragmente, die oft gar nichts miteinander zu tun haben.
Versteh bitte, dass wir absolut keine Ahnung haben, was Du da eigentlich machst, wie dein Projekt aussieht, welche Sachen Du dort sonst noch verwendest und vor allem, warum Du manche Sachen auf Biegen und Brechen so machen willst wie Du es hier schreibst.
Daher ist es immer notwendig, uns genau zu erklären, woher deine Daten kommen und wie genau Du diese warum (also warum überhaupt und warum genau so, wie Du das hier schreibst) in das Zielformat bringen willst.
Bspw. stellt sich mir die Frage, warum Du die Daten immer aus einem DataGridView auslesen und dann in ein String Zielformat schreiben willst.
Woher bekommst Du die Daten? Musst Du diese zwingend in ein DataGridView schreiben? (Bspw. zur Bearbeitung in der Anwendungsoberfläche, ...?) Warum liest Du die Daten nicht direkt aus der Datenquelle aus (Du wirst die Daten doch aus dem GridView eh wieder zurückschreiben, oder? ...
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, RemotesupportDonnerstag, 26. November 2020 11:33Moderator -
Hallo,
ich habe das Problem vor kurzem gelöst.
ich habe eine Datatable erstellt aus einer CSV.-Datei diese habe ich in ein datagridview geladen. Daraus wollte ich eine Ldif.-Datei erstellen. da ich es individuell machen wollte, dass es keine festen werte gibt wusste ich nicht wie, aber nun schon.
so sieht das jetzt aus war doch recht simple, habe leider sehr kompliziert gedacht.
hier ist der Code wie ich es gelöst habe.
int count_row = dataGridView1.RowCount; int count_cell = dataGridView1.Rows[0].Cells.Count; int count_column = dataGridView1.ColumnCount; string Inhalt = ""; string newline = Environment.NewLine; for (int row_Index = 0; row_Index < count_row - 1; row_Index++) { for (int cell_index = 0; cell_index < count_cell; cell_index++) { { Inhalt += dataGridView1.Columns[cell_index].Name + "=" + dataGridView1.Rows[row_Index].Cells[cell_index].Value.ToString().Trim() + newline; } } } txtconvert.Text = Inhalt + Environment.NewLine;
Grüße Marco
- Als Antwort vorgeschlagen Stefan FalzModerator Donnerstag, 26. November 2020 14:38
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 8. Dezember 2020 11:39
Donnerstag, 26. November 2020 12:57