85 votes

Comment ajouter une nouvelle colonne et de nouvelles données à une table de données qui contient déjà des données ?

Comment ajouter un nouveau DataColumn à un DataTable qui contient déjà des données ?

Pseudo-code

//call SQL helper class to get initial data 
DataTable dt = sql.ExecuteDataTable("sp_MyProc");

dt.Columns.Add("NewColumn", type(System.Int32));

foreach(DataRow row in dr.Rows)
{
    //need to set value to NewColumn column
}

143voto

marc_s Points 321990

Continuez votre code - vous êtes sur la bonne voie :

//call SQL helper class to get initial data 
DataTable dt = sql.ExecuteDataTable("sp_MyProc");

dt.Columns.Add("NewColumn", typeof(System.Int32));

foreach(DataRow row in dt.Rows)
{
    //need to set value to NewColumn column
    row["NewColumn"] = 0;   // or set it to some other value
}

// possibly save your Dataset here, after setting all the new values

13voto

IForti Points 537

Ne devrait-il pas être foreach au lieu de " pour " ?

//call SQL helper class to get initial data  
DataTable dt = sql.ExecuteDataTable("sp_MyProc"); 

dt.Columns.Add("MyRow", **typeof**(System.Int32)); 

foreach(DataRow dr in dt.Rows) 
{ 
    //need to set value to MyRow column 
    dr["MyRow"] = 0;   // or set it to some other value 
}

8voto

Akxaya Points 774

Voici une autre solution pour réduire le bouclage For/ForEach, cela réduirait le temps de bouclage et permettrait des mises à jour rapides :)

 dt.Columns.Add("MyRow", typeof(System.Int32));
 dt.Columns["MyRow"].Expression = "'0'";

7voto

Nishantha Points 399

Vous souhaitez uniquement définir le paramètre de la valeur par défaut. Cet appel à la troisième méthode de surcharge.

dt.Columns.Add("MyRow", type(System.Int32),0);

2voto

Himanshu Shukla Points 125

Essayez ceci

> dt.columns.Add("ColumnName", typeof(Give the type you want));
> dt.Rows[give the row no like  or  or any no]["Column name in which you want to add data"] = Value;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X