none
dataTable in Array RRS feed

  • Frage

  • Hallo (:

    ich hab mir jetzt schon die Finger wund gesucht. Ich find einfach keine Lösung, mein DataTable in ein Array zu schreiben.

    Hat jemand eine Idee?

    Danke
    Montag, 25. Januar 2010 19:57

Antworten


  • OK, dann eben klassisch:

    string[,] table = new string[myDataTable.Rows.Count, myDataTable.Columns.Count];
    
    for (int rowIdx = 0; rowIdx < myDataTable.Rows.Count; rowIdx++)
       for (int colIdx = 0; colIdx < myDataTable.Columns.Count; colIdx++)
          table[rowIdx, colIdx] = (myDataTable.Rows[rowIdx][colIdx] ?? String.Empty).ToString();
    
    Marcel
    Montag, 25. Januar 2010 22:21

Alle Antworten

  • Hallo,

    Du könntest z.B. LINQ verwenden:

    object[][] table = (from DataRow row in myDataTable.Rows
                      select row.ItemArray).ToArray();
    


    Marcel
    Montag, 25. Januar 2010 21:10
  • Ich verwende mySQL ... mein Projekt sollte in sehr kurzer Zeit fertig sein, hab leider keine Zeit mehr noch umzustellen ):
    Montag, 25. Januar 2010 21:42

  • OK, dann eben klassisch:

    string[,] table = new string[myDataTable.Rows.Count, myDataTable.Columns.Count];
    
    for (int rowIdx = 0; rowIdx < myDataTable.Rows.Count; rowIdx++)
       for (int colIdx = 0; colIdx < myDataTable.Columns.Count; colIdx++)
          table[rowIdx, colIdx] = (myDataTable.Rows[rowIdx][colIdx] ?? String.Empty).ToString();
    
    Marcel
    Montag, 25. Januar 2010 22:21
  • also für die strings klappts schon mal super, vielen dank.

    Ich krieg den "int" aber nicht her ): ich sollte den wert verwenden um einen parameter zu haben, aber es klappt einfach nicht ): gibts da auch eine einfache lösung? ich hab mich nämlich schon ewig gespielt und komm von der lösung immer weiter weg glaub ich
    Dienstag, 26. Januar 2010 20:46
  • Ich krieg den "int" aber nicht her ):

    Entschuldigung, ich verstehe das nicht.
    Dienstag, 26. Januar 2010 21:14
  • hab die lösung schon vielen dank (:
    Mittwoch, 27. Januar 2010 01:14
  • Und wie sieht die Lösung aus? Es wäre nett, wenn Du dazu etwas schreiben könntest. Das hilft vielleicht anderen weiter, die sich mit dem gleichen Problem herumschlagen.

    Marcel
    Mittwoch, 27. Januar 2010 09:25
  •             DataTable kunden = datenbank.send("SELECT * FROM Kunden");
                string[,] table = new string[kunden.Rows.Count, kunden.Columns.Count];
    
                for (int ir = 0; ir < kunden.Rows.Count; ir++)
                {
                    for (int ic = 0; ic < kunden.Columns.Count; ic++)
                    {
                        table[ir, ic] = (kunden.Rows[ir][ic] ?? String.Empty).ToString();
                     }
                }
    
                DataTable kunden = datenbank.send("SELECT ID FROM Kunden"); //nur die Spalte(n) mit dem INT-Wert(en) wird ausgelesen
      int[,] index = new int[kunden.Rows.Count, kunden.Columns.Count]; for (int ir = 0; ir < kunden.Rows.Count; ir++) { for (int ic = 0; ic < kunden.Columns.Count; ic++) { index[ir, ic] = (int)kunden.Rows[ir][ic]; } }
    Ich hoffe es ist einigermaßen verständlich (:
    Dienstag, 2. Februar 2010 02:17
  • Ich freue mich, dass Dir die Lösung aus meinem vorherigen Post geholfen hat.

    Marcel
    Dienstag, 2. Februar 2010 07:32
  • ja hat mir echt weitergeholfen, ein wenig interpretieren und experimentieren und es klappt alles super, auch mit den anderen datenbanktypen. ist halt leider pro variable jeweils ein so ein absatz, aber das ist mir jetzt auch egal
    Dienstag, 2. Februar 2010 21:26