Wert innerhalb einer dataTabel ändern



  • Hallo

    Ich habe eine Datatable in der ich verschiedene Werte verändern möchte. Leider bekomm ich das nicht hin. Hier mal eine Beispiel Was mach ich da falsch?

    foreach (DataRow dr in dataTable.Rows)
                        {
                            dr["meineSpalte"] = 12; // meineSpalte ist vom Typ int
                        }
    

    Normal müsste doch in ["meineSpalte"] überall eine 12 drin stehen? Tut es aber nicht.
    Warum?

    Beste grüße



  • Propier mal der foreach-Schleife ein table.AcceptChanges() zu machen.



  • Hi
    Das funktioniert leider auch nicht.
    Hat noch jemand ne idee?

    Gruß



  • Hallo qLab, ich hab mal ein kleines Testprojekt erstellt, welches Zellwerte ändert.

    Der Code hier:

    static void Main(string[] args)
    		{
    			DataTable dtData = new DataTable();
    			for (int i = 0; i < 10; i++)
    				dtData.Columns.Add("Spalte" + i.ToString(), typeof(int));
    
    			for (int i = 0; i < 10; i++)
    			{
    				Object[] values = new Object[dtData.Columns.Count];
    				for (int j = 0; j < dtData.Columns.Count; j++)
    				{
    					values[j] = i * j;
    				}
    				dtData.Rows.Add(values);
    			}
    
    			Console.WriteLine("Table created");
    			PrintTable(dtData);
    			Console.ReadLine();
    			Console.WriteLine("Updating cell values");
    
    			foreach (DataRow row in dtData.Rows)
    			{
    				foreach (DataColumn clm in dtData.Columns)
    				{
    					row[clm] = 12;
    				}
    			}
    
    			PrintTable(dtData);
    
    			Console.ReadLine();
    		}
    
    		private static void PrintTable(DataTable dtData)
    		{
    			foreach (DataRow row in dtData.Rows)
    			{
    				string sOutput = string.Empty;
    				foreach (DataColumn clm in dtData.Columns)
    				{
    					sOutput += String.Concat(clm.ColumnName, ": ", row[clm].ToString(), " - ");
    				}
    				Console.WriteLine(sOutput);
    			}
    		}
    

    Nach der Änderung der Werte in den einzelnen Zellen, lasse ich mir diese ausgeben. Wie ich zuvor schon erwartet hatte, haben diese alle den Wert 12.

    Machst du sonst noch etwas mit deiner Tabelle?


Anmelden zum Antworten